diff --git a/benchmarks.larceny/results.Larceny-r6rs b/benchmarks.larceny/results.Larceny-r6rs index a32f619..8322b92 100644 --- a/benchmarks.larceny/results.Larceny-r6rs +++ b/benchmarks.larceny/results.Larceny-r6rs @@ -8534,3 +8534,23 @@ Words allocated: 36171538 Words reclaimed: 0 Elapsed time...: 5849 ms (User: 5815 ms; System: 31 ms) Elapsed GC time: 83 ms (CPU: 86 in 138 collections.) + +**************************** +Benchmarking Larceny-r6rs on Tue Nov 13 03:44:36 EST 2007 under Darwin Vesuvius.local 8.10.1 Darwin Kernel Version 8.10.1: Wed May 23 16:33:00 PDT 2007; root:xnu-792.22.5~1/RELEASE_I386 i386 i386 + +Testing ray under Larceny-r6rs +Compiling... +Larceny v0.95 "First Safety" (Nov 8 2007 04:30:20, precise:BSD Unix:unified) +larceny.heap, built on Thu Nov 8 04:39:44 EST 2007 + +> +> +Running... +Larceny v0.95 "First Safety" (Nov 8 2007 04:30:20, precise:BSD Unix:unified) +larceny.heap, built on Thu Nov 8 04:39:44 EST 2007 + +> +Words allocated: 220925448 +Words reclaimed: 0 +Elapsed time...: 20757 ms (User: 10967 ms; System: 9775 ms) +Elapsed GC time: 179 ms (CPU: 176 in 843 collections.) diff --git a/benchmarks/rnrs-benchmarks.ss b/benchmarks/rnrs-benchmarks.ss index 1334e04..6ae58fa 100644 --- a/benchmarks/rnrs-benchmarks.ss +++ b/benchmarks/rnrs-benchmarks.ss @@ -163,7 +163,7 @@ (define peval-iters 400) (define pi-iters 3) (define primes-iters 180000) - (define ray-iters 3) + (define ray-iters 5) (define scheme-iters 40000) (define simplex-iters 160000) (define slatex-iters 30) diff --git a/benchmarks/summarize.pl b/benchmarks/summarize.pl index 5b7992b..29c5fa5 100755 --- a/benchmarks/summarize.pl +++ b/benchmarks/summarize.pl @@ -64,16 +64,16 @@ foreach my $bench (@benchmarks){ foreach my $time (@times){ defined $runtimes{$bench}{$time} or next; my @times = @{$runtimes{$bench}{$time}}; - my $avg = average(@times); + my $t = min(@times); if($prev){ - my $diff = (($avg - $prev) / $prev) * 100; + my $diff = (($t - $prev) / $prev) * 100; printf " %6d %6s on $time\n", - $avg, + $t, sprintf("(%s%d%%)", ($diff>0) ? "+" : ($diff<0) ? "-" : "", abs $diff); } else { - printf " %6d on $time\n", $avg; + printf " %6d on $time\n", $t; } - $prev = $avg; + $prev = $t; } } diff --git a/scheme/ikarus.numerics.ss b/scheme/ikarus.numerics.ss index f8a3f40..3e51661 100644 --- a/scheme/ikarus.numerics.ss +++ b/scheme/ikarus.numerics.ss @@ -191,6 +191,7 @@ (fx> b0 127))) (define ($flonum->exact x) + ;;; this really needs to get optimized. (let-values ([(pos? be m) (flonum-parts x)]) (cond [(<= 1 be 2046) ; normalized flonum diff --git a/scheme/ikarus.strings.ss b/scheme/ikarus.strings.ss index 898c3b3..7c69309 100644 --- a/scheme/ikarus.strings.ss +++ b/scheme/ikarus.strings.ss @@ -125,16 +125,18 @@ (let ([len ($string-length s)]) (unless (and (fixnum? n) ($fx>= n 0) - ($fx< n len)) + ($fx<= n len)) (error 'substring "not a valid start index" n s)) (unless (and (fixnum? m) ($fx>= m 0) ($fx<= m len)) (error 'substring "not a valid end index" m s)) + (unless ($fx<= n m) + (error 'substring "indices are in decreasing order" n m)) (let ([len ($fx- m n)]) - (if ($fx<= len 0) - "" - (fill s ($make-string len) n m 0))))))) + (if ($fx> len 0) + (fill s ($make-string len) n m 0) + "")))))) (define string-copy (lambda (s)