From 1361bb7d5c08f82b39b40dbf4e7b00a46332a3cf Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Sun, 30 Nov 2008 04:44:52 -0600 Subject: [PATCH] derived-ops for shift didn't include fixnum-shift --- basis/math/partial-dispatch/partial-dispatch-tests.factor | 3 ++- basis/math/partial-dispatch/partial-dispatch.factor | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/basis/math/partial-dispatch/partial-dispatch-tests.factor b/basis/math/partial-dispatch/partial-dispatch-tests.factor index 388b4127cd..bcf7bb77b0 100644 --- a/basis/math/partial-dispatch/partial-dispatch-tests.factor +++ b/basis/math/partial-dispatch/partial-dispatch-tests.factor @@ -11,6 +11,8 @@ tools.test math kernel sequences ; [ f ] [ \ number= fixnum object math-both-known? ] unit-test [ t ] [ \ number= integer fixnum math-both-known? ] unit-test [ f ] [ \ >fixnum \ shift derived-ops memq? ] unit-test +[ f ] [ \ >integer \ /i derived-ops memq? ] unit-test +[ t ] [ \ fixnum-shift \ shift derived-ops memq? ] unit-test [ { integer fixnum } ] [ \ +-integer-fixnum integer-op-input-classes ] unit-test [ { fixnum fixnum } ] [ \ fixnum+ integer-op-input-classes ] unit-test @@ -24,4 +26,3 @@ tools.test math kernel sequences ; [ fixnum-bitnot ] [ \ bitnot modular-variant ] unit-test [ fixnum+fast ] [ \ fixnum+ modular-variant ] unit-test [ fixnum+fast ] [ \ fixnum+fast modular-variant ] unit-test - diff --git a/basis/math/partial-dispatch/partial-dispatch.factor b/basis/math/partial-dispatch/partial-dispatch.factor index b0f6870022..56da09ccdd 100644 --- a/basis/math/partial-dispatch/partial-dispatch.factor +++ b/basis/math/partial-dispatch/partial-dispatch.factor @@ -152,7 +152,7 @@ SYMBOL: fast-math-ops : integer-derived-ops ( word -- words ) [ math-ops get (derived-ops) ] [ fast-math-ops get (derived-ops) ] bi [ - [ + [ drop [ second integer class<= ] [ third integer class<= ] @@ -174,7 +174,6 @@ SYMBOL: fast-math-ops \ + define-math-ops \ - define-math-ops \ * define-math-ops - \ shift define-math-ops \ mod define-math-ops \ /i define-math-ops @@ -188,6 +187,9 @@ SYMBOL: fast-math-ops \ >= define-math-ops \ number= define-math-ops + { { shift bignum bignum } bignum-shift } , + { { shift fixnum fixnum } fixnum-shift } , + \ + \ fixnum+ \ bignum+ define-integer-ops \ - \ fixnum- \ bignum- define-integer-ops \ * \ fixnum* \ bignum* define-integer-ops