Add types for unsafe fixnum operations. This allows support for some sequences; in particular in-range now works in some cases (though still requires type annotations).
svn: r18333
This commit is contained in:
parent
35255c1415
commit
3d95ef650c
|
@ -641,6 +641,7 @@
|
||||||
|
|
||||||
;; unsafe
|
;; unsafe
|
||||||
|
|
||||||
|
[unsafe-vector-ref (-poly (a) ((-vec a) -Nat . -> . a))]
|
||||||
[unsafe-vector-length (-poly (a) ((-vec a) . -> . -Nat))]
|
[unsafe-vector-length (-poly (a) ((-vec a) . -> . -Nat))]
|
||||||
[unsafe-car (-poly (a b)
|
[unsafe-car (-poly (a b)
|
||||||
(cl->*
|
(cl->*
|
||||||
|
@ -649,6 +650,42 @@
|
||||||
(cl->*
|
(cl->*
|
||||||
(->acc (list (-pair a b)) b (list -cdr))))]
|
(->acc (list (-pair a b)) b (list -cdr))))]
|
||||||
|
|
||||||
|
[unsafe-fx+
|
||||||
|
(cl->
|
||||||
|
[(-Integer -Integer) -Integer]
|
||||||
|
[(-Nat -Nat) -Nat])]
|
||||||
|
[unsafe-fx- (-Integer -Integer . -> . -Integer)]
|
||||||
|
[unsafe-fx*
|
||||||
|
(cl->
|
||||||
|
[(-Integer -Integer) -Integer]
|
||||||
|
[(-Nat -Nat) -Nat])]
|
||||||
|
[unsafe-fxquotient (-Integer -Integer . -> . -Integer)]
|
||||||
|
[unsafe-fxremainder (-Integer -Integer . -> . -Integer)]
|
||||||
|
[unsafe-fxmodulo (-Integer -Integer . -> . -Integer)]
|
||||||
|
[unsafe-fxabs (-Integer . -> . -Nat)]
|
||||||
|
|
||||||
|
[unsafe-fxand (-Integer -Integer . -> . -Integer)]
|
||||||
|
[unsafe-fxior (-Integer -Integer . -> . -Integer)]
|
||||||
|
[unsafe-fxxor (-Integer -Integer . -> . -Integer)]
|
||||||
|
[unsafe-fxnot (-Integer . -> . -Integer)]
|
||||||
|
[unsafe-fxlshift (-Integer -Integer . -> . -Integer)]
|
||||||
|
[unsafe-fxrshift (-Integer -Integer . -> . -Integer)]
|
||||||
|
|
||||||
|
[unsafe-fx= (-Integer -Integer . -> . -Boolean)]
|
||||||
|
[unsafe-fx< (-Integer -Integer . -> . -Boolean)]
|
||||||
|
[unsafe-fx> (-Integer -Integer . -> . -Boolean)]
|
||||||
|
[unsafe-fx<= (-Integer -Integer . -> . -Boolean)]
|
||||||
|
[unsafe-fx>= (-Integer -Integer . -> . -Boolean)]
|
||||||
|
[unsafe-fxmin
|
||||||
|
(cl->
|
||||||
|
[(-Integer -Integer) -Integer]
|
||||||
|
[(-Nat -Nat) -Nat])]
|
||||||
|
[unsafe-fxmax
|
||||||
|
(cl->
|
||||||
|
[(-Integer -Integer) -Integer]
|
||||||
|
[(-Nat -Nat) -Nat])]
|
||||||
|
|
||||||
|
|
||||||
;; scheme/vector
|
;; scheme/vector
|
||||||
[vector-count (-polydots (a b)
|
[vector-count (-polydots (a b)
|
||||||
((list
|
((list
|
||||||
|
|
Loading…
Reference in New Issue
Block a user