Commit Graph

1621 Commits

Author SHA1 Message Date
Vincent St-Amour
7600062905 Report unexpected complex types in arithmetic expressions.
original commit: c73bc6c918af143a774bc79d83df789888393fa6
2011-06-17 18:18:00 -04:00
Vincent St-Amour
d64af4df5d Add in-complex-layer?.
original commit: 2a7254a324e6ec68982d3966df04e8c264d89bca
2011-06-17 18:18:00 -04:00
Vincent St-Amour
292433204b Generalize reporting of wasted precision to arbitrary exact arithmetic expressions.
original commit: 2a4a4e818424cf1879afcfbd6e7f5dfa0284ced3
2011-06-17 18:18:00 -04:00
Vincent St-Amour
58360f3a16 Add an arith-expr syntax class, to simplify parts of the optimizer.
original commit: ec696f26ae5375b83f4eb8666047e803b19214e4
2011-06-17 18:17:59 -04:00
Vincent St-Amour
6cb0669985 Move layer predicates to their own file.
original commit: b64b49b078e444f0ec9c41a9ecf4543fb397d059
2011-06-17 18:17:59 -04:00
Vincent St-Amour
4c08c496f6 Report when exact arithmetic is used inside float expressions, which may make the extra precision useless.
original commit: cd027109c9aa71d788764d934992d290bd586a39
2011-06-17 18:17:59 -04:00
Vincent St-Amour
9d1bfedc5e Add a test case for close-calls on all-real arithmetic expressions.
original commit: 5d4ef5c62478ca1dfeeb5a79d6ed65479283a31f
2011-06-17 18:17:59 -04:00
Vincent St-Amour
968f60d8e1 Report close calls for pair/mpair optimizations.
original commit: 89ca99210ec6e62167e1aebc846b48882a31354e
2011-06-17 18:17:59 -04:00
Vincent St-Amour
c21628133e Add extra checks to avoid spurious close call reporting involving integer operations.
original commit: 526a84f10b0dc08ffb8f0cbc52b08d7a441487ba
2011-06-17 18:17:59 -04:00
Vincent St-Amour
a0de25443c Show irritant for the currently detected close calls.
original commit: 95bf94577c7c9d3c2c41075b3ba5d0b2ce2c1155
2011-06-17 18:17:59 -04:00
Vincent St-Amour
ede348d487 Revert "Fix optimizer expected log format."
This reverts commit bdf1073f174d5101fb94a7bd3257da7fec90c9cc.

Return that test to the new format, which it was originally written in.

original commit: 0fab9e11ad0cebe1d4afdb6bfb7908d8deb69608
2011-06-17 18:17:59 -04:00
Vincent St-Amour
6837e13536 Made logging format more compact and less ambiguous.
original commit: 33962befd4fe704f4e15caa4b157187c10cf9944
2011-06-17 18:17:59 -04:00
Vincent St-Amour
78767f809a Add layer predicates.
original commit: 26cc2cf6dc81323463e0d448de890bbb2621a3ae
2011-06-17 18:17:59 -04:00
Vincent St-Amour
69b3ea5f28 First attempt at logging unexpected Real types popping up.
original commit: 7b2c6f5765c2f3b5aefd24f15bbd6f9bf5855749
2011-06-17 18:17:58 -04:00
Vincent St-Amour
a2400d8d4b Add support for close-call tests to the TR test harness.
original commit: 2e0dd6467a4724d8dafc53455653cd6ac433481f
2011-06-17 18:17:58 -04:00
Vincent St-Amour
0b6c2b40c9 Add logging infrastructure to log close calls.
original commit: 303e1f7f883be6ada89b665d58cf40eade568ec6
2011-06-17 18:17:58 -04:00
Sam Tobin-Hochstadt
75ba3a6536 Disable this test.
original commit: 55a25a825a2ba87239187b129515f90e3aa9ada6
2011-06-17 15:17:20 -04:00
Eric Dobson
2c4a553459 Cleaned up base-env. Added comments about untyped identifiers.
Used one-of/c to clean up some types.

