Add syntax for #!UNASSIGNED and #!UNSPECIFIC.
authorChris Hanson <org/chris-hanson/cph>
Fri, 19 Nov 2004 07:12:03 +0000 (07:12 +0000)
committerChris Hanson <org/chris-hanson/cph>
Fri, 19 Nov 2004 07:12:03 +0000 (07:12 +0000)
v7/src/runtime/global.scm
v7/src/runtime/parse.scm
v7/src/runtime/runtime.pkg
v7/src/runtime/unpars.scm

index 2e1ed9b56ec695f20be5113f8b6a5b93235ed4db..1eaaacb9e78d08cfb5243c30884380ada5536631 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: global.scm,v 14.70 2004/10/30 03:58:54 cph Exp $
+$Id: global.scm,v 14.71 2004/11/19 07:11:36 cph Exp $
 
 Copyright 1988,1989,1991,1992,1993,1995 Massachusetts Institute of Technology
 Copyright 1998,2000,2001,2003,2004 Massachusetts Institute of Technology
@@ -317,13 +317,13 @@ USA.
       ;; same as `undefined-conditional-branch'.
       ;; (eq? object *the-non-printing-object*)
       ;; (eq? object unspecific)
-      (eq? object (microcode-object/unassigned))))
+      (eq? object unassigned-object)))
 
 (define unspecific
   (object-new-type (ucode-type constant) 1))
 
-(define *the-non-printing-object*
-  unspecific)
+(define unassigned-object
+  (object-new-type (ucode-type constant) 2))
 \f
 (define (obarray->list #!optional obarray)
   (let ((obarray
index 13821f9dbfed2bc61a2916ade09a22dc88908975..f9ccd33b663f60c208da38cf5673f00c37ff0281 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: parse.scm,v 14.54 2004/11/19 06:56:11 cph Exp $
+$Id: parse.scm,v 14.55 2004/11/19 07:11:43 cph Exp $
 
 Copyright 1986,1987,1988,1989,1990,1991 Massachusetts Institute of Technology
 Copyright 1992,1993,1994,1997,1998,1999 Massachusetts Institute of Technology
@@ -489,6 +489,8 @@ USA.
          ((string-ci=? name "aux") lambda-aux-tag)
          ((string-ci=? name "eof") (make-eof-object #f))
          ((string-ci=? name "default") (default-object))
+         ((string-ci=? name "unassigned") unassigned-object)
+         ((string-ci=? name "unspecific") unspecific)
          (else (error:illegal-named-constant name)))))
 
 (define lambda-optional-tag (object-new-type (ucode-type constant) 3))
index 6223d2ec1c1c7bf6825594155d6ee23067de327b..62ab36906e620e2f8ebafa113795d75ace2420e3 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: runtime.pkg,v 14.515 2004/11/19 07:00:01 cph Exp $
+$Id: runtime.pkg,v 14.516 2004/11/19 07:11:55 cph Exp $
 
 Copyright 1988,1989,1990,1991,1992,1993 Massachusetts Institute of Technology
 Copyright 1994,1995,1996,1997,1998,1999 Massachusetts Institute of Technology
@@ -273,7 +273,7 @@ USA.
   (export ()
          %exit
          %quit
-         *the-non-printing-object*
+         (*the-non-printing-object* unspecific)
          <hook-list>
          append-hook-to-list
          apply
@@ -370,6 +370,10 @@ USA.
          with-interrupt-mask
          with-values
          write-to-string)
+  (export (runtime parser)
+         unassigned-object)
+  (export (runtime unparser)
+         unassigned-object)
   (initialization (initialize-package!)))
 
 (define-package (runtime alternative-lambda)
index 0b52b5b7dcb8e4dce217a76b25bc41b1fdd6bbf4..5750c1a57bdfa622a49a7b0daa0f02d65160f73b 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: unpars.scm,v 14.60 2004/11/19 07:04:52 cph Exp $
+$Id: unpars.scm,v 14.61 2004/11/19 07:12:03 cph Exp $
 
 Copyright 1986,1987,1990,1991,1992,1995 Massachusetts Institute of Technology
 Copyright 1996,2001,2002,2003,2004 Massachusetts Institute of Technology
@@ -316,14 +316,14 @@ USA.
   (cond ((not object) (*unparse-string "#f"))
        ((null? object) (*unparse-string "()"))
        ((eq? object #t) (*unparse-string "#t"))
-       ((undefined-value? object)
-        (*unparse-string "#[unspecified-return-value]"))
        ((default-object? object) (*unparse-string "#!default"))
        ((eof-object? object) (*unparse-string "#!eof"))
        ((eq? object lambda-aux-tag) (*unparse-string "#!aux"))
        ((eq? object lambda-key-tag) (*unparse-string "#!key"))
        ((eq? object lambda-optional-tag) (*unparse-string "#!optional"))
        ((eq? object lambda-rest-tag) (*unparse-string "#!rest"))
+       ((eq? object unassigned-object) (*unparse-string "#!unassigned"))
+       ((eq? object unspecific) (*unparse-string "#!unspecific"))
        (else (unparse/default object))))
 
 (define (unparse/return-address return-address)