Given some free time I would like to add the following things to ooRexx 5.1:

 * the Windows oleinfo Rexx utilities from the sandbox
   (https://sourceforge.net/p/oorexx/code-0/HEAD/tree/sandbox/rony/oleinfo/)
     o planned for being placed as is in a new directory 
ooRexx/samples/ole/oleinfo together with a
       readme.txt file
     o history: first introduced at the RexxLA symposium in 2004, cf.
       <https://www.rexxla.org/presentations/2004/ronyf1.pdf>
     o reasoning: many times it is very difficult, if not impossible to get at 
the published OLE
       interfaces of Windows COM/OLE objects including those returned by 
invocations of methods or
       fetching attribute values (they may not be registered in the registry, 
hence not
       discoverable); it is nice to have e.g. reference like printouts of the 
OLE interfaces
       (methods, attributes, events)

 * add the DBus support from the sandbox
   <https://sourceforge.net/p/oorexx/code-0/HEAD/tree/sandbox/rony/dbus/> to 
ooRexx if the target
   platform has DBus support available (originally a message system on Linux 
exploited by many
   distributions)
     o history:
         + Flatscher R.G., "D-Bus Language Bindings for ooRexx", International 
Rexx Symposium 2011:
           <https://www.rexxla.org/presentations/2011/201112-DBus4ooRexx.pdf>
         + Margiol S., "DBusooRexx", International Rexx Symposium 2015:
           
<https://www.rexxla.org/presentations/2015/DBusPresentation_Margiol.pdf>
         + Flatscher R.G., LinuxCon Europe 2015: "dbusoorexx Bringing the Power 
of D-Bus to Your
           Fingertips"
         + Flatscher R.G., "The ooRexx DBus Bindings for Linux, MacOSX and 
Windows", International
           Rexx Symposium 2016: 
<https://www.rexxla.org/presentations/2016/201608-dbusoorexx.pdf>

 * multithreading trace ("MT trace")
     o history: Jean-Louis has offered a very helpful and interesting means in 
form of a patch,
       that has not yet been applied; due to some discussions I had expected 
that an alternative
       means becomes available, but this has not materialized; after a couple 
of years it is time
       to give the ooRexx developers sound means into their hands; as designed 
Jean-Louis' version
       will have to be activated by setting an environment variable before 
starting the MT program,
       hence it is meant for explicitly debugging (no new MT-related trace 
options would have to be
       defined at all)
         + one aim when doing so is to come up with a BIF (suggestions?) that 
allows for retrieving
           the thread number, the activation number, the variable pool number 
and lock status,
           which the documentation of that BIF would explain: this should allow 
e.g. Gil to use
           this information to experiment with Rick's idea in 
non-explicit-debugging runs
             # this will cause these counters/this information to be always 
maintained,
               irrespectively whether  MT trace is active or not
     o reasoning: for debugging multithreaded programs it is necessary to get 
at the respective
       context invocation information, without it certain multithreaded 
problems cannot be
       analyzed/debugged

 * allow invoking the garbage collector for debugging purposes
     o history and reasoning: for debugging purposes in the context of the Java 
bridge it became
       necessary to make sure that the Rexx garbage collector ran (background: 
Java changed the
       finalization logics and to debug the new Java implementations for 
releasing cached Rexx
       objects and to test correct execution of their uninit methods); without 
a means to invoke
       the ooRexx garbage collector this is simply not possible; it is very 
likely that such
       debugging needs occur in other contexts where native information systems 
interacting with
       ooRexx (e.g. using ooRexx for scripts) need to be able to 
check/analyze/debug correct
       releases of cached ooRexx objects for debugging purposes; without such a 
function this
       simply cannot be achieved; as running the garbage collector (in every 
programming language)
       is a very expensive operation this needs appropriate documentation; 
invoking existing
       garbage collectors is possible in popular programming languages such as 
Java's
       java.lang.System.gc() (cf.
       https://docs.oracle.com/javase/8/docs/api/java/lang/System.html#gc--) or 
.Net/CLR's
       System.GC.collect() (cf.
       
https://learn.microsoft.com/en-us/dotnet/api/system.gc.collect#System_GC_Collect,
       
https://learn.microsoft.com/en-us/dotnet/standard/garbage-collection/fundamentals)

Any comments?

---

Also we should plan to release the current 5.1 version of ooRexx as soon as possible for at least the following reasons:

 * make the current bug fixes available in the form of an officially released 
package: many
   companies do not allow beta software to be installed, used, hence the need 
for a officially
   release if we want ooRexx to remain a viable option
 * make new features available like the new UTF-8 support in the 
WindowsClipboard class
 * keep the knowledge about creating releases up-to-date, allow for improving, 
maybe even fully
   automizing the release steps as much as possible
 * show the public that development has been going on

---rony

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

Reply via email to