1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-08 02:40:17 +02:00
guile/module/language/tree-il
Andy Wingo b88fef5519 fix invalid transformation of (values x) -> x, (+ x) -> x, etc
* module/language/tree-il/primitives.scm (+, *, cons*): In the case of
  just one argument (the identity case), expand to (values x) instead of
  just x.  Fixes values truncation in that case.
  (values): Likewise remove (values x) -> x translation, as the compiler
  will do it for us, and this fixes (values (values 1 2)).

* module/language/tree-il/compile-glil.scm (flatten-lambda-case): Handle
  `values' in a push context here.

* test-suite/tests/tree-il.test ("values"): Add some tests.
2011-06-17 19:42:55 +02:00
..
analyze.scm fix analyze.scm literal string warnings 2011-04-14 16:53:18 +02:00
compile-glil.scm fix invalid transformation of (values x) -> x, (+ x) -> x, etc 2011-06-17 19:42:55 +02:00
fix-letrec.scm fix-letrec tweaks 2011-03-09 22:38:11 +01:00
inline.scm fix memq/memv inlining 2011-02-07 21:58:51 +01:00
optimize.scm compilation enviroments are always modules; simplifications & refactorings 2009-10-16 15:33:32 +02:00
primitives.scm fix invalid transformation of (values x) -> x, (+ x) -> x, etc 2011-06-17 19:42:55 +02:00
spec.scm remove `version' field from <language> 2010-05-02 11:19:13 +02:00