Jump to content

REXX Tips & Tricks:Hints for Object REXX

From EDM2
Revision as of 04:53, 27 November 2012 by Martini (talk | contribs) (Created page with "This section contains some hints for using Object-Oriented REXX under OS/2. It also contains some information about Object REXX for other operating systems. Object REXX is curre...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

This section contains some hints for using Object-Oriented REXX under OS/2. It also contains some information about Object REXX for other operating systems.

Object REXX is currently available for OS/2, Windows NT, Windows 95, and Linux, and AIX.

see also - Creating "compiled" programs for Classic REXX and Object REXX - Writing filter programs in REXX - Using PMREXX - New REXXUTIL functions in Object REXX

Object REXX for OS/2

Name Object-Oriented REXX for OS/2 Version OBJREXX 6.00 18 May 1999 (special version for WARP 3; May99 Update) (see Internet - Web Pages)

OBJREXX 6.00 25 Mar 1998 (special version for WARP 3; Mar98 Update) (see Internet - Web Pages)

OBJREXX 6.00 11 Nov 1997 (special version for WARP 3; Nov97 Update, also part of WARP 4 Fixpack #6) (see Internet - Web Pages)

OBJREXX 6.00 21 Jul 1997 (special version for WARP 3) (see Internet - Web Pages) (DevCon Rel 2 Vol 1)

OBJREXX 6.00 12 Jul 1996 (WARP 4) Author IBM Distrib. Part of WARP 4 and free through the web Type REXX Interpreter Price - Source WARP 4 / DevCon / (see Internet - Web Pages)

If possible, you should use the special version for WARP 3 from the IBM WebSite (see Internet - Web Pages). Use of this version is not restricted to machines running WARP 3. It is a complete version of Object REXX and, at this time, the most up-to-date version available. This version is being promoted to users of WARP 3, since the GA version of WARP 3 did not contain a copy of Object REXX, as did WARP 4. It runs fine on WARP 4 machines.

Note: The CD-ROM from the book Object REXX for OS/2 WARP contains a copy of Object REXX for OS/2.


The following are lists of fixed bugs in the updated versions of Object REXX

OBJREXX 6.00 18 May 1999

The following is the list of fixed bugs in the version OBJREXX 6.00 18 May 1999:

ENHANCEMENTS TO OBJECT REXX

The following enhancements have been made to this Object REXX level:

Bugs corrected in 99/05 release

  • Calling function Trace() with an invalid option no longer causes an access violation.
  • Function FORMAT() no longer creates extranuous trailing blanks for certain numbers.
  • Sliding window algorithm for two digit years adjusted for some cases in Date() function.
  • Several syntax errors reported will now show the correct source line location in the user program.
  • A single LF that falls on the internal buffer boundary is no longer ignored.
  • Piped input no longer contains additional characters.
  • Literals no longer cause and error with the VALUE() function.
  • DATE("S") with output separator specified now formatted correctly.
  • Memory leak when reading from streams has been removed.
  • Memory leak when creating many stream objects has been removed.
  • ARRAYIN method of the stream class no longer raises the NOTREADY condition.
  • When a stack overflow is encountered it will be handled correctly without causing an application error.
  • RANDOM(1,,99) no longer causes an application error.
  • STREAM("STDIN","C","CLOSE) no longer causes a trap.

Features added in 99/05 release

New REXXUTIL functions:

  • SysDumpVariables
  • SysGetFileDateTime
  • SysSetFileDateTime
  • SysStemCopy
  • SysStemDelete
  • SysStemInsert
  • SysStemSort
  • SysUtilVersion
  • SysVersion

If the first line contains a Unix style shell definition starting with #! it will be ignored (seen as a comment).

ENHANCEMENTS TO OBJECT REXX

The following enhancements have been made to this Object REXX level:

Bugs corrected in 98/10 release

  • Calling function Trace() with an invalid option no longer causes an access violation.
  • OPTIONS EXMODE not working correctly
  • SysFileTree did not work correctly with absolute path from root (e.g. "\OS2")
  • Subclassing class STREAM could cause a trap
  • Closing files after changing directories sometimes did not work
  • Broken error message for bad hexadecimal strings
  • Internal memory handling problem
  • Trap with many threads depending on timing at thread termination
  • DO..OVER binary files caused system resources to be exhausted
  • UNINIT method not called when defined in a parent class
  • Last line was ignored by SysFileSearch when not terminated with CR/LF
  • Drop of an object didn't invoke the UNINIT method
  • Stream SEEK command no longer requires READ/WRITE attribute, if none is specified BOTH is assumed (to be compatible with classic REXX)
  • TRANSLATE("abc","","") gives incorrect result
  • Trap or unpredictable results with long parse statements
  • Accessing an unqualified filename (no path information) sometimes failed after changing the current directory
  • String comparison with padded characters fails if excess character is greater than ASCII 127
  • SysFileTree fails to find Win95 LFN directories
  • Long message evaluation expressions not protected from garbage collection

Features added in 98/10 release

  • New input and output separators for DATE() function according to revised ANSI standard
  • Use double dash -- as line comment according to request by ANSI comittee
  • Use single dash - as line continuation character according to request by ANSI comittee
  • Default stream open behaviour is now non-shared (as with classic REXX).

The three new options for the stream command available to open files in shared mode are:

       SHARED
           allow reading and writing from other processes SHAREREAD
           allow reading from other processes SHAREWRITE
           allow writing from other processes 
       e.g.:
          CALL STREAM "MYFILE.DAT","C","OPEN READ SHARED"
          CALL STREAM "LOGFILE.TXT","OPEN BOTH SHAREREAD"


OBJREXX 6.00 25 Mar 1998

The following is the list of fixed bugs in the version OBJREXX 6.00 25 Mar 1998:

ENHANCEMENTS TO OBJECT REXX

The following enhancements have been made to this Object REXX level:

Corrected several bugs

  • SysFileTree error when using the 'O' option
  • Speed up processing of LINES() built-in function
  • Stream Query Size returns wrong value for not existing files
  • Memory problems with objects larger than 16 MB
  • CHARS() built-in function returned -1 for certain files
  • Memory leak when working with many files
  • LINES() method and built-in function didn't recognize a single character after CR/LF
  • Line count wrong for files ending in CR-LF-EOF
  • WPS support not persistent between reboots

OBJREXX 6.00 11 Nov 1997

The following is the list of fixed bugs in the version OBJREXX 6.00 11 Nov 1997:

ENHANCEMENTS TO OBJECT REXX

The following enhancements have been made to this Object REXX level:

Corrected several bugs

  • External programs cannot be started in the foreground
  • FILESPEC returns empty string for certain filename specifications
  • Problem with line contination character in mixed CRLF/LF files
  • Trap after garbagge collection
  • Problem parsing mixed SBCS/DBCS strings
  • Trap when trying to access memory from different processes
  • Corrected a problem with duplicate freed memory in SysIni
  • Wrong error location for duplicate method

Added features

  • New functions in REXXUTIL.DLL (see New REXXUTIL functions in Object REXX)
  • Enable SysIni function to work in a non-PM environment (see New REXXUTIL functions in Object REXX)

OBJREXX 6.00 26 Feb 1997 and OBJREXX 6.00 21 Jul 1997

The following is the list of fixed bugs in the versions OBJREXX 6.00 26 Feb 1997 and OBJREXX 6.00 21 Jul 1997:

ENHANCEMENTS TO OBJECT REXX

The following enhancements have been made to this Object REXX level:

Corrected several bugs

  • Trap in deep recursive algorithms
  • Problems with CR/LF literal translation in output streams
  • Data files not written if session exited with "EXIT"
  • RexxVariablePool did not return EXITNAME symbol
  • SysFileSearch quits at EOF in the middle of the file
  • Problems with intersection operations on collections
  • Bad count in SysFileSearch with mixed LF, CR/LF line feeds
  • Trap when called from IBM Internet Connection Server
  • CHARS() and LINES() return 0 for redirected STDIN
  • Trap in recursive invocation of STRING method
  • Delete key has no effect in PMREXX entry field
  • Trap when seeking not existing file
  • Hashvalue not defined for class objects
  • Error in PARSE CASELESS instruction
  • Incorrect output with .error~say
  • Standard streams not recognized with colon in name
  • Propagate error/halt conditions from OREXX image
  • Hard error popup in STREAM("A:\TEST.DAT","C","QUERY EXISTS")
  • Concurrent start of program fails sometimes
  • Problem setting OS/2 environment
  • LINEOUT does not write to correct file