From 87dadea6fb58d53c1ac96e58e7d61164a2a8f11e Mon Sep 17 00:00:00 2001 From: "Guillermo J. Rozas" Date: Wed, 24 Mar 1993 02:44:26 +0000 Subject: [PATCH] Fix bug in canonicalize/lambda. Lambda expressions that need the binding of #[environment] cannot be compiled separately. --- v7/src/compiler/fggen/canon.scm | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/v7/src/compiler/fggen/canon.scm b/v7/src/compiler/fggen/canon.scm index f9a03acf8..06c1459a6 100644 --- a/v7/src/compiler/fggen/canon.scm +++ b/v7/src/compiler/fggen/canon.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Id: canon.scm,v 1.14 1993/03/10 02:36:21 gjr Exp $ +$Id: canon.scm,v 1.15 1993/03/24 02:44:26 gjr Exp $ Copyright (c) 1988-1993 Massachusetts Institute of Technology @@ -322,9 +322,10 @@ ARBITRARY: The expression may be executed more than once. It (canonicalize/lambda* expr bound (if (eq? context 'FIRST-CLASS) 'FIRST-CLASS 'ARBITRARY)))) - (if (not (and (eq? context 'TOP-LEVEL) - (canout-safe? canout) - compiler:compile-by-procedures?)) + (if (or (not (eq? context 'TOP-LEVEL)) + (not (canout-safe? canout)) + (canout-needs? canout) + (not compiler:compile-by-procedures?)) canout (make-canout (scode/make-directive -- 2.25.1