Commit Graph

736 Commits

Author SHA1 Message Date
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
Sam Tobin-Hochstadt
60c565f64e Fix tests for new type name declaration.
original commit: 2dd9a43d1b3fe4d3b64ccee5c88db4cb58d7f3f8
2012-07-12 17:41:12 -04:00
Neil Toronto
c2a4fbc734 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)

original commit: 392d7bfbadee8143f6ec76e965f0c4e31246695e
2012-07-10 13:22:53 -07:00
Sam Tobin-Hochstadt
6287ffe3f0 Revise type environment propagation to use submodules.
Each typed module now defines a submodule named `type-decl`.
This module performs the type environment initialization (along
with other environment updates) when invoked.  Additionall,
every typed module, when invoked, performs a for-syntax addition
to a list specifying the submodules that need invocation.
This invocation is then performed by the `#%module-begin` from
Typed Racket.

The `type-decl` module always goes at the beginning of the
expanded module, so that it's available at syntax-time for all
the other submodules.  This involved adding pre- and post-
syntaxes for the results of typechecking.

This allows significant runtime dependency reduction from the
main `typed/racket` and `typed/racket/base` languages (not yet
complete).

original commit: 6bf141513fa9387f438bb0f328f5ec67ada8f757
2012-07-10 12:49:27 -04:00
Vincent St-Amour
5251b92b21 Fix type of andmap and ormap on empty lists.
Closes PR 12882.

original commit: dba49db078bd0684562daa469df6a8b5f8dc72fb
2012-07-06 12:28:37 -04:00
Sam Tobin-Hochstadt
39f778a891 More refactoring and reduction of runtime dependencies.
original commit: 20e95f8d8e5ae3ea9106cff5b271c88e9e66cda1
2012-06-28 14:34:07 -04:00
Sam Tobin-Hochstadt
88460e98dd File splitting, dependency reduction.
original commit: f075ecd36e708d21c825666502290e3bb98830af
2012-06-28 14:34:07 -04:00
Vincent St-Amour
1d2a50c63e Update types of string-join and add-between.
original commit: db6c2e77371e31d0bed4cc504e5c8effe42959aa
2012-06-27 11:39:15 -04:00
Sam Tobin-Hochstadt
d6f1c0eb1b Minor refactorings.
- Remove tracing requires.
 - Use lists instead of sets in a few environments.
 - Small cleanups.

original commit: 88ff5fee69ecf58527bb76923f4d4fd91aaa1967
2012-06-25 18:07:45 -04:00
Sam Tobin-Hochstadt
a80b2e0941 scheme -> racket
original commit: ccb724155a99705d7b3c23d9b13358ed2541555f
2012-06-25 13:39:07 -04:00
Vincent St-Amour
ae41d4e362 Add #:unless to the for: macros.
original commit: 972df7c89ed7951eef00af00fd1b9a5bd851206a
2012-06-25 13:38:51 -04:00
Vincent St-Amour
1ca5a51ce2 Update type of string-join for its new keyword arguments.
Closes PR12866.

original commit: b1ad108759d05a85a04f7220bb79e2b70156aaf9
2012-06-25 13:05:46 -04:00
Vincent St-Amour
d2e69a68dc Add type for range, and extend in-range's.
original commit: ee142047f801da2cac93b681c368921e8f2a2541
2012-06-22 17:53:43 -04:00
Vincent St-Amour
1477b41df6 Extend time-apply to work with procedures with more than 2 arguments.
original commit: 24b6ecf2a6ea0cd444a38519c210bad669804b0f
2012-06-17 23:04:47 -04:00
Sam Tobin-Hochstadt
9c7c233e9d Handle submodules in Typed Racket.
original commit: 39e014bc55779699cc3a503dd9b7416c9f7d28a6
2012-06-16 22:08:06 +08:00
Asumu Takikawa
3c387528e2 Fix TR optimizer test
(round to avoid FPU sensitivity)

original commit: ab0d3d64926701cf6fab81c4f0c14348ab9c2b97
2012-06-14 18:22:42 -04:00
Vincent St-Amour
66edd8c2ba Unbox exp on complex numbers.
original commit: c4613cf9ab353aa9cb52d50e3aaea467846e18c9
2012-06-14 17:17:03 -04:00
Vincent St-Amour
a8d6407857 Restore testing of sqrt and log.
original commit: c4743724cda112cf051d287764aa21f1e7469665
2012-06-09 22:07:43 -04:00
Neil Toronto
7f9aef2321 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

original commit: 8f840bd07b28ac9bff22c2fa728fb16a9857cdb4
2012-06-09 17:46:04 -06:00
Vincent St-Amour
4b7740ce00 Fix generation of random floats in TR random testing.
original commit: 0b7eaf56cac535fcbc3a814516fc9960ee3dc18f
2012-06-06 18:26:51 -04:00
Vincent St-Amour
1e4b2b26aa Fix comment.
original commit: 3e9b527bd03e054c01ecc1242f86c89949c0497b
2012-06-06 18:26:51 -04:00
Neil Toronto
2588094087 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

