Change definitions and names of operations on objects whose type is
authorChris Hanson <org/chris-hanson/cph>
Sat, 2 Jan 1988 14:21:45 +0000 (14:21 +0000)
committerChris Hanson <org/chris-hanson/cph>
Sat, 2 Jan 1988 14:21:45 +0000 (14:21 +0000)
`delayed'.  Old name for such objects was `delayed-evaluation', new
name is `promise'.  The microcode has been extended to allow a new
kind of `promise', distinguished by a fixnum zero in its car, whose
cdr is a procedure of no arguments which is applied to get the value.
This is used to support compiled promises.

v7/src/runtime/where.scm

index e83f75b611845b58be226e8db511545776cac888..485f2b6b0207a09588f6f335eafa66c5bc7c5ab2 100644 (file)
@@ -1,6 +1,6 @@
 ;;; -*-Scheme-*-
 ;;;
-;;;    $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/where.scm,v 13.43 1987/12/05 16:40:57 cph Exp $
+;;;    $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/where.scm,v 13.44 1988/01/02 14:21:45 cph Rel $
 ;;;
 ;;;    Copyright (c) 1987 Massachusetts Institute of Technology
 ;;;
                env-spec)
               ((compound-procedure? env-spec)
                (procedure-environment env-spec))
-              ((delayed? env-spec)
-               (if (delayed-evaluation-forced? env-spec)
-                   (error "Not a valid environment, already forced"
-                          (list where env-spec))
-                   (delayed-evaluation-environment env-spec)))
+              ((promise? env-spec)
+               (promise-environment env-spec))
               (else
-               (error "Not a legal environment object" 'WHERE
-                      env-spec)))))
+               (error "WHERE: Not a legal environment object" env-spec)))))
     (environment-warning-hook environment)
     (fluid-let ((env environment)
                (current-frame environment)