1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-06 07:30:28 +02:00
guile/module/language
Andy Wingo 7f7b85cbf6 fix nontail loops within loops
* 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.
2009-09-01 18:07:29 +02:00
..
assembly Rename string-width to string-bytes-per-char 2009-08-19 22:15:22 -07:00
brainfuck remove lambda wrap hack of brainfuck tree-il compiler 2009-06-24 13:43:20 +02:00
bytecode Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
ecmascript debitrot the ecmascript compiler 2009-08-12 00:14:44 +02:00
elisp Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
ghil Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
glil Rename string-width to string-bytes-per-char 2009-08-19 22:15:22 -07:00
objcode remove all mentions of "external" from the compiler and related code 2009-07-23 17:15:17 +02:00
r5rs Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
scheme actually implement "fixing letrec" 2009-08-06 16:01:24 +02:00
tree-il fix nontail loops within loops 2009-09-01 18:07:29 +02:00
value Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
assembly.scm rework the vm support for wide strings 2009-08-12 16:34:05 +02:00
ghil.scm Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
glil.scm remove all mentions of "external" from the compiler and related code 2009-07-23 17:15:17 +02:00
objcode.scm Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
tree-il.scm actually implement "fixing letrec" 2009-08-06 16:01:24 +02:00