Andrew Kent
cbbf5536d8
no objects for mutated private class fields
...
tidy up ->acc
2015-04-08 17:53:00 -04:00
Asumu Takikawa
7bf4314af4
Simplify Name type representation
...
Avoids contract errors by using a simpler representation
and sticking with it throughout.
2015-04-08 11:23:48 -04:00
Asumu Takikawa
d22bf8cc11
Fix type-name-env contracts and uses
2015-04-08 11:23:48 -04:00
Eric Dobson
f0c48cfb87
Make abs return its argument on -NonNegReal.
2015-04-07 09:50:33 -07:00
Eric Dobson
a522768b7e
Make tc-subst restrict returned types based on argument types.
2015-04-07 09:50:32 -07:00
Eric Dobson
7a29e8e369
Simplify cases in comparisons with -Zero or -RealZero
2015-04-07 08:23:32 -07:00
Eric Dobson
1ad0a2b181
Remove extra cases in comparisons for -One
2015-04-07 08:23:32 -07:00
Eric Dobson
b77bd862a0
Stop trying to represent rest objects because they are currently broken.
...
Closes #83 .
2015-04-07 08:13:38 -07:00
Eric Dobson
b8921ff4df
Fix contract on subst-type.
...
subst-type now can be called with Values? and such.
2015-04-06 09:58:06 -07:00
Eric Dobson
a33b27a3c9
Remove many cases of = that are unnecessary.
2015-04-05 19:10:51 -07:00
Eric Dobson
7b762933c6
Simplify the type of zero?.
2015-04-05 19:07:12 -07:00
Eric Dobson
be225976d3
Make subtype work with restricted filters.
...
Closes PR 15025.
2015-04-05 19:07:12 -07:00
Eric Dobson
db3826c474
Add comments for changes to substitution.
2015-04-05 18:01:11 -07:00
Sam Tobin-Hochstadt
6a262c19fa
Add prefab structs to HISTORY.
2015-04-03 21:33:39 -04:00
Sam Tobin-Hochstadt
0793021514
History update for Typed Racket.
2015-04-03 18:45:38 -04:00
Sam Tobin-Hochstadt
583ca906b3
Significantly reduce dependencies.
...
In conjunction with a small change to syntax/parse, this means
that `typed/racket/base` no longer depends on `racket/set`,
`racket/contract/base`, or `racket/generic`.
Timings on my machine go from ~200ms for `#lang typed/racket/base`
as the whole file, to ~100ms. For comparison, `racket/base` is 30ms
and `#lang racket` is 150ms. `#lang typed/racket` is ~200ms with
this change.
Changes include:
- not using `in-syntax`
- switching to `syntax/parse/pre`
- avoiding `template` from `syntax/parse`
2015-04-03 12:50:55 -04:00
Asumu Takikawa
7b5478e0bc
Make Place-Channel <: (Evtof Any)
2015-04-02 11:00:25 -04:00
Asumu Takikawa
c70910aaa0
Fix type restriction in values->tc-results
...
Previously the restriction didn't account for traversing
the object type with the given path. This also relies on
the previous commit that adds subtyping on filters.
(because this change seems to introduce filters which
only differ by an unrolling of a recursive type, but
the old subtyping only worked for identical types)
2015-04-02 10:58:45 -04:00
Asumu Takikawa
8acc86bb9b
Add subtyping for types inside filters
...
This makes a type like
(-> Any Boolean : #:+ Integer)
a subtype of a type like
(-> Any Boolean : #:+ Number)
For not filters, the direction is reversed.
2015-04-01 18:54:00 -04:00
Eric Dobson
889d96ca78
Strengthen infinity checks in comparison operations.
...
This adds checks for infinity when comparing against reals and accounts
for NaNs.
2015-03-30 09:25:48 -07:00
Eric Dobson
3889036b12
Simplify types for positive? and negative?.
2015-03-30 09:12:51 -07:00
Eric Dobson
5de22c80f7
Make values->tc-results restrict to the original type of the object.
2015-03-30 09:12:25 -07:00
Eric Dobson
e5ea1f4bb6
Make zero? sound with regards to NaN.
2015-03-28 14:08:20 -07:00
Sam Tobin-Hochstadt
718bc82b5d
Avoid providing def-redirect
.
2015-03-26 12:23:48 -04:00
Alexis King
b54d8dc04a
Strengthen the types for member, memv, memq, and memf
...
Fixes #61 .
2015-03-25 16:44:42 -07:00
Vincent St-Amour
b3bdb40ab7
Optimize pair operations, even in the absence of syntactic pair types.
2015-03-24 16:47:06 -04:00
Alexis King
2a4ce892ae
Merge branch 'integral-to-inexact'
2015-03-20 19:43:04 -07:00
Alexis King
aab2d9efcf
Include more specific types for integers converted to floats
2015-03-19 18:54:11 -07:00
Sam Tobin-Hochstadt
ee7bed777b
Add dependency on 6.2.0.2.
...
This is definitely needed for the new `begin-encourage-inline`
submodule, but also needed for various other changes (such as
`dynamic-object/c`).
2015-03-19 21:45:15 -04:00
Sam Tobin-Hochstadt
0dce19e4bf
Reduce more dependencies.
...
Use `syntax/parse/pre` (checked with @rmculpepper).
Use new `begin-encourage-inline` submodule.
Remove use of `match` in TR runtime-loaded code.
2015-03-19 21:41:58 -04:00
Sam Tobin-Hochstadt
4709536653
Split prims.rkt
to reduce dependencies.
...
There are several new files: one for structure prims, one for
annotation-related prims, one for contract related ones. The prims-contract
file uses trickery with submodules to avoid a direct dependency
on `racket/contract`.
Additionally, the rewritten versions of `for/set` et al now use
a submodule to avoid a direct dependency on `racket/set`.
2015-03-18 18:47:49 -04:00
Sam Tobin-Hochstadt
333a8b9bd7
Remove long lines, and inline vector-copy
to remove dependency.
2015-03-18 18:23:56 -04:00
Asumu Takikawa
7a09bac1e3
Handle more cases for opt-arg function contracts
...
Allow more cases that are allowed for ordinary function
contracts and explicitly error instead of internal errors
for other cases.
Closes Github Issue #50
2015-03-17 15:52:21 -04:00
TwoPoint7182818
911036c2a6
Make order-of-magnitude more specific
...
(order-of-magnitude n) is only negative if n < 1. Hence it is non-negative for all positive integers.
2015-03-15 20:48:46 -04:00
Asumu Takikawa
8106d318f1
Fix first-order check for TR's opaque object/c
...
Closes PR 15003
2015-03-13 16:52:34 -04:00
Asumu Takikawa
197cdeac9b
Fix contract, remove comment signature
2015-03-12 01:35:54 -04:00
Asumu Takikawa
d19bed0e8b
Fix inaccurate data definition comment
2015-03-10 15:18:03 -04:00
Asumu Takikawa
8e6710438f
Support prefabs for unsafe-struct-ref
2015-03-10 15:18:02 -04:00
Asumu Takikawa
5d708ab53f
Add typechecking for prefab structs
...
Adds a new Prefab type constructor along with support for
the use of `struct` with the #:prefab keyword.
2015-03-10 15:14:51 -04:00
Asumu Takikawa
50f2271917
Fix minor contract violation in REPL messages
2015-03-09 15:59:02 -04:00
Asumu Takikawa
c00cc17e07
Add cond-contracts to name-env functions
...
This helped for debugging, especially since some of
the comments were inaccurate. Removed contract comments
that aren't more specific than the code contracts.
2015-03-09 15:59:02 -04:00
Asumu Takikawa
fb0c96e7f0
Forgot to add this change to the previous commit
...
(put requires in the right phase)
2015-03-09 15:57:22 -04:00
Asumu Takikawa
96e741dc1b
Add srcloc instead of a quoted syntax for casts
2015-03-06 16:09:31 -05:00
Sam Tobin-Hochstadt
a3e25231a6
Look up unrenamed versions of type aliases as well.
...
Fixes bug reported by Alexander Knauth.
2015-03-06 12:13:40 -05:00
Sam Tobin-Hochstadt
7a67243d68
Fix contract provide fixup to handle contracts at the beginning.
2015-03-06 09:41:29 -05:00
Matthew Flatt
011649a654
move contract submodules to start of enclosing module
...
Putting the contract submodules early enough allows them to be used
for `module*` submodules.
Repairs a problem reported by Alexander:
http://lists.racket-lang.org/users/archive/2015-March/066164.html
2015-03-06 09:41:29 -05:00
Alexis King
c79b61a751
Adjust named-let to use the return type annotation whenever possible
...
Fixes #43
2015-03-04 15:17:35 -08:00
Asumu Takikawa
33543ce054
Use absent
in some row poly class contracts
...
When exporting row polymorphic functions from TR, just
use absent clauses to ensure that TR won't accidentally
try to add pre-existing fields/methods. No sealing is
needed because the typechecker enforces parameteric use
of the class.
2015-03-04 16:26:35 -05:00
Asumu Takikawa
8d0c352dcc
Add a custom object contract for use in TR
...
This corresponds to the more strict object contracts
from the OOPSLA paper. Also use `object/c-opaque` in
TR contract generation
2015-03-04 16:26:35 -05:00
Asumu Takikawa
e2fd3b6653
Enable opaque class contracts in TR
2015-03-04 13:28:06 -05:00