Re: LE runtime

2023-04-07 Thread Frank Swarbrick
I've never had issues with inlined code when using IBM Debugger.  I've never 
explicitly checked its behavior, but I've never run in to an issue.  We use 
OPT(1) [for some probably bad reason not OPT(2)].

The only times I've seen the issue Tom is referring to are:

  1.  We backed out the latest production version and replaced it with the 
previous version.  We then can no longer see the source code of the failed 
(backed out) version.
  2.  When testing we've already implemented an updated version and are trying 
to analyze the dump from a prior version.

Using IBM Fault Analyzer for both.

I don't consider them to be huge problems, and certainly not a reason to, say, 
have multiple versions of the load module and/or debug information.  Just 
something to be aware of and live with, as little as it happens.

From: IBM Mainframe Discussion List  on behalf of 
Farley, Peter <031df298a9da-dmarc-requ...@listserv.ua.edu>
Sent: Friday, April 7, 2023 1:06 PM
To: IBM-MAIN@LISTSERV.UA.EDU 
Subject: Re: LE runtime

That would be a failure of your development lifecycle process.  Anything 
running in production MUST have compile listings available of the exact version 
running in production, and it doesn't hurt to retain the binder listing too.  
If you are still running an "older version" in production and you also have a 
newer version in production at the same time without retaining the older 
version listing somewhere, that's a process failure.

As for debugging production COBOL code, there are hurdles there too even if 
your listing is available.  In my experience, the compiler option INLINE 
(default for higher levels of OPTIMIZE) absolutely prevents interactively 
stopping in any inlined paragraph.  At least not using the CA Intertest 
debugger, which is all we have available to us at my employer's site, so I 
don’t know what the IBM debugger is capable of.

I have found that using compiler option TEST(SOURCE) in production compiles 
subtracts very little from optimization and greatly aids debugging of 
production code (except for INLINE's - nothing helps that except re-compiling 
in test with NOINLINE and hoping the bug doesn't disappear with the test 
version).

Peter

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of Tom 
Marchant
Sent: Friday, April 7, 2023 2:41 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: LE runtime

Yes, it will. And if you are debugging an abend that occurred with an older 
version of the program, the listing is no longer available in the program 
object.

--
Tom Marchant

On Fri, 7 Apr 2023 18:33:18 +, Seymour J Metz  wrote:

>Won't that replace the NOLOAD segments with the new ones?
>
>
>--
>Shmuel (Seymour J.) Metz
>
>From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on
>behalf of Tom Marchant [000a2a8c2020-dmarc-requ...@listserv.ua.edu]
>Sent: Friday, April 7, 2023 2:31 PM
>To: IBM-MAIN@LISTSERV.UA.EDU
>Subject: Re: LE runtime
>
>Until the program is recompiled and relinked.
>
>--
>Tom Marchant
>
>On Fri, 7 Apr 2023 10:48:04 -0700, Tom Ross  
>wrote:
>
>>With the
>>NOLOAD class program segmenets in new COBOL the debugging data is
>>always available, always in sync
--

This message and any attachments are intended only for the use of the addressee 
and may contain information that is privileged and confidential. If the reader 
of the message is not the intended recipient or an authorized representative of 
the intended recipient, you are hereby notified that any dissemination of this 
communication is strictly prohibited. If you have received this communication 
in error, please notify us immediately by e-mail and delete the message and any 
attachments from your system.


--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: LE runtime

2023-04-07 Thread Frank Swarbrick
While this is true, in that you can't look at, say, Fault Analyzer if it's dump 
is for a previous version, even having a separate debug file won't generally 
save you from that.  Because you'd usually put the new version there as well.

From: IBM Mainframe Discussion List  on behalf of Tom 
Marchant <000a2a8c2020-dmarc-requ...@listserv.ua.edu>
Sent: Friday, April 7, 2023 12:31 PM
To: IBM-MAIN@LISTSERV.UA.EDU 
Subject: Re: LE runtime

Until the program is recompiled and relinked.

--
Tom Marchant

On Fri, 7 Apr 2023 10:48:04 -0700, Tom Ross  wrote:

>With the
>NOLOAD class program segmenets in new COBOL the debugging data is always
>available, always in sync

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: LE runtime

2023-04-07 Thread Farley, Peter
That would be a failure of your development lifecycle process.  Anything 
running in production MUST have compile listings available of the exact version 
running in production, and it doesn't hurt to retain the binder listing too.  
If you are still running an "older version" in production and you also have a 
newer version in production at the same time without retaining the older 
version listing somewhere, that's a process failure.

As for debugging production COBOL code, there are hurdles there too even if 
your listing is available.  In my experience, the compiler option INLINE 
(default for higher levels of OPTIMIZE) absolutely prevents interactively 
stopping in any inlined paragraph.  At least not using the CA Intertest 
debugger, which is all we have available to us at my employer's site, so I 
don’t know what the IBM debugger is capable of.

I have found that using compiler option TEST(SOURCE) in production compiles 
subtracts very little from optimization and greatly aids debugging of 
production code (except for INLINE's - nothing helps that except re-compiling 
in test with NOINLINE and hoping the bug doesn't disappear with the test 
version).

Peter

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of Tom 
Marchant
Sent: Friday, April 7, 2023 2:41 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: LE runtime

Yes, it will. And if you are debugging an abend that occurred with an older 
version of the program, the listing is no longer available in the program 
object.

--
Tom Marchant

On Fri, 7 Apr 2023 18:33:18 +, Seymour J Metz  wrote:

>Won't that replace the NOLOAD segments with the new ones?
>
>
>--
>Shmuel (Seymour J.) Metz
>
>From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on 
>behalf of Tom Marchant [000a2a8c2020-dmarc-requ...@listserv.ua.edu]
>Sent: Friday, April 7, 2023 2:31 PM
>To: IBM-MAIN@LISTSERV.UA.EDU
>Subject: Re: LE runtime
>
>Until the program is recompiled and relinked.
>
>--
>Tom Marchant
>
>On Fri, 7 Apr 2023 10:48:04 -0700, Tom Ross  
>wrote:
>
>>With the
>>NOLOAD class program segmenets in new COBOL the debugging data is 
>>always available, always in sync
--

This message and any attachments are intended only for the use of the addressee 
and may contain information that is privileged and confidential. If the reader 
of the message is not the intended recipient or an authorized representative of 
the intended recipient, you are hereby notified that any dissemination of this 
communication is strictly prohibited. If you have received this communication 
in error, please notify us immediately by e-mail and delete the message and any 
attachments from your system.


--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: LE runtime

2023-04-07 Thread Seymour J Metz
Are you talking about a scenario where you can't reproduce the ABEND in the 
recopmiled version? If not, why do you want the old symbol table, etc.?


--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3


From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of Tom 
Marchant [000a2a8c2020-dmarc-requ...@listserv.ua.edu]
Sent: Friday, April 7, 2023 2:41 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: LE runtime

Yes, it will. And if you are debugging an abend that occurred with an older 
version of the program, the listing is no longer available in the program 
object.

--
Tom Marchant

On Fri, 7 Apr 2023 18:33:18 +, Seymour J Metz  wrote:

>Won't that replace the NOLOAD segments with the new ones?
>
>
>--
>Shmuel (Seymour J.) Metz
>http://mason.gmu.edu/~smetz3
>
>
>From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
>Tom Marchant [000a2a8c2020-dmarc-requ...@listserv.ua.edu]
>Sent: Friday, April 7, 2023 2:31 PM
>To: IBM-MAIN@LISTSERV.UA.EDU
>Subject: Re: LE runtime
>
>Until the program is recompiled and relinked.
>
>--
>Tom Marchant
>
>On Fri, 7 Apr 2023 10:48:04 -0700, Tom Ross  
>wrote:
>
>>With the
>>NOLOAD class program segmenets in new COBOL the debugging data is always
>>available, always in sync

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: LE runtime

2023-04-07 Thread Tom Marchant
Yes, it will. And if you are debugging an abend that occurred with an older 
version of the program, the listing is no longer available in the program 
object.

-- 
Tom Marchant

On Fri, 7 Apr 2023 18:33:18 +, Seymour J Metz  wrote:

>Won't that replace the NOLOAD segments with the new ones?
>
>
>--
>Shmuel (Seymour J.) Metz
>http://mason.gmu.edu/~smetz3
>
>
>From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
>Tom Marchant [000a2a8c2020-dmarc-requ...@listserv.ua.edu]
>Sent: Friday, April 7, 2023 2:31 PM
>To: IBM-MAIN@LISTSERV.UA.EDU
>Subject: Re: LE runtime
>
>Until the program is recompiled and relinked.
>
>--
>Tom Marchant
>
>On Fri, 7 Apr 2023 10:48:04 -0700, Tom Ross  
>wrote:
>
>>With the
>>NOLOAD class program segmenets in new COBOL the debugging data is always
>>available, always in sync

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: LE runtime

