[squeak-dev] Please try out | Fixes for debugger invocation during code simulation

Marcel Taeumel marcel.taeumel at hpi.de
Sun Mar 14 13:30:04 UTC 2021


Hi Jaromir.

> How is the genuine process supposed to answer #isTerminated, isActive etc.?

So, you are wondering about the result of "genuineProcess isTerminated" being sent from a simulated process? Since it is an instance variable, this construction would not easily be possible. Meaning, it is not intended to access the genuine process from outside "Processor".

> Should there be two active processes? The genuine and the effective?


Well, at best, code simulation would be oblivious to the objects involved. So, that question would not arise. Yet, thinking about nested code simulation, one might argue that n processes are "active". :-) From a general perspective, however, only 1 process is running at a time. And most of that time, I would argue, it is some process being the genuine process, not an effective one. ;-) 

> As a consequence the genuine process is not shown on the Process Browser in such a case. [... ] And extend the isActiveProcess like [...]

No further changes to Process >> #isActiveProcess are needed for our current understanding of code simulation. :-) Given that debugging the debugger is tricky, debugging a process browser belongs to a similar category.

Best,
Marcel
Am 13.03.2021 21:30:15 schrieb Jaromir Matas <m at jaromir.net>:
Hi Marcel, Christoph,

trying to follow this wonderful job, thanks indeed :) A question: How is the
genuine process supposed to answer #isTerminated, isActive etc.? At the
moment it answers true to isTerminated if the effective process variable is
set. As a consequence the genuine process is not shown on the Process
Browser in such a case.



The effective process rightly answers true to isActiveProcess but what about
the genuine one?

Generally there's not much difference between a genuine and a terminated
process. Both have suspendedContext = nil. I guess the only difference is
that the genuine process is not terminated, and Processor is the place
keeping this information.

Should there be two active processes? The genuine and the effective? And
extend the isActiveProcess like

self == Processor activeProcess or: [self effectiveProcess == Processor
activeProcess]

Thanks again, I hope I'm not confused again :)




-----
^[^ Jaromir
--
Sent from: http://forum.world.st/Squeak-Dev-f45488.html

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20210314/4228f287/attachment.html>


More information about the Squeak-dev mailing list