开云体育


WATFIV

 

开云体育

Gentles,

Does any one use WATFIV? ?The current EXEC seems to make a dogs dinner of things as it only accepts one input file. The manual for WATFIV suggests that the CMS interface accepts multiple files so I assume we don’t have that.

This means you input file needs to contain your Fortran Source, WATFIV control cards and data. If it accepted multiple files then you could put the control cards in separate files and do something like

?

WATFIV $JOB MYW5PROG $ENTRY MYW5DATA $STOP

?

Where

?

$JOB WATFIV has the job card

MYW5PROG WATFIV (or FORTRAN) has the data

$ENTRY has the $ENTRY CARD

MYW5DATA WATFIV has the data

$STOP WATFIV has the $STOP card

?

Any thoughts?

?

Dave


Re: Updated Help

 

On Thu, Dec 16, 2021 at 03:39 AM, Dave Wade wrote:
Thanks for looking. Why are you confused. It’s a draft so it will have inconsistencies. GCC HELPCMD points to the help for both libraries.
Thank you for putting this together.

I've had more coffee, so maybe I'll be better at explaining. Neither GCC HELPCMD, nor GCC HELPCMD2 point to HELP PDPCLIB, as in does Note 4. I would suggest adding a Note 5 to do that.


Another thing I noticed. and this might be because I've lived in *nix-land and IBM-land too long. In GCCLIB HELPCMD, under Notes: my two cents, less taxes; would be to indicate that a NULL is equivalent to x'00', just so people don't confuse it with void.

????? 7.? When writing a fixed-length binary file the buffer will be padded
????????? with NULLs if needed.

?... Mark S.


Re: Possible bug in BREXX parse instruction

 

Hi Mark,

that’s correct.?
The reason is simple. I‘m a MVS developer and Bob is a VM developer. ?

Currently there are two different source repositories for brexx on 370.?
But you are right, that two repos should be merged.?

Best Mike

Mark Waterbury <mark.s.waterbury@...> schrieb am Do. 16. Dez. 2021 um 16:46:

Why is BREXX for MVS so different from BREXX for VM/CMS that it could have differences in something as fundamental as the REXX PARSE statement?

I would think that most of the BREXX code should be "identical"?? Only a small portion of it should be "system dependent" and ideally that should be isonlated into one or more system-dependent CSECTs (aka. "modules") with procedures (entry points) to perform the various system-dependent functions such as allocating memory, opening a file, etc.?? ?(These ideas are not "new"...)

--
Von Gmail Mobile gesendet


Re: Possible bug in BREXX parse instruction

 

Why is BREXX for MVS so different from BREXX for VM/CMS that it could have differences in something as fundamental as the REXX PARSE statement?

I would think that most of the BREXX code should be "identical"?? Only a small portion of it should be "system dependent" and ideally that should be isonlated into one or more system-dependent CSECTs (aka. "modules") with procedures (entry points) to perform the various system-dependent functions such as allocating memory, opening a file, etc.?? ?(These ideas are not "new"...)


Re: Updated Help

 

开云体育

Mark,

Thanks for looking. Why are you confused. It’s a draft so it will have inconsistencies. GCC HELPCMD points to the help for both libraries.

?

LIB fn?? specifies the runtime library with which the program is to be????????????

?????????compiled.? GCC will link and access the appropriate disk containing??????

?????????the C header files.? Two runtime libraries are available:????????????????

???????????????????????????????????????????????????????????????????????????????????

?????????GCCLIB? uses only "native" CMS functions for system services.? Using?????

?????????????????this library it is possible to write programs that may be????????

?????????????????loaded into resident memory as extensions of the CMS nucleus.????

???????????????????????????????????????????????????????????????????????????????????

?????????????????Ensure GCCLIB is in your list of GLOBAL TXTLIBs to run your??????

?????????????????compiled progam.? Type HELP GCCLIB for more information.?????????

???????????????????????????????????????????????????????????????????????????????????

?????????PDPCLIB uses simulated OS functions for system services.?????????????????

