Commit Graph

197 Commits

Author SHA1 Message Date
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
Stevie Strickland
654b7df1de Two fixes in overlap checking.
- Names were not being resolved, so a superstruct name and substruct name
   could be seen as non-overlapping.
 - Struct parents were not checked in the overlapping algorithm.
2010-07-16 19:08:19 -04:00
Vincent St-Amour
1e550139aa Added dead code elimination. 2010-07-16 12:22:11 -04:00
Vincent St-Amour
58fe07ad70 Better internal error reporting. 2010-07-16 12:22:11 -04:00
Vincent St-Amour
a6d11a1df0 Added struct optimizations. 2010-07-02 20:58:28 -04:00
Sam Tobin-Hochstadt
570df7d665 Generalize fixed-length lists to listofs.
Closes PR10057.
2010-07-02 17:25:07 -04:00
Vincent St-Amour
06279de2ca Nonnegative-Floats are now generalized to Floats. 2010-07-02 15:16:10 -04:00
Sam Tobin-Hochstadt
9a1c08e230 Avoid some quotes while printing types. 2010-07-01 17:12:59 -04:00
Vincent St-Amour
62a15df3eb Added the Nonnegative-Float type. 2010-06-30 14:53:22 -04:00
Vincent St-Amour
dcfb2d8a94 Added the Inexact-Complex type. 2010-06-30 14:53:21 -04:00
Vincent St-Amour
cee39c4a38 Added fixnums to more type signatures. 2010-06-30 14:53:18 -04:00
Sam Tobin-Hochstadt
18078400b7 make subst structs transparent 2010-06-29 17:34:44 -04:00
Sam Tobin-Hochstadt
c01b239779 Refactor struct type representation.
- fields now represented by fld struct.
 - mutability on per-field basis
 - accessors are per field

This fixes lots of existing bugs, allows future #:mutable on fields.
2010-06-29 17:33:36 -04:00
Sam Tobin-Hochstadt
4b1c62c978 Add Fixnum type. 2010-06-24 18:05:55 -04:00
Sam Tobin-Hochstadt
a33f460b25 recreate selector table automatically. 2010-06-24 16:48:10 -04:00
Sam Tobin-Hochstadt
3c8952d63d Use the correct field numbers in substructs.
Maintain table of struct accessors/mutators.
2010-06-24 14:53:38 -04:00
Sam Tobin-Hochstadt
b8777d20b2 allow optional specifcation of var pattern 2010-06-21 18:30:29 -04:00
Stevie Strickland
034b22d014 Generate dcon-dotted, and substitute for them.
- generated only in the case where we have two ListDots or two ValuesDots
 - or when -> with the same bound, and fixed argument lengts are identical
 - currently errors if there are any 'fixed' portions
2010-06-21 18:30:29 -04:00