From: Guillermo J. Rozas Date: Fri, 15 Sep 1989 17:08:20 +0000 (+0000) Subject: Patch remaining bug in interaction between compile-by-procedures? and X-Git-Tag: 20090517-FFI~11800 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=b32b57ff46075f26a0197bdde462fbaf2d2c2908;p=mit-scheme.git Patch remaining bug in interaction between compile-by-procedures? and 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. --- diff --git a/v7/src/compiler/fggen/fggen.scm b/v7/src/compiler/fggen/fggen.scm index 444a81b6c..2ae7b027c 100644 --- a/v7/src/compiler/fggen/fggen.scm +++ b/v7/src/compiler/fggen/fggen.scm @@ -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) diff --git a/v7/src/compiler/machines/bobcat/make.scm-68040 b/v7/src/compiler/machines/bobcat/make.scm-68040 index 290fc5827..75a271d3d 100644 --- a/v7/src/compiler/machines/bobcat/make.scm-68040 +++ b/v7/src/compiler/machines/bobcat/make.scm-68040 @@ -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