On Wed, 11 Oct 2023 at 19:25, Paul Gilmartin <
0000042bfe9c879d-dmarc-requ...@listserv.ua.edu> wrote:

> On Wed, 11 Oct 2023 17:07:44 -0400, Tony Harminc wrote:
> >    ...
> >So e.g. we have a product
> >that has a notion of transactions, and a transaction is represented by a
> >single CB that points to various other CBs, ...
> >
> How do you achieve that, given that Rexx has no pointer type?
>

The transaction product is not written in REXX (it's mostly assembler).
We're talking about using REXX running under IPCS to process a dump from
that product.

STORAGE() lets you access and modify CBs once you know
> their addresses, but not to use addresses of Rexx-owned objects.
>

 Sure. But the REXX runs with IPCS commands available to it, and at least
one of them (EVAL) can use a REXX variable interface. So the content of any
storage in the dump can be stuck into a REXX variable. And a live system
can (mostly) be examined without changing the REXX, since with suitable
permissions IPCS EVAL can fetch from active storage rather than a dump.

I can imagine supplying interfaces to GETMAIN/FREEMAIN.
>

Indeed. Perhaps an extension to the REXX Storage function. With of course
ALETs and 64-bit and such as well...

I once lamented that the SMP/E API depends on pointers in
> ways that are hostile to REXX.  Kurt Q. replied, approximately,
> "Well, you can't please everybody."
>
> The ICSF API, in contrast, is REXX- friendly.  There are SAMPLIB
> members.  The only pointers needed are arguments to LINKMVS.
>

The Binder API is mostly at least not REXX-unfriendly.

>
> REXX is important enough that it should be considered in the
> design of an API.
>

IPCS does have that variable interface, which is Good Enough to get a lot
done.

Tony H.

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

Reply via email to