Patch remaining bug in interaction between compile-by-procedures? and
authorGuillermo J. Rozas <edu/mit/csail/zurich/gjr>
Fri, 15 Sep 1989 17:08:20 +0000 (17:08 +0000)
committerGuillermo J. Rozas <edu/mit/csail/zurich/gjr>
Fri, 15 Sep 1989 17:08:20 +0000 (17:08 +0000)
first class environment decomposition.

For the time being, compile-by-procedures? is disabled within non top
level first class blocks (ie. in-package and make-environment).
This should ultimately be fixed.

v7/src/compiler/fggen/fggen.scm
v7/src/compiler/machines/bobcat/make.scm-68040

index 444a81b6cb4d705ff32af88af68e75a25e3a91c1..2ae7b027ce7df2798e240323e6fab015900146dd 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/fggen/fggen.scm,v 4.20 1989/09/13 20:44:32 jinx Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/fggen/fggen.scm,v 4.21 1989/09/15 17:05:22 jinx Exp $
 
 Copyright (c) 1988, 1989 Massachusetts Institute of Technology
 
@@ -716,16 +716,23 @@ MIT in each case. |#
           ((COMPILE)
            (if (not (scode/quotation? expression))
                (error "Bad compile directive" comment))
-           (continue/rvalue-constant block continuation
-                                     (make-constant
-                                      (compile-recursively
-                                       (scode/quotation-expression expression)
-                                       false))))
-          ((COMPILE-PROCEDURE)
+           (continue/rvalue-constant
+            block continuation
+            (make-constant
+             ;; This is a temporary kludge to fix a problem with the
+             ;; next case.
+             (fluid-let ((compiler:compile-by-procedures? false))
+               (compile-recursively
+                (scode/quotation-expression expression)
+                false)))))        ((COMPILE-PROCEDURE)
            (if (not (scode/lambda? expression))
                (error "Bad compile-procedure directive" comment))
-           (continue/rvalue-constant block continuation
-            (make-constant (compile-recursively expression true))))       ((ENCLOSE)
+           (if compiler:compile-by-procedures?
+               (continue/rvalue-constant
+                block continuation
+                (make-constant (compile-recursively expression true)))
+               (generate/expression block continuation expression)))
+          ((ENCLOSE)
            (generate/enclose block continuation expression))
           (else
            (warn "generate/comment: Unknown directive" (cadr text) comment)
index 290fc58270af4c2cd6f5eefe36aa6ec9bb3358e9..75a271d3d31f0f5f2874129dc2c423560fa36b59 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/bobcat/make.scm-68040,v 4.51 1989/09/13 20:44:01 jinx Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/bobcat/make.scm-68040,v 4.52 1989/09/15 17:08:20 jinx Exp $
 
 Copyright (c) 1988, 1989 Massachusetts Institute of Technology
 
@@ -41,4 +41,4 @@ MIT in each case. |#
            ((package/reference (find-package name) 'INITIALIZE-PACKAGE!)))
          '((COMPILER MACROS)
            (COMPILER DECLARATIONS)))
-(add-system! (make-system "Liar (Motorola MC68020)" 4 51 '()))
\ No newline at end of file
+(add-system! (make-system "Liar (Motorola MC68020)" 4 52 '()))
\ No newline at end of file