Commit Graph

482 Commits

Author SHA1 Message Date
Asumu Takikawa
acda049f7d Add define: form variant for polymorphic non-function values 2012-12-19 13:08:41 -05:00
Vincent St-Amour
8c66be33e7 Fix contract generation for functions with optionals and keyword arguments.
Closes PR13354.
2012-12-17 13:57:32 -05:00
Vincent St-Amour
ec673fd58d Allow #:unless' in for:'.
Also allow `#:break' and `#:final' in all the `for:' macros.

Unfortunately, the expansion of `#:break' and `#:final' cannot be
typechecked at the moment.
2012-12-17 13:57:31 -05:00
Asumu Takikawa
57268c2fc9 Explain scope of type variables in docs 2012-12-13 17:54:58 -05:00
Asumu Takikawa
13b831f0ec Fix unsound type variable scoping
Closes PR 13123
2012-12-13 17:54:58 -05:00
Asumu Takikawa
6c716759d7 Simplify expansion of pdefine: and define: 2012-12-13 17:54:58 -05:00
Asumu Takikawa
5c80743ed5 Refactor to use syntax/id-table 2012-12-13 17:54:58 -05:00
Asumu Takikawa
2bc1528630 Add type for xor 2012-12-10 15:49:51 -05:00
Asumu Takikawa
c7162ec533 Fix TR error for missing mandatory keywords 2012-12-06 12:20:54 -05:00
Vincent St-Amour
ac58c45477 Disable optimization of mixed-mode arithmetic that may involve exact 0.
Exact 0 turns out to also be a corner case for addition.

At this point, mixed-mode optimizations pretty much only apply for mixes
of floats and literal non-zero non-floats.
2012-12-04 19:29:16 -05:00
Vincent St-Amour
45a3b9f48d Don't warn about exact arithmetic for inexact numbers. 2012-12-04 19:29:16 -05:00
Vincent St-Amour
93939f45d0 Don't optimize mixed-mode arithmetic if it would change results. 2012-12-04 19:29:16 -05:00
Vincent St-Amour
fb73bc8b0e Fix partial bounds checking elimination.
Closes PR13341.
2012-12-04 19:29:16 -05:00
Vincent St-Amour
a84e04e1e4 Use the regular Racket reader, not TR's. 2012-12-04 19:29:16 -05:00
Vincent St-Amour
ca47b1c693 Be less aggressive about fixnum recommendations.
Reduces false positives.
2012-12-04 19:29:15 -05:00
Vincent St-Amour
6d231da14f Typo. 2012-12-04 19:29:15 -05:00
Vincent St-Amour
e4af200c89 Hide OC control panel if an error occurs during expansion. 2012-12-04 19:29:15 -05:00
Vincent St-Amour
d544e9fbe7 Fix source location information for do:' and let:'. 2012-12-04 19:29:15 -05:00
Asumu Takikawa
5802b42f66 Support path/object reasoning for promises 2012-12-04 18:03:11 -05:00
Asumu Takikawa
04e8e33313 Provide a more informative internal error 2012-12-04 16:10:39 -05:00
Asumu Takikawa
3f2d4663a8 Fix call/comp's type 2012-12-04 16:10:39 -05:00
Vincent St-Amour
9f9092b762 Fix optimization of unary float subtraction.
Closes PR13339.
2012-12-03 19:46:29 -05:00
Ryan Culpepper
fd7d8a412c move lazy-require to racket/lazy-require 2012-12-03 19:28:12 -05:00
Asumu Takikawa
0252207e38 Support Any wrapping for promises
Closes PR 13326
2012-12-03 17:59:55 -05:00
Asumu Takikawa
213ff36554 Fix default prompt tag type
Note: this type could be made more precise,
but we need some contract changes for that.
2012-12-03 14:37:18 -05:00
Asumu Takikawa
ffde8ec486 Document the default prompt tag in TR
Note: this isn't the ideal location for this in the long
run because it isn't a special form. When we have more
bindings like this, we should move them to a new manual
section.
2012-12-03 14:37:17 -05:00
Asumu Takikawa
55944057b5 Fix blame parties for proxied default prompt tag 2012-12-03 14:37:17 -05:00
Asumu Takikawa
42fc3aeda0 Refactor (make argument arity clear) 2012-11-30 17:37:33 -05:00
Asumu Takikawa
d9f8c5e382 Add a type for continuation? 2012-11-30 17:37:33 -05:00
Asumu Takikawa
5fe8841c99 Univ -> ManyUniv 2012-11-30 17:37:33 -05:00
Asumu Takikawa
904db66f65 Rename control types to be consistent with other types 2012-11-30 17:37:33 -05:00
Asumu Takikawa
aae8890cd3 Docs for prompt tag & mark key types 2012-11-30 17:37:33 -05:00
Asumu Takikawa
4e0b38ea79 Improve type of call-with-continuation-prompt
Now works with the handler argument omitted, in which case
the default handler is used. Note that the default handler
cannot be used in conjunction with the default prompt tag
because it is unsound to do so.
2012-11-30 17:37:33 -05:00
Asumu Takikawa
42b07475e9 Apply Any wrappers for default-continuation-prompt-tag in TR 2012-11-30 17:37:33 -05:00
Asumu Takikawa
2511cf02bc Refactor and move a macro to a helper library 2012-11-30 17:37:33 -05:00
Asumu Takikawa
0accfe24e2 Add the rest of the continuation functions 2012-11-30 17:37:32 -05:00
Asumu Takikawa
41b59cb46a Add Top types for prompt tags and mark keys 2012-11-30 17:37:32 -05:00
Asumu Takikawa
4b5d6e71fd Typecheck prompt tags 2012-11-30 17:37:32 -05:00
Asumu Takikawa
e123e85a90 Fix continuation-mark-set-first type 2012-11-30 17:37:32 -05:00
Asumu Takikawa
5fbeffaec6 Contract generation for continuation mark keys 2012-11-30 17:37:32 -05:00
Sam Tobin-Hochstadt
29d54fb0d0 Starting on control typing. 2012-11-30 17:37:32 -05:00
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