Keyboard Shortcuts
Likes
- H390-Vm
- Messages
Search
Re: building BREXX
On Mon, Feb 10, 2020 at 08:46 PM, <eddy_balem@...> wrote:
With respect to GCCLIB problems here is Dr Hans Latz explanation of the problem:Yep - and the version on sixpack beta 3 has not got this fix - and moreover I believe has some other fixes that are probably the root cause of some brexx defects. This is why I am working to get this??built into? Adrian |
||
Re: building BREXX
¿ªÔÆÌåÓý
With respect to GCCLIB problems here is Dr Hans Latz explanation of the problem:
GCCLIB without DOSTRANS????????????????????????????? Dr. Hans-Walter Latz, 2014-01-08 1???????? Drawbacks of the resident GCCLIB in VM/370 SixPack 1.2The native C library GCCLIB, which is part of VM/370 SixPack 1.2, can be loaded as resident library, allowing for small MODULEs. For this, the SYSPROF profile loads the GCCLIB into the resident memory with RESLIB and uses the DOSTRANS field in the NUCON area to store the base pointer to the dispatch table of the resident library. The pointer is fetched by the GCCLIB-stubs (CL*-modules) linked into the programs to reference the corresponding real function implementation in the resident GCCLIB. This leads to problems (i.e. addressing errors and very likely to ABENDs) if the DOSTRANS field is needed for its original purpose, i.e. when running DOS/VSAM accessing programs like KICKS, as the DOSTRANS field then no longer points to the dispatch table of the resident library when a GCCLIB based program is started afterwards. Furthermore, the memory cleanup portion of the ABEND handler in CMS (DMSABN, invoked after a program ABEND or after issuing a HX immediate command) will assume that additional memory was allocated by an aborted DOS/VSAM program if DOSTRANS is not zero. This will lead to a wrong computation of the memory size to be free-ed, which generally results in a warning or in halting CMS execution, requiring to re-IPL CMS. Issuing the HX command with the original resident GCCLIB will usually result in the following message when entering the next command to CMS:
DMSABN149T 175 (HEX 0000AF) DOUBLEWORDS OF SYSTEM STORAGE HAVE BEEN DESTROYED. RE-IPL CMS. 2???????? Modified functionality in GCCLIBTo resolve these problems, the addressing mechanism for the dispatch table of the resident library has been modified as follows:
So the DOSTRANS field is no longer needed for the resident GCCLIB and can serve again its original purpose. After the modified resident GCCLIB is installed, all MODULEs using GCCLIB created under SixPack 1.2 must be re-linked against this new version, as the DOSTRANS field no longer holds the address of the dispatch table and programs with the old stubs will therefore crash. Programs loaded from TEXT or TXTLIB files need not to be modified, as loading them with the new GCCLIB TXTLIB will automatically use the new stubs to access the resident GCCLIB. This is also valid for the bREXX interpreter, which can be used unmodified and is loaded by the system profile into resident memory using the modified GCCLIB. Eddy Balem |
||
Re: building BREXX
¿ªÔÆÌåÓýNo, nothing wrong of course. It¡¯s just that we are not used to it (imagine doing a change in VM, but now as a ++USERMOD in SMP/E - could do that in my sleep, but I¡¯d rather never do it again now).And it is also that Git as distributed version management system, and Docker as container technology, make it much easier to collaborate on this kind of work. In a non-locking version management system work of several people can be merged, branches can be taken, and an automated testing environment can be set up, and this starting from a known situation, for example a clean Sixpack 1.4 distribution. This is why we (well Adrian and I at least) like this approach, and rather not go back to working without version management, or with locking version management systems like PVCS or Endevor. Of course everyone should work the way they like, and of course we are extremely grateful for the work people put into this and certainly Dave for keeping this alive and kicking. We just want to assist the best way we can, with the tools we think will allow us to contribute in a meaningful way. best regards, Ren¨¦ Jansen (President, Rexx Language Association)
|
||
reproducible brexx error
This is reproducible:
unzip a clean sixpack 1.3 hercules -f sixpack.conf logon cmsuser link maint 191 202 rr acc 202 z rexxtest Ready; T=0.02/0.04 19:34:28 rexxtest DMSITP141T PROTECTION EXCEPTION OCCURRED AT E788A6 IN ROUTINE DMSREX. CMS i cms DMSABN149T 109 (HEX 00006D) DOUBLEWORDS OF SYSTEM STORAGE HAVE BEEN DESTROYED. RE-IPL CMS. CP ENTERED; DISABLED WAIT PSW '00020000 6001F04E' Have to do a system reset before re-IPLling CMS, because the next one also fails. This is on macos 10.15.3, on hercules HHC01413I Hercules version 4.0.0 (4.0.0.8871) HHC01414I (C) Copyright 1999-2016 by Roger Bowler, Jan Jaeger, and others HHC01414I Commit bec74e3a. best regards, ¸é±ð²Ô¨¦. |
||
Re: building BREXX
¿ªÔÆÌåÓýGeorge, ? Thats my preference too. ? Dave ? From: [email protected] <[email protected]> On Behalf Of George Shedlock
Sent: 10 February 2020 17:57 To: [email protected] Subject: Re: [h390-vm] building BREXX ? Maybe I am missing something. Is there something wrong with the IBM supplied utilities to install/maintain the system code? I for one would prefer to use the old tried and true methods. ? Possibly I am thinking of another version of VM (or possibly it was something we wrote in-house) but we used something called UPDATE which had the ability to start with the normal distributed (base) software and apply the entire library of fixes and updates to that code and build all of the necessary steps and modules to the running system. Of course we had to schedule an IPL from time to time to get some of the fixes installed. ? I will dig through some old stuff and see if I can find some of the old notes and procedures we had. ? George ? On 2/10/2020 12:33 PM, adriansutherland67 wrote:
? |
||
Re: building BREXX
¿ªÔÆÌåÓýThere isn¡¯t an algorithm. You choose! ? Dave ? From: [email protected] <[email protected]> On Behalf Of adriansutherland67
Sent: 10 February 2020 17:34 To: [email protected] Subject: Re: [h390-vm] building BREXX ? On Mon, Feb 10, 2020 at 05:05 PM, Dave Wade wrote:
In Assembler files right? No need to strip them out if we put it in GIT. |
||
Re: building BREXX
George Shedlock
¿ªÔÆÌåÓýMaybe I am missing something.
Is there something wrong with the IBM
supplied utilities to install/maintain the system code?
I for one would prefer to use the old
tried and true methods.
Possibly I am thinking of another
version of VM (or possibly it was something we wrote in-house) but
we used something called UPDATE which had the ability to start
with the normal distributed (base) software and apply the entire
library of fixes and updates to that code and build all of the
necessary steps and modules to the running system. Of course we
had to schedule an IPL from time to time to get some of the fixes
installed.
I will dig through some old stuff and
see if I can find some of the old notes and procedures we had.
George
On 2/10/2020 12:33 PM,
adriansutherland67 wrote:
On Mon, Feb 10, 2020 at 05:05 PM, Dave Wade wrote:
|
||
Re: building BREXX
On Mon, Feb 10, 2020 at 05:05 PM, Dave Wade wrote:
if the sequence numbers are goneIn Assembler files right? No need to strip them out if we put it in GIT. However, I suppose we might need a very simple tool to add new ones if lines are entered outside of VM/370? I assume the algorithm to make sequence numbers is triveral? A |
||
Re: building BREXX
¿ªÔÆÌåÓýRene, OK I Will have a look at those errors. The problem with switching to GIT is that when a new mod is uncovered, which happens surprisingly often its hard to figure out how to apply it if the sequence numbers are gone. I see it as a lot of work for little gain. Dave ? From: [email protected] <[email protected]> On Behalf Of rvjansen@...
Sent: 10 February 2020 14:53 To: [email protected] Subject: Re: [h390-vm] building BREXX ? Hi Dave, ? ¡°what your mother never told you¡± - I read it a really loooooong time ago and it reminded me how we used IEBUPDTE on MVS to update cards. I might be old but I love to use Git for things like source code maintenance. So I will join Adrian in working on that. Thank you and Peter for those pointers to what to do with VMF. I now also understand how the mechanism works that makes sure an exec is vetted on its first line and sent to the right interpreter, and I also can now build a BREXX MODULE, I still seem to have trouble with BREXX TEXT which is needed for RESLIB. ? I would very much like to have test cases but I am still not there. As always, there must be several problems obscuring each other. One is a tendency to not find the exec, specially if the name is 8 characters. The other seem general flakeyness. But I have my eye on several problem cases in interpretation; only not well reproducible now due to all the random things that seem to happen. It sometimes reminds me of what you get when an LPA module in MVS is not linked reentrant; CMS being single user does not have that problem but checking for REUS should be done in the assembly after the C compiler produces its code - reentrant would be best because that implies reusable. I have to check. It might even be Hercules. I sometimes noticed that after a FILE I left things alone for some moments, chances of success are better. I must poke around more before I have usable testcases. I can execute BREXX <script name> without the resident part so I can isolate causes better. ? I still see things like: ? reslib delete gcclib ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Ready; T=0.01/0.01 14:19:36 ? ? ? ? ? ? ? ? ? ? ?? reslib delete dmsrex ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Ready; T=0.01/0.01 14:19:46 ? ? ? ? ? ? ? ? ? ? ?? brexx id ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? AB2217 AT SIXPACK ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? Ready; T=0.01/0.02 14:19:52 ? ? ? ? ? ? ? ? ? ? ?? brexx rexxtest ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? INVALID CHARACTER '%' IN FILEID 'REXXTEST %XEC'. ? fopen error: file 'STATE REXXTEST *' not found. ?? Error 58 running "REXXTEST%": File not found ? ? ? Ready; T=0.01/0.02 14:19:58 ? ? ? ? ? ? ? ? ? ? ?? brexx rexxtest aap noot mies ? ? ? ? ? ? ? ? ? ? ? INVALID CHARACTER '%' IN FILEID 'REXXTEST %XEC'. ? fopen error: file 'STATE REXXTEST *' not found. ?? Error 58 running "REXXTEST%": File not found ? ? ? Ready; T=0.01/0.02 14:20:24 ? ? ? ? ? ? ? ? ? ? ?? brexx rxv ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? That last one is odd, it it a script that just does a parse version X; say X. If I logoff and logon it just works most of the time: ? rxv ? ? ? ? ? ? ? ? ? ? ? ?? bREXX 2.1.8 Aug ?6 2010 ? ?? Ready; T=0.02/0.03 14:23:46? ? and ? brexx rxv ? ? ? ? ? ? ? ? ? bREXX 2.1.8 Feb 10 2020 ? ? Ready; T=0.01/0.02 14:24:46 ? that latter being my newly compiled BREXX MODULE on A and the former being the BREXX TEXT on S. ? I experimented with?RESLIB LOAD BREXX (NAME DMSREX SYSTEM and I now sometimes get errors like ¡¯SHARED PAGE UPDATED¡±. I think I read somewhere this check only happens with key 15 code. It would indicate a not serially reusable module. I must investigate how the linkage editor sets those bits; I assume it is something like in OS but again I don¡¯t know. ? I am fairly sure we will find the reasons for this. For hypotheses like ¡®misuse of the DOS support¡¯ I am still dependent on ideas from more knowledgeable people. I am looking for the explanation that Dr. Latz gave years ago but could not find it. If you have newer versions of the libraries available, I will happily switch to those. I am going to use Adrian¡¯s Docker build system and will store changes to BREXX and related DMS modules in Adrian¡¯s git repo. It would not hurt to upgrade to BREXX 2.1.9; I¡¯ll keep an eye on what the MVS BREXX people did. ? Apart from this, I will have to try the DMSREX module from MUSIC/SP and see how that works. Maybe Mark Hessling can have a look in how to reduce the memory footprint of Regina; he also started out on VM. I think it is good to have options. ? best regards, ? ¸é±ð²Ô¨¦.
? |
||
Re: building BREXX
¿ªÔÆÌåÓýHi Dave,¡°what your mother never told you¡± - I read it a really loooooong time ago and it reminded me how we used IEBUPDTE on MVS to update cards. I might be old but I love to use Git for things like source code maintenance. So I will join Adrian in working on that. Thank you and Peter for those pointers to what to do with VMF. I now also understand how the mechanism works that makes sure an exec is vetted on its first line and sent to the right interpreter, and I also can now build a BREXX MODULE, I still seem to have trouble with BREXX TEXT which is needed for RESLIB. I would very much like to have test cases but I am still not there. As always, there must be several problems obscuring each other. One is a tendency to not find the exec, specially if the name is 8 characters. The other seem general flakeyness. But I have my eye on several problem cases in interpretation; only not well reproducible now due to all the random things that seem to happen. It sometimes reminds me of what you get when an LPA module in MVS is not linked reentrant; CMS being single user does not have that problem but checking for REUS should be done in the assembly after the C compiler produces its code - reentrant would be best because that implies reusable. I have to check. It might even be Hercules. I sometimes noticed that after a FILE I left things alone for some moments, chances of success are better. I must poke around more before I have usable testcases. I can execute BREXX <script name> without the resident part so I can isolate causes better. I still see things like: reslib delete gcclib ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Ready; T=0.01/0.01 14:19:36 ? ? ? ? ? ? ? ? ? ? ?? reslib delete dmsrex ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Ready; T=0.01/0.01 14:19:46 ? ? ? ? ? ? ? ? ? ? ?? brexx id ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? AB2217 AT SIXPACK ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? Ready; T=0.01/0.02 14:19:52 ? ? ? ? ? ? ? ? ? ? ?? brexx rexxtest ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? INVALID CHARACTER '%' IN FILEID 'REXXTEST %XEC'. ? fopen error: file 'STATE REXXTEST *' not found. ?? Error 58 running "REXXTEST%": File not found ? ? ? Ready; T=0.01/0.02 14:19:58 ? ? ? ? ? ? ? ? ? ? ?? brexx rexxtest aap noot mies ? ? ? ? ? ? ? ? ? ? ? INVALID CHARACTER '%' IN FILEID 'REXXTEST %XEC'. ? fopen error: file 'STATE REXXTEST *' not found. ?? Error 58 running "REXXTEST%": File not found ? ? ? Ready; T=0.01/0.02 14:20:24 ? ? ? ? ? ? ? ? ? ? ?? brexx rxv ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? That last one is odd, it it a script that just does a parse version X; say X. If I logoff and logon it just works most of the time: rxv ? ? ? ? ? ? ? ? ? ? ? ?? bREXX 2.1.8 Aug ?6 2010 ? ?? Ready; T=0.02/0.03 14:23:46? and brexx rxv ? ? ? ? ? ? ? ? ? bREXX 2.1.8 Feb 10 2020 ? ? Ready; T=0.01/0.02 14:24:46 that latter being my newly compiled BREXX MODULE on A and the former being the BREXX TEXT on S. I experimented with?RESLIB LOAD BREXX (NAME DMSREX SYSTEM and I now sometimes get errors like ¡¯SHARED PAGE UPDATED¡±. I think I read somewhere this check only happens with key 15 code. It would indicate a not serially reusable module. I must investigate how the linkage editor sets those bits; I assume it is something like in OS but again I don¡¯t know. I am fairly sure we will find the reasons for this. For hypotheses like ¡®misuse of the DOS support¡¯ I am still dependent on ideas from more knowledgeable people. I am looking for the explanation that Dr. Latz gave years ago but could not find it. If you have newer versions of the libraries available, I will happily switch to those. I am going to use Adrian¡¯s Docker build system and will store changes to BREXX and related DMS modules in Adrian¡¯s git repo. It would not hurt to upgrade to BREXX 2.1.9; I¡¯ll keep an eye on what the MVS BREXX people did. Apart from this, I will have to try the DMSREX module from MUSIC/SP and see how that works. Maybe Mark Hessling can have a look in how to reduce the memory footprint of Regina; he also started out on VM. I think it is good to have options. best regards, ¸é±ð²Ô¨¦.
|
||
Re: building BREXX
Hello!
toggle quoted message
Show quoted text
Actually well stated. But it was aimed at Dave M, who monitors this group. And Adrian I just tried out your Docker image, and it worked just dandy here. -- Gregg C Levine hansolofalcon@... "Didn't we just leave this party?" Han Solo -----Original Message-----
From: [email protected] <[email protected]> On Behalf Of rvjansen@... Sent: Monday, February 10, 2020 3:21 AM To: [email protected] Subject: Re: [h390-vm] building BREXX Hi Gregg, You can probably just run it and it will download it from Docker Hub the first time, when the disk seek for it fails. Yeah, tried to get my cats interested but they said they only accept paying assignments, and will not work on OS¡¯es without mice. So unless one foots the Purina, it¡¯s bleak. ¸é±ð²Ô¨¦. On 10 Feb 2020, at 02:43, Gregg Levine <gregg.drwho8@...> wrote: |
||
Re: building BREXX
On Mon, Feb 10, 2020 at 11:14 AM, adriansutherland67 wrote:
docker run --rm -d -p 3270:3270 -p 8038:8038 -p 3505:3505 --name vm370 adriansutherland/vm370:1.3.5Fast start - Use from the normal windows console: * start the container docker run -d -p 3270:3270 -p 8038:8038 -p 3505:3505 --name vm370 adriansutherland/vm370:1.3.5 * attach to the linux console docker exec -it vm370 /bin/bash This will give you a linux command line, then: herccontrol "ipl 141" c3270 localhost:3270 (on my windows computer the mouse even works - which surprised me) (and ctrl-c clears the 3270 screen) Use the menu to exit c3270 then "exit" to close the shell. And - yes you can do multiple shells via docker attach * To stop (pause) the container docker stop vm370 * To kill it (pull the plug) docker kill vm370 * to unpause/start it docker start vm370 * And to remove and delete the container docker rm vm370 Boom! In this config use the hercules webconsole (or herccontrol); hercules is running detached. If your data/time becomes completely unsynced you need to restart docker desktop (and therefore stop/start your container); defect with Docker and Hybernate. You know - its a bit like CP ... |
||
Re: building BREXX
On Mon, Feb 10, 2020 at 01:43 AM, Gregg Levine wrote:
Adrian how did you construct this Docker Container? And is itYou need docker desktop (or run it on a cloud provider's infrastructure). Then: docker run --rm -d -p 3270:3270 -p 8038:8038 -p 3505:3505 --name vm370 adriansutherland/vm370:1.3.5 (so the dockerhub page is? Notes: - first download is slow, after that it uses a cache - the --rm option deletes the container (and DASD changes) when Hercules exits. You may want to miss out that option if you want to re-launch the specific container instance and save your DASD change etc.!!? - you can connect to localhost:3270 for 3270; 8038 for web console, 3505 for card reader - It is setup to start Hercules but it does not ipl - so IPL 141 at the console. - The image includes c3270 - so you have the option to attach to it via a normal ssh console and run c3270 - version 1.3.5 is the most recent. If you use the version "latest" you currently get version 1.3.4 (older version of HercControl, no card reader) but I will obviously up version latest as per my "roadmap" in due course Other hints - To attach to the container: docker exec -it vm370 /bin/bash - you could then run c3270 - To stop/start the container: docker start? vm370 / docker stop? vm370 - copy files with docker cp The source is here: Notes: - I have master, develop (and from time to time feature) branches - so switch to develop for the latest and greatest, etc. - There is the Dockerfile, and a build.sh script (uses HercControl) - in .github/workflows are the action scripts that automatically cause the image to be build/tested. These look so simple but are are very irritating to debug! - A tag causes a release that pushes an image to dockerhub and makes a zip file with the DASD files in the release page. At the moment tied to the DASD files from the excellent six pack - when my build scripts starts adding updates (e,g, GCCLIB, fullscreen stuff, BREXX updates whatever) automatically, I am hoping Dave and community will be inspired to build scripts to automate the build from a basic baseline (if that makes sense). |
||
Re: building BREXX
Gregg,
toggle quoted message
Show quoted text
Launching the six-pack... For Linux make sure you have the latest BETA, have installed Hercules and x3270 and have a desktop. Unpack the zip, make the sixpack.sh executable, do "./sixpack.sh" from wherever you unpacked it from. It will start Hercules and a X3270 session. The operator session is started as an integrated 3210. Log into whatever user you want on the 3270 session. For windows you need a "hercules" command prompt from which you type "sixpack" Dave -----Original Message----- |
||
Re: building BREXX
Hi Gregg,
toggle quoted message
Show quoted text
You can probably just run it and it will download it from Docker Hub the first time, when the disk seek for it fails. Yeah, tried to get my cats interested but they said they only accept paying assignments, and will not work on OS¡¯es without mice. So unless one foots the Purina, it¡¯s bleak. ¸é±ð²Ô¨¦. On 10 Feb 2020, at 02:43, Gregg Levine <gregg.drwho8@...> wrote: |
||
Re: building BREXX
Hello!
Adrian how did you construct this Docker Container? And is it available for us to work with? Dave, a question, since this concerns the sixpack. How does one launch it? (Together with how to log into it?) And this will be obvious only to the Yeti working with two people and many cats all over a museum in PA. But not to the people, only the cats and the yeti. ----- Gregg C Levine gregg.drwho8@... "This signature fought the Time Wars, time and again." On Sun, Feb 9, 2020 at 3:16 AM adriansutherland67 <adrian@...> wrote: "And this space is being left blank.: |
||
Re: building BREXX
He wants a listing, needs the "DISK" option on the VMFASM
toggle quoted message
Show quoted text
Dave -----Original Message----- |
||
Re: building BREXX
Rene,
toggle quoted message
Show quoted text
Have you read "what mother never told you"? /g/h390-vm/files/What%20Mother%20Never%20Told%20You%20About%20VM%20Service%20%281983%29.pdf and the "SYSPROG MEMO" describes some of the mods. So if you want to assemble a CMS modules do CMSACC VMFASM modulename DMSHRC (DISK Will assemble the module and leave the listing as "$modulename LISTING" on the A disk. It will also leave a text deck. If you don't want that add "NODECK" to the options. I also believe that many of the BREXX problems are caused by its mis use of the DOS flag. Do you have some tests to show the problems? Dave -----Original Message----- |
||
Re: building BREXX
Hi Peter,
toggle quoted message
Show quoted text
I meant running the assembler on the source file with all the patches applied, so I can get a listing with the offsets, for me to be able to put stops in for looking at the data when it executes under the debugger. Thank you for this, it is just what I need. best regards, ¸é±ð²Ô¨¦. On 10 Feb 2020, at 00:10, Peter Coghlan <groups@...> wrote: |
||
Re: building BREXX
Ren¨¦ Jansen wrote:
If by "assemble" you mean "run the assembler on", use this command: VMFASM DMSEXC DMSHRC If you mean "produce a source file with all the patches applied", use this one: UPDATE DMSEXC ASSEMBLE * DMSHRC CNTRL * (CTL and look at the file called $DMSEXC ASSEMBLE. Regards, Peter Coghlan
|