[squeak-dev] SimulationSideEffectWarning (was: The Trunk: Kernel-nice.1386.mcz)

Christoph Thiede christoph.thiede at student.hpi.uni-potsdam.de
Sun May 9 19:02:15 UTC 2021


Hi all!

After rethinking the case again, here is my proposed solution (please find
it in the attachment).
SimulationSideEffectWarning.cs
<http://forum.world.st/file/t372205/SimulationSideEffectWarning.cs>  

In a nutshell, I decided on a strict separation between the different causes
for a side effect warning since control primitives and simulation guards
actually reside on different levels of abstraction. They only have in common
that the user of the simulator should maybe know about them. The detailed
changelog is in the postscript of the changelog, here is a copy:


SimulationSideEffectWarning.cs wrote
> - Replace generic Warning in Context >> #doPrimitive:method:receiver:args:
> by specific warning of new class SimulationSideEffectWarning.
> - Also signal SimulationSideEffectWarning if primitive 87
> (primitiveResume) is hit.
> - SimulationSideEffectWarning contains logic to detect the type
> (simulation guard/control primitive) of the side effect. It can also be
> suppressed or unsuppressed along the handler chain using the '*suppress*'
> selectors. Control primitive side effects are suppressed by default.
> - Add tests for the changes above.
> - In the debugger, unsuppress control primitive warnings.
> - Replace definitions of primitive 19 (currently only in ControlManager)
> with a named alias pragma, 
> <simulationGuard>
> , which is implemented on Parser.
> 
> For more information, see:
> http://forum.world.st/The-Trunk-Kernel-nice-1386-mcz-td5128636.html
> 
> 
> (* Sorry, this should be in the preamble, not in the postscript, I know,
> but the preamble editor in the ChangeSorter is currently broken.
> ¯\_(ツ)_/¯)

Please let us know how I can improve it or just merge it directly! :-)

Best,
Christoph



-----
Carpe Squeak!
--
Sent from: http://forum.world.st/Squeak-Dev-f45488.html


More information about the Squeak-dev mailing list