¿ªÔÆÌåÓý

First beta of bREXX 1.1.0 now available


 

The first 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, and it has no known bugs. I do not recommend replacing your existing bREXX version with it, but it is ready for broader testing.

I expect there to be at least a beta-02 before the actual release.? 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:

- Fix SIGNAL ON ERROR for positive return codes ()
- Implement SIGNAL ON FAILURE ()
- Make PARSE VERSION result conform to ANSI and TRL2 standards ()
- Fix PARSE "with literals" (), 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

* 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 .

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

1. Download bREXX 1.1.0-Beta 01 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 , 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-01".
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.


 

I have installed the binary distribution via VMARC on the MECAFF user. There is a change how REXX tracing works which is disturbing EENEW's internal machinery. My workaround is to begin all REXX programs with "TRACE 'Off'".
?
TRACE 'Negative' behaves the same as TRACE 'Errors' but these should differ.? The new bREXX has changed in the way, that TRACE 'Negative' does trace host commands with a positive return code but these should not be traced by TRACE 'Negative'.
?
I have checked this on SDFVM's VM/SP5 .
Martin
?
Quote from HELP REXX TRACE on SDFVM:
?
Commands ? ? ? all host commands are traced before execution and any ??
? ? ? ? ? ? ? ?non-zero return code is displayed. ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
Error ? ? ? ? ?any host command resulting in a non-zero return code is?
? ? ? ? ? ? ? ?traced after execution. ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
[...] ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
Negative ? ? ? (Negative or Normal); any host command resulting in a ??
? ? ? ? ? ? ? ?negative return code is traced after execution. ?This ??
? ? ? ? ? ? ? ?is the default setting. ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??


 

On Mon, Nov 4, 2024 at 3:40?PM Martin Scheffler via <San-Lorenzo=[email protected]> wrote:
I have installed the binary distribution via VMARC on the MECAFF user. There is a change how REXX tracing works which is disturbing EENEW's internal machinery.

Now that the hard work for bREXX 1.1.0 is done, I'm going to start playing with EENEW.? I'm really excited to try it!

My workaround is to begin all REXX programs with "TRACE 'Off'".

Note that you can also easily back out to the prior bREXX (probably v1.0.1), by renaming the new BREXX TEXT file and re-IPLing CMS.

?TRACE 'Negative' behaves the same as TRACE 'Errors' but these should differ.? The new bREXX has changed in the way, that TRACE 'Negative' does trace host commands with a positive return code but these should not be traced by TRACE 'Negative'.

I did indeed change stuff in the area of host command return code processing, because Cowlishaw's?Rexx separates SIGNAL ON FAILURE (negative RC) from SIGNAL ON ERROR (non-zero RC).? I wasn't aware of TRACE NEGATIVE, and in fact it isn't documented in The Rexx Language 2nd ed. (TRL2) or in the ANSI Rexx Standard.? Both of those have TRACE NORMAL, and since they both say to only test the first character (i.e., "N"), TRACE NEGATIVE is legal.? TRL2 documents TRACE NORMAL as the same as TRACE FAILURE - i.e., display commands with negative return codes.

So, yes, you're right, TRACE N should behave the same as TRACE F, not like TRACE E.? I'll open up an issue and start looking at it.

Ross