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