Commit Graph

99 Commits

Author SHA1 Message Date
Eli Barzilay
554f026c71 "The Great Computer Language Shootout" -> "The Computer Language Benchmarks Game"
As requested by Isaac Gouy.
2010-06-20 22:19:43 -04:00
Eli Barzilay
ee57029a92 One more optimization, getting it to 60x. 2010-06-20 18:37:07 -04:00
Eli Barzilay
eec0f4bf66 Yet another 2x factor.
(Total ~22x.)
2010-06-20 18:37:06 -04:00
Eli Barzilay
c78f367d9f Another simple improvement, making things about twice faster.
Total speedup is now ~14x.
2010-06-20 18:37:06 -04:00
Eli Barzilay
26c89b2ac6 And one more optimization gets this to a total of 6x improvement. 2010-06-20 18:37:06 -04:00
Eli Barzilay
e975e8e0c8 Another optimization, makes the `fl->fx' issue from the last one
irrelevant since it's not using it in the tight loop, but buys a bigger
improvement anyway.
2010-06-20 18:37:06 -04:00
Eli Barzilay
96006264ad Some improved shootout benchmarks.
* An improved version of the `fasta' benchmark: ~2.5 times faster, and
  if an inlined `unsafe-fl->fx' is added it is probably going to be
  about ~3.5 times faster.

* `reversecomplement' -- revised code that is ~2.5 times faster, further
  tweaks and unsafe ops gets it to ~4.5 times.

* Doing the structs differently in `binarytrees' and a few minor tweaks
  get it to be ~1.5 times faster.  This is probably because a leaf has
  now only one field.

* `mandelbrot' improved a little (~1.2x), but the code is pretty much a
  rewrite.  (Given some more flonum inlining it can probably do much
  better.)

