Commit Graph

1295 Commits

Author SHA1 Message Date
Vincent St-Amour
73decd8674 Fix broken tests that depended on an unsafe optimization.
original commit: 14097dd90e787c08a138fa5e907680f6af96aea3
2010-09-07 20:11:44 -04:00
Vincent St-Amour
ae11f47dbd Fixed a dangling link in the doc.
original commit: 11e168f01eecd7b39228d5399e045510d6349e01
2010-09-07 16:57:02 -04:00
Vincent St-Amour
a50913b597 Removed unsafe optimization on fixnums.
original commit: ae88abd5c849b664e4720fb0ac20b29c684b2a2b
2010-09-07 16:57:02 -04:00
Vincent St-Amour
0df6f293ce Added the fixnum types to the documentation.
original commit: 440871f99d8edc425f633e87555c9f4d110c501d
2010-09-07 16:57:02 -04:00
Stevie Strickland
3e6ab819c6 Check struct predicate before checking fields.
original commit: 3b0de9c141edee84be57768a22b1ae3264fcc7f5
2010-09-02 19:59:00 -04:00
Ryan Culpepper
721c939b95 added #:commit to TR optimizer stxclasses
original commit: 0c4f82a434daa05decb6f4c92bede7ef11d5b998
2010-08-31 16:21:44 -06:00
Ryan Culpepper
7799959a8b fixed TR optimizer to work with backtracking syntax/parse update
problem was unboxed-inexact-complex-opt-expr, "non exhaustive" error variant

