Commit Graph

434 Commits

Author SHA1 Message Date
Sam Tobin-Hochstadt
7fc38693ec Fix tests for new output. 2010-08-26 16:59:12 -04:00
Sam Tobin-Hochstadt
3e4ddde808 Tests for new optimizer additions. 2010-08-26 16:59:12 -04:00
Sam Tobin-Hochstadt
fd2d37a710 Add optimization for `magnitude', fix handling of functions that return floats, not complexes. 2010-08-26 16:59:12 -04:00
Eli Barzilay
8e0f8dd39c More "~n" -> "\n" changes 2010-08-26 12:11:00 -04:00
Sam Tobin-Hochstadt
b08de170bc Add Futureof' type, types for future' and `touch' 2010-08-25 10:27:07 -04:00
Sam Tobin-Hochstadt
72f31ffec0 Use current-readtable as the base for the TR readtable.
Closes PR 1115.
2010-08-21 14:05:46 -04:00
Sam Tobin-Hochstadt
90eeef60d7 Provide -> in typed-scheme/no-check.
- Closes PR 10882
2010-08-18 16:37:32 -04:00
Sam Tobin-Hochstadt
3359032ad5 Handle structs with special constructors and mutability.
Closes PR 11089.
2010-08-13 11:06:56 -04:00
Sam Tobin-Hochstadt
0c1dfd3c5e Require flat contracts in box/c, hash/c, and vector/c.
Closes PR 11085.
2010-08-13 11:06:56 -04:00
Stevie Strickland
a9f6ea69bf Fix creation of a reversed List type from ListDots substitution. 2010-08-12 17:46:39 -04:00
Vincent St-Amour
4d43c21565 Added a test for unboxed nested loops. 2010-08-05 17:21:54 -04:00
Vincent St-Amour
c653a8e655 Changed optimization order for reals in complex operations.
Made generated names more informative and updated tests accordingly.
2010-08-05 16:43:36 -04:00
Vincent St-Amour
b18f2353ca Generalize naturals to integers to minimize annotations on mutated variables. 2010-08-05 09:04:25 -04:00
Vincent St-Amour
b1e744b1e1 Fixed tests that used complex literals. 2010-08-05 09:04:24 -04:00
Vincent St-Amour
bdf84f371d Optimize coercion of integer literals. 2010-08-05 09:04:23 -04:00
Vincent St-Amour
1fb68707fc Fixed a test. 2010-08-05 09:04:23 -04:00
Vincent St-Amour
fb31a6556e Added optimization for make-polar 2010-08-05 09:04:22 -04:00
Vincent St-Amour
b47a77dd57 Eliminate user-introduced boxing. 2010-08-02 21:33:30 -04:00
Sam Tobin-Hochstadt
431ff8d794 Don't treat Error types as potentially non-regular. (Reported by SK) 2010-08-02 15:41:42 -04:00
Vincent St-Amour
27f8279711 Extended use-site analysis to look through trivial rebindings, to support for loops. 2010-07-29 18:29:59 -04:00
Vincent St-Amour
260de85a6e Make sure that let-bound functions don't escape through a rhs before we change their interface. 2010-07-29 18:29:58 -04:00
Vincent St-Amour
f08456cf07 Extended unboxing of let-bound functions to support let loops. 2010-07-29 18:29:57 -04:00
Vincent St-Amour
3e9e5560bf Be more aggressive when unboxing let bindings. 2010-07-29 18:29:54 -04:00
Vincent St-Amour
bb14424918 More tests for unboxed args of let-bound functions. 2010-07-29 18:29:54 -04:00
Vincent St-Amour
9d471df8b9 Added unboxed arguments to let-bound functions. 2010-07-29 18:29:53 -04:00
Vincent St-Amour
b0d299d1b8 Added unboxed letrec-syntaxes+values bindings. 2010-07-29 18:29:52 -04:00
Vincent St-Amour
8dc23d43eb Added unboxed letrec bindings. 2010-07-29 18:29:52 -04:00
Vincent St-Amour
4803eafa67 Fixed a bug with exact complexes. 2010-07-25 22:15:18 -04:00
Vincent St-Amour
ec39ea5f33 Added one more test for unboxed let bindings. 2010-07-24 17:01:23 -04:00
Vincent St-Amour
5d86813267 Fixed a test that could not work because of shadowing in hand-optimized code. 2010-07-23 18:52:46 -04:00
Vincent St-Amour
ea580e6ff8 Added a test to the optimizer. 2010-07-23 18:52:43 -04:00
Vincent St-Amour
83987fffac 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.
2010-07-23 18:52:42 -04:00
Vincent St-Amour
063b87697a Optimized extracting parts of inexact complexes. 2010-07-23 18:52:42 -04:00
Vincent St-Amour
0493e6f762 Refactoring of the optimizer. 2010-07-23 18:52:41 -04:00
Sam Tobin-Hochstadt
5bb730f72c Optimize (apply + (map f l)) to avoid the intermediate list. 2010-07-23 14:11:40 -04:00
Vincent St-Amour
0ee0886cab Optimizations on one-argument cases of arithmetic operations. 2010-07-21 21:09:43 -04:00
Vincent St-Amour
4e944f73ab Added optimization for string-length and bytes-length. 2010-07-21 21:09:42 -04:00
Vincent St-Amour
d6ce6e664f Added box optimizations. 2010-07-21 21:09:42 -04:00
Vincent St-Amour
b13075a1c0 Changed the interface to typed racket's test harness. 2010-07-21 21:09:40 -04:00
Vincent St-Amour
47195410cb Added optimization for zero?. 2010-07-21 21:09:40 -04:00
Vincent St-Amour
8aa4fae613 Added whitespace to the typed racket test harness. 2010-07-16 19:08:21 -04:00
Vincent St-Amour
8563f02ba8 Don't abort typed racket's tests if the main tests fail. 2010-07-16 19:08:21 -04:00
Vincent St-Amour
60bfce14bc Fixed unsafe optimization that considered floats as complexes. 2010-07-16 19:08:20 -04:00
Vincent St-Amour
b8b852dbc1 Added a test for inexact imaginaries. 2010-07-16 19:08:20 -04:00
Vincent St-Amour
4d5b50dee9 Further fixes in overlap checking.
Rhss of code dispatching on overlapping structs are no longer
considered dead, and as such, are now typechecked.

Had to fix a test that passed only because some not-really-dead code
was not being typechecked.
2010-07-16 19:08:19 -04:00
Vincent St-Amour
fc29e7e856 Added mutable pair optimizations. 2010-07-16 12:22:16 -04:00
Vincent St-Amour
f21454e711 Fixed an infinite loop. 2010-07-16 12:22:16 -04:00
Vincent St-Amour
c587038b33 The imaginary parts of reals are ignored when doing complex division. 2010-07-16 12:22:15 -04:00
Vincent St-Amour
443d8b9f91 Fixnums and integers can now be coerced for complex operations. 2010-07-16 12:22:15 -04:00
Vincent St-Amour
c645aa7ebc The imaginary parts of inexact reals are ignored when doing complex multiplication. 2010-07-16 12:22:15 -04:00