original commit: 1348887bd14a115518a4e0eab053b3bdd348e91b
2011-06-17 15:17:20 -04:00
Eric Dobson
ee96de4dce Moved tests for equality to unit tests
original commit: 0671945a8d39c87dfe3536291a06bf2dc00f241d
2011-06-17 15:17:20 -04:00
Eric Dobson
cfbdcf9cdb Moved new TR symbol testing into unit tests.
original commit: b3262691337e929809d0b4e7e96cd390deb0d501
2011-06-17 15:17:20 -04:00
Eric Dobson
606a9238be Moved TR string testing to unit tests.
original commit: 3a13cf0e78eace73864b1d4579bf8b3a679c3698
2011-06-17 15:17:20 -04:00
Eric Dobson
ef4531d328 Added types for reading and writing operations
original commit: feeccc062bb4a00cf3ab4f77e6bf8f100d72f630
2011-06-17 15:17:19 -04:00
Eric Dobson
c189a053f5 Added types for regexp operations. Changed Regexp to correspond to regexp?.
original commit: 029651b9eeaed6b4cecb800da2c01fa6cbed1270
2011-06-17 15:17:19 -04:00
Eric Dobson
ba0a3b98e7 Added public names for recently added types
original commit: 3e1a95750d41acc4d4ae418f6f8acafc9085f6dc
2011-06-17 15:17:19 -04:00
Eric Dobson
fedb424889 Added types for I/O operations
original commit: 6f3bbad3676120d2618e8ca359cf44c588c693b2
2011-06-17 15:17:19 -04:00
Eric Dobson
400b626e8b Added types and some tests for port operations
original commit: 54a12afb49de224a305ae1c8ecd09c517ad7a95e
2011-06-17 15:17:19 -04:00
Eric Dobson
c99acfa622 Added types and tests for equality operations.
original commit: c77e906c7afb257d94e61a01706553064150a1a6
2011-06-17 15:17:19 -04:00
Eric Dobson
5fef88131d Added types and tests for raising and handling exceptions
original commit: 2d152bac79e8a447d92ca8c5a05a78aef27da020
2011-06-17 15:17:19 -04:00
Eric Dobson
fff49902ea Added types and tests for symbol operations
original commit: 4ba12dd20e618fee9d00601a94d7ce060f2a31ee
2011-06-17 15:17:19 -04:00
Eric Dobson
046b62fdaf Added types and tests for string operations
original commit: ab23db7b5b2bbb310e503cac7345eed73af94f56
2011-06-17 15:17:19 -04:00
Vincent St-Amour
3face0ff46 Unify types and filter behavior of not and false?.
original commit: 26541ffbbdccf7d27db1f1ae439430090fcb4b0b
2011-06-16 18:08:44 -04:00
Sam Tobin-Hochstadt
a431e7b5c7 Add contracts for `Sequenceof' values.
original commit: eaa156554a5c5305d147371bec0619436a0e7993
2011-06-15 17:02:09 -04:00
Vincent St-Amour
c96832caba Optimize in typed regions.
original commit: e057e6a8573d5c3d8bb8f5ce7a5dc1be93dd2a7a
2011-06-15 11:20:51 -04:00
Sam Tobin-Hochstadt
0cf1898580 Wrap expected type. Closes PR 11980.
original commit: b76819a66e9f8c6b1b5f364c4b07301ecada7979
2011-06-14 19:05:16 -04:00
Vincent St-Amour
d78bd10198 Make type annotations optional for for*/lists: and for*/fold:.
original commit: 48bf6f829066c272a7394595fff3d83617799f98
2011-06-14 17:53:28 -04:00
Vincent St-Amour
76e8ccbf53 Improve error message for untyped variables that don't come from the original program.
original commit: 3ff1a3320a39acfa859ae79f71c4a31ccb23734c
2011-06-14 17:53:28 -04:00
Vincent St-Amour
a54a51ba07 Change examples to use prettier types.
original commit: 7a4bd387ccbd6a95b16bd6c6c810d9ddf8a537ad
2011-06-14 17:53:28 -04:00
Vincent St-Amour
5f548fa452 Tidy up TR reference.
original commit: d43c8fc406e03532a65a7b2f6df85e6199dc1fc6
2011-06-14 17:53:28 -04:00
Vincent St-Amour
bdd8420389 Add note about optimizing structs to the TR docs.
original commit: 1cf57b893c2cd863cc40a3d9fc6d1ced0b598436
2011-06-14 17:53:28 -04:00
Vincent St-Amour
51275863c0 Add missing word.
original commit: e3274a3cf789ea76ba0e5f998c9e34adc42f3cb5
2011-06-14 17:53:28 -04:00
Vincent St-Amour
170c91f43e Split the TR reference into multiple pages.
original commit: 52e14362b592e333e133c5285a7e4e0eedab0505
2011-06-14 17:53:28 -04:00
Vincent St-Amour
c0f84549b0 Reorganize TR docs directory.
original commit: 589f42feb1bac61347b17d17e894dab117e74cf4
2011-06-14 17:53:27 -04:00
Vincent St-Amour
bbe201f593 Add myself to the TR doc author list.
original commit: b835e8a75b0938de7815ecdba69f93c118090635
2011-06-14 17:53:27 -04:00
Vincent St-Amour
a2735fa92a Document optionality of type annotations for the for: macros.
original commit: a1787cede41d7c78ac2c170c426d7d27b9638a77
2011-06-14 17:53:27 -04:00
Vincent St-Amour
62db0355b4 Synthesize annotations for for/lists: if possible.
original commit: 2922821f3c47c9a3259150a057427f080248bfdd
2011-06-14 17:53:27 -04:00
Vincent St-Amour
9a2f908349 Remove obsolete comment.
original commit: f4973ff05e021b946002691e4f60266f4375a2e1
2011-06-14 17:53:27 -04:00
Vincent St-Amour
37494a9c89 Fix bad name.
original commit: 8c92a32cbba71528730b013a72bd33b8b4d6ed63
2011-06-14 17:53:27 -04:00
Vincent St-Amour
c31b879cc0 Allow omitting type annotation in most of the for: forms.
original commit: a5bccaffe1994d27582582b6ff6c1cd66ad8cbfb
2011-06-14 17:53:27 -04:00
Vincent St-Amour
d437c49ad9 Allow omitting type annotation on for/fold:.
original commit: 506980240a1b5f468ec32ad84ef54bac5089c879
2011-06-14 17:53:26 -04:00
Eric Dobson
95a11759c1 TR: Changed type of port->list
original commit: c7f9a80de88d8ce0a2743ac5baa9f4b8c30fc29b
2011-06-10 17:22:14 -04:00
Vincent St-Amour
2b2d52e646 Fix documentation of the for: macros.
original commit: d732c12b96bfbf4edee14e4ea9b379ef2b7fc81d
2011-06-07 21:15:17 -04:00
Vincent St-Amour
31bc5f4b40 Eta-expand typechecking of literals, to improve performance.
original commit: 7f5568002841b62687fece9b177f9beec5cfcf2a
2011-06-07 21:15:17 -04:00
Eric Dobson
14cbce4289 Make sure type environment is only initialized once
original commit: 44d591b5ba848dd8735c25f4bafbe1409506b219
2011-06-07 21:15:17 -04:00
Eric Dobson
6e5b63910c Added check to make sure that safe/unsafe flonumops are the same binding
original commit: 157481ceda9f032e7c160d88f33f922638071ca6
2011-06-07 21:15:17 -04:00
Eric Dobson
083295f4e3 Base type environment now checks for duplicate types.
original commit: 88ce4e281c6b96d0e0602c6210fee7c2d1babf00
2011-06-07 21:15:17 -04:00
Eli Barzilay
f936f3560d Fix TR docs wrt to `racket/function' change, close evaluators, fix
copy/paste typo in `thunk' docs.

original commit: 40a88b6037296c44dfafc98a495e3a29825e2c88
2011-06-07 13:07:46 -04:00
Eli Barzilay
5ec78220b9 Removed a bogus provide and two bogus tests.
(Which worked because the same functionality is part of `racket'.)

