Author Topic: Is there a way to recompile Object Rexx?  (Read 1701 times)


  • Global Moderator
  • Hero Member
  • *****
  • Posts: 2034
    • View Profile
    • A.I.BuiltPC - using OS/2 Warp Server & eComStation for Custom Web and Database Solutions
Is there a way to recompile Object Rexx?
« on: 2007.07.31, 23:41:46 »
Hey all, here's a question that I think is both good and very important...

Is there a way to recompile Object Rexx? Preferably using VAC++ or something better than MS's compiler?

For some reason the later releases of Object Rexx for OS/2 (WSeB from at least CP2, perhaps earlier; and eCS) were compiled using MS's (very crappy) compiler. The differences I have noted (from earlier releases) are:

  • Memory leaks
  • Problems creating large Stem Arrays
  • Painstakingly slow creating large Stem Arrays [an 80,000 item array takes 5 seconds (virtually every time) to create under cRexx, and 40-70 seconds (varies for some unknown reason) under the same conditions, on the same exact hardware under ORexx]
  • Overall, slower operation even for basic functions that are in both
  • Tends to crash the ORexx subsystem using non-object code that runs fine under CRexx (heavy load issues)
  • Thread, process, msg, pipe, and semaphore handling are abysmally slow (a fraction of a second, usually unmeasurable - compared to a measurable, large fraction of a second - to actual SECONDS, makes a WORLD of difference for web serving cgi - especially with each connection that it ties up and the greater chance for overlapping connections and running out of resources because of that overlap)
  • Running ORexx for web cgi under a web server under decent load (50,000 requests, mostly script handled) a day requires the system to be rebooted every couple of days due to memory leaks and other weird issues (which cause the ORexx.DLL to eventually crash)
  • The ORexx subsystem does not (anymore) do proper housecleaning when a session is ended (related to numerous issues listed above).

I understand that the ORexx stuff IBM released to the public lack the OS/2 parts, so obviously that would not be a route to go since OS/2 and many apps rely on Rexx... is there a way to get source and recompile using a real compiler?

Funnily, if the ORexx DLLs compiled with MS's compiler are any indication, I can definitely understand why they have so many buffer (overflow/underflow) issues, memory leaks and crashes - since this seems to indicate that the core of their problems start at the compiler - and are probably added to by issues in the actual Windows code making things even worse.

Now the question I am sure someone will ask... if I am not using any Object Rexx features, why dont I just switch back to CRexx? Well, I started using (extensively) Parse Value Caseless (which isnt supported in CRexx... just Parse Value is - no Caseless keyword support), and ChangeStr() - (which also isnt supported). I have since written my own ChangeString() function, and am working on a Parse Value Caseless replacement - both for use in CRexx... but I'd rather have a working ORexx so I can expand some of my apps and scripts to be object based (currently not too much of an issue since it's mostly web cgi stuff).


PS: In the meantime, the ORexx DLLs on Hobbes seem far better at usability (and takes a lot longer to exhibit those memory leak/resouce problems) than the current one in eCS 1.2 - the eCS gang have told me they have heard similar reports from others, and they are looking at including the less leaky DLL in the future release, though I am not sure what stage they are at with that.
« Last Edit: 2007.07.31, 23:52:54 by RobertM »
Kirk's 5 Year Mission Continues at:
Star Trek New Voyages