Commit Graph

2293 Commits

Author SHA1 Message Date
Jay McCarthy
801419693a Default args to eliminate-whitespace 2010-06-21 12:48:26 -06:00
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
Sam Tobin-Hochstadt
1e15ce1f32 Fix error message for 1-arg apply 2010-06-19 14:58:52 -04:00
Vincent St-Amour
f16732adbe Fixed a typo in the shootout harness. 2010-06-18 20:30:15 -04:00
Robby Findler
4cd7152b62 made the drracket test suite match the new labels in the language dialog. 2010-06-18 17:38:54 -05: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
Sam Tobin-Hochstadt
77e4bbb5eb base-types-new -> base-types 2010-06-17 11:47:16 -04:00
Sam Tobin-Hochstadt
bdbb6d48e6 Try harder to find types for loop variables.
- use `find-annotation' more
 - recognize (let ([x y]) ...)
2010-06-17 11:26:33 -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
Sam Tobin-Hochstadt
4cc86cc8c8 set-mc[ad]r!, inference, printing, tests for mpairs 2010-06-15 16:10:16 -04:00
Sam Tobin-Hochstadt
f73d63e1af eq? is a predicate for eof 2010-06-15 14:59:08 -04:00
Sam Tobin-Hochstadt
cf5c74a2ca Generate -> instead of ->* when required by case->.
Closes PR 10977.
2010-06-13 15:01:57 -04:00
Sam Tobin-Hochstadt
d4d286d31d Allow (All (A) A -> A), dropping pair of parens. 2010-06-13 14:38:03 -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
Sam Tobin-Hochstadt
1cff0a1f85 Actually typecheck actuals even when there's a type annotation. 2010-06-11 19:35:56 -04:00
Sam Tobin-Hochstadt
7ece2a4872 Fix type of `zero?' to properly handle 0.0. 2010-06-11 18:54:05 -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
Sam Tobin-Hochstadt
fd1b20c93d Fix optimizer for refactoring. 2010-06-11 14:21:42 -04:00
Sam Tobin-Hochstadt
b649575afc new bug with mutation 2010-06-11 11:55:22 -04:00
Sam Tobin-Hochstadt
0379e534e3 New interface for unstable/mutated-vars
- functional hash tables
 - fix clients
