Re: [Oorexx-devel] Question ad tracing the invocation of a method containing a reply statement

2024-04-22 Thread Rony G. Flatscher
Committed with [r12834]  (code) and [r12835] 
 (unit tests) after running the entire test suite.


---rony

On 21.04.2024 20:47, Rony G. Flatscher wrote:


Thinking about this problem, the best understandable solution would probably be to insert an 
invocation exit traceline in the thread right before starting to spawn in RexxActivation.


A test implementation would show the following output:

  1 *-* .traceObject~option="T" -- from now on display thread id in 
prefix
  2 *-1* t=.test~new
  3 *-1* t~test_reply
*>I1>*  Method "TEST_REPLY" with scope "TEST" in package 
"G:\test\orx\trace\test_reply.rex".
  7 *-1* say "before reply ..."
before reply ...
  8 *-1* reply
   *I2> Method "TEST_REPLY" with scope "TEST" in package 
"G:\test\orx\trace\test_reply.rex".
  9 *-2* say "after reply ..."
after reply ...
*As can be seen the invocation enter and exit tracelines now match, also with respect to the 
respective thread ids.


---rony


On 20.04.2024 13:59, Rony G. Flatscher wrote:


Given the following program:

.traceObject~option="T" -- from now on display thread id in prefix
t=.test~new
t~test_reply

::class test
::method test_reply
   say "before reply ..."
   reply
   say "after reply ..."

::options trace all

Running it will yield:

  1 *-* .traceObject~option="T" -- from now on display thread id
  2 *-1* t=.test~new
  3 *-1* t~test_reply
>I1> Method "TEST_REPLY" with scope "TEST" in package 
"G:\test\orx\trace\test_reply.rex".
  7 *-1* say "before reply ..."
before reply ...
  8 *-1* reply
   *>I2> Method "TEST_REPLY" with scope "TEST" in package 
"G:\test\orx\trace\test_reply.rex".*
  9 *-2* say "after reply ..."
after reply ...
The ">I2>" traceline after line # 8 is probably caused by spawning a new activity to process the 
remainder of the method's code.


However, this is a little bit misleading for the Rexx programmer as there is /no /new invocation 
taking place, rather it is a continuation of the remainder on a new thread/activity. (In the 
current form there is also no matching "

How about either removing ">I2>" or inserting an "I2>" to 
">T2>" (">T>") a new prefix indicating that the remainder gets executed on a new 
thread/activity), if possible?


What do you think?

---rony





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


--
--
__

Prof. Dr. Rony G. Flatscher
Department Wirtschaftsinformatik und Operations Management
Institut für Wirtschaftsinformatik und Gesellschaft
D2c 2.086
WU Wien
Welthandelsplatz 1
A-1020  Wien/Vienna, Austria/Europe

http://www.wu.ac.at
__




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


Re: [Oorexx-devel] Question ad tracing the invocation of a method containing a reply statement

2024-04-21 Thread Rony G. Flatscher
Thinking about this problem, the best understandable solution would probably be to insert an 
invocation exit traceline in the thread right before starting to spawn in RexxActivation.


A test implementation would show the following output:

 1 *-* .traceObject~option="T" -- from now on display thread id in 
prefix
 2 *-1* t=.test~new
 3 *-1* t~test_reply
   *>I1>*  Method "TEST_REPLY" with scope "TEST" in package 
"G:\test\orx\trace\test_reply.rex".
 7 *-1* say "before reply ..."
   before reply ...
 8 *-1* reply
  *I2> Method "TEST_REPLY" with scope "TEST" in package 
"G:\test\orx\trace\test_reply.rex".
 9 *-2* say "after reply ..."
   after reply ...
   *As can be seen the invocation enter and exit tracelines now match, also with respect to the 
respective thread ids.


---rony


On 20.04.2024 13:59, Rony G. Flatscher wrote:


Given the following program:

.traceObject~option="T" -- from now on display thread id in prefix
t=.test~new
t~test_reply

::class test
::method test_reply
   say "before reply ..."
   reply
   say "after reply ..."

::options trace all

Running it will yield:

  1 *-* .traceObject~option="T" -- from now on display thread id
  2 *-1* t=.test~new
  3 *-1* t~test_reply
>I1> Method "TEST_REPLY" with scope "TEST" in package 
"G:\test\orx\trace\test_reply.rex".
  7 *-1* say "before reply ..."
before reply ...
  8 *-1* reply
   *>I2> Method "TEST_REPLY" with scope "TEST" in package 
"G:\test\orx\trace\test_reply.rex".*
  9 *-2* say "after reply ..."
after reply ...
The ">I2>" traceline after line # 8 is probably caused by spawning a new activity to process the 
remainder of the method's code.


However, this is a little bit misleading for the Rexx programmer as there is /no /new invocation 
taking place, rather it is a continuation of the remainder on a new thread/activity. (In the 
current form there is also no matching "

How about either removing ">I2>" or inserting an "I2>" to 
">T2>" (">T>") a new prefix indicating that the remainder gets executed on a new thread/activity), 
if possible?


What do you think?

---rony

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