Commit Graph

2101 Commits

Author SHA1 Message Date
Eric Dobson
da8782fb09 Make generated flat contracts actually flat.
original commit: 3876dfa8411e06b2225b614246fa0274855e915b
2012-08-10 10:39:44 -04:00
Vincent St-Amour
7acddd1b92 Refactoring.
original commit: 75efede59b26315cd0273427ca08a46a5b947d88
2012-08-07 16:33:31 -04:00
Vincent St-Amour
806c02c533 Add :query-type/args.
Shows return type for a given function with given argument types.

original commit: 674c71103b65d5ac8467433def7c4542e01985a3
2012-08-07 16:33:31 -04:00
Vincent St-Amour
3a09c5d6df :query-result-type -> :query-type/result
Result type is given, not asked for.

original commit: d87339d4145ebadc70df54c5a18b6370c2b58fbc
2012-08-07 16:31:52 -04:00
Vincent St-Amour
0f24ab150d Add a separate "Exploring Types" section to the TR reference.
original commit: 28c85dfd253a6e386da14758d0e95e9ecdd0a6a9
2012-08-07 16:31:52 -04:00
Vincent St-Amour
1e1fb40d32 Allow multi-line printing of case-> types.
Currently only used in :print-type. Everywhere else, types are pruned.

original commit: 4b30d052b0216420ef1abcec44f0c027cc588880
2012-08-07 16:31:52 -04:00
Vincent St-Amour
0b962a8f5d Use type aliases when printing full types.
Reduces the printout size significantly.

original commit: 34ee1d26032f84cd67a7835b66e3bddbdce8d497
2012-08-07 16:31:51 -04:00
Sam Tobin-Hochstadt
30e80ee604 Add back some special cases.
original commit: 7eaae20f41e0b5bbbe90af0461e24f9aef1b2931
2012-08-07 15:51:02 -04:00
Eric Dobson
ce41c349e6 Removed *Un from abbrev.rkt, replaced it with Un from union.rkt.
original commit: 21598297a7dd29ce6e0a106d13326e84a7330b6f
2012-08-07 15:50:50 -04:00
Eric Dobson
3d2814de81 Removed convenience.rkt from typed racket.
original commit: 9ed360bb5e3fd793ac4479507852aa282125fd61
2012-08-07 15:50:50 -04:00
Eric Dobson
2009c1da8a Rearange type code, so that abbrev.rkt can depend on union.rkt.
Split out base-abbrev.rkt so that subtype is not dependent on abbrev.rkt.
Remove unused code in numeric-tower.rkt so that it is now a dependent of
abbrev.rkt, which allows the body of convenience.rkt to be merged back in.
Remove special casing for union.rkt and extraneous subtyping checks.
Remove union-maker.

original commit: 56fd9e63219b87d0fddbfd5d9fdb97010acd13f3
2012-08-07 15:50:50 -04:00
Eric Dobson
a81b666a5e Replaced references to abbrev.rkt with convenience.rkt.
Skipped this for subtype.rkt, because of a require loop caused by
lazy-require.

original commit: 6dbc054e41af5820ceda8a50508ccf43c51ab7ed
2012-08-07 15:50:50 -04:00
Vincent St-Amour
13b06ee19a Control number of attempts for TR random testing from the command line.
original commit: 7494fccc4c8af1ced3771b58515e661b2aca7f6c
2012-08-06 12:48:41 -04:00
Eric Dobson
dab83ca0b0 Fill hole in recursive type soundness. Fixes PR 11372.
original commit: e6d4fb2ee247cfec157175788ff29f94e6aec3e5
2012-08-06 12:31:07 -04:00
Eric Dobson
786a64de60 Add support for creating contracts of heterogenous vectors
original commit: 9f453676d13f4b44ee9e8d891984de38db9bdeb0
2012-08-06 12:31:07 -04:00
Eric Dobson
74f13b21f1 Fix type of integer-sqrt and add type for integer-sqrt/remainder.
original commit: f09069854225ccc00b9b9041fc2f26d2e83f8450
2012-08-06 12:31:07 -04:00
Vincent St-Amour
9f060f5be7 Swap unsafe and chaperone-unsafe vector ops in the TR optimizer.
Closes PR12969.

original commit: aba046a92d42de70a2f777bfbe9a4e75f8e935a9
2012-08-04 10:32:21 -04:00
Vincent St-Amour
642e310bbe Remove invalid singleton return types.
NaN doesn't inhabit these types, but can be produced there.

original commit: 1215fb6cec8ed7e6559e279a46fc7d2be0bfd403
2012-08-03 14:21:44 -04:00
Vincent St-Amour
90741c2747 Include NaN in all floating-point types.
Makes more closure properties hold, but weakens occurrence typing for
some comparisons involving flonums.

