Commit Graph

214 Commits

Author SHA1 Message Date
Vincent St-Amour
632e36f751 Add set types to TR.
Original patch by Eric Dobson.
2011-04-28 18:22:39 -04:00
Vincent St-Amour
9740d5542b No need for EphemeronTop since ephemerons are covariant.
Closes PR 11633.
2011-04-26 15:35:22 -04:00
Eric Dobson
80fa8d3c97 Beginning of ephemeron patch 2011-04-26 15:35:22 -04:00
Sam Tobin-Hochstadt
82e6e9d19e Avoid resolving types when checking subtyping on structs.
This fixes problems with caching, because sometimes we were giving the wrong answer for nested calls to `subtype'.
2011-04-20 09:41:42 -04:00
Sam Tobin-Hochstadt
d459ad47b8 Use `in-hash' explicitly. 2011-04-20 09:41:42 -04:00
Sam Tobin-Hochstadt
6c17b01f99 Add clever comments. 2011-04-20 09:41:42 -04:00
Sam Tobin-Hochstadt
79061150ef Add cache for `resolve-once'.
Substantial speedups on "new-metrics.rkt" test.
2011-04-20 09:41:42 -04:00
Sam Tobin-Hochstadt
0f30f5d8de Use eq? on sequence numbers. 2011-04-20 09:41:42 -04:00
Sam Tobin-Hochstadt
51083dbce6 Remove useless requires. 2011-04-20 09:41:42 -04:00
Sam Tobin-Hochstadt
7ba2b6e100 Fix typo. 2011-04-20 09:41:42 -04:00
Sam Tobin-Hochstadt
0f5dfd6871 Remove useless propositional clauses. Thanks to dyoo for test case. 2011-04-18 18:42:10 -04:00
Vincent St-Amour
bce90e2a71 Optimize filter operations. 2011-04-18 13:25:28 -04:00
Vincent St-Amour
4ba3f1a6dd Fix type names. 2011-03-18 13:25:06 -04:00
Vincent St-Amour
17afa91c09 Provide the index? predicate. 2011-03-18 13:24:58 -04:00
Vincent St-Amour
ee29d371c9 Updated TR's base type environment to use the new numeric types.
This ended up being an almost complete rewrite of the base environment.
Note: While the commit is dated Jan 27, the work was finished on Mar 2.
2011-03-18 10:25:21 -04:00
Vincent St-Amour
bf6379c363 Add a helper function to add filters en masse to express propositions
that are true about a function's arguments if the function returns.
2011-03-18 10:25:20 -04:00
Vincent St-Amour
88fac43d55 Add an Exact-Number type. 2011-03-18 10:25:20 -04:00
Vincent St-Amour
d65438c9ea Remove some legacy bindings. 2011-01-31 16:39:19 -05:00
Vincent St-Amour
22391be437 Cleanup of exposed base types. 2011-01-31 16:39:19 -05:00
Vincent St-Amour
f1c6c74284 Small-Float -> Single-Flonum 2011-01-31 16:39:18 -05:00
Vincent St-Amour
46f086282d Bytes are a sequence of the new Byte type. 2011-01-31 16:39:15 -05:00
Vincent St-Amour
e56663c943 Add a predicate field to base types, which makes checking for
subtyping of value types easier.

However, this means that base types can't be marshaled as before,
since these predicates can't be marshaled. Instead, we now marshal
base types as identifiers that refer to their base type object.
2011-01-31 16:39:13 -05:00
Vincent St-Amour
d4c93cc12e TR's numeric tower is now built from unions of non-overlapping base types.
A lot of the work that was done by special-casing number types can now be
done by TR's handling of unions. This makes it easier to add more numeric
types to the tower and should make writing down types for numeric
primitives much less error-prone.

In addition, this commit adds several numeric types that will help get
tighter bounds on integer arithmetic, such as Index types. They will have
to be integrated to the base environment before they can be useful.
2011-01-31 16:39:13 -05:00
Vincent St-Amour
78c4809177 Make bare union constructor smarter. 2011-01-31 16:39:12 -05:00
Vincent St-Amour
2bd0145603 Generalize hash table literals and subtypes of symbol.
Closes PR 11670.
2011-01-26 14:23:19 -05:00
Vincent St-Amour
f8c01299f9 Fix double application of format.
Closes PR 11524.
2010-12-10 16:59:12 -05:00
Sam Tobin-Hochstadt
87eab889d6 Allow arbitrary filter specification in function types.
Allow (A -> B -> C) for curried function types.
2010-12-08 18:22:29 -05:00
Vincent St-Amour
dc2df4882b Take into account potentially undefined values in letrec.
Closes PR11511.
2010-12-08 18:17:06 -05:00
Vincent St-Amour
4c081c127a Fixed a fixnum typechecking issue. 2010-11-04 17:27:34 -04:00
Vincent St-Amour
c0a6137c67 Fixed potential danger with fixnum optimizations. 2010-11-04 15:35:21 -04:00
Vincent St-Amour
27e722f27b Inexact-Complex -> Float-Complex 2010-10-12 16:47:46 -04:00
Vincent St-Amour
a59a99c42d Changed the TR numeric tower to use the new flonums. 2010-10-12 16:47:45 -04:00
Sam Tobin-Hochstadt
7bcd107e7f Fix `overlap' for refinements of base types. 2010-10-07 11:19:54 -04:00
Vincent St-Amour
5395dbca12 Fixed tautology/contradiction recording to work with case-lambda. 2010-10-06 17:32:29 -04:00
Sam Tobin-Hochstadt
c739128703 Contract fixes. 2010-10-01 19:29:18 -07:00
Vincent St-Amour
5a67535a95 Got rid of a broken subtyping rule. 2010-10-01 17:48:47 -04:00
Sam Tobin-Hochstadt
c15871a028 Add additional require for identifiers in the residual program. 2010-09-09 16:08:04 -04:00
Sam Tobin-Hochstadt
867f359274 Fix `require' for contracts. 2010-09-09 16:08:04 -04:00
Sam Tobin-Hochstadt
b6b840076b Lots more laziness, and useless require removal. 2010-09-09 16:08:03 -04:00
Robby Findler
d419e8c12a changed the ->d contracts to ->i contracts 2010-09-09 14:21:35 -05:00
Eli Barzilay
8e0f8dd39c More "~n" -> "\n" changes 2010-08-26 12:11:00 -04:00
Sam Tobin-Hochstadt
b08de170bc Add Futureof' type, types for future' and `touch' 2010-08-25 10:27:07 -04:00
Stevie Strickland
a9f6ea69bf Fix creation of a reversed List type from ListDots substitution. 2010-08-12 17:46:39 -04:00
Vincent St-Amour
b18f2353ca Generalize naturals to integers to minimize annotations on mutated variables. 2010-08-05 09:04:25 -04:00
Vincent St-Amour
bce003fa18 Imaginaries can't be inexact complexes. 2010-08-03 14:51:24 -04:00
Sam Tobin-Hochstadt
431ff8d794 Don't treat Error types as potentially non-regular. (Reported by SK) 2010-08-02 15:41:42 -04:00
Vincent St-Amour
c4ba6b6038 Added some reflection functions to Typed Racket. 2010-07-29 19:11:20 -04:00
Vincent St-Amour
c4ae44123f Bytes are fixnums. 2010-07-21 21:09:41 -04:00
Vincent St-Amour
60bfce14bc Fixed unsafe optimization that considered floats as complexes. 2010-07-16 19:08:20 -04:00
Vincent St-Amour
4d5b50dee9 Further fixes in overlap checking.
Rhss of code dispatching on overlapping structs are no longer
considered dead, and as such, are now typechecked.

Had to fix a test that passed only because some not-really-dead code
was not being typechecked.
2010-07-16 19:08:19 -04:00