From: Stephen Adams Date: Tue, 11 Jul 1995 21:42:10 +0000 (+0000) Subject: Forced left-to-right processing of subexpression so that recursive X-Git-Tag: 20090517-FFI~6190 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=c6b75337ce38a89d814915bd64b10156cbb2e20b;p=mit-scheme.git Forced left-to-right processing of subexpression so that recursive compilations come out in source code order. --- diff --git a/v8/src/compiler/midend/envconv.scm b/v8/src/compiler/midend/envconv.scm index 96c9f2ba6..cb82b6d54 100644 --- a/v8/src/compiler/midend/envconv.scm +++ b/v8/src/compiler/midend/envconv.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Id: envconv.scm,v 1.13 1995/07/06 19:54:08 adams Exp $ +$Id: envconv.scm,v 1.14 1995/07/11 21:42:10 adams Exp $ Copyright (c) 1994-1995 Massachusetts Institute of Technology @@ -366,9 +366,12 @@ MIT in each case. |# (envconv/expr env expr)) (define (envconv/expr* env exprs) - (map (lambda (expr) - (envconv/expr env expr)) - exprs)) + ;; Go left to right to ensure recursive compilations occur in `source' + ;; order. Dont use MAP which may go in either order. + (let loop ((exprs exprs) (fin '())) + (if (null? exprs) + (reverse! fin) + (loop (cdr exprs) (cons (envconv/expr env (car exprs)) fin))))) (define (envconv/remember new old block) (call-with-values