mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-06 07:30:28 +02:00
* module/language/tree-il/compile-glil.scm (flatten): Fix compilation of loops within loops in non-tail positions. Will add a test case soon, but one way to reproduce it was with the following function: (define (test) (let lp () (pk 'zero) (let ((fk (lambda () (let ((fk2 (lambda () (pk 'two)))) (let ((fk3 (lambda () (if #t (pk 'three) (fk2))))) (if #t (fk3) (fk2))))))) (pk 'one) (fk)) (lp))) One would expect to see a sequence of "zero one three", but in fact zero only showed once. This should fix simplex as well. |
||
---|---|---|
.. | ||
assembly | ||
brainfuck | ||
bytecode | ||
ecmascript | ||
elisp | ||
ghil | ||
glil | ||
objcode | ||
r5rs | ||
scheme | ||
tree-il | ||
value | ||
assembly.scm | ||
ghil.scm | ||
glil.scm | ||
objcode.scm | ||
tree-il.scm |