2023-04-07 Thread Seymour J Metz
Won't that replace the NOLOAD segments with the new ones?


--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3


From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of Tom 
Marchant [000a2a8c2020-dmarc-requ...@listserv.ua.edu]
Sent: Friday, April 7, 2023 2:31 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: LE runtime

Until the program is recompiled and relinked.

--
Tom Marchant

On Fri, 7 Apr 2023 10:48:04 -0700, Tom Ross  wrote:

>With the
>NOLOAD class program segmenets in new COBOL the debugging data is always
>available, always in sync

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: LE runtime

2023-04-07 Thread Tom Marchant
Until the program is recompiled and relinked.

-- 
Tom Marchant

On Fri, 7 Apr 2023 10:48:04 -0700, Tom Ross  wrote:

>With the
>NOLOAD class program segmenets in new COBOL the debugging data is always
>available, always in sync

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: LE runtime

2023-04-07 Thread Tom Ross
>BTW: I didn't say "strange debugging option"; what is strange IMO is the=20
>fact
>that COBOL requires the modules in PDSEs not because the language needs=20
>this,
>but only to support some debugging tools, which could IMO store their=20
>information
>at another place. But the COBOL community seems to have accepted this move.

 There are many reasons why new COBOL programs have to be Program Objects and
cannot be Load Modules.  As a result of requiring Program Objects, we were
able to also solve a long-standing problem for customers: Keeping the debugging
data in sync with the executable and making that data available.  With the
NOLOAD class program segmenets in new COBOL the debugging data is always
available, always in sync, and does not negatives impacl load performance.

Cheers,
TomR  >> COBOL is the Language of the Future! <<

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: LE runtime

2023-04-07 Thread Frank Swarbrick
I didn't say anything about creating a LM or PO directly.  I don't know 
specifics on how it's done, but the debug data ends up as a NOLOAD segment of a 
PO if the TEST(NOSEPARATE) option is specified.

From: IBM Mainframe Discussion List  on behalf of 
Seymour J Metz 
Sent: Thursday, April 6, 2023 6:23 AM
To: IBM-MAIN@LISTSERV.UA.EDU 
Subject: Re: LE runtime

Are you sure that any of them can directly create load modules or program 
objects? I suspect that they still produce object modules, albeit in a modern 
format, and require, e.g., the Binder, as a final step.

Does anybody remember SQUOZE <https://en.wikipedia.org/wiki/SQUOZE>?


--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3


From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
Frank Swarbrick [frank.swarbr...@outlook.com]
Sent: Thursday, April 6, 2023 3:57 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: LE runtime

The "strange debugging option" for COBOL is, I believe, the ability to store 
the compressed source code data in a NOLOAD segment of a program object; 
something not supported with legacy load modules.  A very useful thing, in my 
opinion.  Much better than having the debug data in a separate module in a 
separate library.

From: IBM Mainframe Discussion List  on behalf of 
Bernd Oppolzer 
Sent: Thursday, April 6, 2023 1:18 AM
To: IBM-MAIN@LISTSERV.UA.EDU 
Subject: Re: LE runtime

Thanks.

This (to me) seems related to the fact that PL/I still can produce
"classic" load modules,
while COBOL and C++ create program objects, which must reside in PDSEs.

With C++ (I guess), this is due to the fact that (writable) static data
can be initialized not only by
static initializers (which could be implemented by CSECT formatting),
but by function calls, which
needs init functions called after program load or task creation. So with
C++, the requirement
for program objects is driven by the language definition. But I'm not
sure about this.

For COBOL, it is kind of strange, and as I understood, it is only driven
by some sort of
debugging option which only can be handled by program objects.

The PL/1 compiler group, FWIW, stated that they don't plan to require
program objects
in the near future.

By the way: NORENT C can produce load modules, too. We still use NORENT
C generating
load modules (without the compiler options RENT, DLL, LONGNAME). I hope
that this will
be supported in the future, too ... and that "normal load modules" won't
go away soon
(I don't think it will be possible).

It would by interesting, again, what PL/X does. Maybe the new fancy
stuff is only
for the customers :-)

Kind regards

Bernd


Am 06.04.2023 um 00:26 schrieb Attila Fogarasi:
> Originally SCEERUN2 contained LE modules that had to be PDS/E while SCEERUN
> could be PDS.  Also for PL/I and Fortran only SCEERUN is needed;  Cobol and
> C/C++ needs SCEERUN2 as well as SCEERUN.  Finally some of the SCEERUN2
> modules had naming conflicts with very old pre-LE runtimes, while SCEERUN
> modules did not.
>
> On Thu, Apr 6, 2023 at 7:59 AM Frank Swarbrick 
> wrote:
>
>> What is the major difference between the SCEERUN and SCEERUN2 libraries?
>> Is RUN2 for XPLINK and RUN for non-XPLINK?
>>

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: LE runtime

2023-04-07 Thread Seymour J Metz
I would be tempted to just switch to PDSE and be done with it. Of course, that 
doesn't help with the C++ issue, but it's still one less thing to worry about.


From: IBM Mainframe Discussion List  on behalf of 
Bernd Oppolzer 
Sent: Thursday, April 6, 2023 8:26 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: LE runtime

I recall that if you use certain language constructs, the binder
complains about
"this object requires PO format 3 and cannot be stored in a load module";
maybe if you initialize a static value using a function call (which is
not valid in ANSI C).

I once had the need to convert such a C++ function to ANSI C, because
one branch of
my customer doesn't allow C++ ... the other branch does, and I had to
copy a routine
which creates UUIDs from the other branch. To do this in C, I had to get
rid of the
initialization of the (writable) static data by using a function call.
In C, it is not possible
to do function calls when initalizing static data; static data is
initialized at enclave creation
time, and the C language description allows only constants at this time,
no function calls.
Load modules (in the NORENT case) initialize their static data at
compile time by
CSECT formatting. With RENT, a compiler created initialization routine
is called, but with C,
it is not possible that this routine calls "user" routines.

Of course, if you don't do this and you use only features that could
also be simulated
using ANSI C, you maybe don't have this problem.

So my opinion is: not all C++ programs require PDSEs, but there are
some, which require
program objects format 3, and these will, of course, require PDSEs.

Kind regards

Bernd


Am 07.04.2023 um 02:12 schrieb Charles Mills:
> C++ can produce object code that can be linked into a traditional load module 
> in a PDS. I do it all the time.
>
> Charles
>
> On Thu, 6 Apr 2023 09:18:28 +0200, Bernd Oppolzer 
>  wrote:
>
>> Thanks.
>>
>> This (to me) seems related to the fact that PL/I still can produce
>> "classic" load modules,
>> while COBOL and C++ create program objects, which must reside in PDSEs.
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: LE runtime

2023-04-06 Thread Bernd Oppolzer
I recall that if you use certain language constructs, the binder 
complains about

"this object requires PO format 3 and cannot be stored in a load module";
maybe if you initialize a static value using a function call (which is 
not valid in ANSI C).


I once had the need to convert such a C++ function to ANSI C, because 
one branch of
my customer doesn't allow C++ ... the other branch does, and I had to 
copy a routine
which creates UUIDs from the other branch. To do this in C, I had to get 
rid of the
initialization of the (writable) static data by using a function call. 
In C, it is not possible
to do function calls when initalizing static data; static data is 
initialized at enclave creation
time, and the C language description allows only constants at this time, 
no function calls.
Load modules (in the NORENT case) initialize their static data at 
compile time by
CSECT formatting. With RENT, a compiler created initialization routine 
is called, but with C,

it is not possible that this routine calls "user" routines.

Of course, if you don't do this and you use only features that could 
also be simulated

using ANSI C, you maybe don't have this problem.

So my opinion is: not all C++ programs require PDSEs, but there are 
some, which require

program objects format 3, and these will, of course, require PDSEs.

Kind regards

Bernd


Am 07.04.2023 um 02:12 schrieb Charles Mills:

C++ can produce object code that can be linked into a traditional load module 
in a PDS. I do it all the time.

Charles

On Thu, 6 Apr 2023 09:18:28 +0200, Bernd Oppolzer  
wrote:


Thanks.

This (to me) seems related to the fact that PL/I still can produce
"classic" load modules,
while COBOL and C++ create program objects, which must reside in PDSEs.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: LE runtime