original commit: a713ca8a8b6c7aed987e80d0621484e68bc3c6f5
2012-06-05 22:40:44 -06:00
Sam Tobin-Hochstadt
a93d6734ac Repair failing test case (wrong expected value).
original commit: 2b9912ea9f0b41d30febde846f46901641410c7c
2012-06-04 17:02:19 -04:00
Sam Tobin-Hochstadt
b4a0b7e8b2 = can equate values with different types.
Closes PR 12804.

original commit: cbbd889621d1376ac5bd17080daa6884b88afffb
2012-06-03 10:50:18 -04:00
Sam Tobin-Hochstadt
0a13467456 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)

original commit: 865a2cdcbd3e4eea748e57859c846c0f7ffd61ad
2012-06-02 18:22:07 -04:00
Sam Tobin-Hochstadt
b12f0ba53c 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`.

original commit: a377c4235743296e337db64341c8518fc7dce965
2012-06-01 18:37:02 -04:00
Eric Dobson
0d84d3cbc4 Redefine Boolean as (U #t #f).
Closes PR 12815.

original commit: 262ecc3da9e20a3f3bc20e16c93f9f1f45f0deda
2012-06-01 10:26:10 -04:00
Eric Dobson
ad27327bae Attach struct info to constructor for polymorphic TR structs.
Closes PR 12806

original commit: c2d9f7ed9a3839b6ec36c21e984600c812b90414
2012-05-31 13:09:26 -04:00
Eric Dobson
c07bd9c067 Add support for multiple provides of the same identifier in TR.
Closes PR 12807.

original commit: 735b84b08310c44933cd5235719cb7f4a647a1c6
2012-05-31 10:02:03 -04:00
Vincent St-Amour
2b2592d811 Reduce random testing attemps to avoid DrDr timeouts.
original commit: 3062efe47f3f4d72b30dd7bea280bdf7fd06c2d1
2012-05-26 11:06:29 -04:00
Vincent St-Amour
c01818f6b2 Add random testing script for float types.
original commit: 142158c0cbd325891be6f039651673805c461077
2012-05-25 17:15:22 -04:00
Vincent St-Amour
8809e0d75c Fix NaN and inf handling in flonum specific op types.
original commit: 186b4632175c516e1167191dd8bf379a813b959c
2012-05-25 17:15:22 -04:00
Asumu Takikawa
ece68f93e3 TR: Fix type-checking of hash literals.
original commit: abf9223203d373840adb4bba0495dac7aa422517
2012-05-23 15:49:38 -04:00
Vincent St-Amour
8fdb647233 More precise type for flexpt.
original commit: e786149434633b802f1c880799ad5d27b2361112
2012-05-08 11:42:21 -04:00
Vincent St-Amour
56acc3592a Fix TR test for new contract error message format.
original commit: a2a60cb92406ec5319ea3323f30147992bd71b84
2012-05-02 15:14:39 -04:00
Vincent St-Amour
4522587510 Optimize integers used as sequences.
original commit: a62444fa3e218aa7675c546051badfd6b7b9ae13
2012-05-02 15:14:37 -04:00
Vincent St-Amour
8b65ec4e4b Include both float zeroes in Non-Negative and Non-Positive types.
Closes PR12706.

original commit: 8cbd26899f59773b7f574a79afca663e53ca02c9
2012-04-16 17:51:04 -04:00
Vincent St-Amour
be06428db5 Fix type of * with no arguments.
Closes PR 12679.

original commit: e26201b4f6c92d05264cbd651ec170e2547a516a
2012-04-05 19:18:20 -04:00
Vincent St-Amour
6d3c958a32 Fix type of expt.
Closes PR 12660.

original commit: 69899c33fc8cf6a7291c2398ee0dbe59dcb2738b
2012-03-29 15:39:24 -04:00
Vincent St-Amour
a76bd4d52d Fix optimization of first, rest, etc.
original commit: 054f4d9b563ab40c22523e6b115e1a35822b3d3d
2012-03-29 15:39:24 -04:00
Sam Tobin-Hochstadt
177ecf23ca Improve filter for `path-string?'.
original commit: a39001911c6b2e601e2290d198b92ce7e54bd91d
2012-03-24 16:04:08 -04:00
Sam Tobin-Hochstadt
7d25bb6ba5 Fix types for regexp-match*' and regexp-match-positions*'.
Note that the keyword arguments themselves are not yet typed.

original commit: 56120d9697756be22b19ec346a0c3d14d3238ad6
2012-03-19 15:59:34 -04:00
Eli Barzilay
d33be1917d Remove typed versions of the cgi exceptions.
original commit: f3a21c6aba515db8f5dc3bf320a7c0ac6ba8d1fc
2012-03-16 03:45:35 -04:00
Eli Barzilay
4d7c5295ff Big newline at EOF scan.
original commit: f7c67b49a49a723534454ce561cd060e63889480
2012-02-29 00:28:11 -05:00