unsafe ops (v4.2.1.8)

svn: r15899

original commit: 8ae0ea9d14
This commit is contained in:
Matthew Flatt 2009-09-06 18:24:46 +00:00
parent bf222f9bc2
commit 95420f055d
2 changed files with 8 additions and 4 deletions

View File

@ -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))]

View File

@ -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)