2023-04-06 Thread Charles Mills
C++ can produce object code that can be linked into a traditional load module 
in a PDS. I do it all the time.

Charles

On Thu, 6 Apr 2023 09:18:28 +0200, Bernd Oppolzer  
wrote:

>Thanks.
>
>This (to me) seems related to the fact that PL/I still can produce
>"classic" load modules,
>while COBOL and C++ create program objects, which must reside in PDSEs.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: LE runtime

2023-04-06 Thread Bernd Oppolzer
IMO, the other languages (PL/I, C) also support building program objects 
and very large
programs (> 16 MB), but COBOL with the newest compiler version REQUIRES 
even small
programs to live in PDSEs (as program objects) and does not allow old 
(classic) load modules.


I'm not sure about this, but IMO in some places in the OS "old" load 
modules are still required
and program objects living in PDSEs cannot be used, maybe because PDSE 
support requires
some help from the OS, and this is not available in the very early 
stages after IPL.


Maybe, OTOH, nobody wants COBOL programs there ... these modules are 
probably

PL/X or ASSEMBLER or Metal C ...

I cannot imagine a monolithic program with code size larger than 16 MB, 
and a program which has
static tables bigger than 16 MB is, IMHO, a design failure. But this is 
maybe an old school point of view ...


Kind regards

Bernd


Am 07.04.2023 um 01:09 schrieb Attila Fogarasi:

Cobol first started to use PDS/E in 2001 when exploiting new Cobol support
for long program names, object-oriented programs and for using the Binder
for DLLs instead of the prelinker.  Program objects also cured the 16MB
maximum load module size which was becoming a problem (PO size limit is
1GB).   There are probably other Cobol language features which require
PDS/E.  I'm pretty sure this was just after Y2K, so over 20 years ago now.
Getting old enough to be called legacy :)




--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: LE runtime

2023-04-06 Thread Attila Fogarasi
Cobol first started to use PDS/E in 2001 when exploiting new Cobol support
for long program names, object-oriented programs and for using the Binder
for DLLs instead of the prelinker.  Program objects also cured the 16MB
maximum load module size which was becoming a problem (PO size limit is
1GB).   There are probably other Cobol language features which require
PDS/E.  I'm pretty sure this was just after Y2K, so over 20 years ago now.
Getting old enough to be called legacy :)

On Thu, Apr 6, 2023 at 11:46 PM Bernd Oppolzer 
wrote:

> I don't know much about the specific output formats that the compilers
> produce,
> but in the installations I know, the Binder is used to produce the load
> modules;
> this is necessary because run time objects have to be linked together
> with the
> output coming from the compiler.
>
> In my historic MVS environment, I see that the compiler output is recfm
> FB 80;
> the well known ESD - RLD - TXT format. Don't know if this is still in
> use today (in modern
> environments). The record format of the load libraries is something like
> U 19069
> (valid until today, AFAIK).
>
> GOFF, AFAIK, is a more modern output format ... don't know if this applies
> to the PL/1 and C compilers and to the output of the compilers in general
> (and input to the linkers or binders).
>
> BTW: I didn't say "strange debugging option"; what is strange IMO is the
> fact
> that COBOL requires the modules in PDSEs not because the language needs
> this,
> but only to support some debugging tools, which could IMO store their
> information
> at another place. But the COBOL community seems to have accepted this move.
>
> Kind regards
>
> Bernd
>
>
> Am 06.04.2023 um 14:25 schrieb Seymour J Metz:
> > Directly, or via GOFF to Binder?
> >
> >
> > --
> > Shmuel (Seymour J.) Metz
> > http://mason.gmu.edu/~smetz3
> >
> > 
> > From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on
> behalf of Bernd Oppolzer [bernd.oppol...@t-online.de]
> > Sent: Thursday, April 6, 2023 3:18 AM
> > To: IBM-MAIN@LISTSERV.UA.EDU
> > Subject: Re: LE runtime
> >
> > Thanks.
> >
> > This (to me) seems related to the fact that PL/I still can produce
> > "classic" load modules,
> > while COBOL and C++ create program objects, which must reside in PDSEs.
> >
> > With C++ (I guess), this is due to the fact that (writable) static data
> > can be initialized not only by
> > static initializers (which could be implemented by CSECT formatting),
> > but by function calls, which
> > needs init functions called after program load or task creation. So with
> > C++, the requirement
> > for program objects is driven by the language definition. But I'm not
> > sure about this.
> >
> > For COBOL, it is kind of strange, and as I understood, it is only driven
> > by some sort of
> > debugging option which only can be handled by program objects.
> >
> > The PL/1 compiler group, FWIW, stated that they don't plan to require
> > program objects
> > in the near future.
> >
> > By the way: NORENT C can produce load modules, too. We still use NORENT
> > C generating
> > load modules (without the compiler options RENT, DLL, LONGNAME). I hope
> > that this will
> > be supported in the future, too ... and that "normal load modules" won't
> > go away soon
> > (I don't think it will be possible).
> >
> > It would by interesting, again, what PL/X does. Maybe the new fancy
> > stuff is only
> > for the customers :-)
> >
> > Kind regards
> >
> > Bernd
> >
> >
> > Am 06.04.2023 um 00:26 schrieb Attila Fogarasi:
> >> Originally SCEERUN2 contained LE modules that had to be PDS/E while
> SCEERUN
> >> could be PDS.  Also for PL/I and Fortran only SCEERUN is needed;  Cobol
> and
> >> C/C++ needs SCEERUN2 as well as SCEERUN.  Finally some of the SCEERUN2
> >> modules had naming conflicts with very old pre-LE runtimes, while
> SCEERUN
> >> modules did not.
> >>
> >> On Thu, Apr 6, 2023 at 7:59 AM Frank Swarbrick <
> frank.swarbr...@outlook.com>
> >> wrote:
> >>
> >>> What is the major difference between the SCEERUN and SCEERUN2
> libraries?
> >>> Is RUN2 for XPLINK and RUN for non-XPLINK?
> >>>
> > --
> > For IBM-MAIN subscribe / signoff / archive access instructions,
> > send email to lists...@listserv.

Re: LE runtime

2023-04-06 Thread Bernd Oppolzer
I don't know much about the specific output formats that the compilers 
produce,
but in the installations I know, the Binder is used to produce the load 
modules;
this is necessary because run time objects have to be linked together 
with the

output coming from the compiler.

In my historic MVS environment, I see that the compiler output is recfm 
FB 80;
the well known ESD - RLD - TXT format. Don't know if this is still in 
use today (in modern
environments). The record format of the load libraries is something like 
U 19069

(valid until today, AFAIK).

GOFF, AFAIK, is a more modern output format ... don't know if this applies
to the PL/1 and C compilers and to the output of the compilers in general
(and input to the linkers or binders).

BTW: I didn't say "strange debugging option"; what is strange IMO is the 
fact
that COBOL requires the modules in PDSEs not because the language needs 
this,
but only to support some debugging tools, which could IMO store their 
information

at another place. But the COBOL community seems to have accepted this move.

Kind regards

Bernd


Am 06.04.2023 um 14:25 schrieb Seymour J Metz:

Directly, or via GOFF to Binder?


--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3


From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
Bernd Oppolzer [bernd.oppol...@t-online.de]
Sent: Thursday, April 6, 2023 3:18 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: LE runtime

Thanks.

This (to me) seems related to the fact that PL/I still can produce
"classic" load modules,
while COBOL and C++ create program objects, which must reside in PDSEs.

With C++ (I guess), this is due to the fact that (writable) static data
can be initialized not only by
static initializers (which could be implemented by CSECT formatting),
but by function calls, which
needs init functions called after program load or task creation. So with
C++, the requirement
for program objects is driven by the language definition. But I'm not
sure about this.

For COBOL, it is kind of strange, and as I understood, it is only driven
by some sort of
debugging option which only can be handled by program objects.

The PL/1 compiler group, FWIW, stated that they don't plan to require
program objects
in the near future.

By the way: NORENT C can produce load modules, too. We still use NORENT
C generating
load modules (without the compiler options RENT, DLL, LONGNAME). I hope
that this will
be supported in the future, too ... and that "normal load modules" won't
go away soon
(I don't think it will be possible).

It would by interesting, again, what PL/X does. Maybe the new fancy
stuff is only
for the customers :-)

Kind regards

Bernd


Am 06.04.2023 um 00:26 schrieb Attila Fogarasi:

Originally SCEERUN2 contained LE modules that had to be PDS/E while SCEERUN
could be PDS.  Also for PL/I and Fortran only SCEERUN is needed;  Cobol and
C/C++ needs SCEERUN2 as well as SCEERUN.  Finally some of the SCEERUN2
modules had naming conflicts with very old pre-LE runtimes, while SCEERUN
modules did not.

