*** empty log message ***
authorStephen Adams <edu/mit/csail/zurich/adams>
Tue, 22 Nov 1994 03:49:09 +0000 (03:49 +0000)
committerStephen Adams <edu/mit/csail/zurich/adams>
Tue, 22 Nov 1994 03:49:09 +0000 (03:49 +0000)
v8/src/compiler/midend/closconv.scm
v8/src/compiler/midend/cpsconv.scm
v8/src/compiler/midend/inlate.scm

index a263c29622cc4092e24941bea003951127efef32..f99df33ce0640c9ad61cecd6d6e0e337a8df0e67 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: closconv.scm,v 1.1 1994/11/19 02:04:29 adams Exp $
+$Id: closconv.scm,v 1.2 1994/11/22 03:48:40 adams Exp $
 
 Copyright (c) 1994 Massachusetts Institute of Technology
 
@@ -386,6 +386,18 @@ MIT in each case. |#
     (set-closconv/env/form! env* expr*)
     (values expr* env*)))
 
+(define (closconv/lambda** context env lam-expr)
+  ;; (values expr* env*)
+  (call-with-values
+   (lambda ()
+     (closconv/lambda* context
+                      env
+                      (lambda/formals lam-expr)
+                      (lambda/body lam-expr)))
+   (lambda (expr* env*)
+     (values (closconv/remember expr* lam-expr)
+            env*))))
+
 (define (closconv/bindings env* env bindings)
   ;; ENV* is the environment to which the bindings are being added
   ;; ENV is the environment in which the form part of the binding is
@@ -401,10 +413,9 @@ MIT in each case. |#
                 (closconv/expr env value)
                 (call-with-values
                  (lambda ()
-                   (closconv/lambda* 'DYNAMIC ; bindings are dynamic
-                                     env
-                                     (cadr value) ; lambda list
-                                     (caddr value))) ; body
+                   (closconv/lambda** 'DYNAMIC ; bindings are dynamic
+                                      env
+                                      value))
                  (lambda (value* env**)
                    (let ((binding
                           (or (closconv/binding/find (closconv/env/bound env*)
index ce0d1e588ce67a8df66e78ec9eb7a989ce2279d5..5898931512cbeabe3869bc0662ac20007eb05817 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: cpsconv.scm,v 1.1 1994/11/19 02:04:29 adams Exp $
+$Id: cpsconv.scm,v 1.2 1994/11/22 03:48:51 adams Exp $
 
 Copyright (c) 1994 Massachusetts Institute of Technology
 
@@ -38,10 +38,12 @@ MIT in each case. |#
 (declare (usual-integrations))
 \f
 (define (cpsconv/top-level program)
-  (let ((name (new-continuation-variable)))
-    `(LET ((,name (CALL (QUOTE ,%fetch-continuation) (QUOTE #F))))
-       ,(cpsconv/expr (cpsconv/named-continuation name)
-                     program))))
+  (let* ((name (new-continuation-variable))
+        (program*
+         `(LET ((,name (CALL (QUOTE ,%fetch-continuation) (QUOTE #F))))
+            ,(cpsconv/expr (cpsconv/named-continuation name)
+                           program))))
+    (cpsconv/remember program* program)))
 
 (define-macro (define-cps-converter keyword bindings . body)
   (let ((proc-name (symbol-append 'CPSCONV/ keyword)))
@@ -84,7 +86,7 @@ MIT in each case. |#
   `(LETREC ,(lmap (lambda (binding)
                    (let ((value (cadr binding)))
                      (list (car binding)
-                           (cpsconv/lambda* (cadr value) (caddr value)))))
+                           (cpsconv/lambda** value))))
                  bindings)
      ,(cpsconv/expr cont body)))
 
@@ -92,6 +94,11 @@ MIT in each case. |#
   `(LAMBDA ,lambda-list
      ,(cpsconv/expr (cpsconv/named-continuation (car lambda-list))
                    body)))
+
+(define (cpsconv/lambda** lam-expr)
+  (cpsconv/remember (cpsconv/lambda* (lambda/formals lam-expr)
+                                    (lambda/body lam-expr))
+                   lam-expr))
 \f
 #|
 (define-cps-converter CALL (cont rator orig-cont #!rest rands)
index 7b2b781d7392850c36c45c021828ac2a57de6e21..306b8f5d2157cefe779edab7a0c5aaf65a9758c4 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: inlate.scm,v 1.1 1994/11/19 02:04:29 adams Exp $
+$Id: inlate.scm,v 1.2 1994/11/22 03:49:09 adams Exp $
 
 Copyright (c) 1994 Massachusetts Institute of Technology
 
@@ -100,8 +100,10 @@ MIT in each case. |#
                         (list `(DECLARE ,@decls)
                               body)))))))
        (inlate/remember new
-                        (new-dbg-procedure/make form lambda-list))))))
-
+                        (new-dbg-procedure/make
+                         form
+                         (cons name lambda-list)))))))
+#|
 (define (inlate/lambda* name req opt rest aux decls sbody)
   name                                 ; ignored
   `(LAMBDA ,(append (cons (new-continuation-variable) req)
@@ -120,6 +122,7 @@ MIT in each case. |#
            (beginnify
             (list `(DECLARE ,@decls)
                   body))))))
+|#
 \f
 (define-inlator IN-PACKAGE (environment expression)
   `(IN-PACKAGE ,(inlate/scode environment)