newspeaklanguage / newspeak

Newspeak is a live object-capability language in the Smalltalk tradition
https://newspeaklanguage.org/
Other
132 stars 11 forks source link

Restore black market access in debugger #99

Open gbracha opened 2 years ago

gbracha commented 2 years ago

Squeak-based Newspeak had a feature that allows one to access elements that are not in scope while debugging. We need to support this in the web version. Indeed, this mechanism has uses throughout the IDE, in object presenters and methd evaluators, when defining exemplars etc. It may be worth extending it to provide convenient access to non-public members, to pre-existing exemplar data etc.

gbracha commented 2 years ago

Looking in to this, I can see that the feature was taken out a few years ago. It was replaced by a facility to specify an enclosing scope. The intent is to provide a scope where the top level scope is available via . That was a mistake. Using a scope to provide it instead of a special syntax is broken, because is a legal message name. Normal code has different meaning when debugging, and also normal code can prevent access to the black market. The original design recognized this issue and defined a extended language for debugging and other IDE interactions. In any case, even the _ access doesn't function right now.