Commit Graph

2283 Commits

Author SHA1 Message Date
Eric Dobson
d609666e8a WIP on fixing free-variance.
original commit: 40809e768d0949453f059c94e69179378f01e8ba
2012-09-27 16:22:22 -04:00
Eric Dobson
319490772b Split adding the struct type and the bindings.
original commit: e3743b446cfcf842ec5060af83078343f90afa25
2012-09-27 16:22:22 -04:00
Eric Dobson
61cc8f6121 Cleanup define-struct parsing.
original commit: 40236a3b267c8d9e8d44ffad752c4e6e618797e2
2012-09-27 16:22:22 -04:00
Eric Dobson
59160ba440 More cleanup of struct type registration.
original commit: 8ea7502c12f5752ca50878a70920ec5a5dc287cb
2012-09-27 16:22:21 -04:00
Eric Dobson
c73df4ed19 More struct work
original commit: d84391b6956f0eef2253d393dc9d05cf7efa5db4
2012-09-27 16:22:21 -04:00
Eric Dobson
11df3e8261 Removed cert value.
original commit: 626f807f00760cd32c446f66c3cc73fc485f676c
2012-09-27 16:22:21 -04:00
Eric Dobson
4165cdd780 Cleanup of tc-struct and tc-toplevel.
original commit: 8226b6764cf202c9c1b289416fe818f80dc7a157
2012-09-27 16:22:21 -04:00
Eric Dobson
87fa803776 Removed unused constructor-return argument.
original commit: d54a573494af95b807b87221f80f54f24b2033ca
2012-09-27 16:22:21 -04:00
Eric Dobson
a2b6807a8b Make tc-struct no longer have long lines.
original commit: 54401182bbe3edfb5ef8675937578438a9cd58e7
2012-09-27 16:22:21 -04:00
Eric Dobson
c0e045635c Fix -struct to use the right number of arguments to make-Struct.
original commit: 12233600c1355df1e9d2f29ee2469f154fc66f81
2012-09-27 16:22:21 -04:00
Eric Dobson
ecf4869b3e Clean up contracts in TR.
original commit: 6fe850ce39e01ce7122f7325e020cf24133a9a45
2012-09-27 16:22:21 -04:00
Eric Dobson
f1ce0b63dd Removed unused fields in Struct
original commit: 2a8512ed72c1ac029ee4c315f1963b3ebfc5fa6d
2012-09-27 16:22:21 -04:00
Eric Dobson
66ccae0e72 Make struct type contracts better
original commit: 745403a88e353c82ed850d7954254896cf1446f7
2012-09-27 16:22:21 -04:00
Eric Dobson
90ef1eac37 Fix type->contract on structures. Now uses struct/c.
original commit: 9e1cf579a434b65e484bdf937e3307bc3c9fd7aa
2012-09-27 16:22:21 -04:00
Asumu Takikawa
a27bab8502 unstable/match: add define/match
Match-based function definition form that supports optional,
keyword, rest-arg, and curried arguments.

