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