Implemented LET and LET* by variable renaming, which provides the
authorVladimir Sedach <vsedach@gmail.com>
Sun, 3 May 2009 20:42:12 +0000 (14:42 -0600)
committerVladimir Sedach <vsedach@gmail.com>
Sun, 3 May 2009 20:42:12 +0000 (14:42 -0600)
commit5ffb1ebaaff5e8f899fd4b1bd91b015f2c52d656
treef087b88f8683fa6934351a06a9f50171e78c1dad
parentd7fe9ef286c622d33c1f43dbae72694efad6a711
Implemented LET and LET* by variable renaming, which provides the
correct scoping semantics, and simplifies both the producing and the
produced code.

Removed the "." and "[]" name-mangling conventions from
symbol-to-js-string. Any code that uses symbols such as "foo.bar[baz]"
will now issue a warning, and needs to be rewritten to use standard
Lisp accessors. This is needed for variable renaming to work, and is
an extension of the patch that eliminated the ".method" method-calling
convention.

Thanks to Daniel Gackle and Dough Hoyte for opening my eyes to this
technique, which was right in front of me all along.
12 files changed:
docs/reference.lisp
parenscript.asd
src/compiler.lisp
src/lib/ps-macro-lib.lisp
src/namespace.lisp
src/package.lisp
src/printer.lisp
src/special-forms.lisp
src/utils.lisp
t/package-system-tests.lisp
t/ps-tests.lisp
t/reference-tests.lisp