Been away from code for quite a long time, hence trying to readjust.

Skimming over Jean Louis' GitHub presence is now very funny (it starts with a Rexx related cartoon), but (as in the past) also *very* helpful, as it has the links to his projects. All projects have a _diary.txt that explains the work done for each commit of the project, but also explains concepts, options, and thoughts, *extremely instructive*.

In the context of Unicode, it may be interesting for developers to check out <https://github.com/jlfaucher/icu4oorexx> and look through the implementations. The explanations and comments in the _diary.txt and code files are very helpful, IMHO.

Also, <https://github.com/jlfaucher/builder> may be worth checking out, as it allows one to easily create ooRexx and Regina for different platforms in a unified, simple manner.

And lastly, if you peek around, you may find funny and interesting cartoons featuring Rexx, ooRexx, NetRexx, CRexx...

The information and knowledge available are very impressive, and so is the service for downloading the current ooRexx 5.3.0 version with the (at this point) experimental implementation of Unicode for ooRexx: that is the link that Jean Louis has provided below (https://github.com/jlfaucher/executor5-bulk/releases). After reading the page, click the "Assets" dropdown at the bottom, and you'll see links to portable versions for Windows and macOS. This way, you merely need to download, de-quarantine, and unzip the files, run "setup" and are able to test the version by prepending "rxenv rexx" to the ooRexx programs you want to test.

This is very simple, easy, and therefore very productive!

If you just want to check out the current version of Unicode support for ooRexx 5.3beta, get and run the portable binary package for your operating system.

---rony


On 15.06.2026 21:53, Jean Louis Faucher wrote:
I have a first level of Unicode support with ooRexx 5, implemented in a GitHub clone of the ooRexx SVN.
https://github.com/jlfaucher/executor5-bulk/releases

Ready for review and tests.
No documentation, but the examples should give a first overview.


On 8 Jun 2026, at 20:34, Rick McGuire <[email protected]> wrote:

I don't really have a problem with a class object that only has class methods. I actually find it cleaner than trying to have a singleton object that doesn't actually hold any instance data. However, I am fine with either approach.

There is another factor to consider however, and that's the matter of namespace. Every time another builtin in function or Sysutil function is added to the language, it introduces an incompatibility that runs the risk of breaking an existing program. The crowd that screams bloody murder every time a change introduces an incompatibility ignores that particular fact. Consider, for example, the recent conversation about line comments. That change has not affected a real life program in over 30 years that Object Rexx has existed. Avoiding name conflicts with new functions requires the names be given over complex names to avoid the conflict, such as UTF8PROxxx(), o rrxcalcxxx() for an existing example.

The advantage of using a singleton or a class object, is that the only namespace collision is the name of the class. Other than that, the methods can be given useful names without ever causing a conflict. The one disadvantage to including this in rexx.img other than size is a potential conflict with the class name. By keeping it in a separate package that must be loaded using ::REQUIRES, any program that does not use this facility is isolated from those sorts of naming conflicts.

Rick

On Mon, Jun 8, 2026 at 2:07 PM Gilbert Barmwater via Oorexx-devel <[email protected]> wrote:

    On 6/8/2026 12:02 PM, Jean Louis Faucher wrote:
    Thank you for the feedback!

    I wanted to check whether any of these options would be unacceptable for 
ooRexx.
    So far, they all seem acceptable.

    For the moment, I will stick with a facade that covers a subset of the 
UTF8Proc functions.
    Most of the time, it is a one-to-one mapping between a method and a 
UTF8Proc function.



    Missatge de Gilbert Barmwater via Oorexx-devel 
<[email protected]> del dia
    dg., 7 de juny 2026 a les 20:12:

        At first glance, I think I prefer option b).


    I could change for b), no impact for the user.
    Out of curiousity, is there a reason to avoid a) ?

    For me, it is a "philosophy" or "style" issue. RexxRef says

    "Classes are like templates; they define the methods and variables that a 
