Commit Graph

987 Commits

Author SHA1 Message Date
Vincent St-Amour
3dbbd6d3fc Added types for integer/bytes functions. 2010-07-16 12:22:09 -04:00
Vincent St-Amour
abee5a4db7 Added type for collect-garbage. 2010-07-16 12:22:09 -04:00
Ryan Culpepper
07f57aac9b Added uses of unstable/struct 2010-07-13 12:07:47 -06:00
Robby Findler
41cfcbe862 rewrote an ->d contract so that it would work with a let*-style scoping 2010-07-10 10:01:25 -05:00
Sam Tobin-Hochstadt
e28b60e44f remove debugging printf 2010-07-09 14:06:46 -04:00
Sam Tobin-Hochstadt
d030d0631d Fix missing unquote 2010-07-09 13:52:39 -04:00
Sam Tobin-Hochstadt
a84796d8d7 add variance helper functions 2010-07-09 13:52:39 -04:00
Sam Tobin-Hochstadt
c6fb95d44d add `make-constant' 2010-07-09 13:52:39 -04:00
Sam Tobin-Hochstadt
898c92eb1e generalize inferred types for invariant positions 2010-07-09 13:52:39 -04:00
Vincent St-Amour
8505bd8bca Removed a stray TODO comment. 2010-07-08 18:29:16 -04:00
Vincent St-Amour
dbda43ac6b Pushed optimizations to auxiliary syntax classes. 2010-07-08 18:29:15 -04:00
Vincent St-Amour
c3f46cc8a6 Refactoring of the optimizer. 2010-07-08 18:29:15 -04:00
Vincent St-Amour
24aad77da3 Moved Typed Scheme's optimizer to its own subdirectory. 2010-07-08 18:29:15 -04:00
Vincent St-Amour
ea8523bd63 Fixed pessimization of some complex code. 2010-07-07 22:08:51 -04:00
Vincent St-Amour
7853d33349 Improved unboxed complex operations.
Intermediate results are kept as unboxed floats as long as we stay
within complex arithmetic code.
2010-07-07 19:42:56 -04:00
Vincent St-Amour
7921074eef Avoid boxing intermediate results when doing multiple complex
operations in a row.

However, because of values and let-values, we lose float unboxing.
If we have a single complex operation, this is much slower than my
previous implementation (though still faster than generic
operations). With 2 complex operations, the new implementation becomes
faster.
2010-07-07 19:42:55 -04:00
Vincent St-Amour
de52d2ce9f Avoided duplicate computation in inexact complex division. 2010-07-07 19:42:55 -04:00
Vincent St-Amour
3fb69bc764 Generic inexact complex arithmetic operations are now replaced with
the right combinations of unsafe float operations.
2010-07-07 19:42:54 -04:00
Vincent St-Amour
e52d63ee68 Added an optimization for vector-length of known-length vectors. 2010-07-07 19:42:54 -04:00
Vincent St-Amour
eb7fc7a965 Have type ascriptions record the ascribed type in the type table. 2010-07-07 19:42:54 -04:00
Sam Tobin-Hochstadt
e865380f6f Add typeof mappings only to original form. 2010-07-06 14:09:46 -04:00
Vincent St-Amour
389a20795a Added support for make-flrectangular, flreal-part, flimag-part and
their unsafe counterparts to Typed Scheme and its optimizer.
2010-07-02 20:58:30 -04:00
Vincent St-Amour
556734a223 Added coercion of fixnums to floats to the optimizer. 2010-07-02 20:58:29 -04:00
Vincent St-Amour
a6d11a1df0 Added struct optimizations. 2010-07-02 20:58:28 -04:00
Sam Tobin-Hochstadt
0e400291e7 Fix inference for heterogenous vectors. 2010-07-02 17:25:07 -04:00
Sam Tobin-Hochstadt
da3b4ed543 Use `define-type' to make docs clearer. 2010-07-02 17:25:07 -04:00
Sam Tobin-Hochstadt
219682bbbe Refactoring of tc-app.
- Move `check-below' into its own module
 - Move `tc/apply' to its own unit
 - Move `tc/funapp' and `tc/funapp1' to own module, outside of unit
2010-07-02 17:25:07 -04:00
Sam Tobin-Hochstadt
570df7d665 Generalize fixed-length lists to listofs.
Closes PR10057.
2010-07-02 17:25:07 -04:00
Vincent St-Amour
ed4f7b7bd7 Fixed make-vector's type to reflect generalization on vectors. 2010-07-02 15:48:08 -04:00
Vincent St-Amour
40988d6d54 Added support for recursive types to vector-ref and vector-set!. 2010-07-02 15:48:07 -04:00
Vincent St-Amour
458b6b65c9 Added optimization when iterating over lists. 2010-07-02 15:48:06 -04:00
Vincent St-Amour
f79f617ee8 Calls to vector now return heterogenous vectors, to preserve length
information.
2010-07-02 15:48:03 -04:00
Vincent St-Amour
843621398b Fixed types for the unsafe versions of vector-length. 2010-07-02 15:48:03 -04:00
Vincent St-Amour
8c25e46141 Literal vectors are now given HeterogenousVector types to preserve
length information.
2010-07-02 15:48:00 -04:00
Vincent St-Amour
351de3f767 Fixed the behavior of the optimizer on sqrt. 2010-07-02 15:47:58 -04:00
Vincent St-Amour
cdfbbc5476 Fixed the type of real->decimal-string. 2010-07-02 15:47:56 -04:00
Vincent St-Amour
636fca1a83 Generalization is now done on vector types. 2010-07-02 15:16:11 -04:00
Vincent St-Amour
06279de2ca Nonnegative-Floats are now generalized to Floats. 2010-07-02 15:16:10 -04:00
Sam Tobin-Hochstadt
ed88b9dd1a Better handling of expected types for `vector' 2010-07-01 17:32:16 -04:00
Sam Tobin-Hochstadt
71bb63c128 Better typing for `make-sequence'. 2010-07-01 17:12:59 -04:00
Sam Tobin-Hochstadt
9a1c08e230 Avoid some quotes while printing types. 2010-07-01 17:12:59 -04:00
Sam Tobin-Hochstadt
6f7c0112d3 add `displayln' 2010-07-01 17:12:59 -04:00
Sam Tobin-Hochstadt
829689eb9d Fix error reporting regression. 2010-07-01 13:46:16 -04:00
Sam Tobin-Hochstadt
75bd26d326 Better error message for multiple ->
Closes PR 10493.
2010-07-01 11:35:21 -04:00
Sam Tobin-Hochstadt
efbdfd3e6e Support syntax errors blaming multiple syntaxes. 2010-07-01 11:35:20 -04:00
Vincent St-Amour
1fe70704a2 Updated build-list and build-vector's types for fixnums. 2010-06-30 14:53:23 -04:00
Vincent St-Amour
adf5c8c030 Better types for modulo and remainder involving fixnums. 2010-06-30 14:53:22 -04:00
Vincent St-Amour
62a15df3eb Added the Nonnegative-Float type. 2010-06-30 14:53:22 -04:00
Vincent St-Amour
f026da5ecf Added filters for numeric comparisons. 2010-06-30 14:53:22 -04:00
Vincent St-Amour
e8c42cd20c Extended type signatures for addition. 2010-06-30 14:53:21 -04:00