Make sure the open-block tag is computed correctly.
authorChris Hanson <org/chris-hanson/cph>
Fri, 26 Jan 2018 04:32:11 +0000 (20:32 -0800)
committerChris Hanson <org/chris-hanson/cph>
Fri, 26 Jan 2018 04:32:11 +0000 (20:32 -0800)
src/runtime/predicate-tagging.scm
src/runtime/scan.scm

index 61b08635fc8f68c9106352e3e9aeb7908b39539a..6fa109f26cb3be46b26fc0a8c6e27dac2d7881b4 100644 (file)
@@ -102,7 +102,6 @@ USA.
    (define-primitive-predicate 'quotation scode-quotation?)
    (define-primitive-predicate 'ratnum exact-rational?)
    (define-primitive-predicate 'recnum number?)
-   (define-primitive-predicate 'sequence scode-sequence?)
    (define-primitive-predicate 'stack-environment stack-address?)
    (define-primitive-predicate 'string string?)
    (define-primitive-predicate 'the-environment scode-the-environment?)
@@ -187,5 +186,8 @@ USA.
             (%record-ref object 0)
             default-tag))))
 
+   (define-primitive-predicate-method 'sequence
+     (simple-alternative scode-sequence? open-block?))
+
    (define-primitive-predicate-method 'tagged-object
      %tagged-object-tag)))
\ No newline at end of file
index d43faed8b1e9b4f01e96cb5f3cbb1899d90f351a..3a5d7321b4389b7a17866b931f5b98188ca50c9a 100644 (file)
@@ -172,6 +172,7 @@ USA.
                     (every %open-block-definition-named?
                            names
                            (cdr actions))))))))
+(register-predicate! open-block? 'open-block '<= scode-sequence?)
 
 (define (%open-block-definition-named? name expr)
   (and (scode-definition? expr)