From da1d694eb2393da48a2ecb7261dd7a02f4f66fd4 Mon Sep 17 00:00:00 2001 From: Chris Hanson Date: Wed, 24 Apr 2002 19:21:21 +0000 Subject: [PATCH] Use lambda abstraction rather than bypassing it. --- v7/src/runtime/runtime.pkg | 6 ++++-- v7/src/runtime/uenvir.scm | 9 +++------ 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/v7/src/runtime/runtime.pkg b/v7/src/runtime/runtime.pkg index 5410c4f7f..fdde72266 100644 --- a/v7/src/runtime/runtime.pkg +++ b/v7/src/runtime/runtime.pkg @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Id: runtime.pkg,v 14.412 2002/03/01 17:02:46 cph Exp $ +$Id: runtime.pkg,v 14.413 2002/04/24 19:21:21 cph Exp $ Copyright (c) 1988-2002 Massachusetts Institute of Technology @@ -1939,7 +1939,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA lambda-wrap-body! lambda-wrapper-components) (export (runtime environment) - internal-lambda?) + internal-lambda? + lambda-names-vector + make-slambda) (export (runtime compiler-info) lambda-tag:internal-lambda lambda-tag:internal-lexpr) diff --git a/v7/src/runtime/uenvir.scm b/v7/src/runtime/uenvir.scm index 33a75c3a6..4d09fa14c 100644 --- a/v7/src/runtime/uenvir.scm +++ b/v7/src/runtime/uenvir.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Id: uenvir.scm,v 14.56 2002/02/13 01:02:55 cph Exp $ +$Id: uenvir.scm,v 14.57 2002/04/24 19:21:01 cph Exp $ Copyright (c) 1988-1999, 2001, 2002 Massachusetts Institute of Technology @@ -340,7 +340,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA (append! (do-frame environment) (do-frame external))))) (define (walk-ic-procedure-args frame procedure keep? map-entry) - (let ((name-vector (system-pair-cdr (procedure-lambda procedure)))) + (let ((name-vector (lambda-names-vector (procedure-lambda procedure)))) (let loop ((index (vector-length name-vector)) (result '())) (if (fix:> index 1) (let ((index (fix:- index 1))) @@ -434,10 +434,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA (system-list->vector (ucode-type environment) (cons (system-pair-cons (ucode-type procedure) - (system-pair-cons (ucode-type lambda) - unspecific - (list->vector - (cons lambda-tag:unnamed names))) + (make-slambda lambda-tag:unnamed names unspecific) environment) (if (eq? values 'DEFAULT) (let ((values (make-list (length names)))) -- 2.25.1