On Thu, Apr 6, 2023 at 7:59 AM Frank Swarbrick 
wrote:


What is the major difference between the SCEERUN and SCEERUN2 libraries?
Is RUN2 for XPLINK and RUN for non-XPLINK?


--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: LE runtime

2023-04-06 Thread Seymour J Metz
Directly, or via GOFF to Binder?


--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3


From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
Bernd Oppolzer [bernd.oppol...@t-online.de]
Sent: Thursday, April 6, 2023 3:18 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: LE runtime

Thanks.

This (to me) seems related to the fact that PL/I still can produce
"classic" load modules,
while COBOL and C++ create program objects, which must reside in PDSEs.

With C++ (I guess), this is due to the fact that (writable) static data
can be initialized not only by
static initializers (which could be implemented by CSECT formatting),
but by function calls, which
needs init functions called after program load or task creation. So with
C++, the requirement
for program objects is driven by the language definition. But I'm not
sure about this.

For COBOL, it is kind of strange, and as I understood, it is only driven
by some sort of
debugging option which only can be handled by program objects.

The PL/1 compiler group, FWIW, stated that they don't plan to require
program objects
in the near future.

By the way: NORENT C can produce load modules, too. We still use NORENT
C generating
load modules (without the compiler options RENT, DLL, LONGNAME). I hope
that this will
be supported in the future, too ... and that "normal load modules" won't
go away soon
(I don't think it will be possible).

It would by interesting, again, what PL/X does. Maybe the new fancy
stuff is only
for the customers :-)

Kind regards

Bernd


Am 06.04.2023 um 00:26 schrieb Attila Fogarasi:
> Originally SCEERUN2 contained LE modules that had to be PDS/E while SCEERUN
> could be PDS.  Also for PL/I and Fortran only SCEERUN is needed;  Cobol and
> C/C++ needs SCEERUN2 as well as SCEERUN.  Finally some of the SCEERUN2
> modules had naming conflicts with very old pre-LE runtimes, while SCEERUN
> modules did not.
>
> On Thu, Apr 6, 2023 at 7:59 AM Frank Swarbrick 
> wrote:
>
>> What is the major difference between the SCEERUN and SCEERUN2 libraries?
>> Is RUN2 for XPLINK and RUN for non-XPLINK?
>>

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: LE runtime

2023-04-06 Thread Seymour J Metz
Are you sure that any of them can directly create load modules or program 
objects? I suspect that they still produce object modules, albeit in a modern 
format, and require, e.g., the Binder, as a final step.

Does anybody remember SQUOZE <https://en.wikipedia.org/wiki/SQUOZE>?


--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3


From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
Frank Swarbrick [frank.swarbr...@outlook.com]
Sent: Thursday, April 6, 2023 3:57 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: LE runtime

The "strange debugging option" for COBOL is, I believe, the ability to store 
the compressed source code data in a NOLOAD segment of a program object; 
something not supported with legacy load modules.  A very useful thing, in my 
opinion.  Much better than having the debug data in a separate module in a 
separate library.

From: IBM Mainframe Discussion List  on behalf of 
Bernd Oppolzer 
Sent: Thursday, April 6, 2023 1:18 AM
To: IBM-MAIN@LISTSERV.UA.EDU 
Subject: Re: LE runtime

Thanks.

This (to me) seems related to the fact that PL/I still can produce
"classic" load modules,
while COBOL and C++ create program objects, which must reside in PDSEs.

With C++ (I guess), this is due to the fact that (writable) static data
can be initialized not only by
static initializers (which could be implemented by CSECT formatting),
but by function calls, which
needs init functions called after program load or task creation. So with
C++, the requirement
for program objects is driven by the language definition. But I'm not
sure about this.

For COBOL, it is kind of strange, and as I understood, it is only driven
by some sort of
debugging option which only can be handled by program objects.

The PL/1 compiler group, FWIW, stated that they don't plan to require
program objects
in the near future.

By the way: NORENT C can produce load modules, too. We still use NORENT
C generating
load modules (without the compiler options RENT, DLL, LONGNAME). I hope
that this will
be supported in the future, too ... and that "normal load modules" won't
go away soon
(I don't think it will be possible).

It would by interesting, again, what PL/X does. Maybe the new fancy
stuff is only
for the customers :-)

Kind regards

Bernd


Am 06.04.2023 um 00:26 schrieb Attila Fogarasi:
> Originally SCEERUN2 contained LE modules that had to be PDS/E while SCEERUN
> could be PDS.  Also for PL/I and Fortran only SCEERUN is needed;  Cobol and
> C/C++ needs SCEERUN2 as well as SCEERUN.  Finally some of the SCEERUN2
> modules had naming conflicts with very old pre-LE runtimes, while SCEERUN
> modules did not.
>
> On Thu, Apr 6, 2023 at 7:59 AM Frank Swarbrick 
> wrote:
>
>> What is the major difference between the SCEERUN and SCEERUN2 libraries?
>> Is RUN2 for XPLINK and RUN for non-XPLINK?
>>

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: LE runtime

2023-04-06 Thread Frank Swarbrick
The "strange debugging option" for COBOL is, I believe, the ability to store 
the compressed source code data in a NOLOAD segment of a program object; 
something not supported with legacy load modules.  A very useful thing, in my 
opinion.  Much better than having the debug data in a separate module in a 
separate library.

From: IBM Mainframe Discussion List  on behalf of 
Bernd Oppolzer 
Sent: Thursday, April 6, 2023 1:18 AM
To: IBM-MAIN@LISTSERV.UA.EDU 
Subject: Re: LE runtime

Thanks.

This (to me) seems related to the fact that PL/I still can produce
"classic" load modules,
while COBOL and C++ create program objects, which must reside in PDSEs.

With C++ (I guess), this is due to the fact that (writable) static data
can be initialized not only by
static initializers (which could be implemented by CSECT formatting),
but by function calls, which
needs init functions called after program load or task creation. So with
C++, the requirement
for program objects is driven by the language definition. But I'm not
sure about this.

For COBOL, it is kind of strange, and as I understood, it is only driven
by some sort of
debugging option which only can be handled by program objects.

The PL/1 compiler group, FWIW, stated that they don't plan to require
program objects
in the near future.

By the way: NORENT C can produce load modules, too. We still use NORENT
C generating
load modules (without the compiler options RENT, DLL, LONGNAME). I hope
that this will
be supported in the future, too ... and that "normal load modules" won't
go away soon
(I don't think it will be possible).

It would by interesting, again, what PL/X does. Maybe the new fancy
stuff is only
for the customers :-)

Kind regards

Bernd


Am 06.04.2023 um 00:26 schrieb Attila Fogarasi:
> Originally SCEERUN2 contained LE modules that had to be PDS/E while SCEERUN
> could be PDS.  Also for PL/I and Fortran only SCEERUN is needed;  Cobol and
> C/C++ needs SCEERUN2 as well as SCEERUN.  Finally some of the SCEERUN2
> modules had naming conflicts with very old pre-LE runtimes, while SCEERUN
> modules did not.
>
> On Thu, Apr 6, 2023 at 7:59 AM Frank Swarbrick 
> wrote:
>
>> What is the major difference between the SCEERUN and SCEERUN2 libraries?
>> Is RUN2 for XPLINK and RUN for non-XPLINK?
>>

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: LE runtime

2023-04-06 Thread Bernd Oppolzer

Thanks.

This (to me) seems related to the fact that PL/I still can produce 
"classic" load modules,

while COBOL and C++ create program objects, which must reside in PDSEs.

With C++ (I guess), this is due to the fact that (writable) static data 
can be initialized not only by
static initializers (which could be implemented by CSECT formatting), 
but by function calls, which
needs init functions called after program load or task creation. So with 
C++, the requirement
for program objects is driven by the language definition. But I'm not 
sure about this.


For COBOL, it is kind of strange, and as I understood, it is only driven 
by some sort of

debugging option which only can be handled by program objects.

The PL/1 compiler group, FWIW, stated that they don't plan to require 
program objects

in the near future.

By the way: NORENT C can produce load modules, too. We still use NORENT 
C generating
load modules (without the compiler options RENT, DLL, LONGNAME). I hope 
that this will
be supported in the future, too ... and that "normal load modules" won't 
go away soon

(I don't think it will be possible).

It would by interesting, again, what PL/X does. Maybe the new fancy 
stuff is only

for the customers :-)

Kind regards

Bernd


Am 06.04.2023 um 00:26 schrieb Attila Fogarasi:

