Sam Tobin-Hochstadt
962f2472e1
Revamp handling of Any
as a contract.
...
The contract now has two major differences:
- It raises an error when it would have to wrap.
- It uses chaperones to delay errors as long as possible
In general, using `Any` as a type when exporting to untyped
code will now just work, unless the untyped code tries to
communicate values back to the typed side, in which case an
immediate error will be raised.
Much of the implementation comes from the membrane design
from [Strickland et al, OOPSLA 2012].
2012-10-05 12:39:11 -04:00
Sam Tobin-Hochstadt
86522a1804
This pattern of typed submodules exposes Racket bugs.
2012-10-03 12:24:16 -04:00
Sam Tobin-Hochstadt
cab90c16d5
Test for appropriate predicates for invariant structs.
2012-09-27 17:26:32 -04:00
Sam Tobin-Hochstadt
d066a5c1d2
Fix error message pattern for use of cons/c
.
2012-09-27 16:39:16 -04:00
Eric Dobson
ffe45ecce4
Working covariant applications.
2012-09-27 16:22:22 -04:00
Eric Dobson
12233600c1
Fix -struct to use the right number of arguments to make-Struct.
2012-09-27 16:22:21 -04:00
Eric Dobson
745403a88e
Make struct type contracts better
2012-09-27 16:22:21 -04:00
Eric Dobson
9e1cf579a4
Fix type->contract on structures. Now uses struct/c.
2012-09-27 16:22:21 -04:00
Sam Tobin-Hochstadt
eed93825ab
Track mutable variables across modules.
2012-08-31 17:45:11 -04:00
Sam Tobin-Hochstadt
ab5403d1ed
Simplifying case-> to union is only safe for 1-argument functions.
...
Closes PR 13002.
2012-08-31 10:27:51 -04:00
Sam Tobin-Hochstadt
b7f9c77069
Remove #:transparent
to work around place message limitations.
2012-08-22 16:50:50 -04:00
Sam Tobin-Hochstadt
e207f5c67d
Add -v
option to TR tests.
...
Also, print errors from serialization and place message sending.
2012-08-22 16:50:50 -04:00
Eric Dobson
e9f209977b
Fix typechecking of polymorphic structs with parent types.
...
Closes PR12998.
2012-08-22 16:50:49 -04:00
Sam Tobin-Hochstadt
26a57f6420
Use module registry trick to slightly speed up TR tests.
2012-08-22 11:13:07 -04:00
Sam Tobin-Hochstadt
e705d4d450
Parallelize running Typed Racket optimizer tests.
...
No speedup yet, though.
2012-08-21 17:47:30 -04:00
Sam Tobin-Hochstadt
1c275ffcc7
Don't use places for running single tests.
2012-08-20 14:45:50 -04:00
Eric Dobson
533920480e
Add tests for make-predicate and cast, also add support for the top-level.
...
Closes PR 12939.
Closes PR 12201.
2012-08-20 12:39:41 -04:00
Sam Tobin-Hochstadt
9e5060ef5b
Make Typed Racket integration tests run in parallel.
...
Parallel speedup of approximately 4x when using 8 workers on a 12-core machine.
Closes PR 12911.
2012-08-20 12:25:50 -04:00
Eric Dobson
09d32d35e0
Add promise support to type->contract.
...
Closes PR13024.
2012-08-20 10:10:17 -04:00
Eric Dobson
ac493a6f44
Replaced infer-dummy with lazy-require.
2012-08-14 16:04:51 -04:00
Sam Tobin-Hochstadt
ade36c36c6
Don't special-case applications with instantiations.
...
Closes PR 13006.
2012-08-14 15:45:47 -04:00
Eric Dobson
3b6168de7d
Fix substitute and add test case.
2012-08-14 14:44:55 -04:00
Eric Dobson
2e3965e777
Make simple substitution happen all at once.
...
Closes pr12920.
2012-08-14 14:44:55 -04:00
Vincent St-Amour
af8fc1f26a
Fix types of magnitude and angle.
...
Closes PR13025.
2012-08-14 14:37:18 -04:00
Eric Dobson
cac47c0427
Make TR debug printer work again.
2012-08-14 09:45:01 -04:00
Sam Tobin-Hochstadt
6ae2a9d884
Fix internal require of typed submodules.
2012-08-13 17:20:20 -04:00
Eric Dobson
3876dfa841
Make generated flat contracts actually flat.
2012-08-10 10:39:44 -04:00
Eric Dobson
21598297a7
Removed *Un from abbrev.rkt, replaced it with Un from union.rkt.
2012-08-07 15:50:50 -04:00
Eric Dobson
9ed360bb5e
Removed convenience.rkt from typed racket.
2012-08-07 15:50:50 -04:00
Eric Dobson
56fd9e6321
Rearange type code, so that abbrev.rkt can depend on union.rkt.
...
Split out base-abbrev.rkt so that subtype is not dependent on abbrev.rkt.
Remove unused code in numeric-tower.rkt so that it is now a dependent of
abbrev.rkt, which allows the body of convenience.rkt to be merged back in.
Remove special casing for union.rkt and extraneous subtyping checks.
Remove union-maker.
2012-08-07 15:50:50 -04:00
Vincent St-Amour
7494fccc4c
Control number of attempts for TR random testing from the command line.
2012-08-06 12:48:41 -04:00
Eric Dobson
e6d4fb2ee2
Fill hole in recursive type soundness. Fixes PR 11372.
2012-08-06 12:31:07 -04:00
Vincent St-Amour
aba046a92d
Swap unsafe and chaperone-unsafe vector ops in the TR optimizer.
...
Closes PR12969.
2012-08-04 10:32:21 -04:00
Vincent St-Amour
a6d5a98b61
Include NaN in all floating-point types.
...
Makes more closure properties hold, but weakens occurrence typing for
some comparisons involving flonums.
2012-08-03 14:21:44 -04:00
Vincent St-Amour
800a328fe6
Fix documentation for packages and mutable lists.
...
As suggested by Matthew.
2012-07-31 17:12:30 -04:00
Vincent St-Amour
dd02f5eeda
Fix parametric require/typed in typed/racket/base.
...
Closes PR12951.
Please merge to release.
2012-07-29 09:02:58 -04:00
Vincent St-Amour
52439d528b
Move mutable list functions to the compatibility collect.
...
Mutable pair functions from racket/base are not moved.
2012-07-27 16:49:05 -04:00
Vincent St-Amour
b1577bd307
Fix type for add-between.
2012-07-24 16:41:52 -04:00
Sam Tobin-Hochstadt
4a90c6c1fe
Ensure that structs don't overlap with simple values.
...
Reported by Ray Racine.
Please merge to release.
2012-07-20 13:01:32 -04:00
Eric Dobson
1df6165e9f
Clean up of typechecking for heterogeneous vectors and structs.
2012-07-15 19:21:26 -04:00
Eric Dobson
779291c795
Remove special cases for - and fx- in tc-app.rkt.
2012-07-15 19:21:26 -04:00
Sam Tobin-Hochstadt
8c659d50ed
Properly handle quoted constants with bad expected types.
...
Closes PR 12874.
2012-07-14 23:06:13 -04:00
Sam Tobin-Hochstadt
1dca82784b
Handle arbitrary recursive contracts generated from Rec
types.
2012-07-14 22:45:08 -04:00
Sam Tobin-Hochstadt
2aaeec4520
Improve type of values
when applied to one argument.
...
Closes PR 12846.
2012-07-14 22:45:08 -04:00
Sam Tobin-Hochstadt
ccf79943ab
Fix special case for expected unions of vectors.
...
Closes PR 12845.
2012-07-14 21:56:44 -04:00
Sam Tobin-Hochstadt
2500dad8f1
Don't shortcut simple letrec
forms that aren't lambda
s.
...
Closes PR 12841.
2012-07-14 21:36:56 -04:00
Sam Tobin-Hochstadt
9e097866bf
Vector fixes.
...
- Allow indexing into a VectorTop, with result `Any`.
- Don't use special typing rules for applications when the operator
has an annotation or instantiation.
Closes PR 12887.
Closes PR 12888.
2012-07-14 21:30:26 -04:00
Sam Tobin-Hochstadt
f40c7f11a6
Mutable data at typed boundaries can't have flat contracts.
...
Closes PR 12884.
2012-07-14 20:43:35 -04:00
Sam Tobin-Hochstadt
2dd9a43d1b
Fix tests for new type name declaration.
2012-07-12 17:41:12 -04:00
Neil Toronto
392d7bfbad
Added sequence typecheck tests
...
Added empty-sequence type (prints funny but works polymorphically; will submit bug report)
Loosened type of sequence-andmap (can't mimic andmap's predicate type)
2012-07-10 13:22:53 -07:00