diff options
author | Andy Wingo <wingo@pobox.com> | 2009-08-06 16:01:24 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2009-08-06 16:01:24 +0200 |
commit | 80af1168751e59a3ee5c4a79febb2da23d36112d (patch) | |
tree | e4a459027805bd19e592370b5a202d0b3a1b74b8 /module/language/scheme/spec.scm | |
parent | bca488f186ce662e8c41b8ac1675fa2f03bb3fc2 (diff) | |
download | guile-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 'module/language/scheme/spec.scm')
-rw-r--r-- | module/language/scheme/spec.scm | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/module/language/scheme/spec.scm b/module/language/scheme/spec.scm index 21aa023a5..df618581f 100644 --- a/module/language/scheme/spec.scm +++ b/module/language/scheme/spec.scm @@ -1,6 +1,6 @@ ;;; Guile Scheme specification -;; Copyright (C) 2001 Free Software Foundation, Inc. +;; Copyright (C) 2001, 2009 Free Software Foundation, Inc. ;;;; This library is free software; you can redistribute it and/or ;;;; modify it under the terms of the GNU Lesser General Public @@ -20,7 +20,6 @@ (define-module (language scheme spec) #:use-module (system base language) - #:use-module (language scheme compile-ghil) #:use-module (language scheme compile-tree-il) #:use-module (language scheme decompile-tree-il) #:export (scheme)) @@ -39,8 +38,7 @@ #:title "Guile Scheme" #:version "0.5" #:reader read - #:compilers `((tree-il . ,compile-tree-il) - (ghil . ,compile-ghil)) + #:compilers `((tree-il . ,compile-tree-il)) #:decompilers `((tree-il . ,decompile-tree-il)) #:evaluator (lambda (x module) (primitive-eval x)) #:printer write |