2010-06-10 13:28:29 -04: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
6b4ca4d7b0 Added tests and documentation for Thread and Channel types. 2010-06-09 14:54:37 -04:00
Vincent St-Amour
0741b48c99 Modified the for: macros to use sequence types. 2010-06-09 14:54:34 -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
78023d08f9 Sequenceof type.
- inferencing and subtyping relation with vectors, lists, etc
- use in `make-sequence'
- add tests
2010-06-09 11:03:12 -04:00
Sam Tobin-Hochstadt
78832fe332 Support case-lambda with multiple branches with keyword arguments. 2010-06-08 17:50:48 -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
Sam Tobin-Hochstadt
7f300a2c4f Special-case (- x 1) for use in loops. 2010-06-08 12:05:56 -04:00
Sam Tobin-Hochstadt
7df8e32793 Properly handling immutable invariant structs. 2010-06-07 14:03:06 -04:00
Mike Sperber
93d7ec9446 Don't recheck DMdA lazy contracts we've already checked.
We avoided re-applying contracts that haven't been checked, but not
those that have.  Do so now.
2010-06-07 17:06:07 +02:00
Carl Eastlund
a915d7c053 Changed unstable/debug to use error printing instead of logger output. 2010-06-06 20:31:36 -04:00
Carl Eastlund
ddc889532e Replaced unstable/debug with unstable/cce/debug. 2010-06-06 20:31:36 -04:00
Carl Eastlund
5faced0c23 Moved unstable/cce/set to unstable/set. 2010-06-06 20:31:35 -04:00
Carl Eastlund
7131198974 Moved unstable/cce/define to unstable/define. 2010-06-06 20:31:33 -04:00
Carl Eastlund
ce85a96978 Moved the contents of unstable/cce/syntax to multiple other modules:
unstable/syntax, unstable/contract, and unstable/planet-syntax.
2010-06-06 20:31:32 -04:00
Carl Eastlund
fb53d5d191 Moved unstable/cce/dict to unstable/dict. 2010-06-06 20:31:31 -04:00
Carl Eastlund
86a3c3ed18 Moved unstable/cce/class to unstable/class. 2010-06-06 20:31:31 -04:00
Carl Eastlund
1360d02728 Added unstable/cce/exn to unstable/exn. 2010-06-06 20:31:30 -04:00
Carl Eastlund
402232237c Moved unstable/cce/port to unstable/port. 2010-06-06 20:31:21 -04:00
Carl Eastlund
2db3a9d38a Moved unstable/cce/regexp to unstable/regexp. 2010-06-06 20:30:48 -04:00
Carl Eastlund
3a525b9a12 Replaced unstable/hash with unstable/cce/hash. 2010-06-06 20:30:48 -04:00
Carl Eastlund
286319d723 Added unstable/cce/contract contents to unstable/contract. 2010-06-06 20:30:47 -04:00
Carl Eastlund
70858e93e5 Moved unstable/cce/queue to unstable/queue. 2010-06-06 20:30:40 -04:00
Carl Eastlund
1d0c069a6c Moved unstable/cce/web to unstable/web. 2010-06-06 20:29:59 -04:00
Carl Eastlund
14b2daab66 Moved unstable/cce/values to unstable/values. 2010-06-06 20:29:56 -04:00
Carl Eastlund
a22a1a4c15 Added unstable/cce/match macros to unstable/match. 2010-06-06 20:29:55 -04:00
Carl Eastlund
6bcf77fe65 Moved unstable/cce/text to unstable/text. 2010-06-06 20:29:54 -04:00
Carl Eastlund
8d10a6343b Adapted unstable/cce/function to unstable/function. 2010-06-06 20:29:54 -04:00
Jay McCarthy
add2cbbbda Correcting test 2010-06-02 12:12:44 -06:00
Jay McCarthy
2985001a79 Fixing PR10950 2010-06-02 10:20:20 -06:00
Jay McCarthy
3ff7b0461c Debugging 2010-06-02 10:20:19 -06:00
Matthew Flatt
61d39f2568 bytecode compiler convert (apply f .... (list arg ...)) 2010-06-01 19:22:39 -06:00
Sam Tobin-Hochstadt
0e3c2b71cc Test for PR 10946. 2010-06-01 13:38:45 -04: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
2229173b82 Changed the types of some numerical operations to be closed on naturals. 2010-05-29 11:31:47 -04:00
Sam Tobin-Hochstadt
d323a794e8 Change `typed-scheme' numerics.
- `number?' no longer `real?'
 - Number no longer Real
 - remove obsolete environments
 - Fix tests to use Real where necessary.
 - Fix typed/mred and typed/framework
 - Fix insert-large-letters to use `sub1' for type-safe loop

Merge to 5.0.
2010-05-28 19:24:46 -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
Vincent St-Amour
e9a0014630 Disabled multi-valued seq-exprs in the for: macros because using them
triggers an internal error in the typechecker.
2010-05-28 19:05:44 -04:00
Vincent St-Amour
c92ae73859 Wrote tests for the for: macros. 2010-05-28 19:05:44 -04:00
John Clements
2b7797ad17 comments added, & 1 test 2010-05-28 14:57:18 -07: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
Jay McCarthy
0a9e3da26e Renaming formlet* source 2010-05-28 14:09:07 -06:00
Jay McCarthy
c907fae871 Adding formlet* 2010-05-28 14:09:07 -06:00
Matthew Flatt
d923ef135f add examples from J-P Roy's textbook to check before a release 2010-05-27 15:30:00 -06:00
Matthew Flatt
6006a4c84d fix helper file for raco ctool test 2010-05-27 13:33:51 -06:00
Jay McCarthy
612bd22bfe Cyclic zo tests 2010-05-27 12:33:25 -06:00
Jay McCarthy
08a48a67a0 Making string->xexpr more permissive 2010-05-27 10:48:42 -06:00
Sam Tobin-Hochstadt
34fef6e538 Re-enable test. 2010-05-27 12:46:29 -04:00