Commit Graph

167 Commits

Author SHA1 Message Date
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
Sam Tobin-Hochstadt
2ecc5d35d4 Substitution for (List T ...)
original commit: 310bdf352980f9c629ccfa8d2a4365dd8f23cd0c
2010-06-21 18:29:56 -04:00
Stevie Strickland
28ff44d0f2 Add subtyping for dotted lists with the same bound.
original commit: 62fb6f93110e9ed23ed0b979af5b3c1608f088e7
2010-06-21 18:29:55 -04:00
Sam Tobin-Hochstadt
54a57ab177 First attempts at adding ListDots (and, incidentally, List*) types.
original commit: 40dbb6389cd22c6f6dff42a20bdf23e32b2ba0d2
2010-06-21 18:29:55 -04:00
Vincent St-Amour
9eb47ff1a0 Added mutable lists to Typed Scheme.
original commit: a31a7b07187573b9f0d9b8b7b9fcaa21bbb50b8f
2010-06-16 12:49:01 -04:00
Sam Tobin-Hochstadt
eed1167639 set-mc[ad]r!, inference, printing, tests for mpairs
original commit: 4cc86cc8c808d375f10c2c1fa2e4b54b126a26da
2010-06-15 16:10:16 -04:00
Vincent St-Amour
0289d63af2 Fixed a bug in the optimizer that made it optimize where it
shouldn't have.

original commit: aae1acf035fb548067aef1dc3a9203a19ee76b90
2010-06-11 20:53:10 -04:00
Vincent St-Amour
aa18b9971e Fixed a bug with eof and procedure types overlapping.
original commit: 96c541912ccb6e752d83101c38f57d6da5984a42
2010-06-11 19:48:22 -04:00
Sam Tobin-Hochstadt
aa6d48e80f Print names using the name, ignoring aliases.
original commit: 7c32898cb29bb6baee4591bc05fa96621ff1d6d1
2010-06-11 17:48:37 -04:00
Sam Tobin-Hochstadt
ed35e04293 New interface for unstable/mutated-vars
- functional hash tables
 - fix clients

original commit: 0379e534e3f0024473d6af9379d0cac0d2bd1a37
2010-06-10 13:28:29 -04:00
Sam Tobin-Hochstadt
9aef73b980 Fix promise printing, add docs. Closes PR 10968.
original commit: 0149a05719fdb1fbab56d231905f088bb13b4252
2010-06-09 16:56:31 -04:00
Vincent St-Amour
e34babbff0 Fixed the implementation of Channel types.
original commit: 436e001b0e485111da5772f54fcf004eec8a3068
2010-06-09 15:28:10 -04:00
Vincent St-Amour
d5c72476e8 Added the Thread type and related functions.
original commit: 15b0c8542d3a54a37539608623754109f96b4d3e
2010-06-09 14:54:36 -04:00
Vincent St-Amour
ce236fdf46 Added Channel types.
original commit: ec799fb208197df8b2f4cafc0b0af3aad423871a
2010-06-09 14:54:35 -04:00
Sam Tobin-Hochstadt
e16c33e1a6 Sequenceof type.
- inferencing and subtyping relation with vectors, lists, etc
- use in `make-sequence'
- add tests

original commit: 78023d08f99bd423a17e532b6ff9b1ded758b658
2010-06-09 11:03:12 -04:00
Sam Tobin-Hochstadt
fcfd000fcc Properly handling immutable invariant structs.
original commit: 7df8e3279396e7483a5645603726afa5424a071a
2010-06-07 14:03:06 -04:00
Sam Tobin-Hochstadt
8c0e9178ac Guard type-equal? test.
original commit: 8194bcc4d41c79c39cb0a4a13a810f2b6bbc35d3
2010-05-27 12:46:37 -04:00
Sam Tobin-Hochstadt
53c630bc14 Simpler has-name? implementation.
original commit: bd0bcda85e0526e22b31a8dd64dbaf083d0d992a
2010-05-27 10:50:15 -04:00
Sam Tobin-Hochstadt
e345eb7448 Print empty filters as -
original commit: b21f70408687afa5617230478146ece76d71d53b
2010-05-24 14:04:01 -07:00
Sam Tobin-Hochstadt
1e25674287 Allow recursive types in type annotations for `list'.
Closes PR 10562.
 Tests for fixed bugs.

original commit: 7e9313bad3c8f8b7d6e0241f6904dce45ac77786
2010-05-19 15:14:18 -05:00
Sam Tobin-Hochstadt
2fdcb1ef9a mostly done with heterogenous vectors
original commit: 2c03f2223b55483bc02d66946097ed17e63529f3
2010-05-14 11:00:22 -04:00