group of similar
    objects have in common and store them in one place."

    I have also heard "classes" described as "factories".  Now what we are 
creating is an
    "object" with a set of methods which is the ONLY member of its "group"; 
there are no other
    similar objects that share those methods.  This is the definition of a 
Singleton AFAIK.  So
    to use a class with class methods to implement such an object is a "misuse" 
IMO. A malicious
    or ignorant user might try to instantiate such a class causing possibly 
difficult problems to
    diagnose.  In any case, I believe a singleton instance is the "correct" 
implementation for
    such an object.

    Gil B.

        The downside I see is the added size to the overall interpreter for 
scripts that don't
        use Unicode.  I believe that impact is not significant enough that we 
should require
        specific user actions when one needs Unicode in their script.


    +1
    OK, I'll keep utf8proc.cls included in rexx.img.
    Regarding size, embedding the utf8proc sources added roughly 350 KB to the 
Rexx library
    (twice that on macOS).




    On 7 Jun 2026, at 21:03, Josep Maria Blasco <[email protected]>
    <mailto:[email protected]> wrote:

    Do we really have to choose? I'd prefer to have a library with native 
methods
    (c), which would allow for procedural-style coding (and could be replicated
    by non-oo implementations of ooRexx), /and/ (a or b, I don't care much)
    a oo-based implementation.

    Like ooSQLite.

    So that if one day (say) Regina implemented utf8proc, one could write
    a Rexx script that would be really portable.



    +1
    OK, it's possible to add a corresponding routine in utf8proc.cls for each 
method of the
    UTF8Proc class.




    On 8 Jun 2026, at 14:33, Rony G. Flatscher <[email protected]>
    <mailto:[email protected]> wrote:

     *


        make the functionality available via a single BIF, maybe named Unicode, 
that uses
        arguments to indicate which available subfunction is desired; the 
expected default use
        should allow for leaving out the subfunction argument

          o Reasoning: the addition of Unicode support is really such an 
incredibly important
            addition to ooRexx that accessing the Unicode functionality via a 
BIF would be
            warranted. This would work well (as Josep Maria mentioned) for 
non-ooRexx
            programmers and would even allow it to be implemented in other Rexx 
interpreters
            like Regina. The counterargument would be that Rexx and ooRexx have 
rightfully
            tried to keep the number of BIFs as small as possible, which adds 
considerably to
            the usability of the language. The counter-counterargument in this 
particular case
            would be that introducing Unicode support is of paramount 
importance to ooRexx and
            should be made available as easily and directly as possible.

      * if making the functionality available via ooRexx classes, then my take 
would be to make
        them as easy accessible as possible (with the least number of 
messages), i.e., as class
        methods (that are marked as unguarded). It would not matter whether any 
other ooRexx
        classes would exist that define class methods only, IMHO. Ad Gil's 
point about size
        increase: in this case it would be probably really negligeable, given 
that even watches
        nowadays approach to have even GB of memory! :)






    On 8 Jun 2026, at 14:52, Josep Maria Blasco <[email protected]>
    <mailto:[email protected]> wrote:


    I would not call the routine "Unicode", as UTF8Proc is but _one_ of the 
pieces of a
    possible Unicode implementation. My impression is that, if one wants a 
single routine
    (which is not a bad idea), maybe we could use the RexxUtil package, and add 
a new
    SysUTF8Proc routine.


    UTF8Proc is a low-level library, and a facade API provides a pragmatic way 
to expose the
    UTF8Proc services.
    From this facade, other interfaces can be designed, as proposed by Rony, 
but that is outside
    the scope of my current work.
    I will clean up the current implementation and push it to executor5-bulk.
    After that, we can experiment with it and refine it.






    _______________________________________________
    Oorexx-devel mailing list
    [email protected]
    https://lists.sourceforge.net/lists/listinfo/oorexx-devel

-- Gil Barmwater

_______________________________________________
Oorexx-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/oorexx-devel

Reply via email to