From 6933512ec26f61695b88879c601080e5ddd02d6a Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Tue, 21 Jul 2015 13:29:15 -0600 Subject: [PATCH] update for revised bytecode --- zo-lib/compiler/zo-parse.rkt | 17 ++++++++++++++--- zo-lib/info.rkt | 2 +- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/zo-lib/compiler/zo-parse.rkt b/zo-lib/compiler/zo-parse.rkt index 9c411c323f..e21dd455e2 100644 --- a/zo-lib/compiler/zo-parse.rkt +++ b/zo-lib/compiler/zo-parse.rkt @@ -1265,9 +1265,19 @@ null #f)) (hash-set! ht s sc) - (unless (number? v) + (define bindings-l + (if (= kind 1) ; has multi owner + (match v + [(cons (? number?) (cons multi bindings-l)) + (set-scope-multi-owner! sc (decode-multi-scope multi ht)) + bindings-l]) + (match v + [(? number?) #f] + [(cons (? number?) bindings-l) + bindings-l]))) + (when bindings-l (define-values (bulk-bindings end) - (let loop ([l (cdr v)] [bulk-bindings null]) + (let loop ([l bindings-l] [bulk-bindings null]) (cond [(pair? l) (loop (cdr l) (cons (list (decode-scope-set (caar l) ht) @@ -1410,7 +1420,8 @@ [(= (add1 i) (vector-length ms)) null] [else (define s (decode-scope (vector-ref ms (add1 i)) ht)) - (when (scope-multi-owner s) + (when (and (scope-multi-owner s) + (not (eq? (scope-multi-owner s) multi))) (error 'decode-wrap "bad scope owner: ~e while reading ~e" (scope-multi-owner s) multi)) diff --git a/zo-lib/info.rkt b/zo-lib/info.rkt index b6e36644e7..fc36b36f5a 100644 --- a/zo-lib/info.rkt +++ b/zo-lib/info.rkt @@ -2,7 +2,7 @@ (define collection 'multi) -(define deps '("base")) +(define deps '(["base" #:version "6.2.900.5"])) (define pkg-desc "Libraries for handling zo files")