diff --git a/collects/tests/mzscheme/benchmarks/common/auto.ss b/collects/tests/mzscheme/benchmarks/common/auto.ss index c79ed24fe5..a378600fbf 100755 --- a/collects/tests/mzscheme/benchmarks/common/auto.ss +++ b/collects/tests/mzscheme/benchmarks/common/auto.ss @@ -138,10 +138,10 @@ exec mzscheme -qu "$0" ${1+"$@"} extract-mzscheme-times clean-up-nothing '()) - (make-impl 'mzscheme3m + (make-impl 'mzschemecgc mk-mzscheme (lambda (bm) - (system (format "mzscheme3m -qu ~a.ss" bm))) + (system (format "mzschemecgc -qu ~a.ss" bm))) extract-mzscheme-times clean-up-nothing '()) @@ -161,10 +161,10 @@ exec mzscheme -qu "$0" ${1+"$@"} extract-mzscheme-times clean-up-nothing '()) - (make-impl 'mzscheme3m-tl + (make-impl 'mzschemecgc-tl mk-mzscheme-tl (lambda (bm) - (system (format "mzscheme3m -qr compiled/~a.zo" bm))) + (system (format "mzschemecgc -qr compiled/~a.zo" bm))) extract-mzscheme-times clean-up-zo '(nucleic2)) @@ -193,7 +193,7 @@ exec mzscheme -qu "$0" ${1+"$@"} clean-up-fasl '(maze)))) - (define obsolte-impls '(mzscheme mzscheme-j mzscheme3m-tl mzc)) + (define obsolte-impls '(mzscheme mzscheme-j mzschemecgc-tl mzc)) (define benchmarks '(conform diff --git a/collects/tests/mzscheme/benchmarks/shootout/run.ss b/collects/tests/mzscheme/benchmarks/shootout/run.ss index 6894e9b8fd..a316390849 100644 --- a/collects/tests/mzscheme/benchmarks/shootout/run.ss +++ b/collects/tests/mzscheme/benchmarks/shootout/run.ss @@ -22,11 +22,11 @@ ("nestedloop.ss" "18") ("nsieve.ss") ("nsievebits.ss") - ("partialsums.ss") + ("partialsums.ss" "2500000") ("pidigits.ss") ("pidigits1.ss") ("random.ss" "900000") - ("recursive.ss") + ("recursive.ss" "11") ("regexmatch.ss") ("regexpdna.ss") ("reversecomplement.ss" #f ,(lambda () (mk-revcomp-input))) diff --git a/collects/tests/mzscheme/number.ss b/collects/tests/mzscheme/number.ss index aa61e674e0..fd91005381 100644 --- a/collects/tests/mzscheme/number.ss +++ b/collects/tests/mzscheme/number.ss @@ -193,6 +193,7 @@ (test-compare 0.5 1.2 2.3) (test-compare 2/5 1/2 2/3) +(test-compare 1/4 1/3 1/2) (test #t = 1/2 2/4) (test #f = 2/3 2/5) (test #f = 2/3 2/500000000000000000000000000) diff --git a/src/mzscheme/src/rational.c b/src/mzscheme/src/rational.c index 2390ebd89e..852852c0c7 100644 --- a/src/mzscheme/src/rational.c +++ b/src/mzscheme/src/rational.c @@ -200,31 +200,19 @@ static int rational_lt(const Scheme_Object *a, const Scheme_Object *b, int or_eq Scheme_Rational *rb = (Scheme_Rational *)b; Scheme_Object *ma, *mb; -#if 0 - /* Avoid multiplication in simple cases: */ - if (scheme_bin_lt_eq(ra->num, rb->num) - && scheme_bin_gt_eq(ra->denom, rb->denom)) { - if (!or_eq) { - if (scheme_rational_eq(a, b)) - return 0; - } - return 1; - } else -#endif - if (or_eq) { - if (scheme_rational_eq(a, b)) - return 1; - } - - /* Checking only for lt at this point */ - ma = scheme_bin_mult(ra->num, rb->denom); mb = scheme_bin_mult(rb->num, ra->denom); if (SCHEME_INTP(ma) && SCHEME_INTP(mb)) { - return (SCHEME_INT_VAL(ma) < SCHEME_INT_VAL(mb)); + if (or_eq) + return (SCHEME_INT_VAL(ma) <= SCHEME_INT_VAL(mb)); + else + return (SCHEME_INT_VAL(ma) < SCHEME_INT_VAL(mb)); } else if (SCHEME_BIGNUMP(ma) && SCHEME_BIGNUMP(mb)) { - return scheme_bignum_lt(ma, mb); + if (or_eq) + return scheme_bignum_le(ma, mb); + else + return scheme_bignum_lt(ma, mb); } else if (SCHEME_BIGNUMP(mb)) { return SCHEME_BIGPOS(mb); } else