original commit: 2eb0a9467723ef0c00b6f2e14ee3a7ec9e61b6bd
2011-06-07 03:38:06 -04:00
Vincent St-Amour
a156863f5b Fix contract generation for Exact-Rational.
Closes PR11954.

original commit: bb71f9b66dad20d756af3842910ccc57835a102e
2011-06-02 16:52:46 -04:00
Vincent St-Amour
5dfb07f5b4 Optimize sqr on floats.
original commit: 6de5f48810f00c943104ac67603800b7f6da2f36
2011-06-02 16:49:25 -04:00
Vincent St-Amour
a84dc148cd Fix limitations of with-intercepted-logging.
original commit: b71d3cf40c1dee167ff1c737ede7496cd159f281
2011-06-01 16:11:10 -04:00
Vincent St-Amour
addca29b35 Provide with-intercepted-logging.
original commit: b86d759b626088158b2da492dc2c3ecadbabdff9
2011-06-01 16:11:10 -04:00
Vincent St-Amour
5de906251f Implement with-logging-to-port in terms of something more general.
original commit: fc705c6e29b585ee8f774175d55cabf52035e061
2011-06-01 16:11:10 -04:00
Vincent St-Amour
515cc1433f Make level a keyword argument for with-logging-to-port.
original commit: 0538f21274720a6deb5ff6575843f4b081eeb832
2011-06-01 15:24:15 -04:00
Vincent St-Amour
daba37e8ff List known limitations of with-logging-to-port.
original commit: fe161a780cb58970cd7ea707aa498e4a1e36fef3
2011-06-01 15:20:36 -04:00
Vincent St-Amour
2acacf1284 Add with-logging-to-port to unstable.
original commit: 8d96133681a1302c9395485b969049c9a072d552
2011-05-31 19:14:38 -04:00
Vincent St-Amour
534cd21a09 Preserve source location in the optimizer.
original commit: c7d2f13dd0124cf87ea8770c8c5b0299d95694d5
2011-05-24 16:53:53 -04:00
Vincent St-Amour
64ca59cc41 Have TR optimize at the REPL.
original commit: 5352593bf1e24f31c48b3cca7bd333cc70f84e23
2011-05-24 16:53:53 -04:00
Matthew Flatt
e84e73f07b adjust Guide to warn about performance measurement in DrRacket
original commit: 00e17ab51f0e18be86016d7cbf82a26146eefc2a
2011-05-24 08:02:09 -06:00
Vincent St-Amour
aaf1032df0 Don't run TR integration tests during nightly builds.
original commit: 7b0f64de7278e5fb932d32ff5fc9661af72cf00b
2011-05-23 13:58:28 -04:00
Vincent St-Amour
7e441e8e31 Remove trailing whitespace.
original commit: 3b036388d64c33a63bad18e53341b54bac719b1a
2011-05-18 17:09:45 -04:00
Vincent St-Amour
794bfe775b Give more meaningful names to conditional contract forms.
original commit: a1fab6ec06b1b000e0419f617ec974f2827c57e4
2011-05-18 17:09:45 -04:00
Vincent St-Amour
c1c0fa70af Use more descriptive variable names.
original commit: 027947eef230aab2b5af2012f96c0302b07726d3
2011-05-18 17:09:45 -04:00
Vincent St-Amour
f1fe0c3080 Reduce the number of hygiene violations in rep-utils.rkt.
Beginning of an attempt to make that file comprehensible.

