Use lambda abstraction rather than bypassing it.
authorChris Hanson <org/chris-hanson/cph>
Wed, 24 Apr 2002 19:21:21 +0000 (19:21 +0000)
committerChris Hanson <org/chris-hanson/cph>
Wed, 24 Apr 2002 19:21:21 +0000 (19:21 +0000)
v7/src/runtime/runtime.pkg
v7/src/runtime/uenvir.scm

index 5410c4f7ff78dac117d9a57ad90b7e0dbc2a6d09..fdde72266dc86a581b9868016c8665b0613de1e4 100644 (file)
@@ -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)
index 33a75c3a601bd3bbb55f73f3b3ceefd69d9f3c8e..4d09fa14cd8e32f90321d8731ccc240498af533c 100644 (file)
@@ -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))))