original commit: 04a93812b455586ca3ad8c69844e20ddc6025162
2010-08-31 10:55:58 -06:00
Vincent St-Amour
a506c6cefb Ignored a rounding error between PPC and x86.
original commit: e1fd445fa4acab85eb2894bc94dc1a9b009fc9ba
2010-08-29 10:17:56 -04:00
Sam Tobin-Hochstadt
01fd7f5b8c Use `any/c' for contracts for polymorphic functions.
original commit: 92ce3ca02d448df97ba8e9e2210a898848cae0f1
2010-08-27 18:36:49 -04:00
Sam Tobin-Hochstadt
a6a1840da1 Use the correct name in the provide.
original commit: d38af188f6ee5d52b442b14a572b7e579b417925
2010-08-27 18:36:49 -04:00
Vincent St-Amour
f360fac138 Added annotations to plain for and for* in typed code.
original commit: d3ee52d4514170b514faecb80b5c939bf7da3aea
2010-08-27 18:18:52 -04:00
Vincent St-Amour
e9e53e8382 Improved sandboxing with code from Eli.
original commit: b386f01ee45b5d6f0d6dcb59668b16e729a80cc8
2010-08-27 18:18:51 -04:00
Vincent St-Amour
b12db574b2 Removed obsolete comment.
original commit: f06c2d492653b52b720d8776f942255d284c756e
2010-08-27 18:18:51 -04:00
Vincent St-Amour
d516bb877d Better way to setup the sandbox input.
original commit: 9f540bce011106dfcda7de2c13eae3bcd3d42582
2010-08-27 14:43:22 -04:00
Vincent St-Amour
5ead0f43e2 Cleanup of syntax-parse patterns.
original commit: 988466369739ac5682205e49185c3956e07f3f0d
2010-08-27 14:43:19 -04:00
Vincent St-Amour
6df18f3f24 Cleanup of the test harness.
original commit: 1c9e8e05b061648ee7a54bf120c288eefddbfb15
2010-08-27 13:29:43 -04:00
Vincent St-Amour
989cd5ce81 Renamed tests directory to make more sense with the new structure.
original commit: 7cfba9f02d48d10a886bf2cfce2499a26b8db9af
2010-08-27 13:29:43 -04:00
Vincent St-Amour
31342660e4 Improved logging since it's now used for testing.
original commit: ca16ac4db50032324c2886766f477909f38b983c
2010-08-27 13:29:42 -04:00
Vincent St-Amour
5169f42b28 Test expected optimizations by comparing optimizer logs instead of expanded code.
original commit: 18af26ec9b4a20aa62bddc5cd04d54c6c35a7ac2
2010-08-27 13:29:42 -04:00
Vincent St-Amour
2ed40e6b09 Adapted filename logging for testing purposes.
original commit: 6f6ec3b2bf1999e64c04b9ff2afb29739e9c3eef
2010-08-27 13:29:42 -04:00
Vincent St-Amour
99658f326c Logging can be turned on from the command-line.
original commit: 9b598df60a5fb621491a3513ff445e2db6053f83
2010-08-27 13:29:41 -04:00
Vincent St-Amour
7b0682b8d0 Use sandboxes instead of duplicate files to test results when optimizing.
original commit: 46b2a2113af3e6f8174379880620f7add5b0f079
2010-08-26 18:08:41 -04:00
Vincent St-Amour
e291319f96 Exclude directories when testing TR's optimizer.
original commit: eadc2a7e4c35d56ad84a251a52f1af7ce5548425
2010-08-26 17:46:59 -04:00
Vincent St-Amour
6e2563c2a9 Documented with-asserts.
original commit: 63530ed74df880b55b4dc85398181fb2925e6947
2010-08-26 17:46:58 -04:00
Vincent St-Amour
acd7b572ae Added with-asserts, from code from Neil Toronto.
original commit: ea472a9d57b7344e9111bd37663fd7ad0884f0d5
2010-08-26 17:46:58 -04:00
Vincent St-Amour
ee39b520ce Extend sign analysis to sqr.
original commit: 694d2da4b362f83b6f492095c712703856acb068
2010-08-26 17:46:57 -04:00
Sam Tobin-Hochstadt
4d0a7b1d97 Fixes for real/imag-part
original commit: 52c90628ce5ec306287c8202ab863fefbb9a1d62
2010-08-26 16:59:12 -04:00
Sam Tobin-Hochstadt
3929e32f26 Tests for new optimizer additions.
original commit: 3e4ddde80806795923ee8dab602da80ca38e2ec0
2010-08-26 16:59:12 -04:00
Sam Tobin-Hochstadt
c35ef60c7f Avoid reboxing when computing real/imag-part.
original commit: c40c48bd97b12526e8cc9da0b9a68926478cdbdf
2010-08-26 16:59:12 -04:00
Sam Tobin-Hochstadt
daa11ce61f Add optimization for `magnitude', fix handling of functions that return floats, not complexes.
original commit: fd2d37a7108855691b566997d4c9a3032416f169
2010-08-26 16:59:12 -04:00
Eli Barzilay
48b7074752 More "~n" -> "\n" changes
original commit: 8e0f8dd39c3744472b450021f003f9cbe8cbcb62
2010-08-26 12:11:00 -04:00
Eli Barzilay
8ab581cf2e Change a bunch of "~%" and "~n" in format strings to "\n".
original commit: 7dc4d2e5a63ab416d90e44d7bf75cb5593329909
2010-08-25 17:17:01 -04:00
Eli Barzilay
d4b3623003 Lots of "~e" to "~.s" changes.
original commit: 606b7f60dc597a6870efc11364e1dd3e1a8b4a1b
2010-08-25 17:17:01 -04:00
Sam Tobin-Hochstadt
7efb07a4b0 Add Futureof' type, types for future' and `touch'
original commit: b08de170bc616d2217c6fde3dff8c3f1b042eb3b
2010-08-25 10:27:07 -04:00
Vincent St-Amour
69ebe6711b Fixed the type of file-position.
original commit: a4b0c69ec20074eba319070613ff63d40cd937e0
2010-08-24 16:58:21 -04:00
Sam Tobin-Hochstadt
5df8b46738 Use current-readtable as the base for the TR readtable.
Closes PR 1115.

original commit: 72f31ffec02fc4c8f39169b80811bca98abb8f75
2010-08-21 14:05:46 -04:00
Sam Tobin-Hochstadt
cb7ab0f8ad Provide -> in typed-scheme/no-check.
- Closes PR 10882

original commit: 90eeef60d73229217f87b847b38d180e6a929301
2010-08-18 16:37:32 -04:00
Sam Tobin-Hochstadt
04481bfb64 Better printing for environments.
original commit: 510c80b70077f09d0d5d54c5ba566abaeb59316e
2010-08-18 16:37:32 -04:00
Vincent St-Amour
f2b9a8fe2c Documented TR's behavior when mixing exactness.
original commit: cf692e986d2a3690260884d929daae321d21eeb3
2010-08-13 18:48:32 -04:00
Sam Tobin-Hochstadt
f9b3146577 Fix variance of hash tables and parameters
original commit: 6e489f8464d2bc60e64a03e3c618e8ebf7561129
2010-08-13 11:06:56 -04:00
Sam Tobin-Hochstadt
4d5a707d99 Handle structs with special constructors and mutability.
Closes PR 11089.

original commit: 3359032ad58d94c9447bf842d8abcf3ad98b41fd
2010-08-13 11:06:56 -04:00
Sam Tobin-Hochstadt
6369cdb91c Require flat contracts in box/c, hash/c, and vector/c.
Closes PR 11085.

original commit: 0c1dfd3c5e3490fedf2ec27b7aed962bd0cbd174
2010-08-13 11:06:56 -04:00
Stevie Strickland
21da67fbd9 Fix creation of a reversed List type from ListDots substitution.
original commit: a9f6ea69bfbb23d4e6ab1b5ebfcb6bb9e3b3c05a
2010-08-12 17:46:39 -04:00
Vincent St-Amour
da31c3f9a2 Documented TR's behavior on literals.
original commit: 201aaa9090b3aeedc0454bdd575565f8764ef2c8
2010-08-06 12:21:50 -04:00
Vincent St-Amour
b9ef6ec241 More precise type for expt.
original commit: 0a45e0e361d811ac07440fb24d415502d191583c
2010-08-06 11:09:04 -04:00
Vincent St-Amour
019ea62c25 Added a test for unboxed nested loops.
original commit: 4d43c2156562540bcd70cf91a4c712b1546f9f2e
2010-08-05 17:21:54 -04:00
Vincent St-Amour
918d50b25d Changed optimization order for reals in complex operations.
Made generated names more informative and updated tests accordingly.

original commit: c653a8e655712d1108bedfff505cb51d9b804005
2010-08-05 16:43:36 -04:00
Vincent St-Amour
507afc21f4 Fixed source location for for:.
original commit: 500685c0f2b02ccc8ffb8746d93fde5b25a20ccc
2010-08-05 09:04:25 -04:00
Vincent St-Amour
79f4bcfbdb Generalize naturals to integers to minimize annotations on mutated variables.
original commit: b18f2353cab9712c827dda692649bcd16bc3e79e
2010-08-05 09:04:25 -04:00
Vincent St-Amour
ece22fd4fd Added opt-lambda:.
original commit: 4cb749130954c821754fd976d92c02aca2013429
2010-08-05 09:04:25 -04:00
Vincent St-Amour
a29f10633f Added another tracing option to TR.
original commit: 0b3c637f5d5215e3fced3e83433119524145b488
2010-08-05 09:04:24 -04:00
Vincent St-Amour
d1e64146d4 Fixed parsing of keyword types.
original commit: 416591b35532d117bb70acf7a8282329b626c27b
2010-08-05 09:04:24 -04:00
Vincent St-Amour
d65ea9ef38 Unbox literals at expansion time.
original commit: 1105e70b302416c40269c11e60d7ddaa3d14b66e
2010-08-05 09:04:23 -04:00
Vincent St-Amour
82340857d9 Optimize coercion of integer literals.
original commit: bdf84f371d4ccf952e08251703a4249c37f81a85
2010-08-05 09:04:23 -04:00
Vincent St-Amour
4c41407d64 Added optimization for make-polar
original commit: fb31a6556e04d9aa6aa31c215394a80b9d146bd7
2010-08-05 09:04:22 -04:00
Vincent St-Amour
267e4c1e78 Fixed typechecking of imaginaries.
original commit: dbdbaed50600b7ce47e2dacc12ba1e6f2a0345b4
2010-08-05 09:04:21 -04:00
Vincent St-Amour
5b89be655b Added technical term links to the optimizer documentation.
original commit: 5fa6b1c1391b80eb3a9cb9a7823780359cc91d73
2010-08-03 14:57:42 -04:00
Vincent St-Amour
f51d1e640d Imaginaries can't be inexact complexes.
original commit: bce003fa1813b309382d6af01090f3cb5b9f84d5
2010-08-03 14:51:24 -04:00
Vincent St-Amour
6e1c0a9ca5 Added a link to the optimization guide in the TR reference.
original commit: 82f976a4d9c94d880a817a8a70b99f8673d01616
2010-08-02 21:33:31 -04:00
Vincent St-Amour
83c6f99041 Documented the optimizer.
original commit: cb516081c742cfeb04d754d4925389de33319cd7
2010-08-02 21:33:30 -04:00
Vincent St-Amour
492c89be8d Eliminate user-introduced boxing.
original commit: b47a77dd57a4ed92f49cd92253c6c06905923f9f
2010-08-02 21:33:30 -04:00
Sam Tobin-Hochstadt
875e95973a Remove obselete docs.
Add docs for legacy forms.

original commit: 39c2359006e2cc5da862d50b6d45e38bcf8cd72f
2010-08-02 17:23:01 -04:00
Sam Tobin-Hochstadt
2c1f173d62 define-struct:' -> struct:' in docs.
Fix typo.

original commit: 1ce4040cd299de6c837c81b872a3b722b42c9635
2010-08-02 16:59:37 -04:00
Sam Tobin-Hochstadt
1f05ee70e2 Don't treat Error types as potentially non-regular. (Reported by SK)
original commit: 431ff8d794425e12577c662be7827a38531ad39f
2010-08-02 15:41:42 -04:00
Vincent St-Amour
d19a3ff923 Added some reflection functions to Typed Racket.
original commit: c4ba6b60388a2d65fcb44a726d12373f9ca17eee
2010-07-29 19:11:20 -04:00
Vincent St-Amour
fbb55c63c4 Extended use-site analysis to look through trivial rebindings, to support for loops.
original commit: 27f8279711ae93601c00d27c8041a017afdf592c
2010-07-29 18:29:59 -04:00
Vincent St-Amour
db1103ebbc Fixed types of let loop lambdas.
original commit: 914f142f4fc16e4053e9e899b12e094ac93cf53e
2010-07-29 18:29:59 -04:00
Vincent St-Amour
a016db4697 Make sure that let-bound functions don't escape through a rhs before we change their interface.
original commit: 260de85a6efbc692abaec64d6837a4dfa965cb78
2010-07-29 18:29:58 -04:00
Vincent St-Amour
78a27d2bf9 Fixed over-generous pattern matching.
original commit: 435407b37a519c2e0c4401f9a07f93de99e134cb
2010-07-29 18:29:58 -04:00
Vincent St-Amour
851401b25b Fixed a bug that caused the let optimizations to choke on TR-introduced code.
original commit: b58461da2dc2fd495e555e24ffd1abddca3a25b3
2010-07-29 18:29:58 -04:00
Vincent St-Amour
0edccc7db9 Extended unboxing of let-bound functions to support let loops.
original commit: f08456cf0708483f267fba86e10f52c318d0dedd
2010-07-29 18:29:57 -04:00
Vincent St-Amour
a2e41f4588 Fixed a bug in the complex use-site analysis.
original commit: 855928eb7b446d7c7eb741afe8f3a6e632f95141
2010-07-29 18:29:57 -04:00
Vincent St-Amour
425ec70787 Refactoring of the call-site correction code.
original commit: 4633a2a30aef91dd7d10445d1a445c75be08fe1b
2010-07-29 18:29:55 -04:00
Vincent St-Amour
1b054179b6 Changed optimization order, to avoid potential conflicts.
original commit: 29b9eb389d8e5ee68c922e18d67e75fe6eaa607d
2010-07-29 18:29:55 -04:00
Vincent St-Amour
c631cec4d8 Fix for escaping functions.
original commit: eed20f7c3a8a459dedc8798777ff3df71f2cfb2b
2010-07-29 18:29:55 -04:00
Vincent St-Amour
0f5db893f5 Be more aggressive when unboxing let bindings.
original commit: 3e9e5560bf216a0d555b38ee2cb6cf8a4c5ef908
2010-07-29 18:29:54 -04:00
Vincent St-Amour
7c875c3bb2 More tests for unboxed args of let-bound functions.
original commit: bb144249183f8e287a37a1590df5a5aa219862f8
2010-07-29 18:29:54 -04:00
Vincent St-Amour
da5586ca57 Fixed a bug with functions with unboxed complex and non-complex args.
original commit: defe96a148227eceaee94c886ac565cf8f253951
2010-07-29 18:29:53 -04:00
Vincent St-Amour
f86dd7f384 Added unboxed arguments to let-bound functions.
original commit: 9d471df8b96be389202d39d5346f37eefb6d6607
2010-07-29 18:29:53 -04:00
Vincent St-Amour
7bc583e27b Added an option to see the result of the optimizer before compiling.
original commit: 1d758ee78221a87e477e62ab9cca03c816adf49a
2010-07-29 18:29:53 -04:00
Vincent St-Amour
ff4a589eee Register type of loop lambdas generated by the for macros.
original commit: 27f0e50d537ef3adc5c8db94927e6f61b3e89dee
2010-07-29 18:29:52 -04:00
Vincent St-Amour
28378f77d5 Added unboxed letrec-syntaxes+values bindings.
original commit: b0d299d1b86e2bf07c7715e87ebb303f03bde853
2010-07-29 18:29:52 -04:00
Vincent St-Amour
277df87ff6 Added unboxed letrec bindings.
original commit: 8dc23d43eb23eac7a887ae2f3ef3633c54d3ba87
2010-07-29 18:29:52 -04:00
Vincent St-Amour
c625d547ca Fixed a bug with exact complexes.
original commit: 4803eafa6722acfdf0d37dab3782660d22665b84
2010-07-25 22:15:18 -04:00
Vincent St-Amour
6473855e45 Fix to tolerate complexes of unknown exactness inside inexact-complex
expressions.

original commit: 1b998f25e5626ff18bf18c911c4b161a66574b72
2010-07-25 20:13:36 -04:00
Vincent St-Amour
34d7dda844 Added a test for cross-module struct optimization.
(cherry picked from commit 4e6fc3154bd286d3edcd36a25bfc672cc6a0659d)

original commit: 8f47f0019fae4faf0ea8bb09d7fbd3b3e06254df
2010-07-25 04:16:08 -04:00
Vincent St-Amour
a248746a2d Added one more test for unboxed let bindings.
original commit: ec39ea5f3352068497a97c959e72814fab7089d0
2010-07-24 17:01:23 -04:00
Vincent St-Amour
ea0d96e9dd The optimizer now ignores code that is inside a with-handlers form,
since it would be typechecked in an unusual manner.

original commit: 80b6ef7dd19e7d094578ae176442ee3fa8047b96
2010-07-23 18:52:47 -04:00
Vincent St-Amour
27fe7f732f Fixed a test that could not work because of shadowing in hand-optimized code.
original commit: 5d86813267521e3191b91e884418ac39bdb3a8e2
2010-07-23 18:52:46 -04:00
Vincent St-Amour
56fde8109f Fixed unboxing of let bindings.
original commit: 5892ef2fad2c92346cd2871e25846696f3312185
2010-07-23 18:52:46 -04:00
Vincent St-Amour
5c75aa1793 Fixed typo.
original commit: 12ce9abda6916bd590ac76666a6f3db4a63dd2f3
2010-07-23 18:52:45 -04:00
Vincent St-Amour
a479e9d5e3 The optimizer now ignores expressions ignored by the typechecker.
original commit: 82b064a520405575ea69e453dfd768ac2df2b17c
2010-07-23 18:52:44 -04:00
Vincent St-Amour
e9d9c2aca9 Added a test to the optimizer.
original commit: ea580e6ff88cb3be758690b99a1968179cbc3c26
2010-07-23 18:52:43 -04:00
Vincent St-Amour
eb60ac080a let bindings of inexact-complex numbers can be replaced by bindings
for each of their components.

This allows unboxing of intermediate results that are bound and only
ever used in positions where they would be unboxed.

original commit: 83987fffac7719ab0c35d3df49ea0a7adf4bc9b6
2010-07-23 18:52:42 -04:00
Vincent St-Amour
fe68e29caa Optimized extracting parts of inexact complexes.
original commit: 063b87697a333b2b8f53e6d2b8a43e8f500e2762
2010-07-23 18:52:42 -04:00
Vincent St-Amour
2ef2641a4d Refactoring of the optimizer.
original commit: 0493e6f7623361a289989654d25deac19e552de6
2010-07-23 18:52:41 -04:00
Sam Tobin-Hochstadt
69476bba24 Optimize (apply + (map f l)) to avoid the intermediate list.
original commit: 5bb730f72c91f52166009d1e5fbe52a346c91edf
2010-07-23 14:11:40 -04:00
Vincent St-Amour
9bef097987 Optimizations on one-argument cases of arithmetic operations.
original commit: 0ee0886cab6989843a9bef1eb3797657e0f1d0c2
2010-07-21 21:09:43 -04:00
Vincent St-Amour
6c0c6b3f65 Added optimization for string-length and bytes-length.
original commit: 4e944f73abc138b7d283020bf5c577fe6ecf6e95
2010-07-21 21:09:42 -04:00
Vincent St-Amour
19f4d78569 Added box optimizations.
original commit: d6ce6e664f0bd361207725fb3ea9b2a265f39374
2010-07-21 21:09:42 -04:00