original commit: c02071b262a834f385210b03f06ea403ca87951f
2011-05-18 17:09:44 -04:00
Vincent St-Amour
a8cbaeba8c Fix TR documentation to use the new location of base env files.
original commit: b65054134acccced580f16383920a479b6cb26e9
2011-05-17 18:30:54 -04:00
Vincent St-Amour
a724f07dc3 Better solution to the toplevel printing bug.
original commit: bc4a7df94d199ac036087b778f22c434d276c0f6
2011-05-17 18:30:53 -04:00
Eric Dobson
303c4913bc Path manipulation now works with SomeSystemPath correctly.
original commit: 9a65545814b114fb2d33434f24d592f6c23a72db
2011-05-17 18:03:48 -04:00
Eric Dobson
a5edb5bff9 Split Path type into Path and OtherSystemPath.
original commit: 05af2b9e17f976b3ecfbc14e062b1b59fa9e1d10
2011-05-17 18:03:48 -04:00
Vincent St-Amour
2b172d3a25 Avoid printing results of tests when eliminating if branches at the toplevel.
Closes PR 11928.

original commit: 8f6d3c792024ea0985679ac3e07f4d32b02d19c1
2011-05-17 17:47:21 -04:00
Vincent St-Amour
bc20a9f27c Move base environment files to their own subdirectory.
original commit: 1ed0e8479146b478ada2c8866a468034b94cd8da
2011-05-17 15:16:18 -04:00
Sam Tobin-Hochstadt
9adfff6cde Add types for some of `syntax/stx'
Add hacked types for `with-syntax' internals.