???????????????????????????????????????????????????????????????????????????????????

?????????????????Ensure PDPCLIB is in your list of GLOBAL TXTLIBs to run your?????

?????????????????compiled progam. Type "HELP PDPCLIB" for more information.???????

?

Not really sure how to deal with this.? FSHELP combines both “HELP GCC” and “HELP GCC(MORE” so sometimes you get two references.

驰耻办…

?

Dave

?

?

From: [email protected] <[email protected]> On Behalf Of Mark A. Stevens via groups.io
Sent: 16 December 2021 02:15
To: [email protected]
Subject: Re: [h390-vm] Updated Help

?

On Wed, Dec 15, 2021 at 03:52 PM, Dave Wade wrote:

there are two copies, one as a zip archive of ASCII files, the other as a VMFPLC2 AWS tape. If you would like to have a look and let me know what you think.

I downloaded the help.aws, then uploaded it to my VM system. I found the reference to GCCLIB, but I'm not finding a reference to PDPCLIB in the following.

FSVIEW GCC HELPCMD2 F
...
3.? The source code for the GCC compiler and runtime libraries is on the

??? GCCCMS userid disks.
?
4.? An alternate runtime library called GCCLIB is available for C programs.
??? This runtime library lets you code C programs that directly access CMS
??? system services.? Type HELP GCCLIB for more information.
?
Ready; T=0.01/0.02 02:06:54

Confused.
?... Mark S.


Re: Updated Help

 

On Wed, Dec 15, 2021 at 03:52 PM, Dave Wade wrote:
there are two copies, one as a zip archive of ASCII files, the other as a VMFPLC2 AWS tape. If you would like to have a look and let me know what you think.
I downloaded the help.aws, then uploaded it to my VM system. I found the reference to GCCLIB, but I'm not finding a reference to PDPCLIB in the following.

FSVIEW GCC HELPCMD2 F
...
3.? The source code for the GCC compiler and runtime libraries is on the

??? GCCCMS userid disks.
?
4.? An alternate runtime library called GCCLIB is available for C programs.
??? This runtime library lets you code C programs that directly access CMS
??? system services.? Type HELP GCCLIB for more information.
?
Ready; T=0.01/0.02 02:06:54

Confused.
?... Mark S.


Updated Help

 

开云体育

Folks,

?

? I have attempted to clean up the GCC help files and to that end have uploaded some modified files to the groups file section.

?

/g/h390-vm/files/Help%20File%20Updates

?

there are two copies, one as a zip archive of ASCII files, the other as a VMFPLC2 AWS tape. If you would like to have a look and let me know what you think.

?

Dave

?


Re: Possible bug in BREXX parse instruction

 

Hey ….

I will check the MVS version on weekend.?

Sorry for the delay.?

Mike

Bob Bolch <Bob@...> schrieb am Mi. 15. Dez. 2021 um 13:05:

This is definitely?a bug in BREXX on VM/370. We are checking into whether?the MVS version has a similar bug.
So far, I am just starting to go through the (sparsely) documented PARSE code.
Bob Bolch

On Wed, Dec 15, 2021 at 4:53 AM Dave Mitchell <zenoshrdlu@...> wrote:
thanks for all the advice. For the moment I have solved my problem by rewriting the exec so that the pair of parentheses always have two non-null character strings between them.
Dave

On Wed, 15 Dec 2021 at 03:00, Drew Derbyshire <swhobbit@...> wrote:

If you have not made friends with IBM VM/SP environment:

?

ssh ibm4361@...?

--
Von Gmail Mobile gesendet


Re: Possible bug in BREXX parse instruction

 

This is definitely?a bug in BREXX on VM/370. We are checking into whether?the MVS version has a similar bug.
So far, I am just starting to go through the (sparsely) documented PARSE code.
Bob Bolch

On Wed, Dec 15, 2021 at 4:53 AM Dave Mitchell <zenoshrdlu@...> wrote:
thanks for all the advice. For the moment I have solved my problem by rewriting the exec so that the pair of parentheses always have two non-null character strings between them.
Dave

On Wed, 15 Dec 2021 at 03:00, Drew Derbyshire <swhobbit@...> wrote:

If you have not made friends with IBM VM/SP environment:

?

ssh ibm4361@...?


Re: Possible bug in BREXX parse instruction

 

thanks for all the advice. For the moment I have solved my problem by rewriting the exec so that the pair of parentheses always have two non-null character strings between them.
Dave

On Wed, 15 Dec 2021 at 03:00, Drew Derbyshire <swhobbit@...> wrote:

If you have not made friends with IBM VM/SP environment:

?

ssh ibm4361@...?


Re: Possible bug in BREXX parse instruction

 

If you have not made friends with IBM VM/SP environment:

?

ssh ibm4361@...?


Re: Possible bug in BREXX parse instruction

 

I would run it via system REXX on VM/SP 5 via the LCM+L system.

I see:

test of () trial 1

in1 = //

in2 = //

outer=/ trial 1/

test of (1) trial 2

in1 = /1/

in2 = //

outer=/ trial 2/

test of (1 3) trial 3

in1 = /1/

in2 = /3/

outer=/ trial3/

Ready; T=0.01/0.01 18:52:39

?


Re: CMS GCC definition

 

On Sun, Dec 12, 2021 at 03:12 PM, Tom Chandler wrote:
I need a unsigned 8-bit integer type to define in CMS GCC.? I have tried several different
definitions and none of them seem to work.? Any help, Thank You.
In searchingLInux,? /usr/include/ and its subdirectories I ran into the following.? Since char seems to be byte aligned (it holds one character 'A', 'B', ...) it would be 8 bits long for EBCDIC/IBM.

bits/types.h:37:typedef unsigned char __uint8_t;

I Hope This Helps

?... Mark S.


CMS GCC definition

 

Trying? to determine what uint8_t would be in CMS GCC, as uint8_t is not defined.

I need a unsigned 8-bit integer type to define in CMS GCC.? I have tried several different
definitions and none of them seem to work.? Any help, Thank You.

Thank You
Tom C.


Re: GCC Lib

 

"Despite its name its not the maximum, it’s the maximum that can ALWAYS be opened."

No, its the minimum number that the implementation guarantees that can be open simultaneously...?

"FOPEN_MAX which expands to an integral constant expression that is the minimum number of files that the implementation guarantees can be open simultaneously;" 4.9.1


The default is 8, including the 3 standard streams.

Joe

On Sun, Dec 12, 2021 at 1:01 PM Dave Wade <dave.g4ugm@...> wrote:

Bernd,

?

Yes its part of the standard and It should be in <stdio.h> The GCCLIB version does not have it.

Despite its name its not the maximum, it’s the maximum that can ALWAYS be opened.

Typical implementations set this fairly low, so WATCOM uses 16, Mingw & Microsoft 20 so ??

PDPCLIB seems to be an exception and has 256….

?

Dave

?

From: [email protected] <[email protected]> On Behalf Of Bernd Oppolzer via
Sent: 12 December 2021 18:42
To: [email protected]
Subject: Re: [h390-vm] GCC Lib

?

I did some research, and it seems that the practical limit on some current implementations is 1024
(which means stdin, stdout, stderr and 1021 other files). Don't know, if the origin of this limit
is the C runtime or the operating system. IMO, the GCC runtime could be implemented in a way
that there is no limit (chained lists for example), and that the number is only limited by the operating system.

The definition, if required by the standard, should be in stdio.h, anyway.

I recall that some 20 years ago, z/OS had a limit of 10000 open files at the same time,
this being a problem for DB2, for example. This may be much larger in the meantime.

HTH, kind regards

Bernd

?

Am 12.12.2021 um 11:56 schrieb Dave Wade:

Bernd,

?

It could mean the size of a table, but if there is no table, then the C90 still standard requires that you provide a value.

You shouldn’t set it to an arbitrary value. It’s not the MAXIMUM number of files you CAN open, it the maximum number you GAURENTEE you CAN open.

So it may be possible to open more files that the value of FOPEN_MAX but not less.

The minimum is “8”. I suggest 16 or 64?

?

Dave

?

From: [email protected] <[email protected]> On Behalf Of Bernd Oppolzer via
Sent: 12 December 2021 10:38
To: [email protected]
Subject: Re: [h390-vm] GCC Lib

?

IMO, FOPEN_MAX could mean the size of a table inside the runtime
which limits the number of files which can be open at the same time.
If the GCC runtime does not define this value then maybe there is no such limit.

So if you need this value (what for?) you could set it to an arbitrary value.

Kind regards

Bernd

?

Am 12.12.2021 um 11:23 schrieb Dave Wade:

Folks,

I see that FOPEN_MAX isn’t defined for GCCLIB. This is required by the C90 standard. Does any one have any idea what the value is.

I would also like to see the source for fopen but I can’t find that either?

Dave


Re: GCC Lib

 

开云体育

Bernd,

?

Yes its part of the standard and It should be in <stdio.h> The GCCLIB version does not have it.

Despite its name its not the maximum, it’s the maximum that can ALWAYS be opened.

Typical implementations set this fairly low, so WATCOM uses 16, Mingw & Microsoft 20 so ??

PDPCLIB seems to be an exception and has 256….

?

Dave

?

From: [email protected] <[email protected]> On Behalf Of Bernd Oppolzer via groups.io
Sent: 12 December 2021 18:42
To: [email protected]
Subject: Re: [h390-vm] GCC Lib

?

I did some research, and it seems that the practical limit on some current implementations is 1024
(which means stdin, stdout, stderr and 1021 other files). Don't know, if the origin of this limit
is the C runtime or the operating system. IMO, the GCC runtime could be implemented in a way
that there is no limit (chained lists for example), and that the number is only limited by the operating system.

The definition, if required by the standard, should be in stdio.h, anyway.

I recall that some 20 years ago, z/OS had a limit of 10000 open files at the same time,
this being a problem for DB2, for example. This may be much larger in the meantime.

HTH, kind regards

Bernd

?

Am 12.12.2021 um 11:56 schrieb Dave Wade:

Bernd,

?

It could mean the size of a table, but if there is no table, then the C90 still standard requires that you provide a value.

You shouldn’t set it to an arbitrary value. It’s not the MAXIMUM number of files you CAN open, it the maximum number you GAURENTEE you CAN open.

So it may be possible to open more files that the value of FOPEN_MAX but not less.

The minimum is “8”. I suggest 16 or 64?

?

Dave

?

From: [email protected] <[email protected]> On Behalf Of Bernd Oppolzer via groups.io
Sent: 12 December 2021 10:38
To: [email protected]
Subject: Re: [h390-vm] GCC Lib

?

IMO, FOPEN_MAX could mean the size of a table inside the runtime
which limits the number of files which can be open at the same time.
If the GCC runtime does not define this value then maybe there is no such limit.

So if you need this value (what for?) you could set it to an arbitrary value.

Kind regards

Bernd

?

Am 12.12.2021 um 11:23 schrieb Dave Wade:

Folks,

I see that FOPEN_MAX isn’t defined for GCCLIB. This is required by the C90 standard. Does any one have any idea what the value is.

I would also like to see the source for fopen but I can’t find that either?

Dave


Re: GCC Lib

 

开云体育

I did some research, and it seems that the practical limit on some current implementations is 1024
(which means stdin, stdout, stderr and 1021 other files). Don't know, if the origin of this limit
is the C runtime or the operating system. IMO, the GCC runtime could be implemented in a way
that there is no limit (chained lists for example), and that the number is only limited by the operating system.

The definition, if required by the standard, should be in stdio.h, anyway.

I recall that some 20 years ago, z/OS had a limit of 10000 open files at the same time,
this being a problem for DB2, for example. This may be much larger in the meantime.

HTH, kind regards

Bernd


Am 12.12.2021 um 11:56 schrieb Dave Wade:

Bernd,

?

It could mean the size of a table, but if there is no table, then the C90 still standard requires that you provide a value.

You shouldn’t set it to an arbitrary value. It’s not the MAXIMUM number of files you CAN open, it the maximum number you GAURENTEE you CAN open.

So it may be possible to open more files that the value of FOPEN_MAX but not less.

The minimum is “8”. I suggest 16 or 64?

?

Dave

?

From: [email protected] <[email protected]> On Behalf Of Bernd Oppolzer via groups.io
Sent: 12 December 2021 10:38
To: [email protected]
Subject: Re: [h390-vm] GCC Lib

?

IMO, FOPEN_MAX could mean the size of a table inside the runtime
which limits the number of files which can be open at the same time.
If the GCC runtime does not define this value then maybe there is no such limit.

So if you need this value (what for?) you could set it to an arbitrary value.

Kind regards

Bernd

?

Am 12.12.2021 um 11:23 schrieb Dave Wade:

Folks,

I see that FOPEN_MAX isn’t defined for GCCLIB. This is required by the C90 standard. Does any one have any idea what the value is.

I would also like to see the source for fopen but I can’t find that either?

Dave


Re: Possible bug in BREXX parse instruction

 

actually my original test exec had no ‘with’ but gave exactly the same results
Dave

On Sun, 12 Dec 2021 at 16:17, <kris.buelens@...> wrote:
On Sun, Dec 12, 2021 at 05:33 AM, Dave Mitchell wrote:
parse arg with '(' in1 in2 ')' outer
I'm not saying that there is no bug in BREXX, but?I think to spot a common user error: if PARSE works like designed by MFC, it will place whatever precedes the '(' in variable 'with'
"with" is only part of the syntax in a PARSE VALUE xxxxx WITH yyyy

If it's not a user error, coding such a PARSE ARG WITH ... is IMHO ad practice as it will cause confusion, one should better select another name than WITH for the first variable to receive result of the parsing process.
?
--
Kris Buelens


Re: Possible bug in BREXX parse instruction

 

On Sun, Dec 12, 2021 at 05:33 AM, Dave Mitchell wrote:
parse arg with '(' in1 in2 ')' outer
I'm not saying that there is no bug in BREXX, but?I think to spot a common user error: if PARSE works like designed by MFC, it will place whatever precedes the '(' in variable 'with'
"with" is only part of the syntax in a PARSE VALUE xxxxx WITH yyyy

If it's not a user error, coding such a PARSE ARG WITH ... is IMHO ad practice as it will cause confusion, one should better select another name than WITH for the first variable to receive result of the parsing process.
?
--
Kris Buelens


Re: Possible bug in BREXX parse instruction

 

Hi Dave,
I reproduced?your PARSE symptoms, so thank you for isolating a nice test case.
I opened an issue here:?
Many thanks!
Bob Bolch

On Sun, Dec 12, 2021 at 8:33 AM Dave Mitchell <zenoshrdlu@...> wrote:
I seem to have stumbled on a bug in the way the parse instruction works in BREXX? specifically when a pattern is used. Here's a sample exec;
/* test parse */?
? trest = '() trial 1'
? say 'test of () trial 1'
? s = dotell(trest)
? trest = '(1) trial 2'
? say 'test of (1) trial 2'
? s = dotell(trest)
? trest = '(1 3) trial3'
? say 'test of (1 3) trial 3'
? s = dotell(trest)
? exit
?
dotell:
? parse arg with '(' in1 in2 ')' outer
? say 'in1 = /'in1'/'
? say 'in2 = /'in2'/'
? say 'outer=/'outer'/'
? return 0
only the third test works as it should, setting 'in1' to '1', 'in2' to '3' and 'outer' to 'trial 3'. The other two cases set 'in1' to ')' and '1) respectively, 'in2' to 'trial 1' and 'trial 2' and 'outer' to a null string.