Originally SCEERUN2 contained LE modules that had to be PDS/E while SCEERUN
could be PDS.  Also for PL/I and Fortran only SCEERUN is needed;  Cobol and
C/C++ needs SCEERUN2 as well as SCEERUN.  Finally some of the SCEERUN2
modules had naming conflicts with very old pre-LE runtimes, while SCEERUN
modules did not.

On Thu, Apr 6, 2023 at 7:59 AM Frank Swarbrick 
wrote:


What is the major difference between the SCEERUN and SCEERUN2 libraries?
Is RUN2 for XPLINK and RUN for non-XPLINK?



--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: LE runtime

2023-04-05 Thread Frank Swarbrick
Thanks!

From: IBM Mainframe Discussion List  on behalf of 
Attila Fogarasi 
Sent: Wednesday, April 5, 2023 4:26 PM
To: IBM-MAIN@LISTSERV.UA.EDU 
Subject: Re: LE runtime

Originally SCEERUN2 contained LE modules that had to be PDS/E while SCEERUN
could be PDS.  Also for PL/I and Fortran only SCEERUN is needed;  Cobol and
C/C++ needs SCEERUN2 as well as SCEERUN.  Finally some of the SCEERUN2
modules had naming conflicts with very old pre-LE runtimes, while SCEERUN
modules did not.

On Thu, Apr 6, 2023 at 7:59 AM Frank Swarbrick 
wrote:

> What is the major difference between the SCEERUN and SCEERUN2 libraries?
> Is RUN2 for XPLINK and RUN for non-XPLINK?
>
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: LE runtime

2023-04-05 Thread Attila Fogarasi
Originally SCEERUN2 contained LE modules that had to be PDS/E while SCEERUN
could be PDS.  Also for PL/I and Fortran only SCEERUN is needed;  Cobol and
C/C++ needs SCEERUN2 as well as SCEERUN.  Finally some of the SCEERUN2
modules had naming conflicts with very old pre-LE runtimes, while SCEERUN
modules did not.

On Thu, Apr 6, 2023 at 7:59 AM Frank Swarbrick 
wrote:

> What is the major difference between the SCEERUN and SCEERUN2 libraries?
> Is RUN2 for XPLINK and RUN for non-XPLINK?
>
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


LE runtime

2023-04-05 Thread Frank Swarbrick
What is the major difference between the SCEERUN and SCEERUN2 libraries?  Is 
RUN2 for XPLINK and RUN for non-XPLINK?

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Using the Binder to hook into an LE runtime module.

