Commit Graph

441 Commits

Author SHA1 Message Date
Asumu Takikawa
b4dd3b5e1d Fail gracefully on TR struct arity errors
Closes PR 13209
2012-11-20 17:47:13 -05:00
Vincent St-Amour
95d51fc892 Add new versions of for/hash: and co that the typechecker can handle.
Based on Eric Dobson's implementation.

Closes PR13248. Closes PR13249.
2012-11-20 17:45:15 -05:00
Vincent St-Amour
e2007abd7a Heterogenous -> heterogenEous.
Found by Ray Racine.
2012-11-20 17:06:51 -05:00
Vincent St-Amour
d994ba1914 Fix types of variable arity functions to work with 0-argument return values.
Closes PR13218.
2012-11-20 16:15:20 -05:00
Vincent St-Amour
6a7b971cd6 Only generate ->* contracts when arguments are really optional arguments.
Closes PR13274.
2012-11-19 17:35:07 -05:00
Neil Toronto
ac424a73a5 Added `define-typed/untyped-identifier' to typed/untyped-utils
Made return types of `flvector-length' and `unsafe-flvector-length' more precise (they return Index)
2012-11-16 10:52:56 -07:00
Sam Tobin-Hochstadt
30e26f00cd Use error-display-handler instead of threads for multiple error reporting.
Closes PR 13240 (in reality, avoids the bug, but ryanc says that it's too
hard to fix).
2012-11-15 12:33:25 -08:00
Asumu Takikawa
d22532db16 Fix Custodian type 2012-11-10 11:12:06 -05:00
Asumu Takikawa
daca1c0d5b Fix a free variance bug
Commit ffe45ecce had introduced a regression with some
polymorphic functions imported between typed modules due to
miscommunicated variance information.
2012-11-09 01:43:57 -05:00
Sam Tobin-Hochstadt
0a0ac35ee6 Correctly bind place? for contract generation. 2012-11-07 12:21:09 -05:00
Sam Tobin-Hochstadt
056c1aaff4 Chars are compared with eqv?. 2012-11-07 12:21:09 -05:00
Eli Barzilay
14d8c8b5a5 Newlines at EOFs. 2012-11-06 14:07:15 -05:00
Danny Yoo
dcf4d8b040 adding close-eval at the end of scribble files that have a toplevel evaluator 2012-11-01 15:32:53 -06:00
Tony Garnock-Jones
a57e158c43 Correct TR types for udp-bind! and udp-connect!. 2012-10-31 21:42:57 -04:00
Sam Tobin-Hochstadt
f2fd47905f Fix binding of udp?. 2012-10-31 21:39:16 -04:00
Sam Tobin-Hochstadt
0e71f2d5dc Fix accidental use of the wrong letrec-bound variable. 2012-10-31 21:18:44 -04:00
Sam Tobin-Hochstadt
5861bf0b9f Make Typed Racket name printing more deterministic. 2012-10-28 13:55:02 -04:00
Sam Tobin-Hochstadt
7573fd7ee0 Formatting. 2012-10-27 17:44:51 -07:00
Sam Tobin-Hochstadt
fa5846cb0c Flvectors and Fxvectors are higher-order if we give them restricted float types. 2012-10-26 11:09:03 -07:00
Sam Tobin-Hochstadt
c6dc1e6ece Improve contract generation in Typed Racket.
This fixes several issues:
 - `Parameter` generates impersonator contracts correctly
 - `Any` handling now copies immutable data when possible
 - `Any` now recognizes more atomic base types

Merge to 5.3.1.
2012-10-25 23:31:02 -07:00
Eli Barzilay
cbfb1fdb37 A whole bunch of missing newlines at EOFs (and a few other spaceages). 2012-10-19 06:47:24 -04:00
Vincent St-Amour
fd6e2bd6c5 Don't provide for/vector: helpers. 2012-10-15 12:03:53 -04:00
Vincent St-Amour
5bc108c7b1 Fix type of raise-range-error. 2012-10-14 17:19:35 -04:00
Vincent St-Amour
aeddd7c18c Document plet:. 2012-10-14 16:28:42 -04:00
Neil Toronto
9c11324cec Added plet: 2012-10-14 16:28:42 -04:00
Neil Toronto
6f52be186b Added working for/vector:, for*/vector:, for/flvector:, for*/flvector:
Closes PR13185.
2012-10-14 16:28:41 -04:00
Vincent St-Amour
3a8f4c24d9 More types for raise-* functions. 2012-10-14 15:44:55 -04:00
Eric Dobson
d31005b380 Add type for raise-argument-error in TR.
Closes PR13132.
2012-10-14 15:44:55 -04:00
Eric Dobson
788b046549 Make expt type more correct.
Closes PR13170.
2012-10-14 15:44:54 -04:00
Vincent St-Amour
844e898a54 Generate ->* contracts for functions with both optional and keyword arguments. 2012-10-14 15:44:54 -04:00
Vincent St-Amour
149d8535eb More float conversion optimizations. 2012-10-14 15:35:50 -04:00
Vincent St-Amour
758e4ff112 Only recommend dropping exactness in truly inexact contexts.
Please merge to release.
2012-10-12 14:42:16 -04:00
Vincent St-Amour
7d317f1e96 Recommend float-specific operations in case of unexpected complex.
Please merge to release.
2012-10-09 16:58:04 -04:00
Sam Tobin-Hochstadt
6945c5bfb1 Handle contract generation for recursive class types. 2012-10-09 12:07:28 -04:00
Sam Tobin-Hochstadt
9054d0db7d Allow #:opaque and #:struct in require/typed. 2012-10-08 16:30:43 -04:00
Sam Tobin-Hochstadt
724aee0188 Add type for in-directory. 2012-10-07 17:45:09 -04:00
Sam Tobin-Hochstadt
6fde63007e Allow invoking thunks on the untyped side of an Any. 2012-10-05 17:09:07 -04:00
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
b3c640870e Simplify fast path for typechecking simple function applications.
Also, minorly revise subtyping code.
2012-10-05 12:12:39 -04:00
Sam Tobin-Hochstadt
8bb697108e Fix contract-min/max base case. 2012-10-04 16:13:21 -04:00
Vincent St-Amour
937c901ce7 Add separator before Optimization Coach right-click menu entry. 2012-10-02 11:24:07 -04:00
Vincent St-Amour
69873c8db8 Fix Optimization Coach's handling of paths with spaces. 2012-10-02 10:45:29 -04:00
Vincent St-Amour
6ba0c1416e Remove out of date comment. 2012-10-02 10:18:48 -04:00
Vincent St-Amour
61b83045fc Fix loop detection heuristic based on self-out-of-fuel. 2012-10-02 10:18:48 -04:00
Sam Tobin-Hochstadt
d84631bc6f Don't provide internal identifier. 2012-09-27 18:29:43 -04:00
Eric Dobson
8a8dc66a19 Replace uses of Type? in contracts with Type/c. 2012-09-27 18:10:38 -04:00
Sam Tobin-Hochstadt
ee4ba2e3dd Fix define-typed-struct/exec to pass struct-info. 2012-09-27 17:08:49 -04:00
Sam Tobin-Hochstadt
c07852eaf1 Ensure that identifiers defined by struct are registered as being defined in the correct module. 2012-09-27 16:22:22 -04:00
Eric Dobson
cf4d43c04f Made free-variance have less special cases. 2012-09-27 16:22:22 -04:00
Eric Dobson
ffe45ecce4 Working covariant applications. 2012-09-27 16:22:22 -04:00