Commit Graph

158 Commits

Author SHA1 Message Date
Vincent St-Amour
a0d55d4ab8 Reconstruct let bindings in the right order when unboxing let. 2012-06-22 17:53:43 -04:00
Vincent St-Amour
ee142047f8 Add type for range, and extend in-range's. 2012-06-22 17:53:43 -04:00
Eli Barzilay
7d6e79023c Random pickiness.
Spaces at EOFs, indentation, etc.
2012-06-22 12:00:48 -04:00
Vincent St-Amour
4d5bc17f85 Recover from any failure when attempting to prune types. 2012-06-17 23:28:50 -04:00
Vincent St-Amour
24b6ecf2a6 Extend time-apply to work with procedures with more than 2 arguments. 2012-06-17 23:04:47 -04:00
Vincent St-Amour
a5f2ca8fb0 Fix possible-domains on functions with multiple return values. 2012-06-17 23:04:47 -04:00
Vincent St-Amour
da897a2f85 Disable debugging printing. 2012-06-16 18:28:01 -04:00
Sam Tobin-Hochstadt
39e014bc55 Handle submodules in Typed Racket. 2012-06-16 22:08:06 +08:00
Sam Tobin-Hochstadt
a929bb21fc Don't export internal names for define & lambda. 2012-06-16 22:08:05 +08:00
Vincent St-Amour
c4613cf9ab Unbox exp on complex numbers. 2012-06-14 17:17:03 -04:00
Vincent St-Amour
cff1cd3c63 Fix type of exact->inexact.
Closes PR 12803.
2012-06-12 11:09:20 -04:00
Asumu Takikawa
c108fe5c6a Fix typo in TR special form docs 2012-06-11 17:29:02 -04:00
Vincent St-Amour
948a4d6184 Missed some cases in sqrt. 2012-06-09 22:11:42 -04:00
Vincent St-Amour
53746ca0a5 Fix type of fl/ to reflect changes to /. 2012-06-09 22:07:03 -04:00
Vincent St-Amour
5d26fd10e6 Subtraction is not commutative. 2012-06-09 22:04:43 -04:00
Vincent St-Amour
442def0b0f Fix typechecking of Single-Flonum-Complex literals.
Closes PR12840.
2012-06-09 22:00:27 -04:00
Vincent St-Amour
7191ef5c74 Be more conservative about returning Float-Complex and others. 2012-06-09 21:57:01 -04:00
Vincent St-Amour
f3f5abd1f7 Improve handling of NaN in division.
Closes PR12838.
2012-06-09 21:32:37 -04:00
Neil Toronto
8f840bd07b Fixed erroneously imprecise type for +nan.f literal (now Single-Flonum-Nan)
Types for nan?, infinite?, pi.f, exact-round, exact-floor, exact-ceiling,
exact-truncate, degrees->radians, radians->degrees

Extended tc-random-testing: generates exact integers and rationals now

Fixed types of sinh, cosh and tanh to account for underflow and NaNs
2012-06-09 17:46:04 -06:00
Vincent St-Amour
0f346601f4 Fix type of n-ary * to handle NaN properly. 2012-06-06 18:26:51 -04:00
Vincent St-Amour
48f47f3384 Fix flonum and single-flonum operation types.
Most issues were found with random testing.
2012-06-06 18:26:51 -04:00
Neil Toronto
a713ca8a8b Added nan?, infinite?, degrees->radians, radians->degrees, exact-round, exact-floor, exact-ceiling, exact-truncate to racket/math
Altered TR's random arithmetic testing to generate single-flonums and very small flonums; fails now because of erroneous types

Fixes to sgn, sinh, cosh, and tanh:
 * preserve single-flonum-ness
 * correct zero sign (-0.0) for negative return values that are smaller than epsilon
 * correct behavior with NaN and infinite inputs
2012-06-05 22:40:44 -06:00
Sam Tobin-Hochstadt
42a2ac6026 Document new TR aliased definitions. 2012-06-04 17:02:18 -04:00
Sam Tobin-Hochstadt
1801efe66a Whitespace fixes. 2012-06-03 10:50:18 -04:00
Sam Tobin-Hochstadt
cbbd889621 = can equate values with different types.
Closes PR 12804.
2012-06-03 10:50:18 -04:00
Sam Tobin-Hochstadt
8459c22c01 Improve type of identity.
Closes PR 12813.
2012-06-02 18:52:18 -04:00
Sam Tobin-Hochstadt
865a2cdcbd Support definitions of keyword functions in Typed Racket.
Caveats:
 - keyword function definitions do not define static
   bindings, thus limiting optimization opportunities
 - can't use `define:`, `lambda:`, etc with keywords
 - error messages sometimes expose the implementation
 - the optimizer skips most of the generated code for
   keyword functions definitions (user-level code is
   optimized)
