diff --git a/src/ikarus.boot b/src/ikarus.boot index d292154..faa1754 100644 Binary files a/src/ikarus.boot and b/src/ikarus.boot differ diff --git a/src/ikarus.core.ss b/src/ikarus.core.ss index 0e2f3cb..9f98144 100644 --- a/src/ikarus.core.ss +++ b/src/ikarus.core.ss @@ -64,46 +64,7 @@ (set-top-level-value! x v))) -(primitive-set! 'fx= - (lambda (x y) - (unless (fixnum? x) - (error 'fx= "~s is not a fixnum" x)) - (unless (fixnum? y) - (error 'fx= "~s is not a fixnum" y)) - ($fx= x y))) - -(primitive-set! 'fx< - (lambda (x y) - (unless (fixnum? x) - (error 'fx< "~s is not a fixnum" x)) - (unless (fixnum? y) - (error 'fx< "~s is not a fixnum" y)) - ($fx< x y))) - -(primitive-set! 'fx<= - (lambda (x y) - (unless (fixnum? x) - (error 'fx<= "~s is not a fixnum" x)) - (unless (fixnum? y) - (error 'fx<= "~s is not a fixnum" y)) - ($fx<= x y))) -(primitive-set! 'fx> - (lambda (x y) - (unless (fixnum? x) - (error 'fx> "~s is not a fixnum" x)) - (unless (fixnum? y) - (error 'fx> "~s is not a fixnum" y)) - ($fx> x y))) - -(primitive-set! 'fx>= - (lambda (x y) - (unless (fixnum? x) - (error 'fx>= "~s is not a fixnum" x)) - (unless (fixnum? y) - (error 'fx>= "~s is not a fixnum" y)) - ($fx>= x y))) - (primitive-set! 'char=? (let () diff --git a/src/ikarus.fixnums.ss b/src/ikarus.fixnums.ss index 74a0aec..280eea7 100644 --- a/src/ikarus.fixnums.ss +++ b/src/ikarus.fixnums.ss @@ -1,14 +1,15 @@ (library (ikarus fixnums) (export fxzero? fxadd1 fxsub1 fxlognot fx+ fx- fx* fxquotient - fxremainder fxmodulo fxlogor fxlogand fxlogxor fxsll fxsra) + fxremainder fxmodulo fxlogor fxlogand fxlogxor fxsll fxsra + fx= fx< fx<= fx> fx>=) (import (only (scheme) $fxadd1 $fxsub1 $fxlognot $fxzero? $fxquotient $fxmodulo $fx+ $fx- $fx* $fxlogor $fxlogand $fxlogxor - $fxsll $fxsra $fx>=) + $fxsll $fxsra $fx= $fx< $fx<= $fx> $fx>=) (except (ikarus) fxzero? fxadd1 fxsub1 fxlognot fx+ fx- fx* fxquotient fxremainder fxmodulo fxlogor fxlogand - fxlogxor fxsll fxsra)) + fxlogxor fxsll fxsra fx= fx< fx<= fx> fx>=)) (define fxzero? (lambda (x) @@ -58,7 +59,47 @@ (unless (fixnum? y) (error 'fx* "~s is not a fixnum" y)) ($fx* x y))) - + + (define fx= + (lambda (x y) + (unless (fixnum? x) + (error 'fx= "~s is not a fixnum" x)) + (unless (fixnum? y) + (error 'fx= "~s is not a fixnum" y)) + ($fx= x y))) + + (define fx< + (lambda (x y) + (unless (fixnum? x) + (error 'fx< "~s is not a fixnum" x)) + (unless (fixnum? y) + (error 'fx< "~s is not a fixnum" y)) + ($fx< x y))) + + (define fx<= + (lambda (x y) + (unless (fixnum? x) + (error 'fx<= "~s is not a fixnum" x)) + (unless (fixnum? y) + (error 'fx<= "~s is not a fixnum" y)) + ($fx<= x y))) + + (define fx> + (lambda (x y) + (unless (fixnum? x) + (error 'fx> "~s is not a fixnum" x)) + (unless (fixnum? y) + (error 'fx> "~s is not a fixnum" y)) + ($fx> x y))) + + (define fx>= + (lambda (x y) + (unless (fixnum? x) + (error 'fx>= "~s is not a fixnum" x)) + (unless (fixnum? y) + (error 'fx>= "~s is not a fixnum" y)) + ($fx>= x y))) + (define fxquotient (lambda (x y) (unless (fixnum? x)