* Added a comment to `pidigits-gmp' saying that it was used without
  attribution.

These versions use unsafe operations, but I'm not putting them in
separate files since it's easy to turn them off.  I've also removed
"mandelbrot-unsafe.rkt", since it was identical to the safe version.
2010-06-20 18:36:25 -04:00
Vincent St-Amour
f16732adbe Fixed a typo in the shootout harness. 2010-06-18 20:30:15 -04:00
Vincent St-Amour
416f4fd3c3 Added input generation for the regexmatch benchmark. 2010-06-18 17:43:06 -04:00
Vincent St-Amour
894d159123 Disabled thread-ring in the harness, since it calls exit and doesn't
display its running time.
2010-06-18 17:43:05 -04:00
Vincent St-Amour
1dc963684b Rewrote the typed partialsums benchmark to be closer to the untyped
version.
2010-06-18 17:43:04 -04:00
Vincent St-Amour
31f285d23c Adjusted benchmark sizes. 2010-06-18 17:43:04 -04:00
Vincent St-Amour
343e9d23b4 Ported some new benchmarks and variants to Typed Scheme. 2010-06-18 17:43:04 -04:00
Vincent St-Amour
ffad1edd7a Added the fannkuch-redux benchmark, which replaced fannkuch on the
shootout roster.
2010-06-18 17:43:03 -04:00
Vincent St-Amour
7ccae0fb1d Got rid of assertions in the benchmarks caused by naturals as indices. 2010-06-18 17:43:02 -04:00
Vincent St-Amour
54eefc52ed Relaxed some type constraints on the ray tracer benchmark. 2010-06-18 17:43:01 -04:00
Vincent St-Amour
e0b880d1ea Fixed the sumcol benchmark to obey the new type for read-line. 2010-06-18 17:43:01 -04:00
Vincent St-Amour
72ec18cc68 Rewrote the moments benchmark to potentially benefit from unboxing of
loop accumulators.
2010-06-18 17:43:01 -04:00
Vincent St-Amour
06eb544fd6 Fixes to the shootout benchmarks to reflect the new weaker promotion
rules.
2010-06-18 17:43:00 -04:00
Vincent St-Amour
ff1c3874cc Added a coercion to inexact to avoid the case: (* <float> 0) -> exact 0
which causes a segfault when the result is used with an unsafe-fl
operation.
2010-06-18 17:43:00 -04:00
Vincent St-Amour
cff4eef7b2 Adjusted input size for the shootout benchmarks. 2010-06-18 17:43:00 -04:00
Vincent St-Amour
31d4da6f39 Added an empty benchmark to measure Typed Scheme's startup time. 2010-06-18 17:42:59 -04:00
Vincent St-Amour
7bb8405871 Fixed a bug in the shootout harness, which threw away generated input. 2010-06-18 17:42:59 -04:00
Vincent St-Amour
3e0446d774 Modified some of the untyped shootout benchmarks to be closer to the
typed versions.
2010-06-18 17:42:58 -04:00
Vincent St-Amour
7f3db138e7 Integrated the typed shootout benchmarks to the untyped harness. 2010-06-18 17:42:58 -04:00
Vincent St-Amour
d48f1bb6aa Racketified the untyped shootout benchmarks. 2010-06-18 17:42:58 -04:00
Vincent St-Amour
4fde1e8ccb Ported most of the shootout benchmarks to Typed Scheme. 2010-06-18 17:42:57 -04:00
Vincent St-Amour
93e5d0e9dc Added an option to subtract the running time of the empty benchmark to
the tabulator.
2010-06-15 16:39:32 -04:00
Vincent St-Amour
a33372eb78 Added an option to display the coefficient of variation to the
tabulator.
2010-06-15 16:21:51 -04:00
Vincent St-Amour
fe09ce3dee Added Jeff Siskind's ray tracer to the racket-specific benchmarks. 2010-06-11 19:48:23 -04:00
Vincent St-Amour
727000fbfb Fixed the common benchmark harness to compile the typed benchmarks
before running them.
2010-06-11 19:48:22 -04:00
Matthew Flatt
d6d5c914f7 cases when number functions produce 0: clarify docs and fix (atan 0 x)
for positive exact x;
 also clarify docs on some cases when divide-by-zero exception is raised
2010-06-11 15:04:24 -06:00
Stevie Strickland
7b38cef4e8 Fix first-order cons/c check in mzlib contract tests. 2010-06-09 15:52:29 -04:00
Vincent St-Amour
f42880c320 Moved the typed common benchmarks to a separate subdirectory. 2010-06-09 14:54:33 -04:00
Vincent St-Amour
077e1d9bca Increased the size of the pseudoknot benchmark and ported it to
idiomatic racket, then to Typed Scheme.
2010-06-09 14:51:52 -04:00
Stevie Strickland
99bb46d225 Fix flat immutable container ctcs so that errors pinpoint specific elements.
* Fixes immutable container contract combinators so that, if given flat
   contracts, they report blame errors in terms of the specific element
   that failed, instead of reporting the entire container as failing.

   This fixes issues seen with contracts such as (listof string?), where
   the contract is applied to a list with far too many elements to print
   all at once and the failing element is never printed.

 * Fixes vector-immutable/c so that if all the element contracts are flat,
   we create a flat contract, like the other immutable container contract
   combinators.

 * Also have more appropriate first-order checks for each combinator
   than just "Is it the right type of container?".

These changes affect:
 listof
 non-empty-listof
 vector-immutableof
 cons/c
 box-immutable/c
 vector-immutable/c
2010-06-09 13:29:04 -04:00
Matthew Flatt
d6ddbe15d5 support kw/opt args in define-syntax' and define-for-syntax' 2010-06-09 13:05:43 -04:00
Sam Tobin-Hochstadt
6d2b5569f4 Remove bogus #lang line 2010-06-08 13:08:13 -04:00
Sam Tobin-Hochstadt
9fc7a1eca4 Use `assert' for casts in typed benchmarks. 2010-06-08 12:05:58 -04:00
Sam Tobin-Hochstadt
5f5dca4c69 Undo changes to benchmarks to use `sub1'. 2010-06-08 12:05:57 -04:00
Matthew Flatt
61d39f2568 bytecode compiler convert (apply f .... (list arg ...)) 2010-06-01 19:22:39 -06:00
Eli Barzilay
d0ecc73df5 More plt-scheme -> racket-lang, specifically for planet and bugs urls. 2010-05-31 15:11:27 -04:00
Vincent St-Amour
64ff5555fb Corrected some of the typed benchmarks to typecheck with Naturals as indices. 2010-05-29 14:23:11 -04:00
Vincent St-Amour
311be27422 Changed the common benchmark harness to compile benchmarks before
running them.
2010-05-28 19:05:45 -04:00
Matthew Flatt
9f7a08663d fix bug in JIT handling of with-continuation-mark
The bug was specific to the case of a wcm in tail position
  of another wcm, where its mark should replace the outer one,
  and where the outer one is not in tail position with respect
  to the enclosing function
 Merge to v5.0
2010-05-28 14:28:06 -06:00
Matthew Flatt
6006a4c84d fix helper file for raco ctool test 2010-05-27 13:33:51 -06:00
Vincent St-Amour
44a7a71923 Corrected the typed versions of some benchmarks to be closer to the
untyped versions.
2010-05-27 09:30:49 -04:00
Vincent St-Amour
ca9e35b9be Changed some of the benchmarks to run for more iterations. 2010-05-26 19:48:32 -04:00
Vincent St-Amour
61f6a2579b Documented the typed benchmarks. 2010-05-26 19:48:31 -04:00
Matthew Flatt
7442f14305 fix problems with raco exe
Merge to v5.0
2010-05-26 17:07:09 -06:00