original commit: a6d5a98b61c033340c66b91dd53c18ea50db8c60
2012-08-03 14:21:44 -04:00
Vincent St-Amour
5c4b0895dd Fix type of rational?.
original commit: b1fbbafd91fdd64496647f0108ece7e6fed9947e
2012-08-03 14:21:44 -04:00
Vincent St-Amour
5bb888e47e Fix documentation for packages and mutable lists.
As suggested by Matthew.

original commit: 800a328fe6524cc9aaac3d258d8bdeee3fca9337
2012-07-31 17:12:30 -04:00
Vincent St-Amour
c9d00530aa Fix type for dynamic-place.
original commit: cc8a9b5ed79ee065bdd36c1c01cec929de054192
2012-07-31 17:12:30 -04:00
Vincent St-Amour
445524b021 Fix parametric require/typed in typed/racket/base.
Closes PR12951.

Please merge to release.

original commit: dd02f5eedaaea8077e36e38511e0af1998b5f94f
2012-07-29 09:02:58 -04:00
Vincent St-Amour
6b569fa82f Move mutable list functions to the compatibility collect.
Mutable pair functions from racket/base are not moved.

original commit: 52439d528b78db6394798d9bdd39b2017de03a5e
2012-07-27 16:49:05 -04:00
Vincent St-Amour
2b8e955f68 Fix type for add-between.
original commit: b1577bd307ac1c8136630a3949755f833a8073d2
2012-07-24 16:41:52 -04:00
Vincent St-Amour
e7eaeaea33 Fix spacing issue.
original commit: cfc8fe576676de1d2834bd20fbded3e5219519ed
2012-07-24 13:48:05 -04:00
Robby Findler
e67f435938 adjust the interface reference in drracket for the new view menu
original commit: df4508573a32e3400bf209901fecd547ad078f1e
2012-07-21 11:34:13 -05:00
Vincent St-Amour
d9b716ccf4 Update Optimization Coach documentation.
Please merge to release.

original commit: ea6ba36ccb505cd8d08ca1f88d9f9aed18209e8f
2012-07-20 18:05:33 -04:00
Vincent St-Amour
3f31c7af35 Only enable Optimization Coach button in Typed Racket.
Other languages can access it through the View menu.

Please merge to release.

original commit: 24b314a40ade5c576912eea416a68d78e09ca01b
2012-07-20 18:05:32 -04:00
Vincent St-Amour
8dcab4cef0 Change Optimization Coach message.
original commit: 2e594d36068ab198662bbece0f79981779f23a0d
2012-07-20 18:05:32 -04:00
Sam Tobin-Hochstadt
460b1fe7b3 Ensure that structs don't overlap with simple values.
Reported by Ray Racine.

Please merge to release.

original commit: 4a90c6c1fea75fac3132de7df70e5e7e8207b311
2012-07-20 13:01:32 -04:00
Asumu Takikawa
2f6213c56f Allow guards for impersonatable struct type properties
original commit: e14c5d61e95b867a95c820adec6c5b9e5f1ff9dc
2012-07-19 22:46:14 -04:00
Sam Tobin-Hochstadt
63c203c7ea Document Struct.
Merge to release.

