The REXX language doesn't support callback; the API does. When an application 
calls IRXINIT, each of MODNAMET, SUBCOMTB and PACKTB can specify call-back 
routines.


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

________________________________________
From: IBM Mainframe Discussion List [[email protected]] on behalf of 
David Crayford [[email protected]]
Sent: Thursday, June 24, 2021 9:45 PM
To: [email protected]
Subject: Re: Coding for the future

On 24/06/2021 9:33 pm, Seymour J Metz wrote:
> That wiki article describes exactly the mechanism I was referring to.

That's interesting. REXX doesn't support functions as first class
objects so how can it support callbacks? I can image some monstrous
concoction using  "interpret". Maybe there are gaps in my REXX knowledge.


>
>
> --
> Shmuel (Seymour J.) Metz
> http://mason.gmu.edu/~smetz3
>
> ________________________________________
> From: IBM Mainframe Discussion List [[email protected]] on behalf of 
> David Crayford [[email protected]]
> Sent: Thursday, June 24, 2021 9:29 AM
> To: [email protected]
> Subject: Re: Coding for the future
>
> On 24/06/2021 8:51 pm, Seymour J Metz wrote:
>> The only meaning that I'm familiar with is the one that I get on a search 
>> for 'callback definition programming'. Or were you thinking of a 
>> non-computer contest?
> Callback is is a well known pattern
> https://secure-web.cisco.com/1QSdJn1tHFo3fLnTHXKVuzco3ZyGmLW-vJIU-4BgBoJ6fnHEdkkNxvL7PgoLaBvpo0I8lemVuZ75OvusonUGyzxr1CV5i0Ww9nI1WZn3XFUso-xHRUl4FLtHqIGQqw0Q_U0FyxioHkGZUHg_5CwjKzl7I0tSi7y6qWdIvgG-u6fxFAJDUmIM6B1NKqqUXSHjK-SbQJOj1LAnHqNpTKdZueBEe6xZ9T-X0sazYHQQzyDEkdghGd_v8hwKJ7IfhJ7j1z1QOgZGFloyGsbaWtcL4yQWVqdTdPB-maTaKnYn8_7KxGVM-0zYdM0dYs9fgNJrebgDY_x4uksThdeKPMJSSwPBBYhutBegj1RG3PDcP8QFP8fy0xl-4EbJYe09lNW4C3k_VT77137C2DdIGZNS34cvFYUaPMP7R3M8AsTnOYZIOUKJsFvX4d4YJ6TXIaneJ/https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FCallback_%28computer_programming)
>
> The ,array class goes all the way back to OREXX in OS/2. 5.0 adds a
> regex class, but it doesn't support captures, and I rely on them heav
>
> I must admit I don't really care
>
>> --
>> Shmuel (Seymour J.) Metz
>> http://mason.gmu.edu/~smetz3
>>
>> ________________________________________
>> From: IBM Mainframe Discussion List [[email protected]] on behalf of 
>> David Crayford [[email protected]]
>> Sent: Thursday, June 24, 2021 5:00 AM
>> To: [email protected]
>> Subject: Re: Coding for the future
>>
>> On 24/06/2021 9:23 am, Seymour J Metz wrote:
>>> You invoke ISPF. You call a REXX script for ISPF. The script does ADDRESS 
>>> ISPEXEC foo and ISPF gets control back. It's well documented in the TSO/E 
>>> REXX Reference, and other implementations have essentially the same API. 
>>> Basically, when a REXX-aware application creates an environment, REXX 
>>> associates context with the environment name; when a REXX script routes a 
>>> command to that environment, the environment block contains the context so 
>>> that the application can locate its control blocks. It's quite elegant, and 
>>> REXX does all of the heavy lifting.
>> Yes, I'm familiar with the environment block as I have used IRXSUBCM to
>> create host command environments. In my case I had to use CEEPIPI to
>> create an LE environment for the C++ regex library. The environment
>> block has a user context pointer which is very useful. I was confused by
>> the term "call-back" which means something quite different to me.
>>
>>
>>> On the flip side, prior to OREXX everything was a string; there was no type 
>>> checking, only value testing. Also, the exception handling is fragile 
>>> compared to PL/I, Python or Ruby.
>> I noticed that ooRexx v5 has introduced array types which is long
>> overdue. Stem variables are hash tables so performance is not great when
>> iterating.
>>
>>
>>> --
>>> Shmuel (Seymour J.) Metz
>>> http://mason.gmu.edu/~smetz3
>>>
>>> ________________________________________
>>> From: IBM Mainframe Discussion List [[email protected]] on behalf of 
>>> David Crayford [[email protected]]
>>> Sent: Wednesday, June 23, 2021 8:57 PM
>>> To: [email protected]
>>> Subject: Re: Coding for the future
>>>
>>> Maybe I'm missing a subtlety here but can you demonstrate how REXX uses
>>> callbacks on z/OS? I'm familar with command environments, I've written
>>> one for REXX regex 
>>> https://secure-web.cisco.com/140q8fxdqURUGvmth2nK_lOrDPN09AtW0cBfgGnzMZm6MOvOho-HriWxdOrBSwiPotV2P6kacF9rpRwTORQsYeHqbOlnMFxHuUDYsjYnWlk0z0sR7CYhLEzIyd-DL6yuI6IRotLmLhmT3RbCQk9-VO0E6-NE3tyAdm1jgxYV9K6GosVOwG_tqv0j_Iv7TeRrCoUvhQ5ZNmnH2N9gR8CjU9xFydEZWlX1Y702G19rTTW9fV0qRkhU5kTGg16f16KMPIZbaB7Cqk0evdWJylMOkSMkIA5PECEmFeyiQXvrOBE2LDvGMC16AK6OZg5xdnzeWpSgm_g5F-nCgOQjteQ_82RUkquwXW_WqLZq0S0yXoz4PpyFEFJrpl2iZboK4FhuXZdrvui3BqiSrz0nKNJYIXUNRpVzfCH02p2xcc1Oqa0Lrndw3QSeal5ZFf3sRqGP-/https%3A%2F%2Fgithub.com%2Fdaveyc%2FRTK.
>>>  In Python, Lua etc you
>>> would just create an instance of a class an communicate using message
>>> passing like any OO language.
>>> For example, to create and ISPF in Lua you instantiate and ISPF object
>>> and then communicate with it by calling methods
>>> https://secure-web.cisco.com/1qsEFCKQQ8_UfI8nvAPUHIHUMRsk8zVcv8tyCsWKzPB5x6Iqcinh6eFRTvMYUE_fu4U_RlstYoTVGhhME8x92IIYlUFy0AvsQ_osnJyM5U0ASEu77n43wTA2l6-3XA99vaRmgsICvmmQW_Wlc1RO5W5SsL6uXFqvGMNSV5d2Swy6V131ckAPNDw9a-BsfYVkO5DRvOINNh9iJZqVw466fpXNjZh1CsFmaMQcpIvnXTnndqgbQwZw4yzPuxvmWTf__4ssShTUeQnjYxO6gcW4YsvpHhQslzGOP7V45e2SIHjYK3A2EGLp3hyelRfJG9gh3h0qFBX_1a5X08xba0wB0HwMXf4VyHIzAvI5LKoqvrMA90FsZq4h6TMxefXsiXKHALdxZV9djrJXqln73WhSCoaNFiVgG9C-wOFEwYW7bB12UrfhpL6v1ZJ3Hxudjq_4kHxQJuH7g6y4Brb90haU3vA/https%3A%2F%2Flua4z.github.io%2FLua4z%2Fmodules%2Fispf.html.
>>>
>>>
>>> On 23/06/2021 7:04 pm, Seymour J Metz wrote:
>>>> Allow applications to establish environments for scripts (ADDRESS) , allow 
>>>> call-backs from within scripts and access the variables of the scripts. I 
>>>> wish that I could do that from within Perl, although I'd take the time to 
>>>> learn Python or Ruby if they supported that.
>>>>
>>>>
>>>> --
>>>> Shmuel (Seymour J.) Metz
>>>> http://mason.gmu.edu/~smetz3
>>>>
>>>> ________________________________________
>>>> From: IBM Mainframe Discussion List [[email protected]] on behalf 
>>>> of David Crayford [[email protected]]
>>>> Sent: Wednesday, June 23, 2021 3:19 AM
>>>> To: [email protected]
>>>> Subject: Re: Coding for the future
>>>>
>>>> On 23/06/2021 10:38 am, Seymour J Metz wrote:
>>>>> None of those are relevant to what REXX does best. Again, it's the 
>>>>> plumbing, not the syntactic sugar.
>>>> What exactly does REXX do best? What does it do better than Python?
>>>>
>>>>
>>>>> As to large applications, I believe that there are some pretty big ones 
>>>>> in Perl and REXX, so why should I be surprised by large applications in, 
>>>>> e.g., Python, Ruby?
>>>>>
>>>>>
>>>>> --
>>>>> Shmuel (Seymour J.) Metz
>>>>> http://mason.gmu.edu/~smetz3
>>>>>
>>>>> ________________________________________
>>>>> From: IBM Mainframe Discussion List [[email protected]] on behalf 
>>>>> of David Crayford [[email protected]]
>>>>> Sent: Tuesday, June 22, 2021 7:25 PM
>>>>> To: [email protected]
>>>>> Subject: Re: Coding for the future
>>>>>
>>>>> On 22/06/2021 10:19 pm, Seymour J Metz wrote:
>>>>>> It's not a question of what environment it can run in; it's  a question 
>>>>>> of what facilities it supports in those environments.
>>>>> Indeed. Lua supports TSO, ISPF, CICS, IMS, the full MVS file system
>>>>> including VSAM. DB2 SQL + a SQLite API. A date/time module that supports
>>>>> dates that are greater than Mon Jan 01 1000000 BCE 00:00:00 and less
>>>>> than Mon Jan 01 1000001 00:00:00 etc, etc.
>>>>> We presented at SHARE where we demonstrated how to use Lua integration
>>>>> to convert a 3270 CICS BMS application to a mobile web app
>>>>> https://secure-web.cisco.com/1LTRemd3KBmC5tUUKSeo9EC5h9xyRF7Bz3PhdCSMXFnXeU9xUYZAMVe5chb0ZaeK3DMtRGm6fXidrWX-DdewRuiBFuunmJgylrBSK2m0dxTkBwteMqPfIErfpIkx2t0yKE_X4Vvjo2z5bwL3x5Gzol57ueWGXt0mRa5LkbagnGSXpBSeh0a0sqCHTv7dZ_yP7bvWRZEdnEhIKqF6yOijhnDFn7l75N3TqnoUwxHNnsOFWy_ZGihMqSRgOpFgNGT29c3jEMR9BWE6SwalS5Fq9qCm5mI3QT3QGXbhUjO6A4bL_zu9qSlFAFZM7PJeBTr73ngdhubfDFqh0fRWaFg5cyBhzcMGUTVbEV5QWTr76UNB_zRihnfVeyioclr2jou2HVmP2A7PlvHHZDFG0y1o-fR5mEjE0DxE6Jrzclf2Oy-W2TISt9m1rarhndnanZuca/https%3A%2F%2Fshare.confex.com%2Fshare%2F123%2Fwebprogram%2FHandout%2FSession15892%2F15892%2520Mobile%2520CICS%2520Application%2520Using%2520Lua.pdf.
>>>>>
>>>>> I spent a lot of time making sure Lua integrated well into the TSO/MVS
>>>>> environment. The irony is I spend very little time in TSO/ISPF these
>>>>> days. I spend most of my time in a shell and switch the ISPF when I want
>>>>> to use SDSF. I write new scripting code in Python which is enhanced
>>>>> ASCII so only
>>>>> runs in z/OS UNIX. Rocket and IBM don't see any value in integrating
>>>>> ported tools with TSO as it's not strategic. The main focus is on
>>>>> containers.
>>>>>
>>>>> BTW, did you know that the photo sharing app Instagram is written in
>>>>> Python? It's staggering to imagine that what we would consider a
>>>>> scripting language is serving over 1 billion monthly users.
>>>>>
>>>>>
>>>>>> --
>>>>>> Shmuel (Seymour J.) Metz
>>>>>> http://mason.gmu.edu/~smetz3
>>>>>>
>>>>>>
>>>>>> ________________________________________
>>>>>> From: IBM Mainframe Discussion List <[email protected]> on behalf 
>>>>>> of David Crayford <[email protected]>
>>>>>> Sent: Tuesday, June 22, 2021 9:57 AM
>>>>>> To: [email protected]
>>>>>> Subject: Re: Coding for the future
>>>>>>
>>>>>> On 22/06/2021 8:55 pm, Seymour J Metz wrote:
>>>>>>> What distinguishes REXX is not syntactic sugar but the plumbing that 
>>>>>>> enables close coupling of scripts with applications. Lua is missing 
>>>>>>> that.
>>>>>> Maybe. But I can't think of an environment that REXX runs in that Lua
>>>>>> can't. I could port Python to run in TSO if I had the time but it's a
>>>>>> heavy lift. IBM have ported golang now which is compiled. We've had a
>>>>>> look at it and it's interesting.
>>>>>>
>>>>>> ----------------------------------------------------------------------
>>>>>> For IBM-MAIN subscribe / signoff / archive access instructions,
>>>>>> send email to [email protected] with the message: INFO IBM-MAIN
>>>>>>
>>>>>> ----------------------------------------------------------------------
>>>>>> For IBM-MAIN subscribe / signoff / archive access instructions,
>>>>>> send email to [email protected] with the message: INFO IBM-MAIN
>>>>> ----------------------------------------------------------------------
>>>>> For IBM-MAIN subscribe / signoff / archive access instructions,
>>>>> send email to [email protected] with the message: INFO IBM-MAIN
>>>>>
>>>>> ----------------------------------------------------------------------
>>>>> For IBM-MAIN subscribe / signoff / archive access instructions,
>>>>> send email to [email protected] with the message: INFO IBM-MAIN
>>>> ----------------------------------------------------------------------
>>>> For IBM-MAIN subscribe / signoff / archive access instructions,
>>>> send email to [email protected] with the message: INFO IBM-MAIN
>>>>
>>>> ----------------------------------------------------------------------
>>>> For IBM-MAIN subscribe / signoff / archive access instructions,
>>>> send email to [email protected] with the message: INFO IBM-MAIN
>>> ----------------------------------------------------------------------
>>> For IBM-MAIN subscribe / signoff / archive access instructions,
>>> send email to [email protected] with the message: INFO IBM-MAIN
>>>
>>> ----------------------------------------------------------------------
>>> For IBM-MAIN subscribe / signoff / archive access instructions,
>>> send email to [email protected] with the message: INFO IBM-MAIN
>> ----------------------------------------------------------------------
>> For IBM-MAIN subscribe / signoff / archive access instructions,
>> send email to [email protected] with the message: INFO IBM-MAIN
>>
>> ----------------------------------------------------------------------
>> For IBM-MAIN subscribe / signoff / archive access instructions,
>> send email to [email protected] with the message: INFO IBM-MAIN
> ----------------------------------------------------------------------
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to [email protected] with the message: INFO IBM-MAIN
>
> ----------------------------------------------------------------------
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to [email protected] with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to