Hi there,

just uploaded a refreshed version of net-oo-rexx to <https://wi.wu.ac.at/rgf/rexx/tmp/net-oo-rexx-packages> to replace the rexxdebugger package with the latest announced version 1.33.

The portable net-oo-rexx packages allow anyone to use 64-bit ooRexx 5.1 with many useful packages in it directoly on Windows, Linux and MacOS. Just read the enclosed readme text files. If you have Java installed you can immediately take advantage of NetRexx and the ooRexx BSF4ooRexx package, both included in the portable net-oo-rexx packates.

Please let us know whether you find the portable net-oo-rexx packages useful or 
not.

---rony


On 12/12/2024 1:29 AM, Dom Wise via groups.io wrote:

Hi all,

There is a new release version, 1.33. It's mainly focussed on logging enhancements added to make it easier to distinguish debugger output from program output and to provide clearer visibility on important debugger events but some unrelated bug fixes and minor improvements are also included.

It can be downloaded from 
https://sourceforge.net/projects/oorexxdebugger/files/latest/download

*Release 1.33 - Bug fixes and enhancements*

The main work in this release has been to improve the logging in the console window. Many of these enhancements apply across the board but some may not apply when using direct launch, just when launching from rexxdebugger

 *

    All messages from the debugger (should) include the prefix <-> which is 
defined as a constant
    so it can easily be changed in one place if needed

 *

    Syntax errors along with runtime errors during pre-main code (e.g. in class 
initializers) will
    now be logged rather than replacing the contents of the source window

 *

    If a debugged program returns a value on exit / return this will be logged 
and the result
    displayed if it is a string.

 *

    When a conditional breakpoint is hit and the condition is satisifed causing 
a break this event
    is logged

 *

    All debug session start events, along with session end events, whether 
normal or due to an
    error or user exit are logged

There have additionally been some fixes and minor enhancements as follows

 *

    An inifinite error loop caused by using the ::OPTIONS NOVALUE SYNTAX 
directive in debugged
    programs has been fixed

 *

    Conditional breakpoints will always break if they are hit by an automatic 
break request

 *

    Some small performance improvements have been made to the code which 
receives all trace output
    and to the main processing loop which determines when to pause the debugged 
program.

 *

    Incorrect ordering of "auto breakpoint" log messages in the Windows UI have 
been fixed

 *

    Some typos in the readme have been addressed

--Dom


On 01/12/2024 14:28, Dom Wise via groups.io wrote:
Hi Rony,


lI’m happy to report that the conditional breakpoint functionality has now been added and shipped in a new 1.32 release, which includes just this change.

The functionality is accessible via a right-click action on the source view which presents a context menu "Breakpoint Settings”, enabled so long as the selected source line in the view has a breakpoint.

The dialog which pops up from the context menu can be used to set a condition for the breakpoint, which can be any expression that would be valid in the context of the code in which the breakpoint runs, and which evaluates to True or False e.g. x=5. If the expression generates an error the breakpoint is hit anyway, and depending on what logging is active the error will be shown “somewhere”

Another reason for wanting to get this in today is that  the annual Advent of Code challenge https://adventofcode.com/ also starts today. For those who don’t know it’s a set of daily coding challenges throughout the advent period of increasing difficulty that can be run in pretty much any language you choose. You can jump in and out whenever you want and skip individual puzzles if you can’t solve them. I had a go last year with ooRexx (only “debugging" with say statements) and while I got nowhere near finishing the whole set of puzzles (completing up to day 11 with a couple of major cheats along the way) it was fun and challenging nonetheless.

If anyone fancies having a go at this in ooRexx, I would hope that the debugger with its current set of features would make this less time consuming to troubleshoot puzzle code than it was last year!

—Dom




On 1 Dec 2024, at 09:59, Rony Flatscher via groups.io 
<rony.flatscher=wu.ac...@groups.io> wrote:

Hi Dom,

great! Will wait!

Cheers

—-rony
Rony G. Flatscher (mobil/e)

Am 30.11.2024 um 17:41 schrieb Dom Wise via groups.io 
<dominicjwise=gmail....@groups.io>:



Hi Rony,