original commit: a589d027511c3a609ffbda2efaaf394c2734c1bc
2012-07-19 10:55:31 -04:00
Matthew Flatt
f549a9e634 submodules: make .zo path stick for consistent independent loading
When a module is loaded from bytecode and then the value of
`use-compiled-file-paths' changes, an attempt to load a submodule
would fail, because source isn't used if the main module is
already declared, and the bytecode code is not used according to
`use-compiled-file-paths'. Make the bytecode path stick when it
is used once, so that submodule loads succeed, and make it work
even with `namespace-module-attach'.

The module-attach part of this protocol requires a change to the
API of a module name resolver: the notification mode gets two
arguments, instead of one, where the second argument is an
environment.

original commit: c8f4ac6ae47023157a337aa5e164b74439e373d6
2012-07-17 09:47:05 -06:00
Sam Tobin-Hochstadt
be30f1ae76 Use lazy instead of delay, as recommended by Eli.
original commit: 22904ef43eeb947b6435983857baa62c4533a5e8
2012-07-17 07:11:23 -04:00
Eric Dobson
9ee5660550 Fix things broken by bad rebasing.
original commit: 9dac995e36c99a6170a72ec9b784ca446ec17ca1
2012-07-15 19:21:26 -04:00
Eric Dobson
1be54e4cc5 Clean up of typechecking for heterogeneous vectors and structs.
original commit: 1df6165e9fae2213d2ebb7f70b54c35e0193782e
2012-07-15 19:21:26 -04:00
Eric Dobson
6d683c97a6 Clean up of tc-app.rkt.
original commit: dd078dcb950a99d267c8abdd69e7c5dd1de0ba5f
2012-07-15 19:21:26 -04:00
Eric Dobson
e02e4bbe11 Remove special cases for - and fx- in tc-app.rkt.
original commit: 779291c795e6370706efa34cca6af2a110727ebb
2012-07-15 19:21:26 -04:00
Eric Dobson
fd7bea8edb Added cond-check-below
original commit: 8f98bb6d92aa2aa47910b9aa2cc8301b76f063ed
2012-07-15 19:21:26 -04:00
Eric Dobson
ceb8feedcc Fix bad contract and clashing provides in TR when contracts are enabled.
original commit: 3dfd4c52a9ef0caeee283ed82e061ae8cab4a95d
2012-07-15 19:21:25 -04:00
Eric Dobson
d93803cdeb Make TR compile cleanly with contracts enabled.
Added a couple of contracts and fixed some others up as well.
The two bugs were that with-contract was not imported, and that
subtype could be called with Values and Results.

original commit: 030e56311ec9196131e321129023c9ef21f39b32
2012-07-15 19:21:11 -04:00
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
f5de041d2c Fix documentation of Sequenceof type.
Closes PR 12831.

original commit: 49b030ac8dac84a02a8f273339eedc2ceb022e01
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
33469762b7 Parse (Struct t) as StructTop.
Close PR 12903.

original commit: 546c12cf2a2205aa19b205fd45a4653e3a1d2448
2012-07-14 19:20:51 -04:00
Sam Tobin-Hochstadt
7b9857b656 Print StructTop nicely.
Related to PR 12903.

original commit: 418a0c311b8b1e463f1c449f10c2b31f9b25a287
2012-07-14 18:41:42 -04:00
Sam Tobin-Hochstadt
57dea3aacd Intern Struct types properly wrt. identifiers.
original commit: 4cba6e010fab5d1c9efce484a6de76f7cf4a3c0e
2012-07-13 17:10:50 -04:00
Sam Tobin-Hochstadt
ee5584e4d5 Require binding of add-mod.
original commit: e6697fe43f2ed4feac1e8e74da319a0aedb3b0d4
2012-07-13 17:10:50 -04:00
Sam Tobin-Hochstadt
b109d46e28 Use promises for current-type-names.
original commit: 683f8e4e4b6f95da74b69e1587b1f1e9f77ca6b8
2012-07-13 17:10:50 -04:00
Sam Tobin-Hochstadt
60c565f64e Fix tests for new type name declaration.
original commit: 2dd9a43d1b3fe4d3b64ccee5c88db4cb58d7f3f8
2012-07-12 17:41:12 -04:00
Sam Tobin-Hochstadt
1f7d88e114 Reduce some dependencies of Typed Racket prims.
original commit: 396b04eb8689ed918f675cbed290c0a1bfa71c78
2012-07-12 17:41:12 -04:00
Sam Tobin-Hochstadt
a6fc57ea97 Delay actual initialization of type environment.
original commit: 5ab3827b488cdd638da7b48ca9c52ca9aa344faa
2012-07-12 17:41:12 -04:00
Sam Tobin-Hochstadt
788e335196 Rename type-decl submodule to #%type-decl.
original commit: 775dc67a3b30686e604cf459c017320a64f128c5
2012-07-12 17:41:12 -04:00
Vincent St-Amour
fdd870efd5 Rename Performance Report to Optimization Coach.
The new name is more accurate.

original commit: 60a0f3b8545582df43673063b65116a0f929b415
2012-07-11 10:59:35 -04:00
Vincent St-Amour
e2f3073123 Filter reports by provenance (TR / mzc).
Can't easily combine with filtering by opt / missed opt, so I dropped it.

original commit: 1d084888fddb7c3efb32f82b137d1c433cb50135
2012-07-11 10:59:35 -04:00
Vincent St-Amour
3f2c9145fa Performance Report is enabled for all languages, so don't enable it for TR.
Avoids duplicate buttons.

original commit: aaf7acb0347feb298670653af4373c9ff2dc7557
2012-07-11 10:59:34 -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
Sam Tobin-Hochstadt
29763a44d9 Remove evcase.
original commit: 88f5f4c8361d990af44ea1335d03d292f2ce2c46
2012-07-10 12:49:27 -04:00
Neil Toronto
9725465b46 Added inline hint around `index?' definition; my own timing suggests 2x speedup
original commit: 419b59e88ea025a4d6cd2fa2cdbe62eb64529c78
2012-07-09 19:15:35 -07:00
Neil Toronto
93a0e963c7 Added types for single-value sequences
Fixed some printing types

