Add and export GUARANTEE-PROMISE.
authorJoe Marshall <eval.apply@gmail.com>
Mon, 28 Mar 2011 17:41:18 +0000 (10:41 -0700)
committerJoe Marshall <eval.apply@gmail.com>
Mon, 28 Mar 2011 17:41:18 +0000 (10:41 -0700)
src/runtime/runtime.pkg
src/runtime/udata.scm

index 836b5c91a3323cefb6c8b7254bc95019eb58f72c..d81887c41f275f7700e499cfbaaa3e55eafa480f 100644 (file)
@@ -698,6 +698,7 @@ USA.
          environment-extension-procedure
          environment-extension?
          force
+         guarantee-promise
          interpreter-return-address?
          make-return-address
          microcode-error
index d79fd96966b9dcee0a9079273f62c880117f9746..8f56c44dae86d85f8812b25263ad3b9e8abe93da 100644 (file)
@@ -262,6 +262,8 @@ contains constants derived from the source program.
 (define-integrable (promise? object)
   (object-type? (ucode-type delayed) object))
 
+(define-guarantee promise "promise")
+
 (define-integrable (promise-forced? promise)
   (eq? #t (system-pair-car promise)))
 
@@ -288,8 +290,7 @@ contains constants derived from the source program.
   (system-pair-car promise))
 
 (define (force promise)
-  (if (not (promise? promise))
-      (error:wrong-type-argument promise "promise" 'FORCE))
+  (guarantee-promise promise 'FORCE)
   (case (system-pair-car promise)
     ((#T)
      (system-pair-cdr promise))