original commit: 1a0a06db6262e2eb54d729389e7233927a3f3d23
2012-09-17 19:46:46 -04:00
Ryan Culpepper
88a903a791 fix bad attr reference (datum attr doesn't exist)
That macro doesn't seem to be used anywhere. Perhaps it can just
be deleted.

original commit: 29a9abf39454a683b0092efafdf2afb95ef0c4b5
2012-09-17 12:29:17 -04:00
Vincent St-Amour
1bdf607438 Remove TR optimizer log key, made redundant by named loggers.
original commit: 1975014c550011f3937ed7bb3ce511c1a5a823a9
2012-09-11 13:48:14 -04:00
Vincent St-Amour
d908745a11 Fix TR tests for new logging system.
original commit: ab328ea80bd460d6aeb94f3adf958e2d1c041d9c
2012-09-11 13:48:14 -04:00
Vincent St-Amour
d234a65876 Fix OC for new logging system.
original commit: 39100bd3e3a085b8911b9e3018c78e62dbe6d82b
2012-09-11 13:48:14 -04:00
Vincent St-Amour
2cff6508c9 Fix unstable/logging to work with the new logging system.
original commit: 5a24b57a9516fb781363dc8d7f4b59c16ae238b9
2012-09-11 13:48:14 -04:00
Vincent St-Amour
062d973d04 Integers include inexact single-float integers.
Closes PR13103.

original commit: adceb4322acbb31cfed9fdb2ab2825db46074f21
2012-09-09 15:46:29 -04:00
Vincent St-Amour
dc38b069d9 Fix types of comparisons between zero and non-negative integer types.
original commit: 729d154deb203490c68b4cd2cff95547f5509db9
2012-09-08 18:51:38 -04:00
Sam Tobin-Hochstadt
6d73aa7b4d Track mutable variables across modules.
original commit: eed93825abcedc07570b4a185b88ad30f424cf0f
2012-08-31 17:45:11 -04:00
Sam Tobin-Hochstadt
d5b1f76319 Simplifying case-> to union is only safe for 1-argument functions.
Closes PR 13002.

original commit: ab5403d1ede34b3df761e82ba64f991089cadd81
2012-08-31 10:27:51 -04:00
Matthew Flatt
10d9de8b62 port position-tracking clean-ups
Add `file-position*', which can return #f instead of raising
an exception when a port's position is unknown. Change
`make-input-port' and `make-output-port' to accept more
kinds of values as the initial position.

These changes make it possible to synchronize a port's
position with a `port-commit-peeked' action. It's ugly,
which I think reflect something broken about position
tracking in the port protocol (which seems difficult to fix
without breaking compaibility).

original commit: b61f3f751c5dfe72869fd449ba3ff42f520d0927
2012-08-28 16:04:41 -06:00
Sam Tobin-Hochstadt
c9a754132a Refactoring of new tc-app.
original commit: 514c1c5921a83297a8f305678d95d7f2357a7180
2012-08-27 14:46:30 -04:00
Eric Dobson
933db45b14 Fix errors in tc/app-hetero, cleanup tc/app.
original commit: 1e15d4496e3cefc6853d1a843a13b8f11bc55fd5
2012-08-27 14:43:45 -04:00
Eric Dobson
696b463b46 Cleaned up special cases by adding macros to reduce duplication.
original commit: 5c7ed4a21d1c77866891b2c69fb8c152e5872fca
2012-08-27 14:43:45 -04:00
Eric Dobson
5754267aa0 Moved the rest of special cases to reified syntax classes.
original commit: ba7647d7e22a0c926755e6748b49a490e2a1fc4d
2012-08-27 14:43:45 -04:00
Eric Dobson
cf3cdb4d9d Rough draft of syntax classes for tc-app.
original commit: dda1d6021157cfb07cefdb9aac6093d8bbbae0b7
2012-08-27 14:43:45 -04:00
Eric Dobson
274b4a3845 Add back template require.
original commit: 020d053e0ae00d04bf00affb4e1b97a70a39749f
2012-08-27 14:43:45 -04:00
Eric Dobson
642932cd95 Removed dependencies from tc-app-hetero.
original commit: 6c2be057493f8b0a18df74ee4cff22381b58eae8
2012-08-27 14:43:44 -04:00
Eric Dobson
dddd5e23cd Remove unneeded requires
original commit: d8c9a581f2a25c68c8ae85a216fcf676dd8661ae
2012-08-27 14:43:44 -04:00
Eric Dobson
09e0c07537 Cleanup of tc-app refactor.
original commit: 7005f12f0dbb744442118d539c807c7bc2f4b003
2012-08-27 14:43:44 -04:00
Eric Dobson
543b1e3069 Moved last special cases out of tc-app.rkt.
original commit: 54d49d0ec163a149948d2c8337f6de66d1ec3be2
2012-08-27 14:43:44 -04:00
Eric Dobson
5871c0c182 Moved lambda special cases out of tc-app.rkt.
original commit: 67c7e3537b69fbccf1e30c1fcecca86f9d9ac5eb
2012-08-27 14:43:44 -04:00
Eric Dobson
30239cf42f Moved eq? et al. special casing out of tc-app.rkt.
original commit: 51671fcec41828b6dc26427303c7dd8c76e07139
2012-08-27 14:43:44 -04:00
Eric Dobson
c41a752d1f Moved object special cases out of tc-app.rkt.
original commit: 73bd7da049a2831d6fffac9a81c3d89d43c58975
2012-08-27 14:43:44 -04:00
Eric Dobson
78a124bfff Moved keyword special cases out of tc-app.rkt.
original commit: c2ab21c5a56bb157a8129fd94b7c599600d53083
2012-08-27 14:43:44 -04:00
Eric Dobson
bd178b777a Split out special cases for apply and values from tc-app.rkt.
original commit: 603442347247c55f59f95af94bc2b05d0875d827
2012-08-27 14:43:44 -04:00
Eric Dobson
536b374ec2 Move TR list special cases to tc-app-list.rkt.
original commit: fcb06ac43303a58a09a8ac6ce5bf9ae9d40e08d1
2012-08-27 14:43:44 -04:00
Sam Tobin-Hochstadt
2ec87e9e94 Move Ephemeronof documentation.
Closes PR 12952.

original commit: 0233c5a14f5d20beb30e544bca384f61af18eeb0
2012-08-23 14:04:37 -04:00
Sam Tobin-Hochstadt
d970f11334 Remove #:transparent to work around place message limitations.
original commit: b7f9c7706944216c4eb841396df53be2f413842f
2012-08-22 16:50:50 -04:00
Sam Tobin-Hochstadt
616b1c2fb6 Add -v option to TR tests.
Also, print errors from serialization and place message sending.

original commit: e207f5c67df7d8ee1a6605d3ee62ba39787d16e0
2012-08-22 16:50:50 -04:00
Eric Dobson
cfe59c4980 Fix typechecking of polymorphic structs with parent types.
Closes PR12998.

original commit: e9f209977b5d437589265ca5e9e69c74d45b9d47
2012-08-22 16:50:49 -04:00
Sam Tobin-Hochstadt
467c46360c Use module registry trick to slightly speed up TR tests.
original commit: 26a57f64202a9e4040fe495cf5d6a2ce3d79531f
2012-08-22 11:13:07 -04:00
Sam Tobin-Hochstadt
08962bd0aa Parallelize running Typed Racket optimizer tests.
No speedup yet, though.

original commit: e705d4d450b1753a0c5fe8b34bb1a41c22e381cc
2012-08-21 17:47:30 -04:00
Sam Tobin-Hochstadt
33459cf564 Add some examples for cast.
original commit: 71e81f9fffa682f93b82dc76c51b92606884d24a
2012-08-21 10:50:34 -04:00
Eric Dobson
faaaa1396c Adding documentation for cast and make-predicate.
Also converted tabs to spaces.

original commit: 1248b32e73b380dbf43a2ffcbb1f9a54d83bf1c3
2012-08-21 10:50:34 -04:00
Sam Tobin-Hochstadt
8641817ca6 Add type for processor-count.
original commit: 5fb48197037570e22d2e39eb7dbd1f3ca8721387
2012-08-20 14:49:11 -04:00
Sam Tobin-Hochstadt
48a9602d23 Don't use places for running single tests.
original commit: 1c275ffcc7fb79775b377340aaae3e258473a3ba
2012-08-20 14:45:50 -04:00
Eric Dobson
26b3938743 Move list-set and list-update to unstable/list.
original commit: 6e2e84664da60e82434f907d7274fcc88e47e11f
2012-08-20 14:45:50 -04:00
Sam Tobin-Hochstadt
2117167e8b Fix typo detected by optimizer.
original commit: 4c0d605c430593562b1b29ff7c7617573220aab2
2012-08-20 13:17:50 -04:00
Eric Dobson
7f2c626c7f Wrap generated code in #%expression.
This allows tc-toplevel to hand it off to tc-expr, and not reimplement
the details of annotations.

original commit: b9408e545eb72e2ef4877cd3e9909f4937ebf536
2012-08-20 12:39:41 -04:00
Eric Dobson
8086da4e7e Add back ignore-some typechecking
original commit: 8545f421abfe3e4fb689e12d19ec05b109660e5b
2012-08-20 12:39:41 -04:00
Eric Dobson
20da55c55d Add tests for make-predicate and cast, also add support for the top-level.
Closes PR 12939.
Closes PR 12201.

original commit: 533920480e4b9878a18febdc616429623bb58f50
2012-08-20 12:39:41 -04:00
Eric Dobson
9d60643a65 Added cast operator to typed racket
original commit: 553c3a4f80c094d030d11c061464529ed5741e5f
2012-08-20 12:39:40 -04:00
Eric Dobson
e70c2dea51 Add way for code to attach typechecks to itself, and implemented make-predicate.
original commit: cc52e56fe6749bba71dbae5e56c0a58d90ac119b
2012-08-20 12:39:40 -04:00
Eric Dobson
3d0e20043d Allow contract definitions created from expressions to be fixed up.
original commit: 115345300dc4bfe3a14c7b7f73507719e2f6500d
2012-08-20 12:39:40 -04:00
Eric Dobson
ce51776f1f Make TR's ignore-some property work even if there isn't an internal form.
original commit: bb67e37c4906334dbf43e650643d9162d195fa3d
2012-08-20 12:39:40 -04:00
Sam Tobin-Hochstadt
7654984ca6 Make Typed Racket integration tests run in parallel.
Parallel speedup of approximately 4x when using 8 workers on a 12-core machine.

Closes PR 12911.

original commit: 9e5060ef5b7e831480e82d45eb7459d1015f1f54
2012-08-20 12:25:50 -04:00
Eric Dobson
f41741b486 Add promise support to type->contract.
Closes PR13024.

original commit: 09d32d35e06abe31075bf3fbf04f6c749f3d5603
2012-08-20 10:10:17 -04:00
Eric Dobson
8c95235750 Cleanup builtin structs types.
original commit: a408d6bfbfacae706b8d1d51f67c7929c3fcae16
2012-08-20 10:10:17 -04:00
Eric Dobson
0277c62e46 Make promises like every other TR container.
original commit: df6562c1de124a01a4a104cf8f813078b12bd680
2012-08-14 16:16:07 -04:00
Eric Dobson
dc0849e298 Replaced infer-dummy with lazy-require.
original commit: ac493a6f44773c43c215e8c5cd5dc6d8e1edcdf1
2012-08-14 16:04:51 -04:00
Eric Dobson
a3d44f9315 Fix internal error for untyped kw functions.
Closes PR12932.
Closes PR12922.

original commit: 9ef80edfef0e872ec9224c5d1e032c3f46dc2ace
2012-08-14 16:04:51 -04:00
Eric Dobson
fb1c408062 Removed deprecated printf/log.
original commit: fdd2966cf405c5b8e877f51aeff6606816b8d9c3
2012-08-14 16:04:48 -04:00
Sam Tobin-Hochstadt
5784f96c6b Don't special-case applications with instantiations.
Closes PR 13006.

original commit: ade36c36c6f68520deb15c7152cc1e49741213d6
2012-08-14 15:45:47 -04:00
Eric Dobson
37aeb62a14 Fix substitute and add test case.
original commit: 3b6168de7d2a0b25a40c391757bc71fdb272c347
2012-08-14 14:44:55 -04:00
Eric Dobson
f071ccf186 Make simple substitution happen all at once.
Closes pr12920.

original commit: 2e3965e7772594a19aac32d9673fb0c98e19bbdd
2012-08-14 14:44:55 -04:00
Vincent St-Amour
23a26e8533 Fix type of expt.
Closes PR13026.

original commit: f514550300624a5863db333fe781e32da3273e17
2012-08-14 14:37:18 -04:00
Vincent St-Amour
911ebaa0bd Fix types of magnitude and angle.
Closes PR13025.

original commit: af8fc1f26aaf87f0ece562e6fe74804b42ddfed3
2012-08-14 14:37:18 -04:00
Sam Tobin-Hochstadt
88c5098309 Move define-struct/printer to new file.
Avoids runtime dependency on `racket/generic`.

original commit: 973da6a50cd0994b69b5b8b7cb1f374786de469f
2012-08-14 10:31:22 -04:00
Sam Tobin-Hochstadt
74b6ccbf6a Minor printer refactoring.
original commit: fddd5c63ff4113c104dd184b90b38900aa99b4ad
2012-08-14 09:58:01 -04:00
Eric Dobson
8442c9da34 Make TR debug printer work again.
original commit: cac47c0427c8d885b402d036710593cf1d360e7f
2012-08-14 09:45:01 -04:00
Eric Dobson
4667c3bb2a Make disabling the custom printer work.
original commit: 5f0717d278343f355f95bbc2ca39d9a3ebbee3dc
2012-08-14 09:45:01 -04:00
Eric Dobson
9bd0589cf6 Remove unused old printer.
original commit: 124707921fd20aed769c250f23e5d89979e457b6
2012-08-14 09:45:01 -04:00
Eric Dobson
2f3add11ff Cleanup TR printer to use lazy-require.
original commit: c9afe15f56bc7c3a6e2347f370e7d2e075ade594
2012-08-14 09:45:01 -04:00
Sam Tobin-Hochstadt
ad5018f0dc Fix internal require of typed submodules.
original commit: 6ae2a9d884d46350411b023d5eb54474f4a5ed81
2012-08-13 17:20:20 -04:00
Ray Racine
6c22c611d8 Add flvector-copy to TR base env.
original commit: 2ff1927f6c1a0da46a7fd633cf62961e2ba06b75
2012-08-13 16:58:29 -04:00
Vincent St-Amour
b59fef3342 Fix type of division.
original commit: 7c6cf0fa8b43e39f88211fa35ac151616f2704ba
2012-08-10 18:07:38 -04:00
Sam Tobin-Hochstadt
1d6678c2ad Don't generate rest specification for ->* when not needed.
original commit: aa6ed4d736b2e4486c82a4a1ed4ac7b1f9296a3e
2012-08-10 11:00:02 -04:00
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
Vincent St-Amour
4e9783b436 Be more conservative about returning Float-Complex and others.
original commit: 7191ef5c744fc6ebc95a225913516e075a1bf151
2012-06-09 21:57:01 -04:00
Vincent St-Amour
dcf7827d6b Improve handling of NaN in division.
Closes PR12838.

original commit: f3f5abd1f796ffe5f678e605aa1d8bc7e6e52500
2012-06-09 21:32:37 -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
4b1a1cacd4 Fix type of n-ary * to handle NaN properly.
original commit: 0f346601f45409f29d44d2847a7048e37272057c
2012-06-06 18:26:51 -04:00
Vincent St-Amour
da7663f386 Fix flonum and single-flonum operation types.
Most issues were found with random testing.

original commit: 48f47f33843b21d30a556b16306a6fc1550f6de7
2012-06-06 18:26:51 -04: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
043c510ece Document new TR aliased definitions.
original commit: 42a2ac6026b1f8b048765299ff19db60e6289547
2012-06-04 17:02:18 -04:00
Sam Tobin-Hochstadt
8149914d6b Whitespace fixes.
original commit: 1801efe66afa21797be3a5efe92bc18975dd5a8f
2012-06-03 10:50:18 -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
9e926d2009 Improve type of identity.
Closes PR 12813.

original commit: 8459c22c0106b1dd31531f5dbbfd1ce1e7d65fed
2012-06-02 18:52: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
5106b5672d Remove testing code, and failed experiment.
original commit: c8380b94e54180a3a0e03f618e21192ecca3950f
2012-06-01 20:08:37 -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