Re: Software drag racing
I profiled the C++ code using APA. It's spending all it's time bit twiddling and doing mod division. The Java version uses a much more efficient implementation that uses an array of boolean's which isn't initialized to turn the bits on. On 25/06/2021 1:01 pm, Andrew Rowley wrote: On 25/06/2021 2:34 pm, David Crayford wrote: If you've got the XLC 2.4.1 it will will be installed in the /usr/lpp/cbc/xlclang/exe directory. It's 64-bit only. We use this compiler exclusively now. It's really cool and has neat features such as type checking printf() format flags at compile time. I have /usr/lpp/cbclib/xlclang/exe/, but: ls -l /usr/lpp/cbclib/xlclang/exe/ total 16 erwxrwxrwx 1 OMVSKERN OMVSGRP 7 Jun 12 2019 clcdrvr -> CLCDRVR I think that is linking to a program outside the filesystem. I found IBM XL C/C++ V2.4.1 for z/OS V2.4 web deliverable with a program directory. It has a z/OS dataset that goes in the linklist, I can't see that on my system. I suspect I have the OMVS bits but need to request the z/OS components be attached to my system (Dallas RDP system). -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Software drag racing
On 25/06/2021 2:34 pm, David Crayford wrote: If you've got the XLC 2.4.1 it will will be installed in the /usr/lpp/cbc/xlclang/exe directory. It's 64-bit only. We use this compiler exclusively now. It's really cool and has neat features such as type checking printf() format flags at compile time. I have /usr/lpp/cbclib/xlclang/exe/, but: ls -l /usr/lpp/cbclib/xlclang/exe/ total 16 erwxrwxrwx 1 OMVSKERN OMVSGRP 7 Jun 12 2019 clcdrvr -> CLCDRVR I think that is linking to a program outside the filesystem. I found IBM XL C/C++ V2.4.1 for z/OS V2.4 web deliverable with a program directory. It has a z/OS dataset that goes in the linklist, I can't see that on my system. I suspect I have the OMVS bits but need to request the z/OS components be attached to my system (Dallas RDP system). -- Andrew Rowley Black Hill Software -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Software drag racing
On 25/06/2021 12:44 pm, Ed Jaffe wrote: On 6/24/2021 9:34 PM, David Crayford wrote: If you've got the XLC 2.4.1 it will will be installed in the /usr/lpp/cbc/xlclang/exe directory. It's 64-bit only. We use this compiler exclusively now. It's really cool and has neat features such as type checking printf() format flags at compile time. If you're referring to IBM's LLVM-based C/C++ compiler, I believe it is in a closed beta test status right now. I'm referring to what's shipped with XL C/C++ https://www-01.ibm.com/servers/resourcelink/svc00100.nsf/pages/xlCC++V241ForZOsV24?OpenDocument -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Software drag racing
On 6/24/2021 9:34 PM, David Crayford wrote: If you've got the XLC 2.4.1 it will will be installed in the /usr/lpp/cbc/xlclang/exe directory. It's 64-bit only. We use this compiler exclusively now. It's really cool and has neat features such as type checking printf() format flags at compile time. If you're referring to IBM's LLVM-based C/C++ compiler, I believe it is in a closed beta test status right now. -- Phoenix Software International Edward E. Jaffe 831 Parkview Drive North El Segundo, CA 90245 https://www.phoenixsoftware.com/ This e-mail message, including any attachments, appended messages and the information contained therein, is for the sole use of the intended recipient(s). If you are not an intended recipient or have otherwise received this email message in error, any use, dissemination, distribution, review, storage or copying of this e-mail message and the information contained therein is strictly prohibited. If you are not an intended recipient, please contact the sender by reply e-mail and destroy all copies of this email message and do not otherwise utilize or retain this email message or any or all of the information contained therein. Although this email message and any attachments or appended messages are believed to be free of any virus or other defect that might affect any computer system into which it is received and opened, it is the responsibility of the recipient to ensure that it is virus free and no responsibility is accepted by the sender for any loss or damage arising in any way from its opening or use. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Software drag racing
If you've got the XLC 2.4.1 it will will be installed in the /usr/lpp/cbc/xlclang/exe directory. It's 64-bit only. We use this compiler exclusively now. It's really cool and has neat features such as type checking printf() format flags at compile time. On 25/06/2021 12:22 pm, Andrew Rowley wrote: On 25/06/2021 1:45 pm, David Crayford wrote: Interesting! Try compiling using xlclang++ instead of xlc and see how you go. xlclang++ has a far superior standard library. I'm not sure whether it is installed on my system. I tried it and it fails, I think it is looking for module CLCDRVR. Any suggestions where that might be located e.g. a LLQ? I tried CLC* and **.SCLC* but no luck. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Software drag racing
On 25/06/2021 1:45 pm, David Crayford wrote: Interesting! Try compiling using xlclang++ instead of xlc and see how you go. xlclang++ has a far superior standard library. I'm not sure whether it is installed on my system. I tried it and it fails, I think it is looking for module CLCDRVR. Any suggestions where that might be located e.g. a LLQ? I tried CLC* and **.SCLC* but no luck. -- Andrew Rowley Black Hill Software -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Coding for the future - REXX quoting
Assuming that novalue is not active, you can use a symbol anywhere that allows an expression; foo = ISPEXEC ADDRESS VALUE foo The basic form of ADDRESS does not allow an expression for the environment, hence an unquoted name is just uppercased. -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of Bob Bridges [robhbrid...@gmail.com] Sent: Thursday, June 24, 2021 7:40 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: Coding for the future - REXX quoting That brings up an interesting question (by which I mean "a question about which any answers y'all might provide will interest me, at least"). I quote most constants in REXX, depending as little as possible on REXX's interpretation of uninitialized variables. Like so: address ISPEXEC 'VGET ' 'EXECIO * DISKR' ddname '(FINIS' "ALLOCATE DSN('"dsn"') DDN(TEMPDD) SHR" trace 'I' And so on. But some words I don't quote, notably "ISPEXEC" above. I think I got that from the manual, but I gather it would work either way. a) Why does the manual have us quote some words and not others?, and b) when does it make a difference? For that matter, dear reader, what do ~you~ quote? --- Bob Bridges, robhbrid...@gmail.com, cell 336 382-7313 /* A man does not insist on physical beauty in a woman who builds up his morale. After a while he realizes that she ~is~ beautiful -- he just hadn't noticed it at first. -Lazarus Long */ -Original Message- From: IBM Mainframe Discussion List On Behalf Of Seymour J Metz Sent: Thursday, June 24, 2021 09:12 No, I'm saying that the second script is a more expensive version of the first. 'ADDRESS foo bar' evaluates bar and passes it to the foo environment. If you omit the command, then 'ADDRESS foo' just sets the default environment to foo. Commands in the ISPEXEC and ISREDIT environments go to ISPF and ISPF EDIT; they are not TSO commands. There are ISPEXEC and ISREDIT commands for the benefit of those writing in CLIST and you don't need them for REXX. A faster verbose form is: /* rexx */ ADDRESS ISPEXEC "FTOPEN TEMP" ADDRESS ISPEXEC "FTINCL SOMEJCL" ADDRESS ISPEXEC "FTCLOSE" ADDRESS ISPEXEC "VGET (ZTEMPF)" ADDRESS TSO say ztempf I see the use of unquoted symbols as one of the strengths of REXX, when used sensibly. But quoting everything certainly does no harm, and might be marginally faster. -- 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: Coding for the future
No, by multi-line string I mean a string literal split across multiple lines of the source code, whether or not it contains CR, LF or NEL. In, e.g., HLASM you can split a string across multiple lines, although the syntax is ugly. -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of Bob Bridges [robhbrid...@gmail.com] Sent: Thursday, June 24, 2021 7:43 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: Coding for the future Ah, I see; by "multi-line string" you mean, I guess, a string with something like an ASCII CRLF embedded in it. But isn't that a limitation not of REXX but of EBCDIC? Or have I still misunderstood you? --- Bob Bridges, robhbrid...@gmail.com, cell 336 382-7313 /* Unable to locate coffee. Operator halted. */ -Original Message- From: IBM Mainframe Discussion List On Behalf Of Paul Gilmartin Sent: Thursday, June 24, 2021 16:50 No, that's a single-linee string. Verify that with: SAY Longstr --- On Tue, 22 Jun 2021 18:39:19 -0400, Bob Bridges wrote: >Gil, I don't follow what you mean about multi-line strings. I know you can't >mean this, which REXX handles just fine: > > Longstr='blah blah blah blah blah blah blah blah', > 'blah blah blah blah blah blah blah blah blah' -- 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: Software drag racing
Interesting! Try compiling using xlclang++ instead of xlc and see how you go. xlclang++ has a far superior standard library. Nothing matches the speed of C :) mckoss-c830;14259;5.0;1;algorithm=wheel,faithful=yes,bits=1 On 25/06/2021 10:22 am, Andrew Rowley wrote: Dave Plummer has a series of Software Drag Racing videos, using a program to search for prime numbers as a simple speed test for different languages and/or hardware. The "drag race" description acknowledges that it isn't a comprehensive benchmark, just a test of speed at one particular simple task. I thought it would be fun to try it on z/OS. I modified the C++ version to compile on z/OS, and there was a Java version that ran without modification. Results were interesting. - Java was much faster than C++ on z/OS. I modified the C++ version to change the vector to a byte/bit array (as was used in his first version) and performance was much better. However it still only matched Java, it didn't beat it. On other platforms C++ was much faster than Java e.g. 15-50%, maybe more. - 31 bit code was about 10% faster than 64 bit, for both C++ and Java. I configured my zIIP offline to make sure the Java code was running on a regular CP. I'm interested to know why C++ didn't outperform Java. C++ isn't my language, so I might be missing something obvious. Any ideas? Software Drag Racing video: https://www.youtube.com/watch?v=l1j-aF_wyzU C++ to run on z/OS: https://github.com/andrew890/Primes/tree/drag-race/PrimeCPPzOS/solution_1 Java version: https://github.com/andrew890/Primes/tree/drag-race/PrimeJava/solution_1 -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Coding for the future
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 [IBM-MAIN@LISTSERV.UA.EDU] on behalf of David Crayford [dcrayf...@gmail.com] Sent: Thursday, June 24, 2021 9:45 PM To: IBM-MAIN@LISTSERV.UA.EDU 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 [IBM-MAIN@LISTSERV.UA.EDU] on behalf of > David Crayford [dcrayf...@gmail.com] > Sent: Thursday, June 24, 2021 9:29 AM > To: IBM-MAIN@LISTSERV.UA.EDU > 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 [IBM-MAIN@LISTSERV.UA.EDU] on behalf of >> David Crayford [dcrayf...@gmail.com] >> Sent: Thursday, June 24, 2021 5:00 AM >> To: IBM-MAIN@LISTSERV.UA.EDU >> 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 [IBM-MAIN@LISTSERV.UA.EDU] on behalf of >>> David Crayford [dcrayf...@gmail.com] >>> Sent: Wednesday, June 23, 2021 8:57 PM >>> To: IBM-MAIN@LISTSERV.UA.EDU >>> 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
Re: New to DFSMS? New to DFSMShsm? Education!
Thank you Lisa, please do keep posting direct links like this as these happen. It's about time we stop signing up for marketing and "research", before we can get to content. - KB ‐‐‐ Original Message ‐‐‐ On Thursday, June 24th, 2021 at 10:13 PM, Lisa Gundy wrote: > If you are new to DFSMS or have employees that are looking for DFSMS basic > information, refer them to the recordings from our November 2020 DFSMS > Academy event. It was a 3 day event that offered several sessions on DFSMS > topics. > > The link to those recordings are here: > https://ibm.box.com/s/w2jpq95ydynpztbjwdplw3l0hoipl0i8 > > If you are familiar with DFSMS but need some details on the DFSMShsm (HSM) > functionality, then you may be interested in the recordings from our DFSMShsm > Series event. > > The link to those recordings are here: > https://ibm.box.com/v/DFSMS-Academ-DFSMShsm2021 > > To be informed of future events offered by the z/OS DFSMS Academy or events > offered by the parent z/OS Academy, follow the 'New to z' community, and > follow DFSMS on LinkedIn! > > The link to the New to Z community is here: > https://community.ibm.com/community/user/ibmz-and-linuxone/groups/group-home/library?communitykey=53d759c6-31ad-4ebd-b518-0696ea821f14=group-library=2. > > -- > > 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
Software drag racing
Dave Plummer has a series of Software Drag Racing videos, using a program to search for prime numbers as a simple speed test for different languages and/or hardware. The "drag race" description acknowledges that it isn't a comprehensive benchmark, just a test of speed at one particular simple task. I thought it would be fun to try it on z/OS. I modified the C++ version to compile on z/OS, and there was a Java version that ran without modification. Results were interesting. - Java was much faster than C++ on z/OS. I modified the C++ version to change the vector to a byte/bit array (as was used in his first version) and performance was much better. However it still only matched Java, it didn't beat it. On other platforms C++ was much faster than Java e.g. 15-50%, maybe more. - 31 bit code was about 10% faster than 64 bit, for both C++ and Java. I configured my zIIP offline to make sure the Java code was running on a regular CP. I'm interested to know why C++ didn't outperform Java. C++ isn't my language, so I might be missing something obvious. Any ideas? Software Drag Racing video: https://www.youtube.com/watch?v=l1j-aF_wyzU C++ to run on z/OS: https://github.com/andrew890/Primes/tree/drag-race/PrimeCPPzOS/solution_1 Java version: https://github.com/andrew890/Primes/tree/drag-race/PrimeJava/solution_1 -- Andrew Rowley Black Hill Software -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
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 [IBM-MAIN@LISTSERV.UA.EDU] on behalf of David Crayford [dcrayf...@gmail.com] Sent: Thursday, June 24, 2021 9:29 AM To: IBM-MAIN@LISTSERV.UA.EDU 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 [IBM-MAIN@LISTSERV.UA.EDU] on behalf of David Crayford [dcrayf...@gmail.com] Sent: Thursday, June 24, 2021 5:00 AM To: IBM-MAIN@LISTSERV.UA.EDU 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 [IBM-MAIN@LISTSERV.UA.EDU] on behalf of David Crayford [dcrayf...@gmail.com] Sent: Wednesday, June 23, 2021 8:57 PM To: IBM-MAIN@LISTSERV.UA.EDU 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
Re: Coding for the future
On 24/06/2021 9:44 pm, Jeremy Nicoll wrote: On Thu, 24 Jun 2021, at 01:57, David Crayford wrote: For example, to create and ISPF in Lua you instantiate and ISPF object and then communicate with it by calling methods https://lua4z.github.io/Lua4z/modules/ispf.html. That shows eg that you can invoke ispf edit via lua. But can you use lua to tell ispf edit to run a macro (written in lua) and can that macro issue ispf editor commands, and also display ispf panels (eg to find out what the macro should do or display its results) and issue tso commands? Yes to all. Here's an example. The 'ispf.bind' function uses VDEFINE to map ISPF variables to the vars table. local ispexec = ispf.ispexec local isredit = function (cmd) return ispexec("ISREDIT " .. cmd) end isredit "RESET" isredit "(LRECL) = LRECL" local lrecl = ispf.vcopy("LRECL") local vars = ispf.bind { { "dsname", "char", 44}, { "member", "char", 8}, { "line", "charbuf", lrecl}, { "linenum","char", 30}, } isredit "RESET" isredit "(DSNAME) = DATASET" isredit "(MEMBER) = MEMBER" To run a TSO command and print the output for line in tso.exec("HELP ALLOC") do print(line) end How about replacing REXX in eg Netview? Does Netview support C/C++? If so then yes as Lua is designed to be embedded in C/C++ applications. That's why it's the goto language for video game scripting. It runs in CICS just fine just by launching a script from a C++ program. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Coding for the future
On 25/06/2021 6:37 am, Seymour J Metz wrote: What else? Stack and attention handling. Supporting existing REXX-aware code. Possibly rxapi. Address size issues. Would a build of OoRexx without fopen() be useful? Presumably David found it useful. I value languages that support the MVS file system. All I had to do to enable Lua to run from from PDS data sets was to patch the package loader with an extra string "//DD:LUA(%s)" and it worked. The point of difference between Rockets Python and IBMs is that Rocket have switched `open` to `fopen` so `f = open("rb", "type=record,noseek")` will work with data sets. To me that's important but not so much to the millenials as they live in z/OS UNIX and only venture into TSO/SDSF to use SDSF. When I ported ooRexx to z/OS I ran into this roadblock. I mentioned it to the project lead and he suggested introducing delegates. I bailed at that point. Everything about ooRexx is difficult. Porting Python and Lua is relatively easy. All the languages I'm familiar with use a VM so generate bytecode. ooRexx creates a humongous object graph. Every instruction and statement is a C++ class that inherits from an abstract base class. It's OO madness and the major reason why it's carthorse slow. It's a relic of it's time when inheritance was overused. These days inheritance is used with caution and composition is the preferred pattern. Some modern languages like Rust don't even support inheritance. I don't see the point in ooRexx when languages like Python are so much better and easy to learn. [1] https://github.com/ooRexx/ooRexx/blob/master/interpreter/instructions/IfInstruction.hpp Would a port of OoRexx readily support ADDRESS SYSCALL, ADDRESS SDSF, ADDRESS ISREDIT, , perhaps using replaceable packages,unmodified? It would have to in order to be useful. -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of Paul Gilmartin [000433f07816-dmarc-requ...@listserv.ua.edu] Sent: Thursday, June 24, 2021 3:52 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: Coding for the future On Tue, 22 Jun 2021 11:23:41 +, Seymour J Metz wrote: Yes, I know that TSO support requires heavy lifting, and not just for fopen(). Would a build of OoRexx without fopen() be useful? (bI've long wished that catalogued data sets could routinely be mounted via NFS so open() would suffice.) The problem is that those "more modern" languages don't support the close integration of scripts to applications that REXX supports. Would a port of OoRexx readily support ADDRESS SYSCALL, ADDRESS SDSF, ADDRESS ISREDIT, , perhaps using replaceable packages,unmodified? From: David Crayford [dcrayf...@gmail.com] Sent: Tuesday, June 22, 2021 2:45 AM Never going to happen. I ported ooRexx to z/OS UNIX over a decade ago and getting it to work in TSO is a heavy lift. It doesn't use fopen() so needs a lot of patching to work with MVS data sets. It's not worth the effort. There are better, more modern languages available on z/OS now so it's only the diehard REXXers that are interested. -- gil -- 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: z/OS SYSVAR looks weird
It's not DFSORT. It's code that does a character compare against some literal to see if the RACF level is at least 'x' (that presumably supports some particular function or behavior). Level = sysvar('SYSLRACF') If Level > '7730' ... /* support is available ... */ That compare will be false for a return value of '77A0'. It is kind of poor design returning a character value that must be treated as a hex string in order to get the behavior that people will expect. Charles -Original Message- From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf Of Paul Gilmartin Sent: Thursday, June 24, 2021 12:38 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: z/OS SYSVAR looks weird On Mon, 21 Jun 2021 14:35:46 -0700, Charles Mills wrote: >Did you read the doc? They are concerned because 77A0 will character compare >low to 7790 and mess up peoples' logic. Seems to me if you do character >compares on hex data you get what you deserve, but I don't make up the rules. > Errr ... "77A0" < "7790" (EBCDIC) "77A0" > "7790" (ASCII) Do they need to specify the CCSID? (I believe DFSORT provides such an option.) The doc is probably ASCII-centric. -- gil -- 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: Coding for the future
Ah, I see; by "multi-line string" you mean, I guess, a string with something like an ASCII CRLF embedded in it. But isn't that a limitation not of REXX but of EBCDIC? Or have I still misunderstood you? --- Bob Bridges, robhbrid...@gmail.com, cell 336 382-7313 /* Unable to locate coffee. Operator halted. */ -Original Message- From: IBM Mainframe Discussion List On Behalf Of Paul Gilmartin Sent: Thursday, June 24, 2021 16:50 No, that's a single-linee string. Verify that with: SAY Longstr --- On Tue, 22 Jun 2021 18:39:19 -0400, Bob Bridges wrote: >Gil, I don't follow what you mean about multi-line strings. I know you can't >mean this, which REXX handles just fine: > > Longstr='blah blah blah blah blah blah blah blah', > 'blah blah blah blah blah blah blah blah blah' -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Coding for the future - REXX quoting
That brings up an interesting question (by which I mean "a question about which any answers y'all might provide will interest me, at least"). I quote most constants in REXX, depending as little as possible on REXX's interpretation of uninitialized variables. Like so: address ISPEXEC 'VGET ' 'EXECIO * DISKR' ddname '(FINIS' "ALLOCATE DSN('"dsn"') DDN(TEMPDD) SHR" trace 'I' And so on. But some words I don't quote, notably "ISPEXEC" above. I think I got that from the manual, but I gather it would work either way. a) Why does the manual have us quote some words and not others?, and b) when does it make a difference? For that matter, dear reader, what do ~you~ quote? --- Bob Bridges, robhbrid...@gmail.com, cell 336 382-7313 /* A man does not insist on physical beauty in a woman who builds up his morale. After a while he realizes that she ~is~ beautiful -- he just hadn't noticed it at first. -Lazarus Long */ -Original Message- From: IBM Mainframe Discussion List On Behalf Of Seymour J Metz Sent: Thursday, June 24, 2021 09:12 No, I'm saying that the second script is a more expensive version of the first. 'ADDRESS foo bar' evaluates bar and passes it to the foo environment. If you omit the command, then 'ADDRESS foo' just sets the default environment to foo. Commands in the ISPEXEC and ISREDIT environments go to ISPF and ISPF EDIT; they are not TSO commands. There are ISPEXEC and ISREDIT commands for the benefit of those writing in CLIST and you don't need them for REXX. A faster verbose form is: /* rexx */ ADDRESS ISPEXEC "FTOPEN TEMP" ADDRESS ISPEXEC "FTINCL SOMEJCL" ADDRESS ISPEXEC "FTCLOSE" ADDRESS ISPEXEC "VGET (ZTEMPF)" ADDRESS TSO say ztempf I see the use of unquoted symbols as one of the strengths of REXX, when used sensibly. But quoting everything certainly does no harm, and might be marginally faster. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Coding for the future
The first time I wrote a 200-line program in REXX (a nightly update for ACF2), I wondered whether I should feel guilty about it. But that was two decades ago. --- Bob Bridges, robhbrid...@gmail.com, cell 336 382-7313 /* If God had wanted me to touch my toes, he would have put them on my knees. */ -Original Message- From: IBM Mainframe Discussion List On Behalf Of Seymour J Metz Sent: Tuesday, June 22, 2021 22:38 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? -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Coding for the future
> What else? Stack and attention handling. Supporting existing REXX-aware code. Possibly rxapi. Address size issues. > Would a build of OoRexx without fopen() be useful? Presumably David found it useful. > Would a port of OoRexx readily support ADDRESS SYSCALL, ADDRESS SDSF, > ADDRESS ISREDIT, , perhaps using replaceable packages,unmodified? It would have to in order to be useful. -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of Paul Gilmartin [000433f07816-dmarc-requ...@listserv.ua.edu] Sent: Thursday, June 24, 2021 3:52 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: Coding for the future On Tue, 22 Jun 2021 11:23:41 +, Seymour J Metz wrote: >Yes, I know that TSO support requires heavy lifting, and not just for fopen(). > > Would a build of OoRexx without fopen() be useful? (bI've long wished that catalogued data sets could routinely be mounted via NFS so open() would suffice.) >The problem is that those "more modern" languages don't support the close >integration of scripts to applications that REXX supports. > Would a port of OoRexx readily support ADDRESS SYSCALL, ADDRESS SDSF, ADDRESS ISREDIT, , perhaps using replaceable packages,unmodified? > >From: David Crayford [dcrayf...@gmail.com] >Sent: Tuesday, June 22, 2021 2:45 AM > >Never going to happen. I ported ooRexx to z/OS UNIX over a decade ago >and getting it to work in TSO is a heavy lift. It doesn't use fopen() so >needs a lot of patching to work with MVS data sets. It's not worth the >effort. There are better, more modern languages available on z/OS now so >it's only the diehard REXXers that are interested. -- gil -- 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: Coding for the future
> No, that's a single-linee string. No, it's the concatenation of two strings with a separating blank. > The loop setup, iteration, and termination should be part of the DO, In a C for statement, not in general. -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of Paul Gilmartin [000433f07816-dmarc-requ...@listserv.ua.edu] Sent: Thursday, June 24, 2021 4:49 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: Coding for the future On Tue, 22 Jun 2021 18:39:19 -0400, Bob Bridges wrote: >Gil, I don't follow what you mean about multi-line strings. I know you can't >mean this, which REXX handles just fine: > > Longstr='blah blah blah blah blah blah blah blah', > 'blah blah blah blah blah blah blah blah blah' > No, that's a single-linee string. Verify that with: SAY Longstr >And your second wish is surely not significantly different from: > > list='ssn ssx stm wcn wcx wln wlx wld' > do while list<>'' >parse var list val list >/* etc */ > >...which I do frequently. > Style. The loop setup, iteration, and termination should be part of the DO, even s I woulfn't code: I = 1 DO WHILE I <= 10 whatever I = I + 1 END -- gil -- 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: ISPF Edit: Introduce New SUBMIT Module
It causes an ENDREQ. -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of Paul Gilmartin [000433f07816-dmarc-requ...@listserv.ua.edu] Sent: Thursday, June 24, 2021 5:12 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: ISPF Edit: Introduce New SUBMIT Module On Thu, 24 Jun 2021 12:28:18 +, Seymour J Metz wrote: > >It is easy to copy some or all of the data to an internal reader, followed by >a '/*EOF'. ... > I've never needed a '/*EOF'. What's it good for? -- gil -- 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: ISPF Edit: Introduce New SUBMIT Module
In the days of cards you didn't need no stinking /*EOF -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of Gibney, Dave [gib...@wsu.edu] Sent: Thursday, June 24, 2021 5:21 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: ISPF Edit: Introduce New SUBMIT Module In the days of cards, when your //SYSIN DD * might be the last file in the current deck on the reader > -Original Message- > From: IBM Mainframe Discussion List On > Behalf Of Paul Gilmartin > Sent: Thursday, June 24, 2021 2:12 PM > To: IBM-MAIN@LISTSERV.UA.EDU > Subject: Re: ISPF Edit: Introduce New SUBMIT Module > > On Thu, 24 Jun 2021 12:28:18 +, Seymour J Metz wrote: > > > >It is easy to copy some or all of the data to an internal reader, followed > >by a > '/*EOF'. ... > > > I've never needed a '/*EOF'. What's it good for? > > -- gil > > -- > 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: z/OS SYSVAR looks weird
The obvious problem here is that the manuals specify that SYSLRACF returns the RACF level [as a character string], but give zero guidance about valid ways to interpret or use the value. If this will always be the suffix of an FMID AND the rules for RACF FMID assignment guarantee that comparing as character-encoded hexadecimal values will always sort later releases higher, then that ought to have been explicitly stated. The problem with unfreezing SYSLRACF is the possibility of breaking existing code using other comparison techniques that worked prior to level "77A0". It would seem that there are several plausible choices at this point: (1) Fix the documentation to be specific about valid usage of SYSLRACF and warn of future "unfreeze" of SYSLRACF to reflect true FMID, fix any mis-use in IBM code, and require installations to fix any installation misuse as part of some future migration. (2) Keep SYSLRACF as-is and introduce a new SYSVAR for true RACF FMID suffix with well defined usage rules, and require any new code needing to verify RACF at a level of "77A0" or above to use the new variable and the explicitly-stated comparison rules. or, if there is no rule that FMID suffixes taken as a hex value always increase in later product releases, (3) introduce a new SYSVAR that returns some kind of RACF level set # guaranteed to increase sequentially for later releases and require that future code compare with that for determining availability of features at "77A0" and beyond. It could still be useful to have a SYSVAR with the true RACF FMID suffix, even if that is not the best thing to test to determine available features. Joel C. Ewing On 6/24/21 2:38 PM, Paul Gilmartin wrote: > On Mon, 21 Jun 2021 14:35:46 -0700, Charles Mills wrote: > >> Did you read the doc? They are concerned because 77A0 will character compare >> low to 7790 and mess up peoples' logic. Seems to me if you do character >> compares on hex data you get what you deserve, but I don't make up the rules. >> > Errr ... > "77A0" < "7790" (EBCDIC) > "77A0" > "7790" (ASCII) > > Do they need to specify the CCSID? (I believe DFSORT provides such an > option.) > > The doc is probably ASCII-centric. > > -- gil > > ... -- Joel C. Ewing -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: ISPF Edit: Introduce New SUBMIT Module
If you are using an ACB for job submission it terminates the stream, thus generating a job number, without closing the file. So you can keep the file open for further job submission. Strangely enough, although /*EOF is not a JES3 JECL statement, it works on JES3 as well. Lennie Dymoke-Bradshaw https://rsclweb.com ‘Dance like no one is watching. Encrypt like everyone is.’ -Original Message- From: IBM Mainframe Discussion List On Behalf Of Paul Gilmartin Sent: 24 June 2021 22:12 To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: ISPF Edit: Introduce New SUBMIT Module On Thu, 24 Jun 2021 12:28:18 +, Seymour J Metz wrote: > >It is easy to copy some or all of the data to an internal reader, followed by >a '/*EOF'. ... > I've never needed a '/*EOF'. What's it good for? -- gil -- 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: ISPF Edit: Introduce New SUBMIT Module
In the days of cards, when your //SYSIN DD * might be the last file in the current deck on the reader > -Original Message- > From: IBM Mainframe Discussion List On > Behalf Of Paul Gilmartin > Sent: Thursday, June 24, 2021 2:12 PM > To: IBM-MAIN@LISTSERV.UA.EDU > Subject: Re: ISPF Edit: Introduce New SUBMIT Module > > On Thu, 24 Jun 2021 12:28:18 +, Seymour J Metz wrote: > > > >It is easy to copy some or all of the data to an internal reader, followed > >by a > '/*EOF'. ... > > > I've never needed a '/*EOF'. What's it good for? > > -- gil > > -- > 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: ISPF Edit: Introduce New SUBMIT Module
Like war, absolutely nothin' On Thu, Jun 24, 2021 at 5:12 PM Paul Gilmartin < 000433f07816-dmarc-requ...@listserv.ua.edu> wrote: > On Thu, 24 Jun 2021 12:28:18 +, Seymour J Metz wrote: > > > >It is easy to copy some or all of the data to an internal reader, > followed by a '/*EOF'. ... > > > I've never needed a '/*EOF'. What's it good for? > > -- gil > > -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: ISPF Edit: Introduce New SUBMIT Module
On Thu, 24 Jun 2021 12:28:18 +, Seymour J Metz wrote: > >It is easy to copy some or all of the data to an internal reader, followed by >a '/*EOF'. ... > I've never needed a '/*EOF'. What's it good for? -- gil -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: z/OS SYSVAR looks weird
How about an option to set either value (PTFs to swap values) and make it a hold option for the user to test first? On Thu, Jun 24, 2021 at 2:38 PM Paul Gilmartin <000433f07816-dmarc-requ...@listserv.ua.edu> wrote: > > On Mon, 21 Jun 2021 14:35:46 -0700, Charles Mills wrote: > > >Did you read the doc? They are concerned because 77A0 will character compare > >low to 7790 and mess up peoples' logic. Seems to me if you do character > >compares on hex data you get what you deserve, but I don't make up the rules. > > > Errr ... > "77A0" < "7790" (EBCDIC) > "77A0" > "7790" (ASCII) > > Do they need to specify the CCSID? (I believe DFSORT provides such an > option.) > > The doc is probably ASCII-centric. > > -- gil > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN -- Mike A Schwab, Springfield IL USA Where do Forest Rangers go to get away from it all? -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Coding for the future
On Tue, 22 Jun 2021 18:39:19 -0400, Bob Bridges wrote: >Gil, I don't follow what you mean about multi-line strings. I know you can't >mean this, which REXX handles just fine: > > Longstr='blah blah blah blah blah blah blah blah', > 'blah blah blah blah blah blah blah blah blah' > No, that's a single-linee string. Verify that with: SAY Longstr >And your second wish is surely not significantly different from: > > list='ssn ssx stm wcn wcx wln wlx wld' > do while list<>'' >parse var list val list >/* etc */ > >...which I do frequently. > Style. The loop setup, iteration, and termination should be part of the DO, even s I woulfn't code: I = 1 DO WHILE I <= 10 whatever I = I + 1 END -- gil -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Coding for the future
On Tue, 22 Jun 2021 11:23:41 +, Seymour J Metz wrote: >Yes, I know that TSO support requires heavy lifting, and not just for fopen(). > What else? Would a build of OoRexx without fopen() be useful? (bI've long wished that catalogued data sets could routinely be mounted via NFS so open() would suffice.) >The problem is that those "more modern" languages don't support the close >integration of scripts to applications that REXX supports. > Would a port of OoRexx readily support ADDRESS SYSCALL, ADDRESS SDSF, ADDRESS ISREDIT, , perhaps using replaceable packages,unmodified? > >From: David Crayford [dcrayf...@gmail.com] >Sent: Tuesday, June 22, 2021 2:45 AM > >Never going to happen. I ported ooRexx to z/OS UNIX over a decade ago >and getting it to work in TSO is a heavy lift. It doesn't use fopen() so >needs a lot of patching to work with MVS data sets. It's not worth the >effort. There are better, more modern languages available on z/OS now so >it's only the diehard REXXers that are interested. -- gil -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: z/OS SYSVAR looks weird
On Mon, 21 Jun 2021 14:35:46 -0700, Charles Mills wrote: >Did you read the doc? They are concerned because 77A0 will character compare >low to 7790 and mess up peoples' logic. Seems to me if you do character >compares on hex data you get what you deserve, but I don't make up the rules. > Errr ... "77A0" < "7790" (EBCDIC) "77A0" > "7790" (ASCII) Do they need to specify the CCSID? (I believe DFSORT provides such an option.) The doc is probably ASCII-centric. -- gil -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: ISPF Edit: Introduce New SUBMIT Module
It appears to me that the way the ISPF SUBMIT command works is that it writes the member (with current updates) to ISPCTL0, then invokes the TSO SUBMIT command for that dataset. Oddly enough, this works even for a temporary dataset. sas -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: ISPF Edit: Introduce New SUBMIT Module
No, I'm saying that *if* IBM ships an ISRCMDS table that means that EDIT lets ISPF look up the command. Are you referring to "ISPEXEC foo""? That goes through TSO command processing before handing foo off to ISPF, while ADDRESS ISPEXEC "oo" hads of foo dirctly to ISPF. BTW, the text in the manual must have been written in the Paleolithic; it mentions CLIST but not REXX. -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of Jeremy Nicoll [jn.ls.mfrm...@letterboxes.org] Sent: Thursday, June 24, 2021 11:52 AM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: ISPF Edit: Introduce New SUBMIT Module On Thu, 24 Jun 2021, at 16:38, Seymour J Metz wrote: > Is there an ISRCMDS tables? If so, that's how EDIT recognizes its > command. Are you sure? You're saying that ispf edit presents the panel then doesn't immediately process the command line to parse its own valid commands? Or does it (if such a command table exists) set each internal cmd to ... trying to remember ... "PASSTHRU" is it? Why would it introduce an extra layer of command processing for its own commands? > Also it's valid to specify SELECT PGM(foo) in a command table. That's why I said "or programs" in "other commands (ie clists, rexx execs or tso command processors) or programs " meaning either select cmd() or select pgm(). A lot of people, in my recollection, assumed that select cmd() could not pass control to a load module, whereas it could ... if that was a (tso) command processor. -- Jeremy Nicoll - my opinions are my own. -- 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: ISPF Edit: Introduce New SUBMIT Module
What kind of PLIST does the program expect? What was the full message? Are you saying that an entry of SELECT CMD($MD) called SUB? What was the table name? -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of David Spiegel [dspiegel...@hotmail.com] Sent: Thursday, June 24, 2021 11:53 AM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: ISPF Edit: Introduce New SUBMIT Module Hi R'Shmuel AMV"SH, I tried PGM(foo) and got ABEND 66D Code 02. I tried CMD(foo), but, that gave me the TSO "version" of SUBMIT, including a prompt for DSNAME. What I really want is to invoke foo the same way that ISPF EDIT/VIEW/BROWSE invokes SUBMIT. That is, it SUBMITs what the user is EDITin/BROWSEing/VIEWing. Thanks and regards, David On 2021-06-24 11:38, Seymour J Metz wrote: > Is there an ISRCMDS tables? If so, that's how EDIT recognizes its command. > Also it's valid to specify SELECT PGM(foo) in a command table. > > > -- > Shmuel (Seymour J.) Metz > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmason.gmu.edu%2F~smetz3data=04%7C01%7C%7C8f10a8dd8c93401a105908d937263722%7C84df9e7fe9f640afb435%7C1%7C0%7C637601459577261428%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000sdata=WD9bJTFgTb9vqcu1%2BTDsYFSUiiFTlOskqq8j%2BHMfg9c%3Dreserved=0 > > > From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of > Jeremy Nicoll [jn.ls.mfrm...@letterboxes.org] > Sent: Thursday, June 24, 2021 10:07 AM > To: IBM-MAIN@LISTSERV.UA.EDU > Subject: Re: ISPF Edit: Introduce New SUBMIT Module > > On Thu, 24 Jun 2021, at 14:55, David Spiegel wrote: >> Hi Jeremy, >> I have an existing RYO SUBMIT Assembler program. >> (Also, without Control Block chasing, I have not a way to access RPLRBAR >> (for Job Number).) > How does that answer my question? > > Why would you not wrap your existing code in just enough ispf macro > assembler to make it work? > > > I noticed that other people talked about ispf command table processing > in answer to your question about how ispf recognises a "submit" command, > but I'm under-convinced that command tables are relevant. Surely ispf edit > recognises all its command line commands because it parses the command > line to determine what it's being asked to do? > > Command tables are (or used to be) only for starting other commands (ie > clists, rexx execs or tso command processors) or programs from any ispf > command line on arbitrary panels in any application. Eg the "tso" that one > can type before a tso command on a commandline executes a "select ..." > via a command-table definition (or it used to). > > -- > Jeremy Nicoll - my opinions are my own. > > -- > 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
New to DFSMS? New to DFSMShsm? Education!
If you are new to DFSMS or have employees that are looking for DFSMS basic information, refer them to the recordings from our November 2020 DFSMS Academy event. It was a 3 day event that offered several sessions on DFSMS topics. The link to those recordings are here: https://ibm.box.com/s/w2jpq95ydynpztbjwdplw3l0hoipl0i8 If you are familiar with DFSMS but need some details on the DFSMShsm (HSM) functionality, then you may be interested in the recordings from our DFSMShsm Series event. The link to those recordings are here: https://ibm.box.com/v/DFSMS-Academ-DFSMShsm2021 To be informed of future events offered by the z/OS DFSMS Academy or events offered by the parent z/OS Academy, follow the 'New to z' community, and follow DFSMS on LinkedIn! The link to the New to Z community is here: https://community.ibm.com/community/user/ibmz-and-linuxone/groups/group-home/library?communitykey=53d759c6-31ad-4ebd-b518-0696ea821f14=group-library=2. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: ISPF Edit: Introduce New SUBMIT Module
Hi R'Shmuel AMV"SH, I tried PGM(foo) and got ABEND 66D Code 02. I tried CMD(foo), but, that gave me the TSO "version" of SUBMIT, including a prompt for DSNAME. What I really want is to invoke foo the same way that ISPF EDIT/VIEW/BROWSE invokes SUBMIT. That is, it SUBMITs what the user is EDITin/BROWSEing/VIEWing. Thanks and regards, David On 2021-06-24 11:38, Seymour J Metz wrote: Is there an ISRCMDS tables? If so, that's how EDIT recognizes its command. Also it's valid to specify SELECT PGM(foo) in a command table. -- Shmuel (Seymour J.) Metz https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmason.gmu.edu%2F~smetz3data=04%7C01%7C%7C8f10a8dd8c93401a105908d937263722%7C84df9e7fe9f640afb435%7C1%7C0%7C637601459577261428%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000sdata=WD9bJTFgTb9vqcu1%2BTDsYFSUiiFTlOskqq8j%2BHMfg9c%3Dreserved=0 From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of Jeremy Nicoll [jn.ls.mfrm...@letterboxes.org] Sent: Thursday, June 24, 2021 10:07 AM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: ISPF Edit: Introduce New SUBMIT Module On Thu, 24 Jun 2021, at 14:55, David Spiegel wrote: Hi Jeremy, I have an existing RYO SUBMIT Assembler program. (Also, without Control Block chasing, I have not a way to access RPLRBAR (for Job Number).) How does that answer my question? Why would you not wrap your existing code in just enough ispf macro assembler to make it work? I noticed that other people talked about ispf command table processing in answer to your question about how ispf recognises a "submit" command, but I'm under-convinced that command tables are relevant. Surely ispf edit recognises all its command line commands because it parses the command line to determine what it's being asked to do? Command tables are (or used to be) only for starting other commands (ie clists, rexx execs or tso command processors) or programs from any ispf command line on arbitrary panels in any application. Eg the "tso" that one can type before a tso command on a commandline executes a "select ..." via a command-table definition (or it used to). -- Jeremy Nicoll - my opinions are my own. -- 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: ISPF Edit: Introduce New SUBMIT Module
On Thu, 24 Jun 2021, at 16:38, Seymour J Metz wrote: > Is there an ISRCMDS tables? If so, that's how EDIT recognizes its > command. Are you sure? You're saying that ispf edit presents the panel then doesn't immediately process the command line to parse its own valid commands? Or does it (if such a command table exists) set each internal cmd to ... trying to remember ... "PASSTHRU" is it? Why would it introduce an extra layer of command processing for its own commands? > Also it's valid to specify SELECT PGM(foo) in a command table. That's why I said "or programs" in "other commands (ie clists, rexx execs or tso command processors) or programs " meaning either select cmd() or select pgm(). A lot of people, in my recollection, assumed that select cmd() could not pass control to a load module, whereas it could ... if that was a (tso) command processor. -- Jeremy Nicoll - my opinions are my own. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: ISPF Edit: Introduce New SUBMIT Module
> I need help to figure out how to add a new Primary Command to ISPF Edit, > so that I can test a RYO SUBMIT Command written in Assembler. David, Define your own command table using the ISPF Command Table Utility aka 3.9 https://www.ibm.com/docs/en/zos/2.4.0?topic=commands-using-command-tables-define Bruce Koss presented at share about how to add your own commands to the command table https://share.confex.com/share/119/webprogram/Handout/Session11559/11559%20-%20An%20Experienced%20ISPF%20User%20Shares%20his%20Secrets.pdf Thanks, Kolusu -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: ISPF Edit: Introduce New SUBMIT Module
Is there an ISRCMDS tables? If so, that's how EDIT recognizes its command. Also it's valid to specify SELECT PGM(foo) in a command table. -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of Jeremy Nicoll [jn.ls.mfrm...@letterboxes.org] Sent: Thursday, June 24, 2021 10:07 AM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: ISPF Edit: Introduce New SUBMIT Module On Thu, 24 Jun 2021, at 14:55, David Spiegel wrote: > Hi Jeremy, > I have an existing RYO SUBMIT Assembler program. > (Also, without Control Block chasing, I have not a way to access RPLRBAR > (for Job Number).) How does that answer my question? Why would you not wrap your existing code in just enough ispf macro assembler to make it work? I noticed that other people talked about ispf command table processing in answer to your question about how ispf recognises a "submit" command, but I'm under-convinced that command tables are relevant. Surely ispf edit recognises all its command line commands because it parses the command line to determine what it's being asked to do? Command tables are (or used to be) only for starting other commands (ie clists, rexx execs or tso command processors) or programs from any ispf command line on arbitrary panels in any application. Eg the "tso" that one can type before a tso command on a commandline executes a "select ..." via a command-table definition (or it used to). -- Jeremy Nicoll - my opinions are my own. -- 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: IGGCSI00
Mr Scott, Thank you for the tips.It solved my problem. Best Regards Ituriel do Nascimento Neto z/OS System Programmer Em quinta-feira, 24 de junho de 2021 09:54:04 BRT, Rob Scott escreveu: This is what I have coded in the past : (o) Setting up CSIFIELD CSIFILTK Your usercat name CSICATNM Your mastercat name CSIOPTNS "F" for fullword values CSIS1CAT "Y" just one catalog CSINUMEN Set to 1 field CSIENTS Set to "NAME" (o) Returned area looks like : IGGCSIWH (Header) IGGCSIWC (Catalog) IGGCSIWE (Usercat entry) (o) If CSIEDATA is ON and CSIFDDAT is not NULL then divide CSILENF1 by maximum alias length (44) to get the number of aliases. Rob Scott Rocket Software -Original Message- From: IBM Mainframe Discussion List On Behalf Of Ituriel do Neto Sent: 24 June 2021 13:33 To: IBM-MAIN@LISTSERV.UA.EDU Subject: IGGCSI00 EXTERNAL EMAIL Hi all, I'm coding a new program that will get information from Usercatalogs using IGGCSI00 API,but i'm stuck trying to reproduce IDCAMS command LISTCAT ENT(UCAT) ALL. Actually, i am interested in obtaining the number of ALIAS a specific UCAT has, and this IDCAMS commandshows that information, i just have to count it. IDCAMS SYSTEM SERVICES LISTCAT ENT(UCAT.XXX) ALL USERCATALOG --- UCAT.XXX IN-CAT --- CATALOG.MASTER HISTORY RELEASE2 VOLUMES VOLSERVV ASSOCIATIONS ALIASXX01 ALIASXX02 ALIASXX03 I can get this ALIAS information from MCAT but i want to make a smarter code.Could some of you, gurus, point me to the right values of CSICATNM, CSIFILTK, CSIDTYPS ? Thanks in advance Best Regards Ituriel do Nascimento Netoz/OS System Programmer -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN Rocket Software, Inc. and subsidiaries ■ 77 Fourth Avenue, Waltham MA 02451 ■ Main Office Toll Free Number: +1 855.577.4323 Contact Customer Support: https://my.rocketsoftware.com/RocketCommunity/RCEmailSupport Unsubscribe from Marketing Messages/Manage Your Subscription Preferences - http://www.rocketsoftware.com/manage-your-email-preferences Privacy Policy - http://www.rocketsoftware.com/company/legal/privacy-policy This communication and any attachments may contain confidential information of Rocket Software, Inc. All unauthorized use, disclosure or distribution is prohibited. If you are not the intended recipient, please notify Rocket Software immediately and destroy all copies of this communication. Thank you. -- 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: ISPF Edit: Introduce New SUBMIT Module
On Thu, 24 Jun 2021, at 14:55, David Spiegel wrote: > Hi Jeremy, > I have an existing RYO SUBMIT Assembler program. > (Also, without Control Block chasing, I have not a way to access RPLRBAR > (for Job Number).) I should have added to my previous answer: - depending on how you've written your RYO submit, it might already (almost) work if you merely invoke it by preceding its member name with a "!" (as one has to for assembler - or I guess more properly - load module macros). - How does your RYO solution access the contents of an edit or view file buffer without (already) using ispf services via isplink or ispexec? - ISTR you wanted to TPUT info to the screen? Why would you do that when instead you could use SETMSG to display it in a standard ispf message? -- Jeremy Nicoll - my opinions are my own. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: ISPF Edit: Introduce New SUBMIT Module
On Thu, 24 Jun 2021, at 14:55, David Spiegel wrote: > Hi Jeremy, > I have an existing RYO SUBMIT Assembler program. > (Also, without Control Block chasing, I have not a way to access RPLRBAR > (for Job Number).) How does that answer my question? Why would you not wrap your existing code in just enough ispf macro assembler to make it work? I noticed that other people talked about ispf command table processing in answer to your question about how ispf recognises a "submit" command, but I'm under-convinced that command tables are relevant. Surely ispf edit recognises all its command line commands because it parses the command line to determine what it's being asked to do? Command tables are (or used to be) only for starting other commands (ie clists, rexx execs or tso command processors) or programs from any ispf command line on arbitrary panels in any application. Eg the "tso" that one can type before a tso command on a commandline executes a "select ..." via a command-table definition (or it used to). -- Jeremy Nicoll - my opinions are my own. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: ISPF Edit: Introduce New SUBMIT Module
Hi Jeremy, I have an existing RYO SUBMIT Assembler program. (Also, without Control Block chasing, I have not a way to access RPLRBAR (for Job Number).) Regards, David On 2021-06-24 09:50, Jeremy Nicoll wrote: On Thu, 24 Jun 2021, at 03:25, David Spiegel wrote: Hi, I need help to figure out how to add a new Primary Command to ISPF Edit, so that I can test a RYO SUBMIT Command written in Assembler. Let's assume that my module is called $UBMIT (with an ALIAS of $UB). I do not want to write an Edit Macro to do this. (I already wrote one of these). nor do want to invoke an Edit Macro which will call the Command Processor. Why precisely is an edit macro not an adequate solution, if you write it in assembler? -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: ISPF Edit: Introduce New SUBMIT Module
On Thu, 24 Jun 2021, at 03:25, David Spiegel wrote: > Hi, > I need help to figure out how to add a new Primary Command to ISPF Edit, > so that I can test a RYO SUBMIT Command written in Assembler. > Let's assume that my module is called $UBMIT (with an ALIAS of $UB). > I do not want to write an Edit Macro to do this. (I already wrote one of > these). nor do want to invoke an Edit Macro which will call the Command > Processor. Why precisely is an edit macro not an adequate solution, if you write it in assembler? -- Jeremy Nicoll - my opinions are my own. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Coding for the future
On Thu, 24 Jun 2021, at 01:57, David Crayford wrote: > For example, to create and ISPF in Lua you instantiate and ISPF object > and then communicate with it by calling methods > https://lua4z.github.io/Lua4z/modules/ispf.html. That shows eg that you can invoke ispf edit via lua. But can you use lua to tell ispf edit to run a macro (written in lua) and can that macro issue ispf editor commands, and also display ispf panels (eg to find out what the macro should do or display its results) and issue tso commands? How about replacing REXX in eg Netview? -- Jeremy Nicoll - my opinions are my own. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Coding for the future
That wiki article describes exactly the mechanism I was referring to. -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of David Crayford [dcrayf...@gmail.com] Sent: Thursday, June 24, 2021 9:29 AM To: IBM-MAIN@LISTSERV.UA.EDU 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 [IBM-MAIN@LISTSERV.UA.EDU] on behalf of > David Crayford [dcrayf...@gmail.com] > Sent: Thursday, June 24, 2021 5:00 AM > To: IBM-MAIN@LISTSERV.UA.EDU > 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 [IBM-MAIN@LISTSERV.UA.EDU] on behalf of >> David Crayford [dcrayf...@gmail.com] >> Sent: Wednesday, June 23, 2021 8:57 PM >> To: IBM-MAIN@LISTSERV.UA.EDU >> 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
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://en.wikipedia.org/wiki/Callback_(computer_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 [IBM-MAIN@LISTSERV.UA.EDU] on behalf of David Crayford [dcrayf...@gmail.com] Sent: Thursday, June 24, 2021 5:00 AM To: IBM-MAIN@LISTSERV.UA.EDU 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 [IBM-MAIN@LISTSERV.UA.EDU] on behalf of David Crayford [dcrayf...@gmail.com] Sent: Wednesday, June 23, 2021 8:57 PM To: IBM-MAIN@LISTSERV.UA.EDU 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 [IBM-MAIN@LISTSERV.UA.EDU] on behalf of David Crayford [dcrayf...@gmail.com] Sent: Wednesday, June 23, 2021 3:19 AM To: IBM-MAIN@LISTSERV.UA.EDU 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
Re: TCDB entry in RMM
W dniu 24.06.2021 o 06:48, Peter pisze: Hello When I added virtual volume in RMM, I don't see the TCDB getting updated. Is there any parameter I need to change? zOS 2.4 1. Is it IBM library? 2. How did you check volume entry? Did you remember about V? -- Radoslaw Skorupka Lodz, Poland -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Coding for the future
No, I'm saying that the second script is a more expensive version of the first. 'ADDRESS foo bar' evaluates bar and passes it to the foo environment. If you omit the command, then 'ADDRESS foo' just sets the default environment to foo. Commands in the ISPEXEC and ISREDIT environments go to ISPF and ISPF EDIT; they are not TSO commands. There are ISPEXEC and ISREDIT commands for the benefit of those writing in CLIST and you don't need them for REXX. A faster verbose form is: /* rexx */ ADDRESS ISPEXEC "FTOPEN TEMP" ADDRESS ISPEXEC "FTINCL SOMEJCL" ADDRESS ISPEXEC "FTCLOSE" ADDRESS ISPEXEC "VGET (ZTEMPF)" ADDRESS TSO say ztempf I see the use of unquoted symbols as one of the strengths of REXX, when used sensibly. But quoting everything certainly does no harm, and might be marginally faster. -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of Tom Brennan [t...@tombrennansoftware.com] Sent: Wednesday, June 23, 2021 10:01 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: Coding for the future Ok (probably just for me), so you're saying the two scripts below work quite differently from each other? I always assumed all ADDRESS did was save someone from having to type ISPEXEC over and over. I think you're saying the statements after ADDRESS actually run under control of ISPF instead of calling each routine separately via TSO. I guess I need to open the manual if I wasn't so lazy :) Plus, I don't think I ever coded ADDRESS - it always seemed clearer to repeatedly code ISPEXEC (or whatever) to avoid any confusion later. /* rexx */ ADDRESS ISPEXEC "FTOPEN TEMP" "FTINCL SOMEJCL" "FTCLOSE" "VGET (ZTEMPF)" ADDRESS TSO say ztempf /* rexx */ "ISPEXEC FTOPEN TEMP" "ISPEXEC FTINCL SOMEJCL" "ISPEXEC FTCLOSE" "ISPEXEC VGET (ZTEMPF)" say ztempf I also had a habit of leaving out the double quotes I typed above, but I think that's another side road for this thread, which I'm learning a lot from. On 6/23/2021 6:23 PM, 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. > > 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. > > > -- > Shmuel (Seymour J.) Metz > http://mason.gmu.edu/~smetz3 > > > From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of > David Crayford [dcrayf...@gmail.com] > Sent: Wednesday, June 23, 2021 8:57 PM > To: IBM-MAIN@LISTSERV.UA.EDU > 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
Re: ISPF Edit: Introduce New SUBMIT Module
Why would it require authorization? Just adding it to the ISPF command table or to SELECT on relevant panels should be enough. -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of Lizette Koehler [stars...@mindspring.com] Sent: Wednesday, June 23, 2021 11:34 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: ISPF Edit: Introduce New SUBMIT Module Just a guess But look at SYS1.PARMLIB member IKJTSOxx Or use the TSO Command PARMLIB To see where it exists, what member it is, and what the contents are You might need to set up something in this member AUTHCMD AUTHPGM etc... Is the module a TSO Command Processor? https://www.ibm.com/docs/en/zos/2.1.0?topic=reference-tsoe-commands-subcommands Lizette -Original Message- From: IBM Mainframe Discussion List On Behalf Of David Spiegel Sent: Wednesday, June 23, 2021 7:25 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: ISPF Edit: Introduce New SUBMIT Module Hi, I need help to figure out how to add a new Primary Command to ISPF Edit, so that I can test a RYO SUBMIT Command written in Assembler. Let's assume that my module is called $UBMIT (with an ALIAS of $UB). I do not want to write an Edit Macro to do this. (I already wrote one of these). nor do want to invoke an Edit Macro which will call the Command Processor. (The user will type $UB on the Edit Command Line and use the RYO program instead of the IBM-supplied SUB.) (As an aside, one of the reasons it has to be written in Assembler is so that the program can access the INTRDR's RPLRBAR and thereby TPUT the Job Number after SUBMIT.) Another related question: How does ISPF "know" what SUBMIT means? Thank you in advance, David -- 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: IGGCSI00
This is what I have coded in the past : (o) Setting up CSIFIELD CSIFILTKYour usercat name CSICATNM Your mastercat name CSIOPTNS"F" for fullword values CSIS1CAT "Y" just one catalog CSINUMEN Set to 1 field CSIENTS Set to "NAME" (o) Returned area looks like : IGGCSIWH (Header) IGGCSIWC (Catalog) IGGCSIWE (Usercat entry) (o) If CSIEDATA is ON and CSIFDDAT is not NULL then divide CSILENF1 by maximum alias length (44) to get the number of aliases. Rob Scott Rocket Software -Original Message- From: IBM Mainframe Discussion List On Behalf Of Ituriel do Neto Sent: 24 June 2021 13:33 To: IBM-MAIN@LISTSERV.UA.EDU Subject: IGGCSI00 EXTERNAL EMAIL Hi all, I'm coding a new program that will get information from Usercatalogs using IGGCSI00 API,but i'm stuck trying to reproduce IDCAMS command LISTCAT ENT(UCAT) ALL. Actually, i am interested in obtaining the number of ALIAS a specific UCAT has, and this IDCAMS commandshows that information, i just have to count it. IDCAMS SYSTEM SERVICES LISTCAT ENT(UCAT.XXX) ALL USERCATALOG --- UCAT.XXX IN-CAT --- CATALOG.MASTER HISTORY RELEASE2 VOLUMES VOLSERVV ASSOCIATIONS ALIASXX01 ALIASXX02 ALIASXX03 I can get this ALIAS information from MCAT but i want to make a smarter code.Could some of you, gurus, point me to the right values of CSICATNM, CSIFILTK, CSIDTYPS ? Thanks in advance Best Regards Ituriel do Nascimento Netoz/OS System Programmer -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN Rocket Software, Inc. and subsidiaries ■ 77 Fourth Avenue, Waltham MA 02451 ■ Main Office Toll Free Number: +1 855.577.4323 Contact Customer Support: https://my.rocketsoftware.com/RocketCommunity/RCEmailSupport Unsubscribe from Marketing Messages/Manage Your Subscription Preferences - http://www.rocketsoftware.com/manage-your-email-preferences Privacy Policy - http://www.rocketsoftware.com/company/legal/privacy-policy This communication and any attachments may contain confidential information of Rocket Software, Inc. All unauthorized use, disclosure or distribution is prohibited. If you are not the intended recipient, please notify Rocket Software immediately and destroy all copies of this communication. Thank you. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Coding for the future
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? 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 heavily. -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of David Crayford [dcrayf...@gmail.com] Sent: Thursday, June 24, 2021 5:00 AM To: IBM-MAIN@LISTSERV.UA.EDU 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 [IBM-MAIN@LISTSERV.UA.EDU] on behalf of > David Crayford [dcrayf...@gmail.com] > Sent: Wednesday, June 23, 2021 8:57 PM > To: IBM-MAIN@LISTSERV.UA.EDU > 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 [IBM-MAIN@LISTSERV.UA.EDU] on behalf of >> David Crayford [dcrayf...@gmail.com] >> Sent: Wednesday, June 23, 2021 3:19 AM >> To: IBM-MAIN@LISTSERV.UA.EDU >> 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 >>> >>>
Re: ISPF Edit: Introduce New SUBMIT Module
Hi R'Shmuel AMV"SH, I am aware that ISPF EDIT calls SUBMIT. I want to be able to call a pre-existing Assembler program (which is in a PDS ahead of SYS1.CMDLIB and will be renamed to $UBMIT (thereby "exposing" the IBM SUBMIT)) by changing one character of the ISPF Primary Command, so that for an interim period, users can use either the IBM SUBMIT or the RYO SUBMIT. If all goes well, I am planning to retire the RYO SUBMIT after a trial period. Thanks and regards, David On 2021-06-24 08:28, Seymour J Metz wrote: ISPF EDIT SUBMIT calls TSO SUBMIT. Did you mean that you want to RYO? It is easy to copy some or all of the data to an internal reader, followed by a '/*EOF'. If you need to capture the jobid, a small assembler program can do that using the ACB/RPL interface. -- Shmuel (Seymour J.) Metz https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmason.gmu.edu%2F~smetz3data=04%7C01%7C%7C66e3e9ba8d374ad1013c08d9370b966f%7C84df9e7fe9f640afb435%7C1%7C0%7C637601345181896421%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000sdata=BkvKEHYwu%2BVSrDCQoAwda4mOndOH0VXjMGGN2FOYLiI%3Dreserved=0 From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of David Spiegel [dspiegel...@hotmail.com] Sent: Thursday, June 24, 2021 6:09 AM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: ISPF Edit: Introduce New SUBMIT Module Hi Brian, I am familiar with the Command Table. I want to set up a command to do an ISPF Edit SUBMIT, not a TSO SUBMIT. That also means no for DSNAME. That is, SUBMIT what is being EDITd/BROWSEd/VIEWd. Thanks and regards, David On 2021-06-24 02:36, Brian Westerman wrote: You can call you program anything you want and create a command table entry for it. That way you can leave IBM's submit where it was/is is SYS1.CMDLIB. i.e. (look in option 3.9 of ISPF) and add YourCMD SELECT PGM(yourPGM PRM('')) NEWAPPL(anything) Then when the user types "yourCMD" it will invoke "yourPGM" The PRM part is to pass a parm to yopur program, (in case they type "SUBMIT 'somedataset(member)'". However, if you call your program SUBMIT then it will work outside of ISPF as well, although it will work if you called it yourPGM just as well. The command table just keeps them from having to type "TSO yourPGM" instead of just yourPGM or yourCMD. In any case, you don't want to replace IBM's submit, you just want to make sure that yours is located before IBM's in either a steplib or in a linklist dataset that occurs BEFORE sys1.cmdlib. I think using the name SUBMIT is a really really bad idea, unless you are going to create a alias for IBM's submit (maybe call it IBMSUB), so that if need be you can use it in case yours fails. -- 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
IGGCSI00
Hi all, I'm coding a new program that will get information from Usercatalogs using IGGCSI00 API,but i'm stuck trying to reproduce IDCAMS command LISTCAT ENT(UCAT) ALL. Actually, i am interested in obtaining the number of ALIAS a specific UCAT has, and this IDCAMS commandshows that information, i just have to count it. IDCAMS SYSTEM SERVICES LISTCAT ENT(UCAT.XXX) ALL USERCATALOG --- UCAT.XXX IN-CAT --- CATALOG.MASTER HISTORY RELEASE2 VOLUMES VOLSERVV ASSOCIATIONS ALIASXX01 ALIASXX02 ALIASXX03 I can get this ALIAS information from MCAT but i want to make a smarter code.Could some of you, gurus, point me to the right values of CSICATNM, CSIFILTK, CSIDTYPS ? Thanks in advance Best Regards Ituriel do Nascimento Netoz/OS System Programmer -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: SDSF SYS command oddity
Bob Please check that you have the PTFs for APAR PH18546 installed as this addressed a situation similar to what you describe. If you still experience the problem with that PTF installed, please report to IBM via your normal support process. Rob Scott Rocket Software -Original Message- From: IBM Mainframe Discussion List On Behalf Of Richards, Robert B. (CTR) Sent: 24 June 2021 12:46 To: IBM-MAIN@LISTSERV.UA.EDU Subject: SDSF SYS command oddity EXTERNAL EMAIL We are in the middle of a first time site switch test where we used CBU to increase the MSU capacity of the box to match our production environment. It was discovered that Group Capacity had not been set on the box at the alternate site, so I rectified that using SAVE and CHANGE running system. So far, so good. Then late yesterday, my performance guy noticed that the SDSF SYS command had not reflected the dynamic change. I suspect that an IPL would clear up the discrepancy, but wondered if anyone else had seen this oddity. Bob -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN Rocket Software, Inc. and subsidiaries ■ 77 Fourth Avenue, Waltham MA 02451 ■ Main Office Toll Free Number: +1 855.577.4323 Contact Customer Support: https://my.rocketsoftware.com/RocketCommunity/RCEmailSupport Unsubscribe from Marketing Messages/Manage Your Subscription Preferences - http://www.rocketsoftware.com/manage-your-email-preferences Privacy Policy - http://www.rocketsoftware.com/company/legal/privacy-policy This communication and any attachments may contain confidential information of Rocket Software, Inc. All unauthorized use, disclosure or distribution is prohibited. If you are not the intended recipient, please notify Rocket Software immediately and destroy all copies of this communication. Thank you. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: ISPF Edit: Introduce New SUBMIT Module
ISPF EDIT SUBMIT calls TSO SUBMIT. Did you mean that you want to RYO? It is easy to copy some or all of the data to an internal reader, followed by a '/*EOF'. If you need to capture the jobid, a small assembler program can do that using the ACB/RPL interface. -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of David Spiegel [dspiegel...@hotmail.com] Sent: Thursday, June 24, 2021 6:09 AM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: ISPF Edit: Introduce New SUBMIT Module Hi Brian, I am familiar with the Command Table. I want to set up a command to do an ISPF Edit SUBMIT, not a TSO SUBMIT. That also means no for DSNAME. That is, SUBMIT what is being EDITd/BROWSEd/VIEWd. Thanks and regards, David On 2021-06-24 02:36, Brian Westerman wrote: > You can call you program anything you want and create a command table entry > for it. That way you can leave IBM's submit where it was/is is SYS1.CMDLIB. > > > i.e. (look in option 3.9 of ISPF) and add > > YourCMD SELECT PGM(yourPGM PRM('')) NEWAPPL(anything) > > > Then when the user types "yourCMD" it will invoke "yourPGM" > > The PRM part is to pass a parm to yopur program, (in case they type "SUBMIT > 'somedataset(member)'". > > However, if you call your program SUBMIT then it will work outside of ISPF as > well, although it will work if you called it yourPGM just as well. The > command table just keeps them from having to type "TSO yourPGM" instead of > just yourPGM or yourCMD. > > > In any case, you don't want to replace IBM's submit, you just want to make > sure that yours is located before IBM's in either a steplib or in a linklist > dataset that occurs BEFORE sys1.cmdlib. > > I think using the name SUBMIT is a really really bad idea, unless you are > going to create a alias for IBM's submit (maybe call it IBMSUB), so that if > need be you can use it in case yours fails. > > -- > 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: ISPF Edit: Introduce New SUBMIT Module
I don't see where the OP is asking for the job number. If he doesn't need it, then there's no need for any assembler code. If he does need the job number, then OUTTRAP won't help, since he doesn't want to use SUBMIT. In that case, a small program using ACB/RPL can copy to the internal reader and return the jobid. There's probably already something on the CBTTAPE that does that. -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of ITschak Mugzach [imugz...@gmail.com] Sent: Thursday, June 24, 2021 8:04 AM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: ISPF Edit: Introduce New SUBMIT Module In this case I would write a small rexx program to call the assembler. As it is rexx, the name typed assumed to be a macro. BTW, the problem can easily be solved by rexx OUTTRAP (to capture the job number). ITschak ITschak Mugzach *|** IronSphere Platform* *|* *Information Security Continuous Monitoring for z/OS, x/Linux & IBM I **| z/VM coming soon * On Thu, Jun 24, 2021 at 2:46 PM Rupert Reynolds wrote: > > > > > > > If I read this right, OP is asking for a replacement for the edit SUB > command, which does some alternative processing before the job is > submitted, but is basically quite similar to the original SUB. > > If a Rexx EDIT macro is not acceptable, my first instinct is to look for a > zOS exit that runs when writing to the internal reader, or a JES2 exit that > runs when jobs are submitted (there will be more than 1). > > As an alternative, can automation do what's required? > > Roops > > > . > > -Original Message- > > From: IBM Mainframe Discussion List On Behalf > > Of David Spiegel > > Sent: Thursday, June 24, 2021 5:09 AM > > To: IBM-MAIN@LISTSERV.UA.EDU > > Subject: Re: ISPF Edit: Introduce New SUBMIT Module > > > > Hi Brian, > > I am familiar with the Command Table. I want to set up a command to do an > > ISPF Edit SUBMIT, not a TSO SUBMIT. That also means no for DSNAME. > > That is, SUBMIT what is being EDITd/BROWSEd/VIEWd. > > > > Thanks and regards, > > David > > > > > > > > -- > 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: ISPF Edit: Introduce New SUBMIT Module
In this case I would write a small rexx program to call the assembler. As it is rexx, the name typed assumed to be a macro. BTW, the problem can easily be solved by rexx OUTTRAP (to capture the job number). ITschak ITschak Mugzach *|** IronSphere Platform* *|* *Information Security Continuous Monitoring for z/OS, x/Linux & IBM I **| z/VM coming soon * On Thu, Jun 24, 2021 at 2:46 PM Rupert Reynolds wrote: > > > > > > > If I read this right, OP is asking for a replacement for the edit SUB > command, which does some alternative processing before the job is > submitted, but is basically quite similar to the original SUB. > > If a Rexx EDIT macro is not acceptable, my first instinct is to look for a > zOS exit that runs when writing to the internal reader, or a JES2 exit that > runs when jobs are submitted (there will be more than 1). > > As an alternative, can automation do what's required? > > Roops > > > . > > -Original Message- > > From: IBM Mainframe Discussion List On Behalf > > Of David Spiegel > > Sent: Thursday, June 24, 2021 5:09 AM > > To: IBM-MAIN@LISTSERV.UA.EDU > > Subject: Re: ISPF Edit: Introduce New SUBMIT Module > > > > Hi Brian, > > I am familiar with the Command Table. I want to set up a command to do an > > ISPF Edit SUBMIT, not a TSO SUBMIT. That also means no for DSNAME. > > That is, SUBMIT what is being EDITd/BROWSEd/VIEWd. > > > > Thanks and regards, > > David > > > > > > > > -- > 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: ISPF Edit: Introduce New SUBMIT Module
> > > If I read this right, OP is asking for a replacement for the edit SUB command, which does some alternative processing before the job is submitted, but is basically quite similar to the original SUB. If a Rexx EDIT macro is not acceptable, my first instinct is to look for a zOS exit that runs when writing to the internal reader, or a JES2 exit that runs when jobs are submitted (there will be more than 1). As an alternative, can automation do what's required? Roops > . -Original Message- > From: IBM Mainframe Discussion List On Behalf > Of David Spiegel > Sent: Thursday, June 24, 2021 5:09 AM > To: IBM-MAIN@LISTSERV.UA.EDU > Subject: Re: ISPF Edit: Introduce New SUBMIT Module > > Hi Brian, > I am familiar with the Command Table. I want to set up a command to do an > ISPF Edit SUBMIT, not a TSO SUBMIT. That also means no for DSNAME. > That is, SUBMIT what is being EDITd/BROWSEd/VIEWd. > > Thanks and regards, > David > > > -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
SDSF SYS command oddity
We are in the middle of a first time site switch test where we used CBU to increase the MSU capacity of the box to match our production environment. It was discovered that Group Capacity had not been set on the box at the alternate site, so I rectified that using SAVE and CHANGE running system. So far, so good. Then late yesterday, my performance guy noticed that the SDSF SYS command had not reflected the dynamic change. I suspect that an IPL would clear up the discrepancy, but wondered if anyone else had seen this oddity. Bob -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: ISPF Edit: Introduce New SUBMIT Module
What you are trying to do is effectively an ISPF Edit Macro that you call $UB, and it will work with Edit and View. You can code an edit macro in assembler. It is just a load module that would reside in ISPLLIB (or steplib or linklist). Lionel B. Dyck <>< Website: https://www.lbdsoftware.com Github: https://github.com/lbdyck “Worry more about your character than your reputation. Character is what you are, reputation merely what others think you are.” - - - John Wooden -Original Message- From: IBM Mainframe Discussion List On Behalf Of David Spiegel Sent: Thursday, June 24, 2021 5:09 AM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: ISPF Edit: Introduce New SUBMIT Module Hi Brian, I am familiar with the Command Table. I want to set up a command to do an ISPF Edit SUBMIT, not a TSO SUBMIT. That also means no for DSNAME. That is, SUBMIT what is being EDITd/BROWSEd/VIEWd. Thanks and regards, David On 2021-06-24 02:36, Brian Westerman wrote: > You can call you program anything you want and create a command table entry > for it. That way you can leave IBM's submit where it was/is is SYS1.CMDLIB. > > > i.e. (look in option 3.9 of ISPF) and add > > YourCMD SELECT PGM(yourPGM PRM('')) NEWAPPL(anything) > > > Then when the user types "yourCMD" it will invoke "yourPGM" > > The PRM part is to pass a parm to yopur program, (in case they type "SUBMIT > 'somedataset(member)'". > > However, if you call your program SUBMIT then it will work outside of ISPF as > well, although it will work if you called it yourPGM just as well. The > command table just keeps them from having to type "TSO yourPGM" instead of > just yourPGM or yourCMD. > > > In any case, you don't want to replace IBM's submit, you just want to make > sure that yours is located before IBM's in either a steplib or in a linklist > dataset that occurs BEFORE sys1.cmdlib. > > I think using the name SUBMIT is a really really bad idea, unless you are > going to create a alias for IBM's submit (maybe call it IBMSUB), so that if > need be you can use it in case yours fails. > > -- > 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: ISPF Edit: Introduce New SUBMIT Module
So write an edit macro to copy the all the lines onto a Rexx stack and use "SUBMIT * END(//)" (or similar) to submit it! You can then use OUTTRAP() to capture the message from SUBMIT and stop the screen breaking up. Robin -Original Message- From: IBM Mainframe Discussion List On Behalf Of David Spiegel Sent: 24 June 2021 17:09 To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: ISPF Edit: Introduce New SUBMIT Module Hi Brian, I am familiar with the Command Table. I want to set up a command to do an ISPF Edit SUBMIT, not a TSO SUBMIT. That also means no for DSNAME. That is, SUBMIT what is being EDITd/BROWSEd/VIEWd. Thanks and regards, David On 2021-06-24 02:36, Brian Westerman wrote: > You can call you program anything you want and create a command table entry > for it. That way you can leave IBM's submit where it was/is is SYS1.CMDLIB. > > > i.e. (look in option 3.9 of ISPF) and add > > YourCMD SELECT PGM(yourPGM PRM('')) NEWAPPL(anything) > > > Then when the user types "yourCMD" it will invoke "yourPGM" > > The PRM part is to pass a parm to yopur program, (in case they type "SUBMIT > 'somedataset(member)'". > > However, if you call your program SUBMIT then it will work outside of ISPF as > well, although it will work if you called it yourPGM just as well. The > command table just keeps them from having to type "TSO yourPGM" instead of > just yourPGM or yourCMD. > > > In any case, you don't want to replace IBM's submit, you just want to make > sure that yours is located before IBM's in either a steplib or in a linklist > dataset that occurs BEFORE sys1.cmdlib. > > I think using the name SUBMIT is a really really bad idea, unless you are > going to create a alias for IBM's submit (maybe call it IBMSUB), so that if > need be you can use it in case yours fails. > > -- > 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: ISPF Edit: Introduce New SUBMIT Module
Hi Brian, I am familiar with the Command Table. I want to set up a command to do an ISPF Edit SUBMIT, not a TSO SUBMIT. That also means no for DSNAME. That is, SUBMIT what is being EDITd/BROWSEd/VIEWd. Thanks and regards, David On 2021-06-24 02:36, Brian Westerman wrote: You can call you program anything you want and create a command table entry for it. That way you can leave IBM's submit where it was/is is SYS1.CMDLIB. i.e. (look in option 3.9 of ISPF) and add YourCMD SELECT PGM(yourPGM PRM('')) NEWAPPL(anything) Then when the user types "yourCMD" it will invoke "yourPGM" The PRM part is to pass a parm to yopur program, (in case they type "SUBMIT 'somedataset(member)'". However, if you call your program SUBMIT then it will work outside of ISPF as well, although it will work if you called it yourPGM just as well. The command table just keeps them from having to type "TSO yourPGM" instead of just yourPGM or yourCMD. In any case, you don't want to replace IBM's submit, you just want to make sure that yours is located before IBM's in either a steplib or in a linklist dataset that occurs BEFORE sys1.cmdlib. I think using the name SUBMIT is a really really bad idea, unless you are going to create a alias for IBM's submit (maybe call it IBMSUB), so that if need be you can use it in case yours fails. -- 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: 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 [IBM-MAIN@LISTSERV.UA.EDU] on behalf of David Crayford [dcrayf...@gmail.com] Sent: Wednesday, June 23, 2021 8:57 PM To: IBM-MAIN@LISTSERV.UA.EDU 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 [IBM-MAIN@LISTSERV.UA.EDU] on behalf of David Crayford [dcrayf...@gmail.com] Sent: Wednesday, June 23, 2021 3:19 AM To: IBM-MAIN@LISTSERV.UA.EDU 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 [IBM-MAIN@LISTSERV.UA.EDU] on behalf of David Crayford [dcrayf...@gmail.com] Sent: Tuesday, June 22, 2021 7:25 PM To: IBM-MAIN@LISTSERV.UA.EDU 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 100 BCE 00:00:00 and less than Mon Jan 01 101 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
Re: ISPF Edit: Introduce New SUBMIT Module
You can call you program anything you want and create a command table entry for it. That way you can leave IBM's submit where it was/is is SYS1.CMDLIB. i.e. (look in option 3.9 of ISPF) and add YourCMD SELECT PGM(yourPGM PRM('')) NEWAPPL(anything) Then when the user types "yourCMD" it will invoke "yourPGM" The PRM part is to pass a parm to yopur program, (in case they type "SUBMIT 'somedataset(member)'". However, if you call your program SUBMIT then it will work outside of ISPF as well, although it will work if you called it yourPGM just as well. The command table just keeps them from having to type "TSO yourPGM" instead of just yourPGM or yourCMD. In any case, you don't want to replace IBM's submit, you just want to make sure that yours is located before IBM's in either a steplib or in a linklist dataset that occurs BEFORE sys1.cmdlib. I think using the name SUBMIT is a really really bad idea, unless you are going to create a alias for IBM's submit (maybe call it IBMSUB), so that if need be you can use it in case yours fails. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: ISPF Edit: Introduce New SUBMIT Module
Have a look at ISPF 3.9 (COMMAND). This is the command table where you define new primary commands to ISPF. At end, copy table ISPCMDS (or ISRCMDS depending on your APPL id) to the first dataset in ISPTLIB concatanation to make it public to all users. As per your second question, There are commands that are built-in in ISPF and others that are define to the command table. for example. your program can be defined as CMD($UBMIT) for the name you want to use under ISPF. TSO parmlib only needed if the program is authorized (TSO, by definition is unauthorized). HTH *| **Itschak Mugzach | Director | SecuriTeam Software **|** IronSphere Platform* *|* *Information Security Continuous Monitoring for Z/OS, zLinux and IBM I **| * *|* *Email**: i_mugz...@securiteam.co.il **|* *Mob**: +972 522 986404 **|* *Skype**: ItschakMugzach **|* *Web**: www.Securiteam.co.il **|* On Thu, Jun 24, 2021 at 5:25 AM David Spiegel wrote: > Hi, > I need help to figure out how to add a new Primary Command to ISPF Edit, > so that I can test a RYO SUBMIT Command written in Assembler. > Let's assume that my module is called $UBMIT (with an ALIAS of $UB). > I do not want to write an Edit Macro to do this. (I already wrote one of > these). nor do want to invoke an Edit Macro which will call the Command > Processor. > > (The user will type $UB on the Edit Command Line and use the RYO program > instead of the IBM-supplied SUB.) > > (As an aside, one of the reasons it has to be written in Assembler is so > that the program can access the INTRDR's RPLRBAR and thereby TPUT the > Job Number after SUBMIT.) > > Another related question: How does ISPF "know" what SUBMIT means? > > Thank you in advance, > David > > -- > 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