original commit: c2291e049d61b2067cb6ef9fb8bf73b7119a912b
2011-05-16 14:55:17 -04:00
Vincent St-Amour
6b519c167c Fix optimizer expected log format.
Optimizer log format was changed on a different branch, and this test
was written using that new format, which is not recognized on current
master.

original commit: bdf1073f174d5101fb94a7bd3257da7fec90c9cc
2011-05-16 14:23:24 -04:00
Vincent St-Amour
9ae241c0b8 Coerce reals in float expressions when valid.
original commit: 4cd0ad4b1a462ff89c8959e65e815fb558454f73
2011-05-16 11:44:35 -04:00
Vincent St-Amour
bdd5b3bc1a Have the TR test harness skip emacs unsaved file backups.
original commit: e64ba228e86847cc3c4a790911d083c779ff3283
2011-05-16 11:44:35 -04:00
Sam Tobin-Hochstadt
fa5a7fe291 Add contract generation for Set type.
original commit: e92af62ca0176ee96e69fcae638ec4a1a9e7beee
2011-05-15 22:53:20 -04:00
Sam Tobin-Hochstadt
a57d49ecb7 Add type for `error-display-handler'
original commit: 27aa3f7556fb9062290abfe58acf3812655a9d9d
2011-05-08 15:36:48 -04:00
Sam Tobin-Hochstadt
605cfeec02 Add types for `in-hash' etc.
original commit: 2f3e9fc655283f4ab375c7aaebab39f45df9f45e
2011-05-08 15:36:48 -04:00
Eric Dobson
a5bbee3ce3 Changed early failure in subtyping to all non-struct values, not just null. Closes PR 11887.
original commit: e9683e1dd2f6544391cc603a6385baee59c6c07e
2011-05-06 11:39:01 -04:00
Sam Tobin-Hochstadt
26a209d374 Require numeric-predicates at the correct phase.
Closes PR 11897.

original commit: af56616fc8ebe84f61ce9d6a2f15530361c739b9
2011-05-05 19:04:38 -04:00
Sam Tobin-Hochstadt
8fc12be2c4 Include extra-procs in the #:use-sources.
original commit: 507db7e5a64c3410d56f4e60e0ab6c5150d66b60
2011-05-05 19:04:38 -04:00
Vincent St-Amour
f431fd94df Add extra early failure cases to subtype* to avoid inference failures.
original commit: d7fd2b2e3fad604677e04c405e7585dc2c48e872
2011-05-05 18:54:12 -04:00
Vincent St-Amour
b9b546b237 Integrate the TR and TR optimizer test suites.
original commit: 4b03ecde2a1858d4899d0d7702ff534e5fd4b3bd
2011-05-05 18:54:12 -04:00
Vincent St-Amour
43c99727bb Remove redundant checks from TR's optimizer tests.
Checking that the optimized and non-optimized versions return the same
results is unnecessary. Optimization logs, which are checked against
an expected log, already contain the results.

original commit: 4ea9b29d12b0ef01e180222aa84aee363020d9b8
2011-05-05 18:54:12 -04:00
Vincent St-Amour
400e3ed5da Rewrite the optimizer test suite to use rackunit.
original commit: 7b6edb452fac377b5d35eb5c77151fd7df3a26ff
2011-05-05 18:54:12 -04:00
Vincent St-Amour
09d88a7b26 Keep running TR tests even if optimizer tests fail.
original commit: fa016ea5761543428395328555e420336887d8f4
2011-05-05 18:54:12 -04:00
Vincent St-Amour
b29bb134bb Don't display name of non-test files.
original commit: 850d4d325d44c9a735ef9a2ca67610b7bd1ac1ea
2011-05-05 18:54:12 -04:00
Robby Findler
0dc02d4682 moved the docs-complete library into rackunit
to avoid having a separate, new manual for the
  one library

