Commit Graph

494 Commits

Author SHA1 Message Date
Sam Tobin-Hochstadt
605cfeec02 Add types for `in-hash' etc.
original commit: 2f3e9fc655283f4ab375c7aaebab39f45df9f45e
2011-05-08 15:36:48 -04:00
Eric Dobson
a5bbee3ce3 Changed early failure in subtyping to all non-struct values, not just null. Closes PR 11887.
original commit: e9683e1dd2f6544391cc603a6385baee59c6c07e
2011-05-06 11:39:01 -04:00
Sam Tobin-Hochstadt
26a209d374 Require numeric-predicates at the correct phase.
Closes PR 11897.

original commit: af56616fc8ebe84f61ce9d6a2f15530361c739b9
2011-05-05 19:04:38 -04:00
Vincent St-Amour
b9b546b237 Integrate the TR and TR optimizer test suites.
original commit: 4b03ecde2a1858d4899d0d7702ff534e5fd4b3bd
2011-05-05 18:54:12 -04:00
Vincent St-Amour
43c99727bb Remove redundant checks from TR's optimizer tests.
Checking that the optimized and non-optimized versions return the same
results is unnecessary. Optimization logs, which are checked against
an expected log, already contain the results.

original commit: 4ea9b29d12b0ef01e180222aa84aee363020d9b8
2011-05-05 18:54:12 -04:00
Vincent St-Amour
400e3ed5da Rewrite the optimizer test suite to use rackunit.
original commit: 7b6edb452fac377b5d35eb5c77151fd7df3a26ff
2011-05-05 18:54:12 -04:00
Vincent St-Amour
09d88a7b26 Keep running TR tests even if optimizer tests fail.
original commit: fa016ea5761543428395328555e420336887d8f4
2011-05-05 18:54:12 -04:00
Vincent St-Amour
b29bb134bb Don't display name of non-test files.
original commit: 850d4d325d44c9a735ef9a2ca67610b7bd1ac1ea
2011-05-05 18:54:12 -04:00
Eric Dobson
5ea9af1a69 Changed Paths to PathStrings in types where appropriate
original commit: f3c73a197e4379b6c852050ba0197dc3f31319a4
2011-05-03 18:20:31 -04:00
Eric Dobson
3de7ea8410 Correctly instantiate poly-dotted functions with zero arguments.
Closes PR 11776. Closes PR 11545.

original commit: 44f377bcd40b88147b606dbe1e8950e59b40e07d
2011-05-03 18:20:31 -04:00
Eric Dobson
00820b2a91 Struct types now generate flat contracts when appropriate.
Closes PR 11686.

original commit: 613e121783d34c3e2cc4904f3e4f43639ab925b3
2011-05-03 08:15:37 -04:00
Vincent St-Amour
5b11b9f98b Promote more literals at compile-time.
original commit: 4d24cbee606b19dea77d7225fba4517957d6fc0a
2011-04-29 17:16:39 -04:00
Vincent St-Amour
c8313ec1ac Run optimizer tests in a throw-away namespace to reduce memory usage.
original commit: d9451ef4abb6e44ad6a47c76d07adcfe142dc43e
2011-04-29 15:28:30 -04:00
Vincent St-Amour
e24955b66a Add set types to TR.
Original patch by Eric Dobson.

original commit: 632e36f751ea454874548cdb62d6cb73694c773d
2011-04-28 18:22:39 -04:00
Eric Dobson
3b22083244 made ephemeron test correct
original commit: c221c070763a9527840ddb2d5ebedf63b9af464d
2011-04-26 15:35:22 -04:00
Eric Dobson
b22c8c9c24 Beginning of ephemeron patch
original commit: 80fa8d3c9799ece292b764f69d10377a34d5495d
2011-04-26 15:35:22 -04:00
Vincent St-Amour
f01605d921 Fix bounded-fixnum opts to only fire with the right number of arguments.
original commit: 9c3bee03e7f24390338e3f37d06eb84940d6a137
2011-04-01 14:56:17 -04:00
Vincent St-Amour
5a35d4ea66 Optimize add1 and sub1 on floats and fixnums.
original commit: 3ebe9e78f9c86feb14d80dd499adec6438dc37e3
2011-03-18 13:25:05 -04:00
Vincent St-Amour
c8a4abd264 Improve TR's fixnum optimizations, using the new sub-fixnum types.
original commit: 1f0386b46cc7ef08ac59d1d3453412f5eaf3f1e3
2011-03-18 10:25:22 -04:00
Vincent St-Amour
f0bdca6383 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.

original commit: ee29d371c9e6882edfc78621110bd11260ee942a
2011-03-18 10:25:21 -04:00
Vincent St-Amour
ddd2dd821b Add an Exact-Number type.
original commit: 88fac43d551687efc72b6241c2dffbbaffe270d7
2011-03-18 10:25:20 -04:00
Vincent St-Amour
a8ee106320 Take the meet of constraints earlier in the inference process.
This avoids constraint explosions in some cases, notably when working
with polydots and plain variable arity functions at the same time.

However, this also weakens inference a bit (breaks it for
unholy-terror and related tests), but not in a way that affects any
practical use cases that I know of.

original commit: 80a9027f1eee6ea56a29aa73c65675f6cf86cdb2
2011-03-18 10:25:19 -04:00
Vincent St-Amour
f8ded9a56d Change type of make-sequence to reflect changes to its implementation.
original commit: f8528ac8926bbf7d7eb032dbb287182336828bd4
2011-03-17 18:43:57 -04:00
Vincent St-Amour
4e38d34c5a Fix expected optimization logs to reflect changes to for.
original commit: 35161a0ba675677fdcfd25bb9f44809173572e22
2011-03-17 13:10:19 -04:00
Vincent St-Amour
7635a7927d Fix TR's GUI test harness.
original commit: 498ee4bea17298a96a8fc0ffee956e36e3b639c7
2011-03-17 13:10:19 -04:00
David Van Horn
091a0f64e3 Fixes more spelling errors.
original commit: 760a58b65df2b91010d2bcc2739ddab2a4489729
2011-02-04 19:44:13 -07:00
Vincent St-Amour
f8b7eb8073 Add a case-> type-constructor as a synonym for case-lambda.
original commit: 1b3052748e3278deefabf646f4990dc1f8064202
2011-01-31 16:39:20 -05:00
Vincent St-Amour
2b933e4436 Remove some legacy bindings.
original commit: d65438c9ea1bacce33579c81cc0e22120ab64f5d
2011-01-31 16:39:19 -05:00
Vincent St-Amour
f6590e9db2 Fix optimizer to work with new types.
original commit: 768bb6336142726023bfe2029b5aa25728bda0a3
2011-01-31 16:39:14 -05:00
Vincent St-Amour
956a1533c8 Fix TR tests.
original commit: a0a54b231db5c81e9ab66302399b6adc660b701f
2011-01-31 16:39:14 -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
6a0aa26fde Fix nightly running of TR tests.
original commit: 36ae5a9d50883395e521ead9abdcfe0321bf7943
2011-01-27 16:49:45 -05:00
Vincent St-Amour
b13ebb0924 Generalize hash table literals and subtypes of symbol.
Closes PR 11670.

original commit: 2bd0145603f411e01ce6e16bfcf6ffc842b6801a
2011-01-26 14:23:19 -05:00
Vincent St-Amour
6d105153f1 Fix portable fixnum size.
original commit: cb723092e26f980600df3d66c54321da28b0490e
2011-01-05 14:42:31 -05:00
Sam Tobin-Hochstadt
d2424d72fa Fix TR tests for new contract error messages.
original commit: 2431f8f70646e00d3c65ef6d9d00fc75459d3ff0
2010-12-29 13:46:57 -05:00
Carl Eastlund
034c06a30e New test case for formatting bug in TR error messages.
original commit: 5b18305e11b1f2bcba0e6d6e4ebfd7d51fb6ccba
2010-12-10 17:26:17 -05:00
Vincent St-Amour
432b1040dc Update TR tests to reflect new contract error messages.
original commit: 09ffb7049288731040aa33c41b5c13952d9ab285
2010-12-10 16:59:13 -05:00
Vincent St-Amour
73046316e6 Allow running individual TR tests.
original commit: b9d67eea2f08e5eed8a5d28539aa749e2a64f790
2010-12-10 16:59:12 -05:00
Vincent St-Amour
a00e498399 Error when running TR's test harness with no tests.
original commit: 407d9b5f0792ff94438a7e5f5448f54dddb8f7d9
2010-12-10 13:44:47 -05:00
Vincent St-Amour
a650c59fb3 Test for errors in rhs.
original commit: 365d2726660ab9342f229789f268e2461cdd2063
2010-12-08 20:32:20 -05:00
Vincent St-Amour
f4a1a31f61 Typecheck body of letrec using original types instead of potentially undefined type.
original commit: 81ef5f9418b0011daa980d438c0eed451b37d578
2010-12-08 20:32:20 -05:00
Vincent St-Amour
2865f2801f letrec: consider outside bindings safe.
original commit: b045153177afe8aaebdbf179dbe27670b1cf577d
2010-12-08 20:32:19 -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
Sam Tobin-Hochstadt
05e1489dfb Better handling of `hash-*' functions, and hashes as sequences.
original commit: 73dbf42e0e6fb750d871060d6ed34adf6e207eec
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
Sam Tobin-Hochstadt
db3c6bbbe0 Avoid dumb parsing bugs in require/typed.
original commit: 561fdc8db580c828a45dc27c4ca61b21dccad311
2010-10-26 18:09:45 -04:00
Vincent St-Amour
9b5a5a6bb5 Fix opt-lambda:. Merge to 5.0.2.
original commit: a15236ea4f1ba84c9351632e9469e1cd34b5375b
2010-10-20 14:32:37 -04:00
Vincent St-Amour
4a6b3b2b57 Removed logging when no optimization actually happens.
original commit: 12a5454b147468df59e92cb7057e0e9515ad5abd
2010-10-14 14:13:06 -04:00