diff --git a/collects/compiler/decompile.ss b/collects/compiler/decompile.ss index 819e86569b..8729a983b1 100644 --- a/collects/compiler/decompile.ss +++ b/collects/compiler/decompile.ss @@ -13,6 +13,7 @@ (let ([ns (make-base-empty-namespace)]) (parameterize ([current-namespace ns]) (namespace-require ''#%kernel) + (namespace-require ''#%unsafe) (for/list ([l (namespace-mapped-symbols)]) (cons l (with-handlers ([exn:fail? (lambda (x) #f)]) (compile l))))))] @@ -320,7 +321,7 @@ list list* vector vector-immutable box))] [(3) (memq (car a) '(eq? = <= < >= > bitwise-bit-set? char=? - + - * / min max bitwise-and bitwise-ior + + - * / quotient remainder min max bitwise-and bitwise-ior arithmetic-shift vector-ref string-ref bytes-ref set-mcar! set-mcdr! cons mcons list list* vector vector-immutable))] diff --git a/collects/compiler/zo-parse.ss b/collects/compiler/zo-parse.ss index 8af27954f9..397f585e31 100644 --- a/collects/compiler/zo-parse.ss +++ b/collects/compiler/zo-parse.ss @@ -113,9 +113,12 @@ (make-compilation-top ld prefix code)])) (define (read-resolve-prefix v) - (match v - [`(,i ,tv . ,sv) - (make-prefix i (vector->list tv) (vector->list sv))])) + (let-values ([(v unsafe?) (if (integer? (car v)) + (values v #f) + (values (cdr v) #t))]) + (match v + [`(,i ,tv . ,sv) + (make-prefix i (vector->list tv) (vector->list sv))]))) (define (read-unclosed-procedure v) (define CLOS_HAS_REST 1)