Fasdump weak false.
authorTaylor R Campbell <campbell@mumble.net>
Sat, 8 Dec 2018 23:54:30 +0000 (23:54 +0000)
committerTaylor R Campbell <campbell@mumble.net>
Sat, 8 Dec 2018 23:54:35 +0000 (23:54 +0000)
(Maybe this should just not be constant-folded?)

src/compiler/base/fasdump.scm

index 2dff5d1b7eec8c774f6820cc2cb7449f660f4931..9354f5bb5fe0be20d4dc498afe2e1c429eb1c1e7 100644 (file)
@@ -669,6 +669,8 @@ USA.
            (if-non-pointer tc:constant constant:unspecific))
           ((null? object)
            (if-non-pointer tc:constant constant:null))
+          ((eqv? object (weak-false))
+           (if-non-pointer tc:constant constant:weak-false))
           (else
            (fasdump-error state "Invalid object for fasdump:" object)))))
 
@@ -1019,6 +1021,7 @@ USA.
 (define constant:default 7)
 (define constant:aux 8)
 (define constant:null 9)
+(define constant:weak-false 10)
 
 (define trap:unbound 2)
 (define trap-max-immediate 9)
@@ -1091,6 +1094,8 @@ USA.
 (define (optional-object) #!optional)
 (define (rest-object) #!rest)
 (define (unspecific-object) #!unspecific)
+(define (weak-false)
+  (object-new-type (microcode-type 'constant) 10))
 
 (define (port-position port)
   ((access binary-port-position (->environment '(runtime binary-port))) port))