diff options
author | Andy Wingo <wingo@pobox.com> | 2009-02-21 19:25:35 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2009-02-21 20:28:29 +0100 |
commit | 594d9d4c482d91ccfbc474ec193baadde6ab11f7 (patch) | |
tree | 8bb3150b9029055b2dc01cdf39391fe741bc8e1d /module/language/ecmascript/function.scm | |
parent | 81d677eb121834945bf0f9ebec28480e6e945cd0 (diff) | |
download | guile-594d9d4c482d91ccfbc474ec193baadde6ab11f7.tar.gz |
be smarter about allocating local variables, reusing slots if possible
* module/language/Makefile.am: OK, we can compile compile-ghil.scm now,
thankfully.
* module/language/ecmascript/compile-ghil.scm (ormatch): New macro, a
wrapper around pmatch to avoid some of the more egregious
non-tail recursiveness.
(comp): Use ormatch.
* module/language/ghil.scm (unparse-ghil): The body of bind and mv-bind
is a single expression, not a list of expressions.
* module/language/ghil/compile-glil.scm (codegen): Be more clever when
allocating "local" variables -- if a variable goes out of scope, its
index can be re-used later.
* module/language/glil.scm (parse-glil, unparse-ghil): The "rest" of a
mv-bind is a flag, not a list. The "ra" of an mv-call is a label, not a
GLIL expression.
* module/language/objcode/spec.scm (collapse-locals, decompile-value):
When decompiling a value, process the bindings list differently.
Comments in the code.
* module/language/scheme/compile-ghil.scm (define-scheme-translator): Fix
the generated error procedure.
(let): Re-indent.
(letrec): Re-indent.
* module/system/base/syntax.scm (record-case): If the body of a clause is
null, fill it with the unspecified value.
Diffstat (limited to 'module/language/ecmascript/function.scm')
0 files changed, 0 insertions, 0 deletions