Use PRIMITIVE-OBJECT-SET-TYPE, not OBJECT-SET-TYPE, in EOF-OBJECT.
authorTaylor R Campbell <campbell@mumble.net>
Fri, 11 Dec 2009 00:39:15 +0000 (19:39 -0500)
committerTaylor R Campbell <campbell@mumble.net>
Fri, 11 Dec 2009 00:39:15 +0000 (19:39 -0500)
Neither is constant-folded, but PRIMITIVE-OBJECT-SET-TYPE is
open-coded while OBJECT-SET-TYPE is not.  (Is there a reason for
this?  An artefact of Multischeme?)

src/runtime/input.scm

index 966c06e76142f6a03af4324a2245fd1597888842..297c0bad8be3fc24ff7243ab6a8dc4194715fe9d 100644 (file)
@@ -117,15 +117,15 @@ USA.
 (define-integrable (accum-count a)
   (cdr a))
 
-(define (make-eof-object port)
+(define-integrable (make-eof-object port)
   port
   (eof-object))
 
-(define (eof-object)
-  (object-new-type (ucode-type constant) 6))
+(define-integrable (eof-object)
+  ((ucode-primitive primitive-object-set-type) (ucode-type constant) 6))
 
-(define (eof-object? object)
-  (eq? object (object-new-type (ucode-type constant) 6)))
+(define-integrable (eof-object? object)
+  (eq? object (eof-object)))
 
 (define (input-port/eof? port)
   (let ((eof? (port/operation port 'EOF?)))