Commit Graph

779 Commits

Author SHA1 Message Date
Vincent St-Amour
3349c30fab Generate ->* contracts for functions with both optional and keyword arguments.
original commit: 844e898a548ea3b8fcecb97b0e59f8dcf06e0949
2012-10-14 15:44:54 -04:00
Vincent St-Amour
cc1dd45568 More float conversion optimizations.
original commit: 149d8535eb2988fab0bed739d375874f172db7c8
2012-10-14 15:35:50 -04:00
Vincent St-Amour
9170637137 Only recommend dropping exactness in truly inexact contexts.
Please merge to release.

original commit: 758e4ff112bf83544fdfc833f454930cc0bc5322
2012-10-12 14:42:16 -04:00
Sam Tobin-Hochstadt
638b653967 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].

original commit: 962f2472e18356f357f026645bdcebdf3139ba29
2012-10-05 12:39:11 -04:00
Sam Tobin-Hochstadt
fca69adaf7 This pattern of typed submodules exposes Racket bugs.
original commit: 86522a180429eb8fbf0a2066961692ee6090f808
2012-10-03 12:24:16 -04:00
Sam Tobin-Hochstadt
43863acd36 Test for appropriate predicates for invariant structs.
original commit: cab90c16d5514ac4c9dff70ebcaeb3dda75e0910
2012-09-27 17:26:32 -04:00
Sam Tobin-Hochstadt
0f2cffde42 Fix error message pattern for use of cons/c.
original commit: d066a5c1d27a8c292a7c0560da08f394f9a75b88
2012-09-27 16:39:16 -04:00
Eric Dobson
6fcac4b7ae Working covariant applications.
original commit: ffe45ecce455927fe149eee64efe126b7666cd46
2012-09-27 16:22:22 -04:00
Eric Dobson
c0e045635c Fix -struct to use the right number of arguments to make-Struct.
original commit: 12233600c1355df1e9d2f29ee2469f154fc66f81
2012-09-27 16:22:21 -04:00
Eric Dobson
66ccae0e72 Make struct type contracts better
original commit: 745403a88e353c82ed850d7954254896cf1446f7
2012-09-27 16:22:21 -04:00
Eric Dobson
90ef1eac37 Fix type->contract on structures. Now uses struct/c.
original commit: 9e1cf579a434b65e484bdf937e3307bc3c9fd7aa
2012-09-27 16:22:21 -04:00
Sam Tobin-Hochstadt
6d73aa7b4d Track mutable variables across modules.
original commit: eed93825abcedc07570b4a185b88ad30f424cf0f
2012-08-31 17:45:11 -04:00
Sam Tobin-Hochstadt
d5b1f76319 Simplifying case-> to union is only safe for 1-argument functions.
Closes PR 13002.

original commit: ab5403d1ede34b3df761e82ba64f991089cadd81
2012-08-31 10:27:51 -04:00
Sam Tobin-Hochstadt
d970f11334 Remove #:transparent to work around place message limitations.
original commit: b7f9c7706944216c4eb841396df53be2f413842f
2012-08-22 16:50:50 -04:00
Sam Tobin-Hochstadt
616b1c2fb6 Add -v option to TR tests.
Also, print errors from serialization and place message sending.

original commit: e207f5c67df7d8ee1a6605d3ee62ba39787d16e0
2012-08-22 16:50:50 -04:00
Eric Dobson
cfe59c4980 Fix typechecking of polymorphic structs with parent types.
Closes PR12998.

original commit: e9f209977b5d437589265ca5e9e69c74d45b9d47
2012-08-22 16:50:49 -04:00
Sam Tobin-Hochstadt
467c46360c Use module registry trick to slightly speed up TR tests.
original commit: 26a57f64202a9e4040fe495cf5d6a2ce3d79531f
2012-08-22 11:13:07 -04:00
Sam Tobin-Hochstadt
08962bd0aa Parallelize running Typed Racket optimizer tests.
No speedup yet, though.

original commit: e705d4d450b1753a0c5fe8b34bb1a41c22e381cc
2012-08-21 17:47:30 -04:00
Sam Tobin-Hochstadt
48a9602d23 Don't use places for running single tests.
original commit: 1c275ffcc7fb79775b377340aaae3e258473a3ba
2012-08-20 14:45:50 -04:00
Eric Dobson
20da55c55d Add tests for make-predicate and cast, also add support for the top-level.
Closes PR 12939.
Closes PR 12201.

original commit: 533920480e4b9878a18febdc616429623bb58f50
2012-08-20 12:39:41 -04:00
Sam Tobin-Hochstadt
7654984ca6 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.

original commit: 9e5060ef5b7e831480e82d45eb7459d1015f1f54
2012-08-20 12:25:50 -04:00
Eric Dobson
f41741b486 Add promise support to type->contract.
Closes PR13024.

original commit: 09d32d35e06abe31075bf3fbf04f6c749f3d5603
2012-08-20 10:10:17 -04:00
Eric Dobson
dc0849e298 Replaced infer-dummy with lazy-require.
original commit: ac493a6f44773c43c215e8c5cd5dc6d8e1edcdf1
2012-08-14 16:04:51 -04:00
Sam Tobin-Hochstadt
5784f96c6b Don't special-case applications with instantiations.
Closes PR 13006.

original commit: ade36c36c6f68520deb15c7152cc1e49741213d6
2012-08-14 15:45:47 -04:00
Eric Dobson
37aeb62a14 Fix substitute and add test case.
original commit: 3b6168de7d2a0b25a40c391757bc71fdb272c347
2012-08-14 14:44:55 -04:00
Eric Dobson
f071ccf186 Make simple substitution happen all at once.
Closes pr12920.

