Just out of curiosity, what do Common Lisps do in this case? i.e. if a variable appears only in LET forms (not at toplevel) but is declared special in each, what happens to it when the program exits one of the scopes in which it was declared? <br>

<br>Daniel<br><br><div class="gmail_quote">On Thu, Jan 7, 2010 at 6:17 PM, Vladimir Sedach <span dir="ltr"><<a href="mailto:vsedach@gmail.com">vsedach@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

I actually wasn't going to delete the variables at the end of the<br>
scope - then there would have to be a flag to see if the variable was<br>
there previously and might be used by somebody.<br>
<br>
The reason the global reference is needed is that there's no guarantee<br>
that the generated code will be executed from the toplevel, so just<br>
declaring a var wouldn't work in all contexts.<br>
<br>
Vladimir<br>
<br>
2010/1/6 Daniel Gackle <<a href="mailto:danielgackle@gmail.com">danielgackle@gmail.com</a>>:<br>
<div><div></div><div class="h5">> Cool. Do you plan to use "window" or the other trick?<br>
><br>
> To answer your earlier question - we're not accessing the global object at<br>
> all; we're declaring any such variables manually using var at the toplevel<br>
> (in other words, what we're doing is braindead). Stuffing them in the global<br>
> object then taking them out again on scope exit seems like the right way.<br>
><br>
> Daniel<br>
><br>
><br>
> On Wed, Jan 6, 2010 at 8:03 PM, Vladimir Sedach <<a href="mailto:vsedach@gmail.com">vsedach@gmail.com</a>> wrote:<br>
>><br>
>> After scratching my head about how to get a reference to the global<br>
>> object for a while, StackOverflow came to the rescue:<br>
>><br>
>><br>
>> <a href="http://stackoverflow.com/questions/383185/javascript-check-if-in-global-context" target="_blank">http://stackoverflow.com/questions/383185/javascript-check-if-in-global-context</a><br>
>><br>
>> Implementation to be done later.<br>
>><br>
>> Vladimir<br>
>><br>
>> 2010/1/4 Vladimir Sedach <<a href="mailto:vsedach@gmail.com">vsedach@gmail.com</a>>:<br>
>> >> Do you (or does anyone) think that the above would be a bad idea? If<br>
>> >> so,<br>
>> >> why?<br>
>> >><br>
>> >> We have a macro right now that does the above in a somewhat ugly way,<br>
>> >> and<br>
>> >> it's very handy on the 3 or 4 occasions that we need it.<br>
>> ><br>
>> > How does your macro introduce the global variable? Does it get a<br>
>> > reference to the toplevel object? I think that's probably the way to<br>
>> > go.<br>
>> ><br>
>> > Vladimir<br>
>> ><br>
>> >> Daniel<br>
>> >><br>
>> >> _______________________________________________<br>
>> >> parenscript-devel mailing list<br>
>> >> <a href="mailto:parenscript-devel@common-lisp.net">parenscript-devel@common-lisp.net</a><br>
>> >> <a href="http://common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel" target="_blank">http://common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel</a><br>
>> >><br>
>> >><br>
>> ><br>
>><br>
>> _______________________________________________<br>
>> parenscript-devel mailing list<br>
>> <a href="mailto:parenscript-devel@common-lisp.net">parenscript-devel@common-lisp.net</a><br>
>> <a href="http://common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel" target="_blank">http://common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel</a><br>
><br>
><br>
> _______________________________________________<br>
> parenscript-devel mailing list<br>
> <a href="mailto:parenscript-devel@common-lisp.net">parenscript-devel@common-lisp.net</a><br>
> <a href="http://common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel" target="_blank">http://common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel</a><br>
><br>
><br>
<br>
_______________________________________________<br>
parenscript-devel mailing list<br>
<a href="mailto:parenscript-devel@common-lisp.net">parenscript-devel@common-lisp.net</a><br>
<a href="http://common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel" target="_blank">http://common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel</a><br>
</div></div></blockquote></div><br>