[squeak-dev] FullBlockClosures and ignoreOuterContext?

Fabio Niephaus lists at fniephaus.com
Mon Dec 14 21:33:03 UTC 2020


Hi all,

While digging through the implementation of FullBlockClosure with
Hernan, we were wondering about full closures that ignore their
outerContext. We noticed that the following method has two senders:
EncoderForSistaV1>>#genPushFullClosure:numCopied:receiverOnStack:ignoreOuterContext:

One of them seems to be the only one in use, and it's passing in false
as defaults for both receiverOnstack and ignoreOuterContext. The other
sender (BytecodeEncoder>>#sizePushFullClosure:numCopied:receiverOnStack:ignoreOuterContext:),
in turn, doesn't seem to have any further senders.

Unless we missed something, it looks like the outerContext will never
be ignored at the moment. Similarly, the receiver is never on the
stack. Is this something only Scorch can do or is this just "not yet
implemented"?

When can the outerContext be ignored? When does it make sense to pop
the receiver from the stack? And where can we find the latest version
of Scorch. Is it still the one at [1]?

Cheers,
Fabio

[1] https://github.com/clementbera/Scorch


More information about the Squeak-dev mailing list