¿ªÔÆÌåÓý

Third and final beta of bREXX 1.1.0 now available


 

The third beta release of bREXX v1.1.0 for CMS on VM/370 is now available at .? I have been testing this update for about 1 week.? It has 1 additional known bug ), which has been reproduced with bREXX 1.0.1 on VM/370 CE 1.1.2.? That bug will be addressed separately from the 1.1.0 release.
I do not recommend replacing your existing bREXX version with this, but it is ready for testing as the expected release candidate.? The installation instructions are unchanged from the first beta email, except for the release version number, and are reproduced below.

This the final beta before the actual release.? My plan is to rechristen beta-03 as the final release in January, with no changes except to address any bugs that may be reported before then.

Your feedback is greatly desired :-)

Ross

===========================

Release contents

This release builds upon the existing work of others (i.e., bREXX 1.0.1), and adds:

? ? ? - Raise Rexx level to 3.45.
I0095 - SIGNAL ON isn't turned off after trapping.
I0094 - Implement NUMERIC FORM VALUE.
I0092 - Add support for CONDITION().



As I noted in October and November, beta-01 and beta-02 previously added:

? ? ? - Add HELPREXX files.
I0087 - Add support for DATE(BASEDATE).
I0081 - STORAGE() built-in function incorrectly expects a decimal address. VM/SP says hex
? ? ? - Add support for OPTIONS instruction.
I0085 - Fix TRACE N output and support TRACE F.
I0080 - SIGNAL doesn't set SIGL
? ? ? - Fix PARSE "with literals" (vm370 Issue 61), including adding tests for PARSE instruction
I0078 - Make PARSE VERSION result conform to ANSI and TRL2 standards
I0075 - Implement SIGNAL ON FAILURE (Issue 75)
I0073 - Fix SIGNAL ON ERROR for positive return codes (Issue 73)
? ? ? - 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
? ? ? - Repair and improve builder scripts


Notes
  • There are 2 breaking changes in bREXX 1.1.0.
    • ?PARSE now works correctly, as noted in ().
    • ?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:
    • : 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"
    • : Calling a function that doesn't exist aborts Rexx with the error message "DLMALLOC PANIC LINE 3503"
    • : SIGNAL VALUE varname raises ERROR 16.1 'Label "var_value" not found', even though the label exists.
    • : CALL ON is just a synonym for SIGNAL ON
  • 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 operands fix 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 03 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. On BRXTEST, enter: BRXGEN
9. Copy the resulting BREXX TEXT file to CMSUSER.
10. Continue at #6 below.

===========================================

To install from object deck

See also Adrian Sutherland's installation instructions.

1. Download bREXX 1.1.0-Beta 03 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.

Join [email protected] to automatically receive all group messages.