¿ªÔÆÌåÓý

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,

?

¸é±ð²Ô¨¦.



On 10 Feb 2020, at 00:41, Dave Wade <dave.g4ugm@...> wrote:

?

Rene,
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-----
From:?[email protected]?<[email protected]> On Behalf Of
rvjansen@...
Sent: 09 February 2020 22:51
To:?[email protected]
Subject: Re: [h390-vm] building BREXX

ok. Another beginner¡¯s question: I see the original source of DMSEXC
ASSEMBLE is from 1978, and changes are patched on using a line-by-line
approach. Is there some easy way to assemble the source module with all
the patches merged, so that I can check the offsets without going through
the whole rebuild of the system? Would this be one of those VMFxxx
commands?

¸é±ð²Ô¨¦.


On 9 Feb 2020, at 23:41, Dave Wade <dave.g4ugm@...> wrote:

Rene,
When you logon to maint the CP mods disk is accessed as "B". There is

another HRCMODS MEMO on that disk for the CP mods.

Dave


-----Original Message-----
From: [email protected] <[email protected]> On Behalf Of
rvjansen@...
Sent: 09 February 2020 22:36
To: [email protected]
Subject: Re: [h390-vm] building BREXX

Ah!

Thanks Dave!

¸é±ð²Ô¨¦.


On 9 Feb 2020, at 23:25, Dave Wade <dave.g4ugm@...> wrote:

To see what CMS mods there are in the n-Pack logon to maint and type

CMSACC

This accesses the CMS modifications disk as "B" and then do

EE HRCMODS MEMO B

You will see HRC371DS implements this change. So

MEMO ????HRC371DS B1

Will contain details of how this is implemented.

Dave


-----Original Message-----
From: [email protected] <[email protected]> On Behalf Of
rvjansen@...
Sent: 09 February 2020 20:15
To: [email protected]
Subject: Re: [h390-vm] building BREXX

One piece of the puzzle is this:

There is no DMSREX module in VM/370. Ren¨¦ Ferland confirmed this.

The RESLIB command is used to load BREXX TEXT into resident storage.
RESLIB itself is not documented in the official VM/370 documents, I
just read the System Programmer¡¯s guide and the CMS Commands and

Macros guide.

It is documented by HELP RESLIB, and was written by Andrew
Hanushevsky, Langmuir Laboratory, Cornell University in 1980.

The HELP RESLIB (MORE command states that every program that is
loaded in this way, needs to be serially reusable (which is one
step above/below reentrant/reenterable, depending on how you see
it). This means BREXX may not have compiler initialized static
variables. ?I wonder if GCC has an option to make sure it does not,
and I would be more at ease if it was reentrant.

The loading is done for each VM/user by an exec called SYSPROF EXEC.
I found out by doing a RESLIB DELETE GCCLIB, RESLIB DELETE DMSREX
for my MAINT user, and trying to make it work again afterwards. It
did not, because the botched builds left a wrong SYSPROF EXEC on
MAINT¡¯s A disk, or that is what I think.

As soon as I found this, and deleted the one on the A disk, the one
on the V disk is executed at logon and the info is correct again.
Interestingly, the modules GCCLIB and DMSREXX are loaded at
different
(virtual) address in different userid¡¯s. Then I remembered that the
release notes for Sixpack 1.2
say:

????????????? ? During initialization, CMS executes "SYSPROF EXEC" before
executing "PROFILE EXEC". This allows you to ensure certain
commands are always executed for users.


These commands are the RESLIB commands for BREXX; it then chains
SYSPROX EXEC for the mecaff programs.

I¡¯ll keep you posted on more progress, for example whe I find out
how the exec processor finds it is a REXX exec, which is rather
anachronistic for this level of VM.

best regards,

Ren¨¦ Jansen.

















?

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