Dynamic scoping (was: Proposal: Squeak-E = Squeak x Kernel-E)
spair at acm.org
Mon Jan 27 19:41:18 UTC 2003
> Sorry, Stephen, I forgot to mention your work. Our two
> implementations are basically equivalent. I think mine is a
> little faster since it reuses the context sender chain
> (hierarchy) instead of creating a new parallel environment
Is your stuff available? Will it work on a stock VM?
You mentioned using resumable exceptions directly. I consider that to
be a poor way to getting a runtime environment (mainly because you'd
need a separate class for getting each variable). But, I guess you were
speaking of how to do it in the absence of a dynamic context mechanism.
Actually, I've been considering enhancing RuntimeEnvironments use the
context stack as well (it is redundant to manage the parallel
hierarchy). I didn't do that initially because of some legacy code that
I wasn't sure would map well to a context stack based approach...as it
turns out, it does. But, the usage above would remain the same.
> This allows me to re-implement Exceptions to use
> my general context handlers/environments, without loss of
> efficiency. Your point about environments being inherited by
> forked processes is a nice option, but I wouldn't leave out
> exception handlers from being inherited also. I believe
> exception handlers and dynamic variables should be treated
> the same, not differently.
Agreed. The exception handlers should be maintained as runtime
environment values. And runtime environment lookup should be using the
VMs handler context lookup machinery.
More information about the Squeak-dev