IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

SummeRx: a new framework for REXX z/OS


IBM Mainframe Forums -> CLIST & REXX
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
geelapidus

New User


Joined: 16 Dec 2020
Posts: 4
Location: Israel

PostPosted: Wed Dec 16, 2020 11:41 pm
Reply with quote

I am glad to introduce a new Open Source REXX framework,

SummeRx version 2.01 for REXX on z/OS.


SummeRx Features:

  • Allowing modularity in REXX.
  • Sharing stems between external modules.
  • Adding elements of object oriented programming to REXX.
  • And much more...



SummeRx is fully written in REXX.
There is a SummeRx White Paper on the github repository

https://github.com/geelapidus/SummeRx

Please let me know your thoughts and suggestions.

Please share this post with other REXX programmers.

Thanks,
Gennady Lapidus
Back to top
View user's profile Send private message
enrico-sorichetti

Senior Moderator


Joined: 14 Mar 2007
Posts: 10722
Location: italy

PostPosted: Thu Dec 17, 2020 2:23 am
Reply with quote

from the docs
Quote:
Rexx + java + Linux. Future development.


no need

open object rexx is alive and kicking on macOS Linux( various flavours and architectures )
and on the BSD family

same thing as far as java is concerned, BSF4ooRexx is very healthy
Back to top
View user's profile Send private message
Willy Jensen

Active User


Joined: 01 Sep 2015
Posts: 418
Location: Denmark

PostPosted: Thu Dec 17, 2020 4:00 am
Reply with quote

I read the documentation. I fully agree that PIPEs should be a standard feature of TSO REXX. I also would love to see something like your function, but as as a part of the standard REXX load process.
Correct me if I am wrong, but I read it as basically copy books with another name? In that case wouldn't a REXX compile provide the same functionality, though that of course require that you have the REXX compiler.
I must admit that I am not so keen on the need for ISPF services.
You do what amounts to a compile where you include all external routines and build one large program. Which is why you can pass stems, actually all variables, between routines, as long as these are not procedures?
If your aim is mostly to be able to pass variables between functions then there are other options: I seem to recall a STEMPUT/GET program, but I cannot remember where, but program REXXGBLV from cbttape.org file 669 can store and load REXX variables across external functions.
I can see that your solution could find it's place in a structured environment, especially if you provide a couple of generally usabel subfunctions.
Back to top
View user's profile Send private message
geelapidus

New User


Joined: 16 Dec 2020
Posts: 4
Location: Israel

PostPosted: Thu Dec 17, 2020 1:35 pm
Reply with quote

Thank you for your interest in SummeRx. Below are my answers and comments.

Copy books vs. injection.
The directive ++INC in SummeRx is similar to %INCLUDE of the REXX compiler. There are still some advantages over the standard approach. SummeRx allows you to use a variable in ++INC directive. This is very useful if, for example, you decide to change the data source in the SummeRx provider-consumer scheme.

Suppose a subroutine needs to access a routine variable from a higher layer. The standard way in REXX is to use parameters or the EXPOSE clause. SummeRx can inject the value of a variable into a “deep level” routine during the preprocessing, providing the REXX program with GLOBAL VARS.

Methods to pass stems
Using Assembler is always a good option, especially if you have a structured (formatted) stem, i.e. the stem structure is somehow defined within the stem or known to Assembler. Thus, you can share the stem between the REXX modules. SummeRx is written in pure REXX. It uses its own method of serializing/deserializing stems between external modules, or, as you addressed in your comments, passing stems through the EXPOSE clause in one large program. By the way, I usually do not keep a raw REXX code in “copy books”. I always try to follow a “modular” approach, i.e. using “copy books” for REXX subroutines.

OOP and the aim
SummeRx offers HEAP which is a sophisticated stem for exchanging data such as linked lists, maps, objects, etc. SummeRx handles HEAP with its own Garbage Collector. Using HEAP makes writing in REXX easy.
SummeRx uses both TSO and ISPF services and can equally work in either BATCH or ONLINE.
I believe that diversified z/OS environments such as USS, Docker, Git and AWS need a lot of new APIs. SummeRx could be a suitable platform for this.
Back to top
View user's profile Send private message
Willy Jensen

Active User


Joined: 01 Sep 2015
Posts: 418
Location: Denmark

PostPosted: Thu Dec 17, 2020 2:59 pm
Reply with quote

Thanks you for the clarification. As you say, SummeRx offer a way to handle common subroutines without having to include them permantly in the main program.
Back to top
View user's profile Send private message
geelapidus

New User


Joined: 16 Dec 2020
Posts: 4
Location: Israel

PostPosted: Thu Dec 17, 2020 3:20 pm
Reply with quote

enrico-sorichetti wrote:
from the docs
Quote:
Rexx + java + Linux. Future development.


no need

open object rexx is alive and kicking on macOS Linux( various flavours and architectures )
and on the BSD family

same thing as far as java is concerned, BSF4ooRexx is very healthy


Suppose you need to synchronize/exchange messages between a REXX program in z/OS and a Linux Container application over SSH or in just Linux outside MF . OOREXX is not always an option. Java@MF + Python@Linux provide a functional secure channel with callbacks. I developed such a channel 3 years ago, so I'm sure of it. Or another example. You have a minimal Linux installation where SSH and Python are only the options. How do you manage it from z/OS ? Java@MF + Python@Linux is a good agentless solution.
Back to top
View user's profile Send private message
geelapidus

New User


Joined: 16 Dec 2020
Posts: 4
Location: Israel

PostPosted: Thu Dec 17, 2020 3:40 pm
Reply with quote

Willy Jensen wrote:
Thanks you for the clarification. As you say, SummeRx offer a way to handle common subroutines without having to include them permantly in the main program.


Correct
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> CLIST & REXX

 


Similar Topics
Topic Forum Replies
No new posts Determine Library REXX exec was execu... CLIST & REXX 7
No new posts Any examples of calling FTP from REXX? CLIST & REXX 1
No new posts A command to change LRECL of an exist... JCL & VSAM 7
No new posts Using REXX to access SDSF; What am I ... CLIST & REXX 38
No new posts Calling Assembler from REXX PL/I & Assembler 5
Search our Forums:

Back to Top