Stevie Strickland
ec09139e0a
Fix up subst-gen to treat vars and idxs separately.
2010-06-21 18:30:26 -04:00
Sam Tobin-Hochstadt
d886331807
Various small assorted fixes.
2010-06-21 18:30:25 -04:00
Sam Tobin-Hochstadt
e235c837b0
The inference engine doesn't need this annotation anymore.
2010-06-21 18:30:25 -04:00
Sam Tobin-Hochstadt
82e7d281cb
More progress on refactoring infer
2010-06-21 18:30:25 -04:00
Sam Tobin-Hochstadt
18f45c4138
Fix a bunch of uses of `infer' et al.
2010-06-21 18:30:25 -04:00
Sam Tobin-Hochstadt
99e499a503
Change inference to take into account index vs regular vars.
2010-06-21 18:30:24 -04:00
Sam Tobin-Hochstadt
e8a591d291
Fix free index computation when the body refers to the bound.
2010-06-21 18:30:24 -04:00
Sam Tobin-Hochstadt
662f982b72
Refactor free variables.
...
- free-idxs no longer holds free de Bruijn indexes
This information is not needed, and not stored anywhere
- free-idxs holds free *index* variables, in the sense of the TOPLAS submission
2010-06-21 18:30:24 -04:00
Sam Tobin-Hochstadt
7b2de53733
Re-enable the printer here.
2010-06-21 18:30:24 -04:00
Sam Tobin-Hochstadt
fe9395fdbf
Add case to be fixed
2010-06-21 18:30:23 -04:00
Sam Tobin-Hochstadt
b787c7766c
Switch to using functional hash tables for free variables.
2010-06-21 18:30:23 -04:00
Sam Tobin-Hochstadt
a93aecbed7
Special case for (apply values ListDots)
2010-06-21 18:30:20 -04:00
Sam Tobin-Hochstadt
12384c6c3f
Change type variable environments from hash tables to sets.
2010-06-21 18:29:59 -04:00
Sam Tobin-Hochstadt
e9f8cc9aca
Refactor test harness.
2010-06-21 18:29:59 -04:00
Sam Tobin-Hochstadt
d570006db8
Add index-env.
...
- Remove Dotted and DottedBoth values from tvar-env
- Abstract env extension and lookup for tvar/index-env
- Abstract index inference
- Remove pointless parameterizations
2010-06-21 18:29:58 -04:00
Sam Tobin-Hochstadt
0fb1ac66bd
Properly compute Dotted variance for ListDots and ValuesDots.
2010-06-21 18:29:58 -04:00
Sam Tobin-Hochstadt
a9c34dae6a
Remove dotted-env.
2010-06-21 18:29:58 -04:00
Sam Tobin-Hochstadt
f7b59f78e9
Generalize ListDots to Listof in inference of loop var types.
2010-06-21 18:29:58 -04:00
Sam Tobin-Hochstadt
a2af89bafd
Inference for passing ListDots as Listof.
2010-06-21 18:29:57 -04:00
Sam Tobin-Hochstadt
fd5a662ccc
Subtyping between (List T ... a) and (Listof T[Any/a])
2010-06-21 18:29:57 -04:00
Sam Tobin-Hochstadt
4c3f279ab9
Eliminate expressions with dotted pre-types.
...
- Now looks for (List T ...) types.
- special handling of `map', `andmap', `ormap' when list arg is dotted
- remove tc-dots-unit
2010-06-21 18:29:57 -04:00
Sam Tobin-Hochstadt
4cbeb0b2f0
Change type of ... rest args to have (List T ...) types.
2010-06-21 18:29:56 -04:00
Sam Tobin-Hochstadt
71939d2826
Handle simple inference of ListDots.
2010-06-21 18:29:56 -04:00
Sam Tobin-Hochstadt
e40d1824b0
Initial ListDots test.
2010-06-21 18:29:56 -04:00
Sam Tobin-Hochstadt
310bdf3529
Substitution for (List T ...)
2010-06-21 18:29:56 -04:00
Stevie Strickland
62fb6f9311
Add subtyping for dotted lists with the same bound.
2010-06-21 18:29:55 -04:00
Sam Tobin-Hochstadt
40dbb6389c
First attempts at adding ListDots (and, incidentally, List*) types.
2010-06-21 18:29:55 -04:00
Sam Tobin-Hochstadt
50f93b9ed7
More environment refactoring.
...
- rationalize naming of files
- split files by env constructed
2010-06-21 18:29:55 -04:00
Sam Tobin-Hochstadt
7e9763cf14
Stratify environments to only include props when needed.
2010-06-21 18:29:54 -04:00
Sam Tobin-Hochstadt
647c4eef59
Refactor environments.
...
- mapping stored as dict
- use id tables for identifiers
- use env-filter instead of filter
- eliminate spurious use of conses
2010-06-21 18:29:54 -04:00
Robby Findler
e105d191b1
Adjusted 'raco setup' so that the arguments are collections (left setup-plt alone)
2010-06-21 16:58:32 -05:00
Sam Tobin-Hochstadt
4925e7e51f
Refactor provide handling.
...
- use id-tables instead of lists
- smarter iteration
- prepare for eliminating declarations when not needed, but don't do it yet
2010-06-21 15:42:52 -04:00
Casey Klein
3eb9a6d6d0
Fixes a bug in the VM example
2010-06-21 14:41:10 -05:00
Jay McCarthy
e191513f70
Adding warning removal attr
2010-06-21 13:04:40 -06:00
Jay McCarthy
a5d9fc0def
New props for DrDr
2010-06-21 12:55:18 -06:00
Jay McCarthy
a13edb18b6
Transparent XML structs
2010-06-21 12:48:26 -06:00
Jay McCarthy
801419693a
Default args to eliminate-whitespace
2010-06-21 12:48:26 -06:00
Casey Klein
d6b20a51d2
Lifts mysterious restriction on patterns that now seems unnecessary.
2010-06-21 11:24:30 -05:00
Casey Klein
daa8507e51
Fixes matcher bug
2010-06-21 10:35:05 -05:00
Robby Findler
4504678bd7
added local
2010-06-20 21:59:39 -05: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
Robby Findler
e8573d9478
change the way the prompt testing works to only supply a port, instead of giving over the actual text object
2010-06-20 20:55:04 -05: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
Eli Barzilay
412fd4ff79
Use `exact-integer?'.
2010-06-20 18:34:06 -04:00
Eli Barzilay
b0d7c9d9c1
Updated commented url to docs.
2010-06-20 18:34:06 -04:00