original commit: 507b1cd8fd81cd9c5fcf466a2a0c4c47433b0795
2011-05-05 16:10:42 -05:00
Eric Dobson
5ea9af1a69 Changed Paths to PathStrings in types where appropriate
original commit: f3c73a197e4379b6c852050ba0197dc3f31319a4
2011-05-03 18:20:31 -04:00
Eric Dobson
3de7ea8410 Correctly instantiate poly-dotted functions with zero arguments.
Closes PR 11776. Closes PR 11545.

original commit: 44f377bcd40b88147b606dbe1e8950e59b40e07d
2011-05-03 18:20:31 -04:00
Sam Tobin-Hochstadt
b55c9dfa2b Document utility predicates.
original commit: 045fd7a77c814016739020a7eedaac1ad03d4795
2011-05-03 08:15:37 -04:00
Eric Dobson
00820b2a91 Struct types now generate flat contracts when appropriate.
Closes PR 11686.

original commit: 613e121783d34c3e2cc4904f3e4f43639ab925b3
2011-05-03 08:15:37 -04:00
Sam Tobin-Hochstadt
b8e972df37 Fix a couple typos found by mflatt and the optimzer.
original commit: 31aa47f13653f30d4b4eb4fc92a13964f682f9ea
2011-04-30 19:49:00 -04:00
Vincent St-Amour
5b11b9f98b Promote more literals at compile-time.
original commit: 4d24cbee606b19dea77d7225fba4517957d6fc0a
2011-04-29 17:16:39 -04:00
Vincent St-Amour
c8313ec1ac Run optimizer tests in a throw-away namespace to reduce memory usage.
original commit: d9451ef4abb6e44ad6a47c76d07adcfe142dc43e
2011-04-29 15:28:30 -04:00
Sam Tobin-Hochstadt
acf8e410c8 Document many more numeric types, and fix documentation for `typed/scheme' etc.
original commit: 551ad63f4e2bffb717abd645265c7f45a03362e4
2011-04-29 13:27:38 -04:00
Sam Tobin-Hochstadt
2ab36e790f Document a bunch of TR types and special forms.
original commit: 6a87483f38214ab4efe00188a31b671d8551c4b7
2011-04-28 18:26:07 -04:00
Sam Tobin-Hochstadt
f1c0bd8280 Remove uneccesary provides.
original commit: 561d89f0aff26c4171776ae4ed38127e51a349d5
2011-04-28 18:25:22 -04:00
Sam Tobin-Hochstadt
aa2bbc255d Progress on missing docs.
original commit: c28f024ae05ef276c9bf2e5ad5ddea45462ac3ff
2011-04-28 18:25:22 -04:00
Vincent St-Amour
e24955b66a Add set types to TR.
Original patch by Eric Dobson.

original commit: 632e36f751ea454874548cdb62d6cb73694c773d
2011-04-28 18:22:39 -04:00
Carl Eastlund
fca7f32a50 Added Typed Racket reference subsection for syntax object(-related) types:
Syntaxof, Syntax, Identifier, Syntax-E, Sexpof, Sexp, and Datum.

original commit: 943c1bd6b5a18fce0448a1d988d222b845364b83
2011-04-27 16:46:20 -04:00
Vincent St-Amour
64b062cb6f No need for EphemeronTop since ephemerons are covariant.
Closes PR 11633.

original commit: 9740d5542b1cd0046ebdbb1c28ba73ea66025366
2011-04-26 15:35:22 -04:00
Eric Dobson
3b22083244 made ephemeron test correct
original commit: c221c070763a9527840ddb2d5ebedf63b9af464d
2011-04-26 15:35:22 -04:00
Eric Dobson
b22c8c9c24 Beginning of ephemeron patch
original commit: 80fa8d3c9799ece292b764f69d10377a34d5495d
2011-04-26 15:35:22 -04:00
Robby Findler
c2fac98d9c added lots of new tests that our documentation is complete
original commit: e7d0029aeaadcaf1c691756198f96cfd5eff0f4c
2011-04-25 13:24:43 -05:00
Robby Findler
59f0bfe857 added the racket/contract/combinator library,
and documented and adjusted these libraries:
     racket/contract/base
     racket/contract/exists
     racket/contract/parametric (renamed from exists)
     racket/contract/region

original commit: 21cbd9ad81eb35dc4d39d6063db25fcb1cc94bbc
2011-04-25 11:51:44 -05:00
Sam Tobin-Hochstadt
1185be8b1f Fix undocumented binding.
original commit: 295cb191cffbfdf0cc4bfd3840994d45cef9747c
2011-04-21 12:23:44 -04:00
Sam Tobin-Hochstadt
e903b419dd Avoid resolving types when checking subtyping on structs.
This fixes problems with caching, because sometimes we were giving the wrong answer for nested calls to `subtype'.

