Thanks for the feedback. Probably putting M as the trailing letter after the alphabetic letter as
Mike suggests is the best option. Omitting the trailing M would switch back to the simple form.
Would that be acceptable for everyone?
---rony
On 08.02.2023 21:24, Rick McGuire wrote:
The special symbol characters "." and "_" are also available as indicators. I'm a definite -1 to
using environment variables and Erich has also voiced his displeasure about that.
Another option might be to allow a second keyword following the trace type that indicates using
the expanded form. It should also allow explicit specification of the simple form too.
Rick
On Wed, Feb 8, 2023 at 2:46 PM Mike Cowlishaw <m...@speleotrove.com> wrote:
I would have put the M after the other letter because it's really a
subsidiary option. If
it's first it rather 'M'asks the main option?
Mike
----------------------------------------------------------------------------------------------------
*From:* Rony G. Flatscher [mailto:rony.flatsc...@wu.ac.at]
*Sent:* 08 February 2023 14:16
*To:* oorexx-devel@lists.sourceforge.net
*Subject:* [Oorexx-devel] Planning to add multithreaded (concurrent)
tracing (Re: RFC for
feature request "794 Concurrency request"
Coming back to this RFE from 17 months ago which I would like to add to
trunk. Without it
one can hardly use TRACE for debugging multithreaded programs in a
Rexx-like, i.e. easy
manner.
Currently having tried to incorporate the feedback about too many
whitespaces between the
new columns (Rexx interpreter instance number, Thread number, Activity
number, reserved
object pool).
There was another idea about making this concurrency/multihreaded trace
available without
a need to define an environment variable RXTRACE_CONCURRENCY before
starting a Rexx
program. This post is about ideas of how to activate and deactivate
concurrent tracing at
runtime (either via the TRACE keyword instruction or the TRACE()-BIF)
in a manner that is
intuitive and easy to remember.
One possibility would be to introduce new alphabetic options, this time
with two letters
by prepending the letter 'M' (for multithreaded as the letter c is
already used for
tracing commands and may therefore be irritating) to the existing
alphabetic characters,
hence defining the following semantics:
*Trace**
* *Option, turn off MT**
* *Option, turn on MT**
*
All
A
MA
Command
C
MC
Error
E
ME
Failure
F
MF
Intermediates
I
MI
Labels
L
ML
Normal
N
MN
Off
O
-
Results
R
MR
This would have the benefit that anytime it becomes possible to turn on
and to turn off
multithreaded/concurrent tracing at runtime.
What do you think?
---rony
P.S.: The "fallback" would be to just add it as is, i.e. using the
environment variable
RXTRACE_CONCURRENCY, making the multithreaded/concurrent tracing a
global option that
needs to be set before running a Rexx program.
On 05.09.2021 14:12, Rony G. Flatscher wrote:
Almost a week ago Jean Louis Faucher registered feature request "794
Concurrency request", cf.
<https://sourceforge.net/p/oorexx/feature-requests/794/>
<https://sourceforge.net/p/oorexx/feature-requests/794/> together with a patch that
implements the
feature request. So far there have been no comments, hence "requesting for
comments (RFC)" here as
it may be the case that the RFE has been overlooked.
---
IMHO this RFE is incredible helpful for debugging multi-threaded Rexx
programs and for understanding
how ooRexx dispatches multithreaded code.
The way Jean Louis devised the implementation has practically no impact
on the interpreter (unless
one defines an environment variable "RXTRACE_CONCURRENCY=on" modelled
after the existing
"RXTRACE=ON" environment variable in which case helpful information
gets generated for prefixing
each trace output statement) makes it easy even for beginners (=
students) to get insight and
understand how ooRexx executes multithreaded programs. Some problems
rooted in multithreaded Rexx
code can be quickly located, understood and resolved with this feature.
Having tested this concurrency trace feature with the most challenging
JavaFX ooRexx programs I have
been really impressed with the results. Using the ooRexx program
"samples/tracer.rex" (included in
the patch) to render the massive concurrency trace output of some
JavaFX ooRexx programs to csv and
importing the concurrency trace into a spreadsheet (e.g. Excel) makes
it possible to analyze such
massive concurrency traces in every possible detail using the
spreadsheet features (e.g. filtering
for a specific ooRexx interpreter instance or specific threads, pivots
and the like). Therefore I
uploaded one such test to this RFE such that one can directly get at
the massive concurrency trace,
the csv file created by "tracer.rex" from it and an Excel spreadsheet
which was used to import the
generated csv file. (I wished this feature had been available when
devising some of the BSF4ooRexx
JavaFX samples, which would have saved me literally weeks of debugging!)
The patch implementing RFE 794 makes it really easy for ooRexx
programmers to understand and to
debug multithreaded ooRexx programs, saving them a *lot* of time trying
to understand what happens,
how concurrent statements get executed by the interpreter(s) and
locating coding errors!
---rony
_______________________________________________
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel