mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-24 21:50:20 +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. |
||
---|---|---|
.. | ||
analyze.scm | ||
compile-glil.scm | ||
fix-letrec.scm | ||
inline.scm | ||
optimize.scm | ||
primitives.scm | ||
spec.scm |