original commit: 82e6e9d19eb277be03ffd7b91d4549a61bcd723a
2011-04-20 09:41:42 -04:00
Sam Tobin-Hochstadt
01a6586f73 Use `in-hash' explicitly.
original commit: d459ad47b897fed0c106f78f357744c2558f7819
2011-04-20 09:41:42 -04:00
Sam Tobin-Hochstadt
172d85f97d Add type keys for Struct and StructTop.
original commit: fe60793b4de78f80e0f12605e9853b6ab6638a6d
2011-04-20 09:41:42 -04:00
Sam Tobin-Hochstadt
3f6c0aef0c Add clever comments.
original commit: 6c17b01f99473deecea91ffe3435fd6b11819f37
2011-04-20 09:41:42 -04:00
Sam Tobin-Hochstadt
c11338c883 Add debugging parameter, and wrappers for unstable/debug.
original commit: eaa63f2d1ef6c0fdec45b504aa6f2f7bcd07b2b5
2011-04-20 09:41:42 -04:00
Sam Tobin-Hochstadt
70e0482625 Add cache for `resolve-once'.
Substantial speedups on "new-metrics.rkt" test.

original commit: 79061150efbc304ac6b9c3f74ba0ac0df342857e
2011-04-20 09:41:42 -04:00
Sam Tobin-Hochstadt
13b93f380a Use eq? on sequence numbers.
original commit: 0f30f5d8de67bb80f4873a25228afbd7069d2ad1
2011-04-20 09:41:42 -04:00
Sam Tobin-Hochstadt
403354ad49 Remove useless requires.
original commit: 51083dbce6bc66305a7d3809097bdaba07c78313
2011-04-20 09:41:42 -04:00
Sam Tobin-Hochstadt
32eacbc3b7 Fix typo.
original commit: 7ba2b6e100a9075779bdbdc0a540c8b3044587a5
2011-04-20 09:41:42 -04:00
Sam Tobin-Hochstadt
96aaa73075 Remove unused macro.
Convert function to macro for inlining.

original commit: e7beef3f4fd407c7ba7f8d6c46e4f9f37fced091
2011-04-20 09:41:42 -04:00
Sam Tobin-Hochstadt
d5d338ad2f Refactor to avoid duplicated code.
original commit: 05d9e1a871de7d68d5ae878b7dc1b3bdd7be28fb
2011-04-20 09:41:42 -04:00
Sam Tobin-Hochstadt
0c42c44942 Remove useless propositional clauses. Thanks to dyoo for test case.
original commit: 0f5dfd68710bbfadb499e2ab7ff294bcd377053a
2011-04-18 18:42:10 -04:00
Sam Tobin-Hochstadt
8ebebdeb8f Copy properties when optimizing bodies of lambda/define-values.
Closes PR 11860.

original commit: 981616d504c1c0c6f91effedc6166a324de328e3
2011-04-18 15:41:50 -04:00
Sam Tobin-Hochstadt
edd83d1c06 Remove unused code.
original commit: 187dc634933a5652746d5dcb6a263732a9a46b7a
2011-04-18 15:41:50 -04:00
Hari Prashanth
c5bfe38e87 Added some examples to to the TR reference docs.
Signed-off-by: Sam Tobin-Hochstadt <samth@racket-lang.org>

original commit: 7934ac3461830df81836dfd8113e1b2e7a915a1a
2011-04-18 15:41:50 -04:00
Vincent St-Amour
58a8754f50 Optimize filter operations.
original commit: bce90e2a712dccdf0c7283abaa5be49f65d96b59
2011-04-18 13:25:28 -04:00
Robby Findler
e81eb675ac renamed parametric/c to parametric->/c
and cleaned up the organization of the related files

original commit: 570a3e58b9e82a50a35466a17cd293e1df74f6bc
2011-04-09 21:45:49 -05:00
Ryan Culpepper
12955cdc37 moved unstable/{location,srcloc} to syntax collection
fixed bugs in unstable/wrapc