original commit: 2e3965e7772594a19aac32d9673fb0c98e19bbdd
2012-08-14 14:44:55 -04:00
Vincent St-Amour
911ebaa0bd Fix types of magnitude and angle.
Closes PR13025.

original commit: af8fc1f26aaf87f0ece562e6fe74804b42ddfed3
2012-08-14 14:37:18 -04:00
Eric Dobson
8442c9da34 Make TR debug printer work again.
original commit: cac47c0427c8d885b402d036710593cf1d360e7f
2012-08-14 09:45:01 -04:00
Sam Tobin-Hochstadt
ad5018f0dc Fix internal require of typed submodules.
original commit: 6ae2a9d884d46350411b023d5eb54474f4a5ed81
2012-08-13 17:20:20 -04:00
Eric Dobson
da8782fb09 Make generated flat contracts actually flat.
original commit: 3876dfa8411e06b2225b614246fa0274855e915b
2012-08-10 10:39:44 -04:00
Eric Dobson
ce41c349e6 Removed *Un from abbrev.rkt, replaced it with Un from union.rkt.
original commit: 21598297a7dd29ce6e0a106d13326e84a7330b6f
2012-08-07 15:50:50 -04:00
Eric Dobson
3d2814de81 Removed convenience.rkt from typed racket.
original commit: 9ed360bb5e3fd793ac4479507852aa282125fd61
2012-08-07 15:50:50 -04:00
Vincent St-Amour
13b06ee19a Control number of attempts for TR random testing from the command line.
original commit: 7494fccc4c8af1ced3771b58515e661b2aca7f6c
2012-08-06 12:48:41 -04:00
Eric Dobson
dab83ca0b0 Fill hole in recursive type soundness. Fixes PR 11372.
original commit: e6d4fb2ee247cfec157175788ff29f94e6aec3e5
2012-08-06 12:31:07 -04:00
Vincent St-Amour
9f060f5be7 Swap unsafe and chaperone-unsafe vector ops in the TR optimizer.
Closes PR12969.

original commit: aba046a92d42de70a2f777bfbe9a4e75f8e935a9
2012-08-04 10:32:21 -04:00
Vincent St-Amour
90741c2747 Include NaN in all floating-point types.
Makes more closure properties hold, but weakens occurrence typing for
some comparisons involving flonums.

original commit: a6d5a98b61c033340c66b91dd53c18ea50db8c60
2012-08-03 14:21:44 -04:00
Vincent St-Amour
5bb888e47e Fix documentation for packages and mutable lists.
As suggested by Matthew.

original commit: 800a328fe6524cc9aaac3d258d8bdeee3fca9337
2012-07-31 17:12:30 -04:00
Vincent St-Amour
445524b021 Fix parametric require/typed in typed/racket/base.
Closes PR12951.

Please merge to release.

original commit: dd02f5eedaaea8077e36e38511e0af1998b5f94f
2012-07-29 09:02:58 -04:00
Vincent St-Amour
6b569fa82f Move mutable list functions to the compatibility collect.
Mutable pair functions from racket/base are not moved.

original commit: 52439d528b78db6394798d9bdd39b2017de03a5e
2012-07-27 16:49:05 -04:00
Vincent St-Amour
2b8e955f68 Fix type for add-between.
original commit: b1577bd307ac1c8136630a3949755f833a8073d2
2012-07-24 16:41:52 -04:00
Sam Tobin-Hochstadt
460b1fe7b3 Ensure that structs don't overlap with simple values.
Reported by Ray Racine.

Please merge to release.

original commit: 4a90c6c1fea75fac3132de7df70e5e7e8207b311
2012-07-20 13:01:32 -04:00
Eric Dobson
1be54e4cc5 Clean up of typechecking for heterogeneous vectors and structs.
original commit: 1df6165e9fae2213d2ebb7f70b54c35e0193782e
2012-07-15 19:21:26 -04:00
Eric Dobson
e02e4bbe11 Remove special cases for - and fx- in tc-app.rkt.
original commit: 779291c795e6370706efa34cca6af2a110727ebb
2012-07-15 19:21:26 -04:00
Sam Tobin-Hochstadt
90e5702fb5 Properly handle quoted constants with bad expected types.
Closes PR 12874.

original commit: 8c659d50ede68e23f1c14e45000717c64dc0c2ce
2012-07-14 23:06:13 -04:00
Sam Tobin-Hochstadt
60b0b0faaa Handle arbitrary recursive contracts generated from Rec types.
original commit: 1dca82784b664e7640053333fec85980159cbd16
2012-07-14 22:45:08 -04:00
Sam Tobin-Hochstadt
073263527c Improve type of values when applied to one argument.
Closes PR 12846.

original commit: 2aaeec4520cb82f847fa57412b60a023ba7f3fa7
2012-07-14 22:45:08 -04:00
Sam Tobin-Hochstadt
4a2fb49431 Fix special case for expected unions of vectors.
Closes PR 12845.

original commit: ccf79943ab6af0655adcb3f05d13f8f131651c4a
2012-07-14 21:56:44 -04:00
Sam Tobin-Hochstadt
57358149cb Don't shortcut simple letrec forms that aren't lambdas.
Closes PR 12841.

original commit: 2500dad8f124429fc5b035fc58add891f2bd7bb8
2012-07-14 21:36:56 -04:00
Sam Tobin-Hochstadt
c52317054a 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.

original commit: 9e097866bfcb0f2eed86993861f09ecf82b98e47
2012-07-14 21:30:26 -04:00
Sam Tobin-Hochstadt
b5b7c3f7ed Mutable data at typed boundaries can't have flat contracts.
Closes PR 12884.

original commit: f40c7f11a6a11c9e7afe1c02b2826ebd7626edbd
2012-07-14 20:43:35 -04:00