Fix order of cases in case-lambda expressions for some unsafe-fx operations.

Add the safe equivalents of the unsafe-fx operations.

svn: r18334
This commit is contained in:
Noel Welsh 2010-02-25 13:00:55 +00:00
parent 3d95ef650c
commit dcb01829a0

View File

@ -4,6 +4,7 @@
scheme/tcp scheme/tcp
scheme scheme
scheme/unsafe/ops scheme/unsafe/ops
scheme/fixnum
(only-in rnrs/lists-6 fold-left) (only-in rnrs/lists-6 fold-left)
'#%paramz '#%paramz
"extra-procs.ss" "extra-procs.ss"
@ -652,13 +653,13 @@
[unsafe-fx+ [unsafe-fx+
(cl-> (cl->
[(-Integer -Integer) -Integer] [(-Nat -Nat) -Nat]
[(-Nat -Nat) -Nat])] [(-Integer -Integer) -Integer])]
[unsafe-fx- (-Integer -Integer . -> . -Integer)] [unsafe-fx- (-Integer -Integer . -> . -Integer)]
[unsafe-fx* [unsafe-fx*
(cl-> (cl->
[(-Integer -Integer) -Integer] [(-Nat -Nat) -Nat]
[(-Nat -Nat) -Nat])] [(-Integer -Integer) -Integer])]
[unsafe-fxquotient (-Integer -Integer . -> . -Integer)] [unsafe-fxquotient (-Integer -Integer . -> . -Integer)]
[unsafe-fxremainder (-Integer -Integer . -> . -Integer)] [unsafe-fxremainder (-Integer -Integer . -> . -Integer)]
[unsafe-fxmodulo (-Integer -Integer . -> . -Integer)] [unsafe-fxmodulo (-Integer -Integer . -> . -Integer)]
@ -678,13 +679,49 @@
[unsafe-fx>= (-Integer -Integer . -> . -Boolean)] [unsafe-fx>= (-Integer -Integer . -> . -Boolean)]
[unsafe-fxmin [unsafe-fxmin
(cl-> (cl->
[(-Integer -Integer) -Integer] [(-Nat -Nat) -Nat]
[(-Nat -Nat) -Nat])] [(-Integer -Integer) -Integer])]
[unsafe-fxmax [unsafe-fxmax
(cl-> (cl->
[(-Integer -Integer) -Integer] [(-Nat -Nat) -Nat]
[(-Nat -Nat) -Nat])] [(-Integer -Integer) -Integer])]
;; scheme/fixnum
[fx+
(cl->
[(-Nat -Nat) -Nat]
[(-Integer -Integer) -Integer])]
[fx- (-Integer -Integer . -> . -Integer)]
[fx*
(cl->
[(-Nat -Nat) -Nat]
[(-Integer -Integer) -Integer])]
[fxquotient (-Integer -Integer . -> . -Integer)]
[fxremainder (-Integer -Integer . -> . -Integer)]
[fxmodulo (-Integer -Integer . -> . -Integer)]
[fxabs (-Integer . -> . -Nat)]
[fxand (-Integer -Integer . -> . -Integer)]
[fxior (-Integer -Integer . -> . -Integer)]
[fxxor (-Integer -Integer . -> . -Integer)]
[fxnot (-Integer . -> . -Integer)]
[fxlshift (-Integer -Integer . -> . -Integer)]
[fxrshift (-Integer -Integer . -> . -Integer)]
[fx= (-Integer -Integer . -> . -Boolean)]
[fx< (-Integer -Integer . -> . -Boolean)]
[fx> (-Integer -Integer . -> . -Boolean)]
[fx<= (-Integer -Integer . -> . -Boolean)]
[fx>= (-Integer -Integer . -> . -Boolean)]
[fxmin
(cl->
[(-Nat -Nat) -Nat]
[(-Integer -Integer) -Integer])]
[fxmax
(cl->
[(-Nat -Nat) -Nat]
[(-Integer -Integer) -Integer])]
;; scheme/vector ;; scheme/vector
[vector-count (-polydots (a b) [vector-count (-polydots (a b)