Vincent St-Amour
c0970cc647
Small-Float -> Single-Flonum
...
original commit: f1c6c74284fd913ab8231426bcf1206bcf259f77
2011-01-31 16:39:18 -05:00
Vincent St-Amour
aa2132e024
Bytes are a sequence of the new Byte type.
...
original commit: 46f086282d7302e7e015109c9f945a92350e384c
2011-01-31 16:39:15 -05:00
Vincent St-Amour
3d6b5893ba
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.
original commit: e56663c943fe4ae355b6d626d3c84b6ec8ea7fd1
2011-01-31 16:39:13 -05:00
Vincent St-Amour
d5941cb2d6
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.
original commit: d4c93cc12e6df893ba2e782f0e0ea5529738315a
2011-01-31 16:39:13 -05:00
Vincent St-Amour
ddd166c799
Make bare union constructor smarter.
...
original commit: 78c4809177e6781a42dd29dd9b0bb96c77fa0e01
2011-01-31 16:39:12 -05:00
Vincent St-Amour
8e569511e8
Fix double application of format.
...
Closes PR 11524.
original commit: f8c01299f971c65509877e22feaaa4f2ccb79227
2010-12-10 16:59:12 -05:00
Sam Tobin-Hochstadt
1527fba4b3
Allow arbitrary filter specification in function types.
...
Allow (A -> B -> C) for curried function types.
original commit: 87eab889d68dd46bfd5b0f4d79942bc104cb3da2
2010-12-08 18:22:29 -05:00
Vincent St-Amour
5acfe5b67d
Take into account potentially undefined values in letrec.
...
Closes PR11511.
original commit: dc2df4882b6abca46839ace724924df5ab0d7707
2010-12-08 18:17:06 -05:00
Vincent St-Amour
9c5a1e0086
Fixed a fixnum typechecking issue.
...
original commit: 4c081c127ab91067c3a69568175d7274b090f986
2010-11-04 17:27:34 -04:00
Vincent St-Amour
26aafa3ea6
Fixed potential danger with fixnum optimizations.
...
original commit: c0a6137c67228933ad94d88409ffd86e30e922ae
2010-11-04 15:35:21 -04:00
Vincent St-Amour
1a4e176824
Inexact-Complex -> Float-Complex
...
original commit: 27e722f27b673cbfcee60aaba75dfdcab7e396c5
2010-10-12 16:47:46 -04:00
Vincent St-Amour
92b3f9af03
Changed the TR numeric tower to use the new flonums.
...
original commit: a59a99c42dffec38be98f3c0449097c80bad40fe
2010-10-12 16:47:45 -04:00
Sam Tobin-Hochstadt
fb0df54c79
Fix `overlap' for refinements of base types.
...
original commit: 7bcd107e7ff5ce64791a5613a13f6445a87c638c
2010-10-07 11:19:54 -04:00
Vincent St-Amour
105b82fb70
Fixed tautology/contradiction recording to work with case-lambda.
...
original commit: 5395dbca122c534db3d70139c871e0bc4b91515f
2010-10-06 17:32:29 -04:00
Sam Tobin-Hochstadt
5733f06d9a
Contract fixes.
...
original commit: c739128703d917540ff963775459b6c75ccf2c80
2010-10-01 19:29:18 -07:00
Vincent St-Amour
7876c75cbc
Got rid of a broken subtyping rule.
...
original commit: 5a67535a950ba19846151a6f7a3f7a473affea86
2010-10-01 17:48:47 -04:00
Sam Tobin-Hochstadt
c13d984042
Add additional require for identifiers in the residual program.
...
original commit: c15871a0284fcf2a6a8c78fafde4fdd9a9551bca
2010-09-09 16:08:04 -04:00
Sam Tobin-Hochstadt
eba0c35b6c
Fix `require' for contracts.
...
original commit: 867f35927430b61c411ae7c930964b9e70f42cc5
2010-09-09 16:08:04 -04:00
Sam Tobin-Hochstadt
e717d29b74
Lots more laziness, and useless require removal.
...
original commit: b6b840076b275d653843400f18259bf7f67c7a53
2010-09-09 16:08:03 -04:00
Robby Findler
780c2159b8
changed the ->d contracts to ->i contracts
...
original commit: d419e8c12a554d660a65198dd102bc03e01c93a8
2010-09-09 14:21:35 -05:00
Eli Barzilay
48b7074752
More "~n" -> "\n" changes
...
original commit: 8e0f8dd39c3744472b450021f003f9cbe8cbcb62
2010-08-26 12:11:00 -04:00
Sam Tobin-Hochstadt
7efb07a4b0
Add Futureof' type, types for
future' and `touch'
...
original commit: b08de170bc616d2217c6fde3dff8c3f1b042eb3b
2010-08-25 10:27:07 -04:00
Stevie Strickland
21da67fbd9
Fix creation of a reversed List type from ListDots substitution.
...
original commit: a9f6ea69bfbb23d4e6ab1b5ebfcb6bb9e3b3c05a
2010-08-12 17:46:39 -04:00
Vincent St-Amour
f51d1e640d
Imaginaries can't be inexact complexes.
...
original commit: bce003fa1813b309382d6af01090f3cb5b9f84d5
2010-08-03 14:51:24 -04:00
Sam Tobin-Hochstadt
1f05ee70e2
Don't treat Error types as potentially non-regular. (Reported by SK)
...
original commit: 431ff8d794425e12577c662be7827a38531ad39f
2010-08-02 15:41:42 -04:00
Vincent St-Amour
d19a3ff923
Added some reflection functions to Typed Racket.
...
original commit: c4ba6b60388a2d65fcb44a726d12373f9ca17eee
2010-07-29 19:11:20 -04:00
Vincent St-Amour
3aae29501e
Bytes are fixnums.
...
original commit: c4ae44123f74de07933d1c6edfb25be4609af6dd
2010-07-21 21:09:41 -04:00
Vincent St-Amour
40d4840ae1
Fixed unsafe optimization that considered floats as complexes.
...
original commit: 60bfce14bc0166742fed7675b81d8c5c0dcec2d4
2010-07-16 19:08:20 -04:00
Vincent St-Amour
134fb72de1
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.
original commit: 4d5b50dee9e04aee167a7e04fbbe23526131fcad
2010-07-16 19:08:19 -04:00
Stevie Strickland
f3a78d1e10
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.
original commit: 654b7df1decd52763ffedcdc507a4bf367b1cecf
2010-07-16 19:08:19 -04:00
Vincent St-Amour
70cfe1b953
Added dead code elimination.
...
original commit: 1e550139aa67631ffc965027584284b61453b634
2010-07-16 12:22:11 -04:00
Vincent St-Amour
52559ccd98
Better internal error reporting.
...
original commit: 58fe07ad70b74345e65ccf58171dc73e96be6b2b
2010-07-16 12:22:11 -04:00
Vincent St-Amour
fe84eaf722
Added struct optimizations.
...
original commit: a6d11a1df08336183e1af36b787c134e1bf4f469
2010-07-02 20:58:28 -04:00
Sam Tobin-Hochstadt
09d59a56bf
Avoid some quotes while printing types.
...
original commit: 9a1c08e230d2a76cb052dab1ab231974ddc652ad
2010-07-01 17:12:59 -04:00
Vincent St-Amour
6dd9ffd727
Added the Nonnegative-Float type.
...
original commit: 62a15df3eb2fd7dc5a8ef2455c0f20918697a668
2010-06-30 14:53:22 -04:00
Vincent St-Amour
b7d9ed75e2
Added the Inexact-Complex type.
...
original commit: dcfb2d8a94b1359217b9451b7a97d4afa425a6da
2010-06-30 14:53:21 -04:00
Vincent St-Amour
18155bf2c5
Added fixnums to more type signatures.
...
original commit: cee39c4a38bb0ca41f79a4b8e9e159501e5d627d
2010-06-30 14:53:18 -04:00
Sam Tobin-Hochstadt
19bb208f4f
make subst structs transparent
...
original commit: 18078400b77114880e99e1c39913f8df96a0faa2
2010-06-29 17:34:44 -04:00
Sam Tobin-Hochstadt
887f054a55
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.
original commit: c01b2397796cce0ade2ed7515ffe33c9eb338c4f
2010-06-29 17:33:36 -04:00
Sam Tobin-Hochstadt
a7b787db6c
Add Fixnum type.
...
original commit: 4b1c62c9785a6578ba2f894a53a8ee6f1a03152f
2010-06-24 18:05:55 -04:00
Sam Tobin-Hochstadt
c898d882c6
recreate selector table automatically.
...
original commit: a33f460b2547866d492bf01c81ded9b2a669ea26
2010-06-24 16:48:10 -04:00
Sam Tobin-Hochstadt
7f6da53efa
Use the correct field numbers in substructs.
...
Maintain table of struct accessors/mutators.
original commit: 3c8952d63d2cd28a3b5a588c0367b53dc963308b
2010-06-24 14:53:38 -04:00
Sam Tobin-Hochstadt
84247a1882
allow optional specifcation of var pattern
...
original commit: b8777d20b26837d8ecfa78eeeda25fdccdb4a783
2010-06-21 18:30:29 -04:00
Stevie Strickland
e73d9f5ee8
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
original commit: 034b22d01401bba31f700dd5cb38fcf731ed64be
2010-06-21 18:30:29 -04:00
Sam Tobin-Hochstadt
380885f978
Implement substitutions as hash tables from vars to subst-rhs.
...
- add convenience function for generating substitutions
- give trivial substitution for unreferenced index variables
original commit: 339add9f78723fecb3e7332a8a173f615c37bc2c
2010-06-21 18:30:28 -04:00
Sam Tobin-Hochstadt
6514ee71e1
Refactor substitution.
...
- new file types/substitute
- use structs for substitutions
original commit: 44d46e4cd7ecc06a264282b31dd7ba47dee421f1
2010-06-21 18:30:28 -04:00
Sam Tobin-Hochstadt
d26ad0e213
Change inference to take into account index vs regular vars.
...
original commit: 99e499a503b8b319bc0e512b698e5543634e3654
2010-06-21 18:30:24 -04:00
Sam Tobin-Hochstadt
0d7111128c
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
original commit: 662f982b724e7194f5729a9894fc642f06e7910f
2010-06-21 18:30:24 -04:00
Sam Tobin-Hochstadt
1e98e1c1fd
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
original commit: d570006db81dda68e69b7058fd3edfb68cc3d042
2010-06-21 18:29:58 -04:00
Sam Tobin-Hochstadt
92c48f6521
Subtyping between (List T ... a) and (Listof T[Any/a])
...
original commit: fd5a662ccc7aa2fbc3f29974c075dcabf2a870fe
2010-06-21 18:29:57 -04:00