Commit Graph

888 Commits

Author SHA1 Message Date
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
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
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
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
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
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
Stevie Strickland
0aae2c866f Fix use of add-type-expr from commit 5d835ded. 2010-06-19 14:58:52 -04:00
Sam Tobin-Hochstadt
1e15ce1f32 Fix error message for 1-arg apply 2010-06-19 14:58:52 -04:00
Vincent St-Amour
1e2c50ec24 Fix to make-vector's type. 2010-06-18 20:24:17 -04:00
Vincent St-Amour
5e901b9ef2 The optimizer now promotes integers to floats when they are used as
arguments to a function whose result is a float.
2010-06-18 17:43:05 -04:00
Vincent St-Amour
5d835ded47 Added the type of the 1 literals in expressions of the form (- x 1) to
the type table.
2010-06-18 17:43:05 -04:00
Vincent St-Amour
ecb614849c Added type signatures for some byte-string functions. 2010-06-18 17:43:03 -04:00
Vincent St-Amour
60c3067ddb Turned indexing back to using integers rather than naturals. 2010-06-18 17:43:02 -04:00
Vincent St-Amour
b39f686e7e Fixed the type of unsafe-car and unsafe-cdr. 2010-06-17 19:06:24 -04:00
Vincent St-Amour
07c1f1e94f Added types for some bitwise operations. 2010-06-17 19:06:24 -04:00
Vincent St-Amour
cc796a9f9a Added types for thread mailbox operations.
Can't have typed mailboxes, though.
2010-06-17 18:45:28 -04:00
Vincent St-Amour
c4e035dd67 Got rid of a reference to the non-existent channel/c. 2010-06-17 18:45:28 -04:00
Sam Tobin-Hochstadt
02238a7c6d Fix contract for structs 2010-06-17 15:26:13 -04:00
Sam Tobin-Hochstadt
0262ef681a handle multiple body expression properly 2010-06-17 12:50:30 -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
a31a7b0718 Added mutable lists to Typed Scheme. 2010-06-16 12:49:01 -04:00
Vincent St-Amour
bb0747f589 Rewrote the indexing code. 2010-06-16 12:49:00 -04:00
Vincent St-Amour
9959f05054 Moved some indexing functions' type signatures. 2010-06-16 12:48:59 -04:00
Vincent St-Amour
8dfd7d87ec Reimplemented assert as a macro. 2010-06-15 16:39:33 -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
913179f2ed types for basic mpair ops 2010-06-15 15:58:37 -04:00
Sam Tobin-Hochstadt
f73d63e1af eq? is a predicate for eof 2010-06-15 14:59:08 -04:00