Sam Tobin-Hochstadt
339add9f78
Implement substitutions as hash tables from vars to subst-rhs.
...
- add convenience function for generating substitutions
- give trivial substitution for unreferenced index variables
2010-06-21 18:30:28 -04:00
Sam Tobin-Hochstadt
6b12757506
Add collection tab-completion for 'raco setup -l'
2010-06-21 18:30:28 -04:00
Sam Tobin-Hochstadt
44d46e4cd7
Refactor substitution.
...
- new file types/substitute
- use structs for substitutions
2010-06-21 18:30:28 -04:00
Sam Tobin-Hochstadt
dcc8beb5cd
This test case now passes.
2010-06-21 18:30:28 -04:00
Sam Tobin-Hochstadt
8990459be6
provide more information in inference failures
2010-06-21 18:30:27 -04:00
Sam Tobin-Hochstadt
692dc025c0
fix fail! to use the correct arguments
2010-06-21 18:30:27 -04:00
Sam Tobin-Hochstadt
9f99c914f3
Fix move-to-dmap functions
2010-06-21 18:30:27 -04:00
Sam Tobin-Hochstadt
2285e1a340
Make `debug' catch *all* exceptions
2010-06-21 18:30:27 -04:00
Stevie Strickland
b5d4d54d45
The initial shot at extending cgen and friends to take both X and Y.
...
This doesn't fully work, in that more test cases are broken. However,
this is mostly due to questionable inference rules in the past, and
so fixing these errors should lead to a more correct inference algorithm.
(i.e. we need to handle things like (List X ... a) (List Y .. b),
where a and b are not the same bound. We'd started this work before,
but never actually gone through with it, since smashing regular and
dotted type variables into the same environment meant some things
magically worked when they possibly shouldn't have.)
2010-06-21 18:30:26 -04:00
Stevie Strickland
078b57c77d
Export the types provide macro.
2010-06-21 18:30:26 -04:00
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