cathcart@ukfsc.iinus1.ibm.com ("Mark Cathcart") (12/19/90)
I thought you might be interested in the attached summary of changes to the REXX Language. There are some notes on the IBM implementations. You can find out the level of your REXX Interpreter using the Parse Version Instruction. For Example, Parse Version int lvl date Say 'REXX Interpreter' int 'is at level' lvl =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Level 3.40 - Base is SAA Procedures Language Level 1 being a (rather comprehensive) subset of REXX as supported by the VM/CMS Release 5 System Product Interpreter. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Level 3.45 - add built-in functions: digits, form, fuzz, wordpos - add DBCS built-in functions - add VALUE to Numeric Form - add <NO>EXMODE to Options for DBCS handling - add FAILURE condition to Signal and Trace - add 'Nomatch' option to verify bif - add 'Basedate' and 'Normal' options to date bif - add 'Civil' and 'Normal' options to time bif - add strict comparison operators (<< >> <<= >>= \<< \>>) - add backslash (\) as synonym/replacement for not (^) character All the following is not part of SAA Procedures Language. It is still supported in VM and MVS implementations. REXX OS/2 is the first implementation that excludes them. - delete dollar, at, hash, cent from symbol character set - delete 'Julian' and 'Century' options from date bif - delete Upper instruction (use translate bif instead) - delete externals, find, index, justify, linesize, userid bifs =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Level 3.46 - add Call On/Off for Error, Failure, and Halt conditions - add Call/Signal On ... Name trapname - add condition built-in function - increase number of arguments from 10 -> 20 - improve precision of exponentiation and integer division/remainder =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Level 4.00 - add binary strings (e.g., '1100 1001'B) - add b2x charin charout chars linein lineout lines stream x2b bifs - add Linein to Parse (meaning: Parse Value linein() With...) - add "subsidiary" namelist to Drop and Procedure Expose e.g., a='AA BB CC' Drop (a) is the same as Drop AA BB CC. - add NOTREADY to Call/Signal On/Off - add optional arguments newvalue and selector to value bif - add prefix to variable patterns +(u), -(v), =(w) and '=' (for consistency) to positional pattern, e.g. =13 to denote relative positional patterns (u,v,w must contain non-negative whole numbers). - add system exits - remove Scan option from Trace instruction - enhance value built-in function with SET option and external variable - all math built-in functions normalize before use
eric@sejnet.sunet.se (Eric Thomas, SUNET) (12/20/90)
In article <9012191426.AA00905@ucbvax.Berkeley.EDU>, cathcart@ukfsc.iinus1.ibm.com ("Mark Cathcart") writes... > Level 3.45 > > - add built-in functions: digits, form, fuzz, wordpos >(...) > - delete externals, find, index, justify, linesize, userid bifs I have *tons* of EXEC's that use FIND, because FIND is what there was at the beginning. Since I run SP5 I do not even *have* a version of REXX that supports WORDPOS, and SAA REXX does not support FIND any longer. Very, very clever of IBM I must say. Eric PS: Mark, I know it's not your fault :-) Besides which I don't care whether my EXEC's are SAA or not, it's just a philosophical comment.
cathcart@ukfsc.iinus1.ibm.com ("Mark Cathcart") (12/20/90)
Eric, I know you know... but just to make it clear these levels are the REXX language levels. If your interpreter/compiler is at x.xx level then it should at least support that level, there is no requirement to remove function from previous levels, especially where the interpreter/compiler had existed in that environment at a prior level. I see no good reason to remove FIND or INDEX et al from the VM/CMS Interpreter. For example, my VM/ESA Interpreter returns 3.46 for the level and still supports externals, find, index, justify, linesize and userid bifs. It would be daft if it didn't.
eric@sejnet.sunet.se (Eric Thomas, SUNET) (12/21/90)
I understand, but what it means is that I won't be able to convert my EXEC's to the SAA compliant syntax for, oh, just another 5 years or so, because there will be a significant amount of < 5.5 systems around for at least 5 years. By that time I will have even more EXEC's to convert since I have to keep using non-SAA-compliant functions for new code I am writing now, so it will be a huge amount of work, rather than just a lot of work :-) In other words, chances are that I will never do it. So much for standardization. Eric