mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-01 12:20:26 +02:00
http://savannah.gnu.org/bugs/?33362 * module/language/tree-il/compile-glil.scm (flatten-lambda-case): Rename from flatten, as it really just takes a particular case. Instead of iteratively compiling lambda cases through `comp', tail-call through flatten-lambda-case. This allows code to see which case it's being compiled in. Take advantage of that to limit the self-tail-call optimization to self-calls to the same case -- otherwise we might be jumping to a label without having reserved the right number of locals. (flatten-lambda): Adapt the caller. * test-suite/tests/compiler.test ("case-lambda"): Add a test. |
||
---|---|---|
.. | ||
assembly | ||
brainfuck | ||
bytecode | ||
ecmascript | ||
elisp | ||
glil | ||
objcode | ||
scheme | ||
tree-il | ||
value | ||
assembly.scm | ||
glil.scm | ||
objcode.scm | ||
tree-il.scm |