summaryrefslogtreecommitdiff
path: root/libguile/vm-i-scheme.c
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2009-08-06 16:01:24 +0200
committerAndy Wingo <wingo@pobox.com>2009-08-06 16:01:24 +0200
commit80af1168751e59a3ee5c4a79febb2da23d36112d (patch)
treee4a459027805bd19e592370b5a202d0b3a1b74b8 /libguile/vm-i-scheme.c
parentbca488f186ce662e8c41b8ac1675fa2f03bb3fc2 (diff)
downloadguile-80af1168751e59a3ee5c4a79febb2da23d36112d.tar.gz
actually implement "fixing letrec"
* module/Makefile.am (SOURCES): Reorganize so GHIL is compiled last, along with ecmascript. * module/language/scheme/spec.scm: Remove references to GHIL, as it's bitrotten and obsolete.. * module/language/tree-il.scm (make-tree-il-folder): Rework so that we only have down and up procs, and call down and up on each element. * module/language/tree-il/analyze.scm (analyze-lexicals): Fix a thinko handling let-values. * module/language/tree-il/fix-letrec.scm: Actually implement fixing letrec. The resulting code will perform better, but violations of the letrec restriction are not detected. This behavior is allowed by the spec, but it is undesirable. Perhaps that will be fixed later. * module/language/tree-il/inline.scm (inline!): Fix a case in which ((lambda args foo)) would be erroneously inlined to foo. Remove empty let, letrec, and fix statements. * module/language/tree-il/primitives.scm (effect-free-primitive?): New public predicate.
Diffstat (limited to 'libguile/vm-i-scheme.c')
0 files changed, 0 insertions, 0 deletions