2016-12-24 Thread Binyamin Dissen
Assuming that you are starting without #PHUFCA1 in the load module .

  REPLCAE csect-that-contains-IGZXFCA1
  CHANGE  IGZXFCA1(#PHUFCA1)
  INCLUDE lmod-lib(original-lmod)
  INCLUDE lmod-lib(#PHUFCA1)
  INCLUDE csect-containing-IGZXFCA1
  ORDER however
  ENTRY where-ever
  NAME original(R)

On Wed, 21 Dec 2016 11:34:16 +0100 Peter Hunkeler  wrote:

:>Cross-posted to IBM-Main and Assembler-List
:>
:>This thread is actually about hooking into existing load modules using the 
Binder's CHANGE and REPLACE funtions. It's been long time since I had to use 
the Binder to manipulate modules, so please bear with me.
:>
:>
:>
:>A bit of information on why I want to do this is provided for the ones 
interested. 
:>
:>
:>*However*, the reason for posting is mainly to understand if my idea how to 
manipulate load modules using the Binder should work the way I think it does.
:>
:>
:>Please keep this thread related to the subject. Thanks.
:>
:>
:>
:>
:>
:>I'm back to the quest for the code that sets the decimal overflow mask bit in 
the PSW causing S0CA abends later on (see "How to Identify modules as C/C++ or 
Cobol, or ASM from dump (SYSMDUMP)" thread started late November). 
:>
:>
:>Environment is Cobol V4 & V5. All CALLs are dynamic. Some hundred modules may 
well be loaded when the problem occurs. Modifying the to help diagnosing is not 
an option.
:>
:>
:>I understand that LE has two sections of code dealing with dynamic CALLs:
:>
:>o IGZCFCC for pre V5.x Cobol
:>o IGZXFCA1 for Cobol V5.x and later
:>
:>
:>Those functions are always seen in a LE trackback at point where Cobol code 
makes dynamic CALLs.
:>
:>
:>What I'm trying to do is to hook into those functions, and have some of my 
own code running before forwarding the call to either IGZCFCC or IGZXFCA1. My 
code would make an entry into an instorage wrap around trace table that I could 
investigate when the S0CA happens.
:>
:>
:>I found IGZCFCC to be a CSECT in runtime module IGZCPAC, and IGZXFCA1 to be 
an ENTRY in CSECT IGZ@DCS2 in load module IGZXLPKA. IGZXFCA1 is being referred 
to from a couple of places.
:> 
:>
:>
:>Using the Binder I want to have all references to IGZXFCA1 be redirected to 
my code, say #PHUFCA1. The code in #PHUFCA1 has a V-con to IGZXFCA1 so that it 
can forward the call later. 
:>
:>I think I cannot simply CHANGE IGZXFCA1 to #PHUFCA1, because that would also 
change the reference to IGZXFCA1 in my own code, and this is not what I want. I 
currently think I need three Binder runs as follows:
:>
:>
:>1. Remove Csect IGZ@DCS2 from IGZXPLKA and at the same time change references 
to IGZXFCA1 to #PHUFCA1 by specifying:
:>
:>REPLACE  IGZ@DCS2
:>CHANGE  IGZXFCA1(#PHUFCA1)
:>INCLUDE SYSLIB(IGZXPLKA)
:>NAME IGZPLKA#(R)
:>
:>
:>and run the binder with NCAL, because some references to labels in IGZ@DCS2 
other than IGZXFCA1 will stay unresolved. SYSLIB is CEE.SCEERUN, SYSLMOD is my 
own load library.
:>
:>
:>2. Extract Csect IGZ@DCS2 from IGZXPLKA:
:>
:>REPLACE IGZ@INI2
:>...
:>REPLACE CEEBINT
:>INCLUDE SYSLIB(IGZXPLKA)
:>NAME  IGZ@DCS2(R)
:>
:>
:>One REPLACE for each Csect in IGZXPLKA, except from IGZ@DCS2.
:>Again run with NCAL and libraries as in step 1.
:>
:>
:>
:>3. Create new IGZXPLKA including my code in the ASMACL job:
:>
:>INCLUDE SYSLIB(IGZXPLK#)from step 1
:>INCLUDE SYSLIB(IGZ@DCS2)   from step 2
:>object deck from the assembly creating #PHUFCA1
:>NAME IGZXPLKA(R)
:>
:>
:>SYSLIB and SYSLMOD is my own load library.
:>
:>
:>
:>I'm not getting the desired result. I'm getting abends before my code is 
invoke, so I be missing something or missinterpreting how the binder works. 

--
Binyamin Dissen 
http://www.dissensoftware.com

Director, Dissen Software, Bar & Grill - Israel


Should you use the mailblocks package and expect a response from me,
you should preauthorize the dissensoftware.com domain.

I very rarely bother responding to challenge/response systems,
especially those from irresponsible companies.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


AW: Re: Using the Binder to hook into an LE runtime module.

2016-12-22 Thread Peter Hunkeler
>A likely place that this is set is in the ESPIE service routine because
that PIC was one of the interrupts for which ESPIE management was
requested.


Peter, I'm not sure I understand what you want to tell me.


In a pure Cobol environment, the decimal overflow mask is not set, because 
Cobol does not want overflows to thow an exception. LE seems to handle this 
properly. On the other hand C/C++ requires an exception to be thrown, so the 
program mask bit is set by LE. I understand that LE always set the ESPIE to 
catch decial overflow exceptions (00A) (and others).


--
Peter Hunkeler


--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Using the Binder to hook into an LE runtime module.

2016-12-22 Thread Peter Hunkeler
For those interested: I have some working code.
The code uses a Name/Token pair to a) understand whether called the first time 
or not, and b) to keep the address of a (wrap around) trace table (obtained 
upon first call). It then writes some information including the program mask 
obtained via IPM instruction into the table. The address of the trace table is 
displayed via WTO so that the table can be inspected in a dump.

I'm curious whether I will, and what I will find.

--Peter Hunkeler


--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


AW: Re: Using the Binder to hook into an LE runtime module.

2016-12-22 Thread Peter Hunkeler
>The issue Peter is facing is that a certain amount of confusion ensues when a 
>particular piece of software notices the 00A coming from a COBOL program, 
>because the overflow bit has become set on and has somehow avoided means to 
>turn it off before a C/C++ program returns to COBOL.



Reduced to the minimum: Another software's condition handler is getting control 
*before* LE's. This one does *not* ignore the program check 0A, but closes, 
backs out and disconnects, then percolates to LE. LE in turn knows it should 
ignore the program check 0A for Cobol, and returns control to the application 
code. The application later fails with random symptoms because of the "closing" 
actions.


--
Peter Hunkeler



--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


AW: Re: Using the Binder to hook into an LE runtime module.

2016-12-22 Thread Peter Hunkeler
>z/OS Language Environment Programming Reference SA38-0683-0CEEHDLR registers a
user-written condition handler for the current stack frame.



Oh, I see. Now I understand what you meant. I know about the CEEHDLR, but I do 
not need a contition handler. What I need is kind of a "trace of the PSWs 
program mask call by call". This is not something that LE is prepared to 
support (why would it?).


But thanks anyway.


--
Peter Hunkeler



--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Using the Binder to hook into an LE runtime module.

2016-12-22 Thread Bill Woodger
The problem with attempting to use an LE Handler from a COBOL program, as was 
covered in the previous topic, is that LE knows that COBOL doesn't "respect" 
the 00A, so LE just spends some time ignoring it, rather than presenting it to 
a registered handler.

So for inter-language communication to C/C++ and PL/I, there is a heavy 
performance hit if there is a lot of "overflow" in the COBOL program(s), which 
is the time taken by LE to "ignore" it, because of COBOL.

See 
https://share.confex.com/share/116/webprogram/Handout/Session8833/S8833TR.pdf 
pp19-20, for instance.

The issue Peter is facing is that a certain amount of confusion ensues when a 
particular piece of software notices the 00A coming from a COBOL program, 
because the overflow bit has become set on and has somehow avoided means to 
turn it off before a C/C++ program returns to COBOL.

I think I've got that right... :-)

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Using the Binder to hook into an LE runtime module.

2016-12-22 Thread Lizette Koehler
Check out

z/OS Language Environment Programming Reference SA38-0683-0CEEHDLR registers a
user-written condition handler for the current stack frame. The user condition
handler is invoked when:

It is registered for the current stack frame by CEEHDLR, and
The Language Environment condition manager requests the condition handler
associated with the current stack frame handle the condition.



My  understanding is it allows one to get control before LE during certain
events.  I do not have any more details than that.

Lizette 


> -Original Message-
> From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On
> Behalf Of Peter Hunkeler
> Sent: Wednesday, December 21, 2016 11:41 PM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: AW: Re: Using the Binder to hook into an LE runtime module.
> 
> 
> >There is an LE User Handle Function that should allow you to insert
> >what you
> want to do.
> 
> 
> Not sure exactl what function you mean, but I doubt LE is offering an official
> way to do what I need. Can you tell me more about that function? I'd like to
> read it up.
> 
> 
> 
> >Otherwise, this seems to be a question better for IBM LE to respond to.
> >Lots of
> knowledge on the lists, but this may wander closer to internal IBM information
> on how LE would work in this case.
> 
> 
> Unfortunately, I'm not in the position to directly talk to IBM. If I was, I
> had long opened a non-defect PMR to discuss the problem and possible ways to
> get hold of the cause with IBMs LE lab people. I don't want to go into more
> detail on why this does not happen here.
> 
> 
> So, here am I with my idea, and as said in a later post, I am a big step
> further once I found (the stupid) error I made. Going to code the traceing im
> my module now
> 
> 
> --
> Peter Hunkeler
> 

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Using the Binder to hook into an LE runtime module.

2016-12-22 Thread Peter Relson

I'm back to the quest for the code that sets the decimal overflow mask bit 
in the PSW causing S0CA abends later on (see "How to Identify modules as 
C/C++ or Cobol, or ASM from dump (SYSMDUMP)" thread started late 
November). 


A likely place that this is set is in the ESPIE service routine because 
that PIC was one of the interrupts for which ESPIE management was 
requested.

Peter Relson
z/OS Core Technology Design


--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


AW: Re: Using the Binder to hook into an LE runtime module.

2016-12-21 Thread Peter Hunkeler

>There is an LE User Handle Function that should allow you to insert what you
want to do.


Not sure exactl what function you mean, but I doubt LE is offering an official 
way to do what I need. Can you tell me more about that function? I'd like to 
read it up.



>Otherwise, this seems to be a question better for IBM LE to respond to.  Lots 
>of
knowledge on the lists, but this may wander closer to internal IBM information
on how LE would work in this case.


Unfortunately, I'm not in the position to directly talk to IBM. If I was, I had 
long opened a non-defect PMR to discuss the problem and possible ways to get 
hold of the cause with IBMs LE lab people. I don't want to go into more detail 
on why this does not happen here.


So, here am I with my idea, and as said in a later post, I am a big step 
further once I found (the stupid) error I made. Going to code the traceing im 
my module now


--
Peter Hunkeler



--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Using the Binder to hook into an LE runtime module.

2016-12-21 Thread Lizette Koehler
There is an LE User Handle Function that should allow you to insert what you
want to do.

Otherwise, this seems to be a question better for IBM LE to respond to.  Lots of
knowledge on the lists, but this may wander closer to internal IBM information
on how LE would work in this case.

Lizette


> -Original Message-
> From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On
> Behalf Of Peter Hunkeler
> Sent: Wednesday, December 21, 2016 3:34 AM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Using the Binder to hook into an LE runtime module.
> 
> Cross-posted to IBM-Main and Assembler-List
> 
> This thread is actually about hooking into existing load modules using the
> Binder's CHANGE and REPLACE funtions. It's been long time since I had to use
> the Binder to manipulate modules, so please bear with me.
> 
> 
> 
> A bit of information on why I want to do this is provided for the ones
> interested.
> 
> 
> *However*, the reason for posting is mainly to understand if my idea how to
> manipulate load modules using the Binder should work the way I think it does.
> 
> 
> Please keep this thread related to the subject. Thanks.
> 
> 
> 
> 
> 
> I'm back to the quest for the code that sets the decimal overflow mask bit in
> the PSW causing S0CA abends later on (see "How to Identify modules as C/C++ or
> Cobol, or ASM from dump (SYSMDUMP)" thread started late November).
> 
> 
> Environment is Cobol V4 & V5. All CALLs are dynamic. Some hundred modules may
> well be loaded when the problem occurs. Modifying the to help diagnosing is
> not an option.
> 
> 
> I understand that LE has two sections of code dealing with dynamic CALLs:
> 
> o IGZCFCC for pre V5.x Cobol
> o IGZXFCA1 for Cobol V5.x and later
> 
> 
> Those functions are always seen in a LE trackback at point where Cobol code
> makes dynamic CALLs.
> 
> 
> What I'm trying to do is to hook into those functions, and have some of my own
> code running before forwarding the call to either IGZCFCC or IGZXFCA1. My code
> would make an entry into an instorage wrap around trace table that I could
> investigate when the S0CA happens.
> 
> 
> I found IGZCFCC to be a CSECT in runtime module IGZCPAC, and IGZXFCA1 to be an
> ENTRY in CSECT IGZ@DCS2 in load module IGZXLPKA. IGZXFCA1 is being referred to
> from a couple of places.
> 
> 
> 
> Using the Binder I want to have all references to IGZXFCA1 be redirected to my
> code, say #PHUFCA1. The code in #PHUFCA1 has a V-con to IGZXFCA1 so that it
> can forward the call later.
> 
> I think I cannot simply CHANGE IGZXFCA1 to #PHUFCA1, because that would also
> change the reference to IGZXFCA1 in my own code, and this is not what I want.
> I currently think I need three Binder runs as follows:
> 
> 
> 1. Remove Csect IGZ@DCS2 from IGZXPLKA and at the same time change references
> to IGZXFCA1 to #PHUFCA1 by specifying:
> 
> REPLACE  IGZ@DCS2
> CHANGE  IGZXFCA1(#PHUFCA1)
> INCLUDE SYSLIB(IGZXPLKA)
> NAME IGZPLKA#(R)
> 
> 
> and run the binder with NCAL, because some references to labels in IGZ@DCS2
> other than IGZXFCA1 will stay unresolved. SYSLIB is CEE.SCEERUN, SYSLMOD is my
> own load library.
> 
> 
> 2. Extract Csect IGZ@DCS2 from IGZXPLKA:
> 
> REPLACE IGZ@INI2
> ...
> REPLACE CEEBINT
> INCLUDE SYSLIB(IGZXPLKA)
> NAME  IGZ@DCS2(R)
> 
> 
> One REPLACE for each Csect in IGZXPLKA, except from IGZ@DCS2.
> Again run with NCAL and libraries as in step 1.
> 
> 
> 
> 3. Create new IGZXPLKA including my code in the ASMACL job:
> 
> INCLUDE SYSLIB(IGZXPLK#)from step 1
> INCLUDE SYSLIB(IGZ@DCS2)   from step 2
> object deck from the assembly creating #PHUFCA1 NAME IGZXPLKA(R)
> 
> 
> SYSLIB and SYSLMOD is my own load library.
> 
> 
> 
> I'm not getting the desired result. I'm getting abends before my code is
> invoke, so I be missing something or missinterpreting how the binder works.
> 
> --
> Peter Hunkeler

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Using the Binder to hook into an LE runtime module. (Solved)

2016-12-21 Thread Peter Hunkeler
I have found the mistake. Sorry for bothering you.
--Peter Hunkeler



--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


AW: Re: Using the Binder to hook into an LE runtime module.

2016-12-21 Thread Peter Hunkeler
>What abends? S0CA or others? Do you see other messages, say on SYSLOG?


As said, I would like to understand if a) what I want to do is feasible with 
the binder, and b) if whether my approach should work.


The abend is not of interest, it only documents that my code is not being 
invoked at the point I thought is should be.


--
Peter Hunkeler




--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Using the Binder to hook into an LE runtime module.

2016-12-21 Thread Elardus Engelbrecht
Peter Hunkeler wrote:

>I'm not getting the desired result. I'm getting abends before my code is 
>invoke, so I be missing something or missinterpreting how the binder works.

What abends? S0CA or others? Do you see other messages, say on SYSLOG?

Groete / Greetings
Elardus Engelbrecht

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Using the Binder to hook into an LE runtime module.

2016-12-21 Thread Peter Hunkeler
Cross-posted to IBM-Main and Assembler-List

This thread is actually about hooking into existing load modules using the 
Binder's CHANGE and REPLACE funtions. It's been long time since I had to use 
the Binder to manipulate modules, so please bear with me.



A bit of information on why I want to do this is provided for the ones 
interested.


*However*, the reason for posting is mainly to understand if my idea how to 
manipulate load modules using the Binder should work the way I think it does.


Please keep this thread related to the subject. Thanks.





I'm back to the quest for the code that sets the decimal overflow mask bit in 
the PSW causing S0CA abends later on (see "How to Identify modules as C/C++ or 
Cobol, or ASM from dump (SYSMDUMP)" thread started late November).


Environment is Cobol V4 & V5. All CALLs are dynamic. Some hundred modules may 
well be loaded when the problem occurs. Modifying the to help diagnosing is not 
an option.


I understand that LE has two sections of code dealing with dynamic CALLs:

o IGZCFCC for pre V5.x Cobol
o IGZXFCA1 for Cobol V5.x and later


Those functions are always seen in a LE trackback at point where Cobol code 
makes dynamic CALLs.


What I'm trying to do is to hook into those functions, and have some of my own 
code running before forwarding the call to either IGZCFCC or IGZXFCA1. My code 
would make an entry into an instorage wrap around trace table that I could 
investigate when the S0CA happens.


I found IGZCFCC to be a CSECT in runtime module IGZCPAC, and IGZXFCA1 to be an 
ENTRY in CSECT IGZ@DCS2 in load module IGZXLPKA. IGZXFCA1 is being referred to 
from a couple of places.



Using the Binder I want to have all references to IGZXFCA1 be redirected to my 
code, say #PHUFCA1. The code in #PHUFCA1 has a V-con to IGZXFCA1 so that it can 
forward the call later.

I think I cannot simply CHANGE IGZXFCA1 to #PHUFCA1, because that would also 
change the reference to IGZXFCA1 in my own code, and this is not what I want. I 
currently think I need three Binder runs as follows:


1. Remove Csect IGZ@DCS2 from IGZXPLKA and at the same time change references 
to IGZXFCA1 to #PHUFCA1 by specifying:

REPLACE  IGZ@DCS2
CHANGE  IGZXFCA1(#PHUFCA1)
INCLUDE SYSLIB(IGZXPLKA)
NAME IGZPLKA#(R)


and run the binder with NCAL, because some references to labels in IGZ@DCS2 
other than IGZXFCA1 will stay unresolved. SYSLIB is CEE.SCEERUN, SYSLMOD is my 
own load library.


2. Extract Csect IGZ@DCS2 from IGZXPLKA:

REPLACE IGZ@INI2
...
REPLACE CEEBINT
INCLUDE SYSLIB(IGZXPLKA)
NAME  IGZ@DCS2(R)


One REPLACE for each Csect in IGZXPLKA, except from IGZ@DCS2.
Again run with NCAL and libraries as in step 1.



3. Create new IGZXPLKA including my code in the ASMACL job:

INCLUDE SYSLIB(IGZXPLK#)from step 1
INCLUDE SYSLIB(IGZ@DCS2)   from step 2
object deck from the assembly creating #PHUFCA1
NAME IGZXPLKA(R)


SYSLIB and SYSLMOD is my own load library.



I'm not getting the desired result. I'm getting abends before my code is 
invoke, so I be missing something or missinterpreting how the binder works.





--
Peter Hunkeler

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Custom LE runtime parms for an entire batch job

2016-04-01 Thread Scott Ford
Guys,

Do you know if the program can test for CEEOPTS ?

Scott

On Thursday, March 31, 2016, Frank Swarbrick 
wrote:

> Oh!
> I guess we either had that by default, or we changed it some time in the
> distant past.
>
> D CEE,CEEROPT
> CEE3745I 17.18.59 DISPLAY CEEROPT
> CEE=(00) 092
> PARMLIB(CEEPRM00) CEEROPT (ALL)
>
>
> > Date: Thu, 31 Mar 2016 13:16:06 -0500
> > From: peter_tene...@farmfamily.com 
> > Subject: Re: Custom LE runtime parms for an entire batch job
> > To: IBM-MAIN@LISTSERV.UA.EDU 
> >
> > I was able to get this working by issuing the SETCEE CEEROPT,ALL
> command. Now finding my custom CEEWROPT table within the JOBLIB.
> >
> > --
> > For IBM-MAIN subscribe / signoff / archive access instructions,
> > send email to lists...@listserv.ua.edu  with the message:
> INFO IBM-MAIN
>
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu  with the message:
> INFO IBM-MAIN
>

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Custom LE runtime parms for an entire batch job

2016-03-31 Thread Frank Swarbrick
Oh!
I guess we either had that by default, or we changed it some time in the 
distant past.

D CEE,CEEROPT
CEE3745I 17.18.59 DISPLAY CEEROPT
CEE=(00) 092 
PARMLIB(CEEPRM00) CEEROPT (ALL)  


> Date: Thu, 31 Mar 2016 13:16:06 -0500
> From: peter_tene...@farmfamily.com
> Subject: Re: Custom LE runtime parms for an entire batch job
> To: IBM-MAIN@LISTSERV.UA.EDU
> 
> I was able to get this working by issuing the SETCEE CEEROPT,ALL command. Now 
> finding my custom CEEWROPT table within the JOBLIB.
> 
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
  
--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Custom LE runtime parms for an entire batch job

2016-03-31 Thread Peter Ten Eyck
I was able to get this working by issuing the SETCEE CEEROPT,ALL command. Now 
finding my custom CEEWROPT table within the JOBLIB.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Custom LE runtime parms for an entire batch job

2016-03-31 Thread Elardus Engelbrecht
Tom Marchant wrote:

>Do you have a STEPLIB? MVS will use JOBLIB or STEPLIB, not both.

Very true.

In z/OS 2.1 JCL Ref, this quote to clarify:

"If you include a STEPLIB DD statement for a job step and a JOBLIB DD statement 
for the entire job, the system first searches the step library and then the 
system library for the requested program. The system ignores the job library 
for a step that has a STEPLIB DD statement."

Groete / Greetings
Elardus Engelbrecht

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Custom LE runtime parms for an entire batch job

2016-03-31 Thread Peter Ten Eyck
I have assembled CEEROPT into a PDS that is in the JOBLIB statement of the job. 
I have a small program running in the job that abends... when I look in the LE 
dump for the job at the current LE runtime settings, I do not see my changes 
(overrides).

For example here is the report from the job… ALL31 should have been changed to 
on:

Run-Time Options Report:

 LAST WHERE SET OPTION  
 ---
 Installation default ABPERC(NONE)  
 Installation default ABTERMENC(ABEND)  
 PARMLIB(CEEPRM00)  NOAIXBLD
 PARMLIB(CEEPRM00)ALL31(OFF)
 PARMLIB(CEEPRM00)ANYHEAP(32768,16384,ANYWHERE,FREE)
 Installation default   NOAUTOTASK  
 PARMLIB(CEEPRM00)BELOWHEAP(32768,16384,FREE)   
 Installation default CBLOPTS(ON)   
--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Custom LE runtime parms for an entire batch job

2016-03-31 Thread Tom Marchant
On Thu, 31 Mar 2016 10:09:28 -0500, Peter Ten Eyck wrote:

>Hmm, that's I what I thought. Does not seem to be picking up my LE changes?

Do you have a STEPLIB? MVS will use JOBLIB or STEPLIB, not both.

-- 
Tom Marchant

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Custom LE runtime parms for an entire batch job

2016-03-31 Thread Peter Ten Eyck
Hmm, that's I what I thought. Does not seem to be picking up my LE changes?

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Custom LE runtime parms for an entire batch job

2016-03-31 Thread Frank Swarbrick
That's exactly how it works.  The first CEEROPT module found in the JOBLIB 
concatenation will be respected.

> Date: Thu, 31 Mar 2016 09:38:43 -0500
> From: peter_tene...@farmfamily.com
> Subject: Re: Custom LE runtime parms for an entire batch job
> To: IBM-MAIN@LISTSERV.UA.EDU
> 
> Yes, thanks. I was hoping reference CEEROPT in a batch job(s) by placing it 
> in a PDS within the JOBLIB concatenation. Can I do this? ...or do I need to 
> add a DD name to the JCL?
> 
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
  
--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Custom LE runtime parms for an entire batch job

2016-03-31 Thread Peter Ten Eyck
Yes, thanks. I was hoping reference CEEROPT in a batch job(s) by placing it in 
a PDS within the JOBLIB concatenation. Can I do this? ...or do I need to add a 
DD name to the JCL?

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Custom LE runtime parms for an entire batch job

2016-03-31 Thread Scott Ford
Yep, we have STC we do that with using a park override or the external file
specified with the ddname.

Scott

On Wednesday, March 30, 2016, Frank Swarbrick 
wrote:

> As an example, here is a version of the CEEWROPT example job that will
> create a CEEROPT module and store it in a library named
> PGMR.TOOLSIB.RTEREUS:
>
> //CEEWROPT JOB 1,'5694-A01',MSGLEVEL=(1,1),NOTIFY=&SYSUID
> //STEP1 EXEC PGM=ASMA90
> //SYSPRINT DD SYSOUT=*
> //SYSLIN DD DSN=&&TEMPOBJ,DISP=(,PASS)
> //SYSLIB DD DSN=CEE.SCEEMAC,DISP=SHR <<<<<<
> //   DD DSN=SYS1.MACLIB,DISP=SHR ++
> //SYSIN  DD *
> CEEROPT  CSECT ,
> CEEROPT  RMODE ANY
>  CEEXOPT  RTEREUS=((ON),NONOVR)
>  END   CEEROPT
> /*
> //STEP2EXEC  PGM=IEWL,
> // PARM='NCAL,RENT,LIST,XREF,LET,MAP,SIZE=(K,96K)'
> //SYSPRINT DD  SYSOUT=*
> //SYSLMOD  DD  DSNAME=PGMR.TOOLSLIB.RTEREUS(CEEROPT),DISP=SHR
> //SYSLIN   DD  DSN=&&TEMPOBJ,DISP=(OLD,PASS)
>
>
> > Date: Wed, 30 Mar 2016 15:56:11 -0600
> > From: frank.swarbr...@outlook.com 
> > Subject: Re: Custom LE runtime parms for an entire batch job
> > To: IBM-MAIN@LISTSERV.UA.EDU 
> >
> > I think you should be able to use a CEEROPT (Region-Specific Run-Time
> Options Load Module).
> >
> >
> https://www.ibm.com/support/knowledgecenter/SSLTBW_1.13.0/com.ibm.zos.r13.ceea500/createropt.htm%23createropt
> >
> >
> > > Date: Wed, 30 Mar 2016 12:54:37 -0500
> > > From: peter_tene...@farmfamily.com 
> > > Subject: Custom LE runtime parms for an entire batch job
> > > To: IBM-MAIN@LISTSERV.UA.EDU 
> > >
> > > How would I run a batch job (all steps) with a unique set of LE
> runtime parms without using CEEOPTS in each step?
> > >
> > > Could I point to a custom CEEDOPT via JOBLIB?
> > >
> > > Note: OS - z/OS 1.13
> > >
> > > --
> > > For IBM-MAIN subscribe / signoff / archive access instructions,
> > > send email to lists...@listserv.ua.edu  with the
> message: INFO IBM-MAIN
> >
> > --
> > For IBM-MAIN subscribe / signoff / archive access instructions,
> > send email to lists...@listserv.ua.edu  with the message:
> INFO IBM-MAIN
>
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu  with the message:
> INFO IBM-MAIN
>

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Custom LE runtime parms for an entire batch job

2016-03-30 Thread Frank Swarbrick
As an example, here is a version of the CEEWROPT example job that will create a 
CEEROPT module and store it in a library named PGMR.TOOLSIB.RTEREUS:

//CEEWROPT JOB 1,'5694-A01',MSGLEVEL=(1,1),NOTIFY=&SYSUID   
//STEP1 EXEC PGM=ASMA90 
//SYSPRINT DD SYSOUT=*  
//SYSLIN DD DSN=&&TEMPOBJ,DISP=(,PASS)  
//SYSLIB DD DSN=CEE.SCEEMAC,DISP=SHR <<<<<< 
//   DD DSN=SYS1.MACLIB,DISP=SHR ++ 
//SYSIN  DD *   
CEEROPT  CSECT ,
CEEROPT  RMODE ANY  
 CEEXOPT  RTEREUS=((ON),NONOVR) 
 END   CEEROPT  
/*  
//STEP2EXEC  PGM=IEWL,  
// PARM='NCAL,RENT,LIST,XREF,LET,MAP,SIZE=(K,96K)'  
//SYSPRINT DD  SYSOUT=* 
//SYSLMOD  DD  DSNAME=PGMR.TOOLSLIB.RTEREUS(CEEROPT),DISP=SHR   
//SYSLIN   DD  DSN=&&TEMPOBJ,DISP=(OLD,PASS)


> Date: Wed, 30 Mar 2016 15:56:11 -0600
> From: frank.swarbr...@outlook.com
> Subject: Re: Custom LE runtime parms for an entire batch job
> To: IBM-MAIN@LISTSERV.UA.EDU
> 
> I think you should be able to use a CEEROPT (Region-Specific Run-Time Options 
> Load Module).
> 
> https://www.ibm.com/support/knowledgecenter/SSLTBW_1.13.0/com.ibm.zos.r13.ceea500/createropt.htm%23createropt
> 
> 
> > Date: Wed, 30 Mar 2016 12:54:37 -0500
> > From: peter_tene...@farmfamily.com
> > Subject: Custom LE runtime parms for an entire batch job
> > To: IBM-MAIN@LISTSERV.UA.EDU
> > 
> > How would I run a batch job (all steps) with a unique set of LE runtime 
> > parms without using CEEOPTS in each step?
> > 
> > Could I point to a custom CEEDOPT via JOBLIB?
> > 
> > Note: OS - z/OS 1.13
> > 
> > --
> > For IBM-MAIN subscribe / signoff / archive access instructions,
> > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
> 
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
  
--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Custom LE runtime parms for an entire batch job

2016-03-30 Thread Frank Swarbrick
I think you should be able to use a CEEROPT (Region-Specific Run-Time Options 
Load Module).

https://www.ibm.com/support/knowledgecenter/SSLTBW_1.13.0/com.ibm.zos.r13.ceea500/createropt.htm%23createropt


> Date: Wed, 30 Mar 2016 12:54:37 -0500
> From: peter_tene...@farmfamily.com
> Subject: Custom LE runtime parms for an entire batch job
> To: IBM-MAIN@LISTSERV.UA.EDU
> 
> How would I run a batch job (all steps) with a unique set of LE runtime parms 
> without using CEEOPTS in each step?
> 
> Could I point to a custom CEEDOPT via JOBLIB?
> 
> Note: OS - z/OS 1.13
> 
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
  
--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Custom LE runtime parms for an entire batch job

2016-03-30 Thread Peter Ten Eyck
How would I run a batch job (all steps) with a unique set of LE runtime parms 
without using CEEOPTS in each step?

Could I point to a custom CEEDOPT via JOBLIB?

Note: OS - z/OS 1.13

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN