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