2012-06-02 18:22:07 -04:00
Sam Tobin-Hochstadt
c8380b94e5 Remove testing code, and failed experiment. 2012-06-01 20:08:37 -04:00
Sam Tobin-Hochstadt
a377c42357 Use the new syntax properties for checking keyword functions.
Previously, some hacks were used to obtain the internal
identifiers that implemented keyword functions directly, and
give them types at startup.  Now, the primary "function"
(eg, `sort`) is given a type, and when used, the residual
syntax properties are used to find `sort` from the real
functions, and then the type of the real function is computed
from the type of `sort`.

Some creativity was required in the types of functions which
take optional arguments that when present, alter the return type,
such as `regexp-match*` and `file->list`.
2012-06-01 18:37:02 -04:00
Eric Dobson
262ecc3da9 Redefine Boolean as (U #t #f).
Closes PR 12815.
2012-06-01 10:26:10 -04:00
Eric Dobson
c2d9f7ed9a Attach struct info to constructor for polymorphic TR structs.
Closes PR 12806
2012-05-31 13:09:26 -04:00
Eric Dobson
735b84b083 Add support for multiple provides of the same identifier in TR.
Closes PR 12807.
2012-05-31 10:02:03 -04:00
Vincent St-Amour
4ad700021b Improve some Performance Report messages. 2012-05-30 16:25:33 -04:00
Vincent St-Amour
186b463217 Fix NaN and inf handling in flonum specific op types. 2012-05-25 17:15:22 -04:00
Vincent St-Amour
ebcc6d211a Fix handling of NaN and infinities.
Most of these were found through random testing.
2012-05-25 17:15:22 -04:00
Vincent St-Amour
b6a7a0c505 Add reminder that unsafe-flexpt is currently the same as flexpt. 2012-05-25 17:15:22 -04:00
Eli Barzilay
6318df82e5 Drop the now-redundant " " argument from existing uses of `string-join'. 2012-05-24 10:40:20 -04:00
Asumu Takikawa
abf9223203 TR: Fix type-checking of hash literals. 2012-05-23 15:49:38 -04:00
Vincent St-Amour
e786149434 More precise type for flexpt. 2012-05-08 11:42:21 -04:00
Vincent St-Amour
95c2115799 Fix prims.rkt's type->contract to accept keyword arguments.
Necessary when some prims are used at the top-level.
2012-05-08 11:16:27 -04:00
Matthew Flatt
9a41129c69 racket/flonum: add `flexpt' 2012-05-07 20:41:14 -06:00
Eli Barzilay
17090fca4f A bunch of fprintf' -> eprintf' conversions (and a few related things). 2012-05-06 12:06:00 -04:00
Asumu Takikawa
f4fb628934 Changing new to (eventually) concretize interface contract methods.
* No-op for now, but will later do more work.
 * Fix up Typed Racket to handle the new do-make-object.
2012-05-04 17:24:55 -04:00
Stevie Strickland
b2bfbad240 Add special typechecking rule for expansion of (quote-module-name). 2012-05-03 19:38:47 -04:00
Asumu Takikawa
4651ccc0ad Fix a TR issue with syntax-local-lift-expression 2012-05-03 19:36:32 -04:00
Vincent St-Amour
376b31cf28 Use icons to distinguish optimizations from missed optimizations. 2012-05-02 17:54:29 -04:00
Vincent St-Amour
d04a1be7ea Add lines to separate popup entries. 2012-05-02 17:48:57 -04:00
Vincent St-Amour
a62444fa3e Optimize integers used as sequences. 2012-05-02 15:14:37 -04:00
Vincent St-Amour
8cbd26899f Include both float zeroes in Non-Negative and Non-Positive types.
Closes PR12706.
2012-04-16 17:51:04 -04:00
Vincent St-Amour
f3bbe1914d Improve type for expt. 2012-04-08 13:08:17 -04:00