original commit: 77655f9ade5733d722a22acd52b338ea00f2af30
2012-07-09 19:15:35 -07: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
867a992700 Fix type of dynamic-place.
original commit: d346415903983e6b4b698129f8d77dcec60b4d05
2012-06-25 19:20:12 -04:00
Sam Tobin-Hochstadt
ec62a2f7c4 Remove no-longer needed require for residual code.
original commit: 5e26c329d609cda35e3b0b35c1e66e33282c7b63
2012-06-25 19:20:12 -04:00
Sam Tobin-Hochstadt
c762e9eb4c Avoid requiring the printer unneccesarily.
original commit: 94f1cb2127b9cc630d0122b6fdc98066f364597c
2012-06-25 18:07:45 -04:00
Sam Tobin-Hochstadt
d575bd40bb Depend only on the lowest-level place primitives.
original commit: c61ed30d0b0b87d7bef9dfafe2db3af719896cb8
2012-06-25 18:07:45 -04:00
Sam Tobin-Hochstadt
5f08e63cb8 Disable unused code.
original commit: 08c3f784766f6bc0957fe482fcc91924952a61fc
2012-06-25 18:07:45 -04:00
Sam Tobin-Hochstadt
76f157026a Load environments dynamically in residual code.
original commit: 794bfa50ecf854eb36bb2195c99202cc1a7f879f
2012-06-25 18:07:45 -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
19fbb978ef Split out some small utilities to prepare to reduce dependencies.
original commit: a05acfee4c1387a829972db05643375fe3fcebbc
2012-06-25 14:10:18 -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
d398754fef Reconstruct let bindings in the right order when unboxing let.
original commit: a0d55d4ab82bd700a191720edfd5506692a8851a
2012-06-22 17:53:43 -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
Eli Barzilay
dcffc90c3f Random pickiness.
Spaces at EOFs, indentation, etc.

original commit: 7d6e79023cf9872e6f6af2f89961b742c6296f1d
2012-06-22 12:00:48 -04:00
Vincent St-Amour
4b21740591 Recover from any failure when attempting to prune types.
original commit: 4d5bc17f8569a54e1e37501516136637d8405f94
2012-06-17 23:28:50 -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
Vincent St-Amour
fe7589c807 Fix possible-domains on functions with multiple return values.
original commit: a5f2ca8fb07f92076020053fc6053a5f6808308a
2012-06-17 23:04:47 -04:00
Vincent St-Amour
ac527c5d30 Disable debugging printing.
original commit: da897a2f857e2ff3585ad946a1ca7325ab0ea9c7
2012-06-16 18:28:01 -04:00
Sam Tobin-Hochstadt
9c7c233e9d Handle submodules in Typed Racket.
original commit: 39e014bc55779699cc3a503dd9b7416c9f7d28a6
2012-06-16 22:08:06 +08:00
Sam Tobin-Hochstadt
85926af92d Don't export internal names for define & lambda.
original commit: a929bb21fc044da94bf82a909e1ccb494ec2e917
2012-06-16 22:08:05 +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
9d813f495f Fix type of exact->inexact.
Closes PR 12803.

original commit: cff1cd3c6395007facff39e421f043b71cccd1d8
2012-06-12 11:09:20 -04:00
Asumu Takikawa
8369a85392 Fix typo in TR special form docs
original commit: c108fe5c6a855ecd815d1006d27f863c9ad840a7
2012-06-11 17:29:02 -04:00
Vincent St-Amour
90909c1c68 Missed some cases in sqrt.
original commit: 948a4d6184751bacabb44adad39d9fb5aa804988
2012-06-09 22:11:42 -04:00
Vincent St-Amour
a8d6407857 Restore testing of sqrt and log.
original commit: c4743724cda112cf051d287764aa21f1e7469665
2012-06-09 22:07:43 -04:00
Vincent St-Amour
b64696f560 Fix type of fl/ to reflect changes to /.
original commit: 53746ca0a5b5a959bf272ee8a88e8c3c9dbd3e8b
2012-06-09 22:07:03 -04:00
Vincent St-Amour
11b0166100 Subtraction is not commutative.
original commit: 5d26fd10e64d792d033b93faad30245ad1d5090a
2012-06-09 22:04:43 -04:00
Vincent St-Amour
58da9ff90f Fix typechecking of Single-Flonum-Complex literals.
Closes PR12840.

original commit: 442def0b0f87888fe7cb38c40e33df62f3de68e6
2012-06-09 22:00:27 -04:00