Version 1.31 is the latest release but I've just started work on implementing conditions on breakpoints i.e. "only stop on the breakpoint when the condition 'x = 5' is true". Adding this capability to the core debugger is already in the Git repository though not released as currently there is no way to actually set the conditions! The more time consuming part will be the GUI(s) around this and I've yet to start on that though I think I know how it's going to work. If you're willing to hold off for a day or two I'll see if I can submit this over the weekend; otherwise you should probably go for the current release.

--Dom

On 30/11/2024 15:53, Rony Flatscher via groups.io wrote:

Hi Dom,

planning on creating and releasing a new version of the portable net-oo-rexx package in the next days, updating ooRexx 5.1 to its latest version, I would like to also add your latest multiplatform RexxDebugger (which can be used to debug plain Rexx programs running under net-oo-rexx).

Looking at<https://sourceforge.net/projects/oorexxdebugger/files/>I see that the latest version is v1.31 and would be using it for the net-oo-rexx update, or is there a new version in the works that I should wait for?

---rony


On 17.11.2024 13:45, Dom Wise via groups.io wrote:

Hi

I know it's been a while since the last update but there is a 1.31 release to address some shortcomings identified as needing fixing when I was working on the 1.30 release. Analysis and  refactoring of some of the core session management code was needed to facilitate some of these changes which is one of the reasons it has taken a while.  I've done my best to check for regressions but the 1.30 release can always be used if any howlers are identified, and please do let me know if any are found!

Notes are below:

*Release 1.31 - Usability fixes and enhancements*

 *

    Methods for initializing classes such as activate or (class) init can now 
be stepped
    through when debugging programs launched from within the rexxdebugger 
application. In
    previous releases it was necessary to modify the code to add debugging 
directives and
    launch the program directly in order to do this

 *

    For programs launched within the rexxdebugger application there is better 
reporting of
    unhandled runtime errors and it is now possible to reuse the debugging 
session when such
    errors occur

-- Dom

On 22/09/2024 00:33, Dom Wise via groups.io wrote:
Hi,
I've released version 1.30 today. I now have access to a refurbished Mac mini so I've been able to give MacOS some love as well as adding some other features that I think merit a refresh (or first look) for anyone who is using the debugger or thinking of doing so. The new features along with the revised main README.md documentation should hopefully make it a lot easier to get up and running, and I've also added a few screenshots to the SourceForge site to show something from each platform. The new version can be downloaded from the following link and the changes in this release are shown below
https://sourceforge.net/projects/oorexxdebugger/files/v1.30/

*Release 1.30 - Usability and performance enhancements*

  * TheREADME.md <http://readme.md/>documentation has been rewritten to improve 
clarity and
    reflect new features added
  * A file finder has been added to the New Debug Session dialog, with a filter 
for several
    known Rexx file types
  * The performance when logging output to the debugger console window has been 
dramatically
    improved
  * The rexxdebugger shell script for Linux now supports MacOS so 
"rexxdebugger" can be run
    on any platform to start a debug session.
  * On MacOS the debugger window no longer automatically closes at the end of 
every debug
    session (*)
  * An issue with the main window sometimes disappearing behind another window 
when using
    the New Debug Session dialog has been addressed
  * There are better checks for an active debugging session when the closing 
the main window
  * Some regressions for self-debugging programs caused by the addition of the 
New Debug
    Session dialog have been identified and fixed
  * Compatibility checks have been carried out with bsf4oorexx version 641 and 
this version
    is now supported

(*) This only applies to debug sessions launched with the rexxdebugger command. For programs run directly having been modified to launch the debugger themselves, the debugger window will still close when the program ends

--Dom
_.
"net-oo-rexx packages"
======================

This is the readme file for "net-oo-rexx", a bundling ready to use that
gives immediate access to a number of Rexx packages, like:

- bsf4oorexx (ooRexx-Java bridge for all operating systems)
- dbus4oorexx (ooRexx-DBus bridge for Linux)
- executor packages (see oorexxshell)
- log4rexx (logging for ooRexx)
- netrexx (Java in the clothes of Rexx)
- nrws (NetRexx Workspace, a NetRexx shell)
- oorexx (open object Rexx)
- oorexxshell (a rexxtry.rex kind of shell for ooRexx)
- regex (powerful regular expression implementation in ooRexx)
- rexxdebugger (an ooRexx debugger, exploits the Java bindings on Unix)

