On Wed, May 13, 2009 at 2:53 PM, Russell McManus
> Erik Huelsmann <ehuels@...> writes:
>> As usual, please send me your comments, remarks and questions.
>> Now that we seem to have fixed most special bindings issues, I've
>> turned to other subjects. The next major subject that I've been able
>> to identify in terms of correctness problems is our handling of the
>> closure context in our compiled code.
>> Now that I'm gaining insight into the issue, it turns out to be almost
>> as hairy as special bindings :-)
> I have tried to understand what is happening in the compiler in this
> area and also have gotten confused.
Could you indicate where you lost track, if you got on track at all? :-)
> Have you read "Lisp in Small Pieces"? This book has a wonderful
> description of the problem, and shows how to cleanly address the issue.
I haven't read it, but I found it on Google books just a minute ago.
It looks to me like the section on interpreted closures is exactly
what we do: we catch the lexical environment in a "register". But that
doesn't work for our compiler: the compiler maintains the lexical
environment of the code it's compiling. It then hard-codes this
lexical environment into the output. Hence there's no single
"register" which contains (a list of) objects describing the state of
the current lexical environment.
> I have lots of other thoughts on this, but will try to hook up with on
> irc, because my thoughts are not well organized enough right now for a
Well, IRC may be better suited to get your thoughts out without the
need to structure them, it's not really a medium that lends itself
very well for brainstorming, so, if we could mix the media, starting
with just listing (unorganized if need be) the thoughts, then maybe
the combination of mail and IRC can help us getting them organised.
Thanks for joining in on these discussions. You help organize my
thoughts too, just by requiring me to explain the problems to you. And
remember: nobody can start at the expert level of anything, we all
need to learn. So, if you need to learn, be sure to *watch*, but don't
forget to *do*. After all, we learn by falling and getting up (equals