original commit: 7828a7bfa78ac6591ea7074cdf85f3cd0ca12baf
2011-04-08 08:25:22 -06:00
Ryan Culpepper
b8d44a81de moved unstable/poly-c to racket/contract/parametric
original commit: f49412add8363db39de28f579add722094e21cb7
2011-04-08 08:25:22 -06:00
Ryan Culpepper
332517bc27 created racket/syntax from parts of unstable/syntax
original commit: 73ab1675222761363f6633061bc1156189f4ba59
2011-04-07 09:47:20 -06:00
Vincent St-Amour
f01605d921 Fix bounded-fixnum opts to only fire with the right number of arguments.
original commit: 9c3bee03e7f24390338e3f37d06eb84940d6a137
2011-04-01 14:56:17 -04:00
Vincent St-Amour
9005984c31 Fix type of sqr.
original commit: 60cc8c44537993882e41c3835c112a64b48c7d4c
2011-03-21 16:06:37 -04:00
Vincent St-Amour
8040ee8831 Fix type names.
original commit: 4ba3f1a6ddde6a69cd110435a0294136eb7efd13
2011-03-18 13:25:06 -04:00
Vincent St-Amour
5a35d4ea66 Optimize add1 and sub1 on floats and fixnums.
original commit: 3ebe9e78f9c86feb14d80dd499adec6438dc37e3
2011-03-18 13:25:05 -04:00
Vincent St-Amour
b05cef80e3 Use subtype test, just in case.
original commit: d06bf0de912355eb776f060c9d7a0a137f50a339
2011-03-18 13:25:05 -04:00
Vincent St-Amour
b2d591e70b Provide the index? predicate.
original commit: 17afa91c095d9df8f91820dcb8268df34f9f0165
2011-03-18 13:24:58 -04:00
Vincent St-Amour
c8a4abd264 Improve TR's fixnum optimizations, using the new sub-fixnum types.
original commit: 1f0386b46cc7ef08ac59d1d3453412f5eaf3f1e3
2011-03-18 10:25:22 -04:00
Vincent St-Amour
cefc2bec81 Changes to the regular base type environment.
original commit: bde2ee0b8d122bae0ecc2c8f0cd0e26285bb9539
2011-03-18 10:25:22 -04:00
Vincent St-Amour
f0bdca6383 Updated TR's base type environment to use the new numeric types.
This ended up being an almost complete rewrite of the base environment.
Note: While the commit is dated Jan 27, the work was finished on Mar 2.

original commit: ee29d371c9e6882edfc78621110bd11260ee942a
2011-03-18 10:25:21 -04:00
Vincent St-Amour
f2c0187b07 Add a helper function to add filters en masse to express propositions
that are true about a function's arguments if the function returns.

original commit: bf6379c36346e061031fe2916a1f6aece2367fb1
2011-03-18 10:25:20 -04:00
Vincent St-Amour
ddd2dd821b Add an Exact-Number type.
original commit: 88fac43d551687efc72b6241c2dffbbaffe270d7
2011-03-18 10:25:20 -04:00
Vincent St-Amour
a8ee106320 Take the meet of constraints earlier in the inference process.
This avoids constraint explosions in some cases, notably when working
with polydots and plain variable arity functions at the same time.

However, this also weakens inference a bit (breaks it for
unholy-terror and related tests), but not in a way that affects any
practical use cases that I know of.

original commit: 80a9027f1eee6ea56a29aa73c65675f6cf86cdb2
2011-03-18 10:25:19 -04:00
Vincent St-Amour
4f37500ccb Move subtype check in inference engine earlier, for performance reasons.
original commit: d0bab9953508c8e1ff4bf126d33dd8cf4d16bdd1
2011-03-17 18:43:59 -04:00
Vincent St-Amour
246498613a Share dotted variables to make inference faster.
original commit: e450e2815bea5891d61d641e71eb8873f9e43544
2011-03-17 18:43:58 -04:00
Vincent St-Amour
a006817f5e Remove duplicate constraints when taking their meet.
original commit: bd301912c01c27cd20892c8ddf60b4529dd3def1
2011-03-17 18:43:58 -04:00