========================
Directions in a nutshell
========================

- download the latest "NetRexx, ooRexx with packages with oorexxshell"
  (net-oo-rexx-packages) zip archive from
  https://wi.wu.ac.at/rgf/rexx/tmp/net-oo-rexx-packages/

- de-quarantine the zip archive (see NOTE # 1 below)

- unzip the archive with the "unzip" or "7z" command

- change into the unzipped directory and enter in the system shell

  Windows                  Unix                    Comment
  -------                  ----                    +------
  setup.cmd                ./setup.sh              | creates two scripts

  This will create the two scripts:

  run.cmd                  run                     | allows to run net-oo-rexx 
programs
  setenv.cmd               setenv                  | allows to set environment 
to net-oo-rexx in Terminal

  
----------------------------------------------------------------------------------------

  ---> use the generated 'run.cmd/run' script

  Windows                  Unix                      Comment
  -------                  ----                      +------
  run oorexxshell          ./run oorexxshell         | runs oorexxshell (a 
script)

  run rexx testoorexx.rex  ./run rexx testoorexx.rex | use ooRexx to run 
testoorexx.rex
  run rexx which_rexx.rex                            | use ooRexx to run 
which_rexx.rex

  run nrc -exec which_rexx.rex                       | use NetRexx to run 
which_rexx.rex


  
----------------------------------------------------------------------------------------
  ---> use the generated 'setenv.cmd/setenv' script

  Windows                  Unix                    Comment
  -------                  ----                    +------
   setenv.cmd              source ./setenv         | sets the environment in 
the Terminal to net-oo-rexx

   the following commands will work on Windows as well as on Unix:

   oorexxshell                                     | runs oorexxshell

   rexx testoorexx.rex                             | use ooRexx to run 
testoorexx.rex
   rexx which_rexx.rex                             | use ooRexx to run 
which_rexx.rex

   rexxdebugger packages/rexxdebugger/tutorial.rex | use ooRexx to run the 
rexxdebugger with its tutorial.rex

   nrc -exec which_rexx.rex                        | use NetRexx to run 
which_rexx.rex

   nrc which_rexx.rex                              | use NetRexx to compile 
which_rexx.rex to which_rexx.class
   java which_rexx                                 | use Java to run 
which_rexx.class (note: no ".class" extension!)



======================
Additional information
======================

To learn about the functionality of oorexxshell, take a few minutes and see the
asciinema demos at [4].

First feedback
--------------

 - "install this bundle, you run a small, trivial setup program, and, poof,
   you have immediate access to a real trove of packages -- no additional
   installation needed"
   (JMB)

 - "I even was able to load the JDOR handler, then "address JDOR", and then
   construct one of the JDOR samples step-by-step, by manually writing the
   (quoted) JDOR commands.  This is very impressive, and very useful too,
   from a pedagogical point of view, since it provides immediate incremental
   visual feedback for the JDOR commands.  You just have to move the Java
   window besides the command window and you have a fantastic experience."
   (JMB)

-------------------------------------------------------------------------------

=====
NOTES
=====

---------------------------------------
NOTE # 1: Microsoft and Apple do not allow programs from the Internet to run
          if they are not signed using their fee-based service citing "security
          reasons".

      Therefore, BEFORE INSTALLING or UNZIPPING open source projects you need
      to "de-quarantine" (remove the respective attributes) the zip archives
      before unzipping.

      Windows: after downloading, open with a right-mouse click the property
               menu, mark the "unblock" check mark and click "apply".
               Thereafter you can install or unzip the file. Or open a
               command line window and run (change 'filename' to the name of
               the downloaded file):

                powershell Unblock-File filename

             e.g.,

                powershell Unblock-File 
net-oo-rexx.windows.x86_64-portable-release-20240707.zip

      macOS: after downloading, open a Terminal window and run "xattr filename"
             to see the extended attributes of the downloaded file (replace
             'filename' with the name of the zip archive), then issue  (again,
             change 'filename' to the name of the downloaded file):

                xattr -d com.apple.quarantine filename

             e.g.,

                xattr -d com.apple.quarantine 
net-oo-rexx.macos.x86_64-portable-release-20241201.zip

---------------------------------------
NOTE # 2 for Unix versions.

      In case the execution bit of shell scripts and executables got removed,
      run the supplied script makeAllExecutable.sh from the unzipped
      directory:

               sh ./makeAllExecutable.sh

---------------------------------------
NOTE # 3: Dual Installations (Linux & Windows)

          You can use the same set of installed files to run the net-oo-rexx
          bundle under both Windows and Linux, including the Windows Subsystem
          for Linux (WSL2) and other mechanisms like VirtualBox shared folders.

          Once you have run the necessary initializer scripts (setup.cmd under
          Windows, and ./setup under Linux/WSL), you will be able to use the
          other scripts (run/setenv) under both operating systems.  For example,
          you can test a program under Windows, then use the "wsl" command to
          switch to Ubuntu, and test the same program under Ubuntu, while 
sharing
          the same net-oo-rexx installation.

          About WSL, cf. <https://learn.microsoft.com/en-us/windows/wsl/about>

---------------------------------------
NOTE # 4: rerun the "setup.cmd" (Windows)/"setup" (Unix) script each time the
          portable files get relocated or, if on a USB stick, each time you
          plug in the USB stick. This will recreate on Windows the "run.cmd"
          and "setenv.cmd"  scripts, on Unix the "run" and "setenv" scripts,
          thereby adjusting them to their new location.

---------------------------------------
NOTE # 5: bsf4oorexx (ooRexx-Java bridge)

          In order to load and run bsf4oorexx programs you need to have
          Java/OpenJDK on your computer and either have PATH point to the
          directory where the binary file java.exe (Windows)/java (Unix) can be
          found or set the environment variable JAVA_HOME to point to the Java
          home directory in which the Java subdirectories 'bin', 'lib' and the
          like are located.

          You can download Java/OpenJDK from the Internet (usually for free),
          e.g., from Amazon, azul, bellsoft, IBM, Microsoft, ORACLE, SAP, and
          many more sites (all distributions use the same Java/OpenJDK source
          code).

          Please make sure to pay attention to the following two important
          points:

          - download the "full version" respectively the version that includes
            "JavaFX", otherwise the interesting bsf4oorexx JavaFX samples cannot
            run

          - download the Java/OpenJDK version matching your operating system
            and the machine type of your computer, e.g., a 64-bit Intel (machine
            type "x86_64") Windows version download the "x86_64" (Intel, AMD)
            Windows Java/OpenJDK installation package or zip archive. If you
            use macOS or Linux then download the respective full Java/OpenJDK
            versions.

          It is possible to have different versions of Java/OpenJDK present on
          your computer at the same time. The environment variable JAVA_HOME
          can then be used to point to the Java/OpenJDK directory that you wish
          to use in your current session/terminal/command line window. This way
          you can develop and test bsf4oorexx programs for different versions
          of Java/OpenJDK on the same computer.

          To see what becomes possible with bsf4oorexx, check out the samples
          in packages/bsf4oorexx/samples which all get briefly described in the
          index.html file located there as well.

          bsf4oorexx programs can be executed directly with rexx[.exe] or via
          Java using the shell scripts "rexxjh.cmd" (Windows)/"rexxjh.sh" 
(Unix),
          e.g.,

             cd packages/bsf4oorexx/samples

             rexxjh.cmd 1-040_list_charsets.rxj    -- Windows: Java loads 
ooRexx to run script
             rexxjh.sh  1-040_list_charsets.rxj    -- Unix: Java loads ooRexx 
to run script;

             rexx       1-040_list_charsets.rxj    -- Rexx loads Java to run 
script

           Apple users please note: if running any bsf4oorexx script that 
creates a GUI, then
           you must use the scripts rexxjh.sh to run them.

---


If you have any questions or comments please communicate via the RexxLA member's
mailing list (cf. https://www.RexxLA.org).

Alternatively, communicate via the ooRexx developer list (cf. [2], [3]).

[1] Portable ooRexx 5.1.0: 
<https://sourceforge.net/projects/oorexx/files/oorexx/5.1.0beta/portable/>

[2] ooRexx mailing list subscription page: 
<https://sourceforge.net/p/oorexx/mailman/>

[3] ooRexx web mail interface to the developer mailing list:
    <https://sourceforge.net/p/oorexx/mailman/oorexx-devel/>

[4] Jean Louis Faucher's asciinema demos, at the top the demos for ooRexxShell:
    <https://jlfaucher.github.io/executor.master/demos/index.html>.
    Please note that these demos may use experimental extensions of Jean Louis
    executor (a special version based on ooRexx 4.2) which are not present
    in the regular versions of ooRexx.

--------------
as of 20241201
====================================================================
Portable Zip Archive ("Stick") Version for Open Object Rexx (ooRexx)
====================================================================

ooRexx (open object Rexx) is an easy-to-learn, dynamically typed, caseless, and
powerful programming language. ooRexx implements the message paradigm that
makes it easy to interact with any type of system.

ooRexx is an open-source project governed by the non-profit, international
special interest group named "Rexx Language Association" (RexxLA).

This version of ooRexx allows you to install several versions of ooRexx on the
same computer in parallel, and choose which version is used on a program-by-
program basis.  It also allows you to install one or more versions in a
removable drive (e.g., in an external USB stick, hence the name "portable")
and carry it along, using it on different machines.

Links:

   ooRexx Project:  https://sourceforge.net/projects/oorexx/
   RexxLA Homepage: http://www.rexxla.org


-------------------------------------
Creating the Portable Scripts (Setup)
-------------------------------------

After unzipping the portable zip archive (using "unzip" or "7z") and changing
into the created subdirectory run

       Windows:                   Unix:
       --------                   -----
       setup.cmd                  ./setup.sh  (Unix)

which will run "setup.rex" using the Rexx interpreter from its "bin"
subdirectory (i.e., "bin/rexx setup.rex").

This will create two shell scripts:

      Windows:                    Unix:
      --------                    -----
      run.cmd                     run
      setenv.cmd                  setenv

If the location of the script's home directory has changed simply rerun the
"setup.cmd" (Windows)/"setup.sh" (Unix) script to recreate the two shell
scripts picking up the new location.


----------------------------------------------------------------------------
Purpose and usage of the script "run.cmd" (Windows) or "run" (Unix):
temporarily change PATH to find the portable version of ooRexx first
----------------------------------------------------------------------------

   This script will temporarily set up the environment. It expects 'rexx'
   followed by the name of a Rexx program and optionally followed by any
   arguments for the Rexx program, e.g.

       run rexx testoorexx.rex        (Windows)
       ./run rexx testoorexx.rex      (Unix)

   In case "ooRexx packages with oorexxshell" is installed (a subdirectory
   'packages' exists) then oorexxshell can be run as well:

       run oorexxshell                (Windows)
       ./run oorexxshell              (Unix)

      -> oorexxshell explanations/demos:
           https://jlfaucher.github.io/executor.master/demos/index.html

   Upon return from the "run" process the shell's environment is unchanged.


----------------------------------------------------------------------------
Purpose and usage of the script "setenv.cmd" (Windows) or "setenv" (Unix):
allow to change the environment permanently in a shell to find the portable
version of ooRexx first
----------------------------------------------------------------------------

   This script will permanently set up the environment in the current terminal
   shell:

       setenv                     (Windows)
       source ./setenv            (Unix, you MUST use the "source" command)

   After executing the script the environment gets changed such that the
   portable version of rexx.exe/rexx will be found first for the duration of
   the terminal session. To use it use "rexx" to run Rexx programs, e.g.:

       rexx testoorexx.rex

   In case "ooRexx packages with oorexxshell" is installed (a subdirectory
   'packages' exists) then oorexxshell can be run as well:

       oorexxshell                      (both Windows and Unix)

   To locate the Rexx directory being used by the generated scripts inspect
   the environment variables REXX_HOME, OOREXX_HOME and PATH, e.g.

       echo %REXX_HOME%                 (Windows)
       echo %OOREXX_HOME%               (Windows)
       echo %PATH%                      (Windows)

       echo $REXX_HOME                  (Unix, usually not set)
       echo $OOREXX_HOME                (Unix)
       echo $PATH                       (Unix)


--------------
as of 20241201
_______________________________________________
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel

Reply via email to