The second beta release of bREXX v1.1.0 for CMS on VM/370 is now available at .? I have been testing this update for several weeks.??It has 3 known bugs, which have all been reproduced with BREXX 1.0.1 on VM/370 CE 1.1.2.??Those bugs will be addressed separately from the beta.
I do not recommend replacing your existing bREXX version with it, but it is ready for broader testing.? The installation instructions are unchanged from the first beta email, except for the release version number, and are reproduced below.
Of special note, there are now HELP files for every Rexx instruction and built-in function.? You'll find them in an archive of their own,?BRXHELP VMARC,?embedded in the source archive,?BREXXSRC?VMARC (or on its AWSTAPE equivalent).? You can dump them straight?onto the CMS help disk (usually MAINT 19D), or they should work just fine from any other accessed disk.
There may be a beta-03 before the actual release, but with luck, nothing more.??My plan is to rechristen either beta-02 or beta-03 as the final release in January.??Your feedback is greatly desired :-)
Fair warning:?I'll be off the grid for a few weeks starting tomorrow.? I'll look into any issues you may encounter when I return.
Ross
===========================
Release contents
This release builds upon the existing work of others (i.e., bREXX 1.0.1), and adds:
? ? ? - Repair and improve builder scripts
I0080 - SIGNAL doesn't set SIGL
I0085 - Fix TRACE N output and support TRACE F.
? ? ? - Add support for OPTIONS instruction.
I0081 - STORAGE() built-in function incorrectly expects a decimal address. VM/SP says hex
I0087 - Add support for DATE(BASEDATE).
? ? ? - Add HELPREXX files.
As I noted in October, beta-01 previously added:
I0073 - Fix SIGNAL ON ERROR for positive return codes (Issue 73)
I0075 - Implement SIGNAL ON FAILURE (Issue 75)
I0078 - Make PARSE VERSION result conform to ANSI and TRL2 standards
? ? ? - Fix PARSE "with literals" (vm370 Issue 61), including adding tests for PARSE instruction
? ? ? - Enable tests in builds and fix them to work.? Some tests failed on bREXX 1.0.1 and still fail on bREXX 1.1.0 Beta:
- DATE
- ERRORTEXT #2
- PARSE #16, #19
Notes
* There are 2 breaking changes in bREXX 1.1.0:
? * PARSE now works correctly, as noted in (vm370 Issue 61)
? * STORAGE(address[,length]) now expects the address parameter to be a string of hexadecimal characters (e.g., "Say Storage('E000', 20)").
? If you have a program uses STORAGE() with a decimal address, and you don't want to change it, you can execute an "OPTIONS STORAGE_DECIMAL" statement at any time prior to calling STORAGE(), and the address will be processed exactly as it was in bREXX 1.0.1.
* The known, pre-existing bugs are:
? * Issue 89: TRACE OFF in interactive trace before PROCEDURE raises ERROR 17.1 "PROCEDURE is valid only when it is the first instruction executed after an internal CALL or function invocation"
? * Issue 90: Calling a function that doesn't exist aborts Rexx with the error message "DLMALLOC PANIC LINE 3503"
? * Issue 91: SIGNAL VALUE varname raises ERROR 16.1 'Label "var_value" not found', even though the label exists.
* All the prerequisites were shipped in VM/370 Community Edition v1.1.2 or earlier.? I have not attempted to run it on an older CMS than that, but any system with at least the following will probably work:
? * GCCLIB v1.0.1
? * HRC402DS - Support execution of REXX as filetype EXEC
? * HRC404DS - NUCEXT and SUBCOM support
? * HRC408DS - CMS support for REXX external function callsCMS Rexx function call support
? * HRC412DS - PE HRC309DS. Bad EPLIST built when no cmd operandsfix to EPLIST support (HRC309DS)
? * HRC417DS - Support RDTERM TYPE=DIRECT for REXX tracing
* These instructions assume you're testing bREXX on the CMSUSER user, but you can use any general purpose user you prefer.? DO NOT use the MAINT or MAINTC users for this purpose, as it will delete the existing bREXX files.
* This release includes a new tool, BRXLOAD EXEC, to load the source and ?object files and put them where they belong in a user structured like MAINTC.? I would appreciate feedback on it, as it's very new.
To install from source
See also Adrian Sutherland's installation instructions.
1. Download bREXX 1.1.0-Beta 02 from the URL above to the machine where you run Hercules.
2. Unzip BREXX.zip.
3. Create a user similar to MAINTC (e.g., BRXTEST).
? ?*** DO NOT USE MAINTC, AS THIS PROCEDURE WILL WIPE OUT THE OLD bREXX ***
4. Decide if you prefer to install from AWS tape or VMARC - the contents are identical
5. If AWS:
? ?5.1 At the Hercules console, enter: devinit 480 <unzip_dir>/brexxsrc.aws
? ?5.2 On a VM user with sufficient privileges (e.g., OPERATOR), enter: ATTACH 480 TO BRXTEST AS 181
? ?5.3 On BRXTEST, enter: TAPE LOAD BRXLOAD EXEC A # TAPE REW
? ?5.4 On BRXTEST, enter: BRXLOAD TAPE
6. If VMARC:
? ?6.1 Upload BREXXSRC.VMARC to CMSUSER's A-disk in binary, fixed format, record length 80.
? ?6.2 On BRXTEST, enter: VMARC UNPK BREXXSRC VMARC A BRXLOAD EXEC A (OLDD
? ?6.3 On BRXTEST, enter: BRXLOAD VMARC
7. On BRXTEST, enter: BRXBUILD
8. Copy the resulting BREXX TEXT file to CMSUSER.
9. Continue at #6 below.
===========================================
To install from object deck
See also Adrian Sutherland's installation instructions.
1. Download bREXX 1.1.0-Beta 02 from the URL above to the machine where you run Hercules.
2. Unzip BREXX.zip.
3. Decide if you prefer to install from AWS tape or VMARC - the contents are identical
4. If AWS:
? ?4.1 At the Hercules console, enter: devinit 480 <unzip_dir>/brexxbin.aws
? ?4.2 On a VM user with sufficient privileges (e.g., OPERATOR), enter: ATTACH 480 TO CMSUSER AS 181
? ?4.3 On CMSUSER, enter: TAPE LOAD BREXX TEXT A # DETACH 181
5. If VMARC:
? ?5.1 Upload BREXXBIN.VMARC to CMSUSER's A-disk in binary, fixed format, record length 80.
? ?5.2 On CMSUSER, enter: VMARC UNPK BREXXBIN VMARC A BREXX TEXT A (OLDD
6. If you haven't applied the fix for VM/350 CE Issue #83, ensure that GCCLIB is not loaded from the shared segment.? On CMSUSER, enter: DEF STOR 16M
7. IPL CMS
8. The system profile will load the new BREXX TEXT into your user's virtual memory as your version of Rexx.
9. Confirm that you're running the new version:
? ?9.1 Enter: DMSREX VERSION
? ?9.2 Enter: REXXTRY # EXIT
? ?9.3 In both cases, the version number should be "REXX-bREXX-2.1.9-CMS370-1.1.0-beta-02".
10. Optionally, obtain the test suite from the source distribution and run it:
? ?10.1 Follow the source installation steps above up through step 6.
? ?10.2 Copy all the EXEC files that do not begin with "BRX", except for REXXTRY, SYSPROFB, and TXTDATE, to CMSUSER.
? ?10.3 Copy TESTEXC ASSEMBLE to CMSUSER.
? ?10.4 On CMSUSER, enter: RUNTEST_
To return to the pre-existing bREXX version, simply rename the object deck (e.g., RENAME BREXX TEXT A BREXX110 = =) and re-IPL CMS to load the normal system bREXX.? Enter "DMSREX VERSION" and the version number should be "BREXX-CMS370-x.y.z", for some value of "x.y.z" (e.g., 1.0.1 for VM/370 CE 1.2).
===========================================
You can also install this release by deploying the gccbrx.cckd Hercules DASD file from the release ZIP file.? You'll need to re-label it to something other than GCCBRX, and then add it to your Hercules configuration and bring it online to CP.? If you understand how to do that, feel free.? It works, I tested it.