From: Allison Randal <[EMAIL PROTECTED]>
Date: Mon, 22 Oct 2007 19:16:37 -0700
Bob Rogers wrote:
> In what seems to have become an autumn tradition in the Parrot
> community, I am about to make my third annual attempt to implement
> Parrot support for what Common Lisp calls "special variable binding."
[...]
How about starting by describing the problem you want to solve in 4
sentences? Laziness is a virtue... also a good way to get stuff done.
Allison
All I am talking about is the equivalent of what "local $var" provides
for Perl 5, i.e. dynamically-scoped binding of scalar "package
variables."
================
From: Allison Randal <[EMAIL PROTECTED]>
Date: Mon, 22 Oct 2007 20:43:47 -0700
If the problem is simply "implement Common Lisp special variables", then
the most likely solution is to create a LispSpecialVar PMC. In the same
way that a MultiSub acts like a sub but internally stores a list of
subs, the LispSpecialVar would act like an ordinary variable to Parrot
internals and to all other languages, but would internally store a stack
of previous dynamic bindings.
How would continuations capture dynamic bindings, then? How would
stack-unwinding know which dynamic bindings to unmake?
-- Bob