Commit Graph

521 Commits

Author SHA1 Message Date
Sam Tobin-Hochstadt
2f3e9fc655 Add types for `in-hash' etc. 2011-05-08 15:36:48 -04:00
Eric Dobson
e9683e1dd2 Changed early failure in subtyping to all non-struct values, not just null. Closes PR 11887. 2011-05-06 11:39:01 -04:00
Sam Tobin-Hochstadt
af56616fc8 Require numeric-predicates at the correct phase.
Closes PR 11897.
2011-05-05 19:04:38 -04:00
Vincent St-Amour
4b03ecde2a Integrate the TR and TR optimizer test suites. 2011-05-05 18:54:12 -04:00
Vincent St-Amour
4ea9b29d12 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.
2011-05-05 18:54:12 -04:00
Vincent St-Amour
7b6edb452f Rewrite the optimizer test suite to use rackunit. 2011-05-05 18:54:12 -04:00
Vincent St-Amour
fa016ea576 Keep running TR tests even if optimizer tests fail. 2011-05-05 18:54:12 -04:00
Vincent St-Amour
850d4d325d Don't display name of non-test files. 2011-05-05 18:54:12 -04:00
Eric Dobson
f3c73a197e Changed Paths to PathStrings in types where appropriate 2011-05-03 18:20:31 -04:00
Eric Dobson
44f377bcd4 Correctly instantiate poly-dotted functions with zero arguments.
Closes PR 11776. Closes PR 11545.
2011-05-03 18:20:31 -04:00
Eric Dobson
613e121783 Struct types now generate flat contracts when appropriate.
Closes PR 11686.
2011-05-03 08:15:37 -04:00
Vincent St-Amour
4d24cbee60 Promote more literals at compile-time. 2011-04-29 17:16:39 -04:00
Vincent St-Amour
d9451ef4ab Run optimizer tests in a throw-away namespace to reduce memory usage. 2011-04-29 15:28:30 -04:00
Sam Tobin-Hochstadt
0d246de293 Remove obselete shell script 2011-04-28 18:23:53 -04:00
Vincent St-Amour
632e36f751 Add set types to TR.
Original patch by Eric Dobson.
2011-04-28 18:22:39 -04:00
Eric Dobson
c221c07076 made ephemeron test correct 2011-04-26 15:35:22 -04:00
Eric Dobson
80fa8d3c97 Beginning of ephemeron patch 2011-04-26 15:35:22 -04:00
Vincent St-Amour
7e491392e1 Remove file that was accidentally committed. 2011-04-25 09:30:23 -04:00
Vincent St-Amour
9c3bee03e7 Fix bounded-fixnum opts to only fire with the right number of arguments. 2011-04-01 14:56:17 -04:00
Vincent St-Amour
3ebe9e78f9 Optimize add1 and sub1 on floats and fixnums. 2011-03-18 13:25:05 -04:00
Vincent St-Amour
1f0386b46c Improve TR's fixnum optimizations, using the new sub-fixnum types. 2011-03-18 10:25:22 -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
88fac43d55 Add an Exact-Number type. 2011-03-18 10:25:20 -04:00
Vincent St-Amour
80a9027f1e 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.
2011-03-18 10:25:19 -04:00
Vincent St-Amour
f8528ac892 Change type of make-sequence to reflect changes to its implementation. 2011-03-17 18:43:57 -04:00
Vincent St-Amour
35161a0ba6 Fix expected optimization logs to reflect changes to for. 2011-03-17 13:10:19 -04:00
Vincent St-Amour
498ee4bea1 Fix TR's GUI test harness. 2011-03-17 13:10:19 -04:00
David Van Horn
760a58b65d Fixes more spelling errors. 2011-02-04 19:44:13 -07:00
Vincent St-Amour
1b3052748e Add a case-> type-constructor as a synonym for case-lambda. 2011-01-31 16:39:20 -05:00
Vincent St-Amour
d65438c9ea Remove some legacy bindings. 2011-01-31 16:39:19 -05:00
Vincent St-Amour
768bb63361 Fix optimizer to work with new types. 2011-01-31 16:39:14 -05:00
Vincent St-Amour
a0a54b231d Fix TR tests. 2011-01-31 16:39:14 -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
36ae5a9d50 Fix nightly running of TR tests. 2011-01-27 16:49:45 -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
cb723092e2 Fix portable fixnum size. 2011-01-05 14:42:31 -05:00
Sam Tobin-Hochstadt
2431f8f706 Fix TR tests for new contract error messages. 2010-12-29 13:46:57 -05:00
Carl Eastlund
5b18305e11 New test case for formatting bug in TR error messages. 2010-12-10 17:26:17 -05:00
Vincent St-Amour
09ffb70492 Update TR tests to reflect new contract error messages. 2010-12-10 16:59:13 -05:00
Vincent St-Amour
b9d67eea2f Allow running individual TR tests. 2010-12-10 16:59:12 -05:00
Vincent St-Amour
407d9b5f07 Error when running TR's test harness with no tests. 2010-12-10 13:44:47 -05:00
Vincent St-Amour
365d272666 Test for errors in rhs. 2010-12-08 20:32:20 -05:00
Vincent St-Amour
81ef5f9418 Typecheck body of letrec using original types instead of potentially undefined type. 2010-12-08 20:32:20 -05:00
Vincent St-Amour
b045153177 letrec: consider outside bindings safe. 2010-12-08 20:32:19 -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
Sam Tobin-Hochstadt
73dbf42e0e Better handling of `hash-*' functions, and hashes as sequences. 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
Sam Tobin-Hochstadt
561fdc8db5 Avoid dumb parsing bugs in require/typed. 2010-10-26 18:09:45 -04:00