Vincent St-Amour
8d2f66faa6
First attempt at handling missed optimization cascades.
...
Currently, if missed optimizations a and b are of the same kind, a is caused
by b, and b is caused by c, we merge them into a single miss with cause c.
This works in some cases, but fails in others.
2011-06-17 18:18:02 -04:00
Vincent St-Amour
6de90b7185
Sort irritants by source location.
2011-06-17 18:18:02 -04:00
Vincent St-Amour
c5ca1422a2
Abstract out printing of missed optimization log messages.
2011-06-17 18:18:02 -04:00
Vincent St-Amour
4c31b08554
Put logging code in its own file.
2011-06-17 18:18:02 -04:00
Vincent St-Amour
c54717d557
Have more structure to missed optimizations, for eventual handling of nesting and/or missed optimization cascades.
2011-06-17 18:18:02 -04:00
Vincent St-Amour
6b5095df2d
Have multiple irritants for missed optimizations.
2011-06-17 18:18:02 -04:00
Vincent St-Amour
cb706aab9c
Change log message to reflect new behavior.
2011-06-17 18:18:02 -04:00
Vincent St-Amour
f547b99ed5
Remove useless irritant.
2011-06-17 18:18:02 -04:00
Vincent St-Amour
9528f63cf0
Swap miss region and irritant.
2011-06-17 18:18:02 -04:00
Vincent St-Amour
647ae4fe9a
Report missed optimizations for unary float operations.
2011-06-17 18:18:01 -04:00
Vincent St-Amour
cc129adb39
Make unary float optimizations less restrictive.
2011-06-17 18:18:01 -04:00
Vincent St-Amour
484fb029f1
Rephrase a missed optimization message.
2011-06-17 18:18:01 -04:00
Vincent St-Amour
81d6e380da
Add a "unique" key to log messages that are sent by the optimizer.
2011-06-17 18:18:01 -04:00
Vincent St-Amour
7347da4919
Use racket's logging facilities for the optimizer logs.
2011-06-17 18:18:01 -04:00
Vincent St-Amour
9ae4f82c0a
Sort optimizer logs by source location, to prepare for eventual user consumption.
2011-06-17 18:18:00 -04:00
Vincent St-Amour
5a151420e4
Keep source location around for derived pair optimizations.
2011-06-17 18:18:00 -04:00
Vincent St-Amour
b8b061fb39
Don't print duplicate log entries.
2011-06-17 18:18:00 -04:00
Vincent St-Amour
b598c4a1eb
close-call -> missed-optimization
2011-06-17 18:18:00 -04:00
Vincent St-Amour
c73bc6c918
Report unexpected complex types in arithmetic expressions.
2011-06-17 18:18:00 -04:00
Vincent St-Amour
2a7254a324
Add in-complex-layer?.
2011-06-17 18:18:00 -04:00
Vincent St-Amour
2a4a4e8184
Generalize reporting of wasted precision to arbitrary exact arithmetic expressions.
2011-06-17 18:18:00 -04:00
Vincent St-Amour
ec696f26ae
Add an arith-expr syntax class, to simplify parts of the optimizer.
2011-06-17 18:17:59 -04:00
Vincent St-Amour
b64b49b078
Move layer predicates to their own file.
2011-06-17 18:17:59 -04:00
Vincent St-Amour
cd027109c9
Report when exact arithmetic is used inside float expressions, which may make the extra precision useless.
2011-06-17 18:17:59 -04:00
Vincent St-Amour
89ca99210e
Report close calls for pair/mpair optimizations.
2011-06-17 18:17:59 -04:00
Vincent St-Amour
95bf94577c
Show irritant for the currently detected close calls.
2011-06-17 18:17:59 -04:00
Vincent St-Amour
33962befd4
Made logging format more compact and less ambiguous.
2011-06-17 18:17:59 -04:00
Vincent St-Amour
26cc2cf6dc
Add layer predicates.
2011-06-17 18:17:59 -04:00
Vincent St-Amour
7b2c6f5765
First attempt at logging unexpected Real types popping up.
2011-06-17 18:17:58 -04:00
Vincent St-Amour
303e1f7f88
Add logging infrastructure to log close calls.
2011-06-17 18:17:58 -04:00
Eric Dobson
1348887bd1
Cleaned up base-env. Added comments about untyped identifiers.
...
Used one-of/c to clean up some types.
2011-06-17 15:17:20 -04:00
Eric Dobson
0671945a8d
Moved tests for equality to unit tests
2011-06-17 15:17:20 -04:00
Eric Dobson
feeccc062b
Added types for reading and writing operations
2011-06-17 15:17:19 -04:00
Eric Dobson
029651b9ee
Added types for regexp operations. Changed Regexp to correspond to regexp?.
2011-06-17 15:17:19 -04:00
Eric Dobson
3e1a95750d
Added public names for recently added types
2011-06-17 15:17:19 -04:00
Eric Dobson
6f3bbad367
Added types for I/O operations
2011-06-17 15:17:19 -04:00
Eric Dobson
54a12afb49
Added types and some tests for port operations
2011-06-17 15:17:19 -04:00
Eric Dobson
c77e906c7a
Added types and tests for equality operations.
2011-06-17 15:17:19 -04:00
Eric Dobson
2d152bac79
Added types and tests for raising and handling exceptions
2011-06-17 15:17:19 -04:00
Eric Dobson
4ba12dd20e
Added types and tests for symbol operations
2011-06-17 15:17:19 -04:00
Eric Dobson
ab23db7b5b
Added types and tests for string operations
2011-06-17 15:17:19 -04:00
Vincent St-Amour
26541ffbbd
Unify types and filter behavior of not and false?.
2011-06-16 18:08:44 -04:00
Sam Tobin-Hochstadt
eaa156554a
Add contracts for `Sequenceof' values.
2011-06-15 17:02:09 -04:00
Vincent St-Amour
e057e6a857
Optimize in typed regions.
2011-06-15 11:20:51 -04:00
Sam Tobin-Hochstadt
b76819a66e
Wrap expected type. Closes PR 11980.
2011-06-14 19:05:16 -04:00
Vincent St-Amour
48bf6f8290
Make type annotations optional for for*/lists: and for*/fold:.
2011-06-14 17:53:28 -04:00
Vincent St-Amour
3ff1a3320a
Improve error message for untyped variables that don't come from the original program.
2011-06-14 17:53:28 -04:00
Vincent St-Amour
7a4bd387cc
Change examples to use prettier types.
2011-06-14 17:53:28 -04:00
Vincent St-Amour
d43c8fc406
Tidy up TR reference.
2011-06-14 17:53:28 -04:00
Vincent St-Amour
1cf57b893c
Add note about optimizing structs to the TR docs.
2011-06-14 17:53:28 -04:00