Vincent St-Amour
e9ff5ae34d
Moved Typed Scheme's optimizer to its own subdirectory.
...
original commit: 24aad77da3e3c2e411642cdb08fffaaa31a0b1cb
2010-07-08 18:29:15 -04:00
Vincent St-Amour
8ffb3128e4
Fixed pessimization of some complex code.
...
original commit: ea8523bd63665f5330d25c7babf3872298f1e570
2010-07-07 22:08:51 -04:00
Vincent St-Amour
9320340cb9
Improved unboxed complex operations.
...
Intermediate results are kept as unboxed floats as long as we stay
within complex arithmetic code.
original commit: 7853d333495376f065c63a19866ac2eba6f8926a
2010-07-07 19:42:56 -04:00
Vincent St-Amour
f7ac316db2
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.
original commit: 7921074eef1e36984479db5b8eea3c6bbbe13064
2010-07-07 19:42:55 -04:00
Vincent St-Amour
d55cf6d13a
Avoided duplicate computation in inexact complex division.
...
original commit: de52d2ce9ffede21df37e74edb6cdb47bfab1828
2010-07-07 19:42:55 -04:00
Vincent St-Amour
9e3912d390
Generic inexact complex arithmetic operations are now replaced with
...
the right combinations of unsafe float operations.
original commit: 3fb69bc764885f2e6ef25134da747caa32b80f05
2010-07-07 19:42:54 -04:00
Vincent St-Amour
592aa2ac8c
Added an optimization for vector-length of known-length vectors.
...
original commit: e52d63ee686e20401f0b0df80d178e40e9a0226f
2010-07-07 19:42:54 -04:00
Vincent St-Amour
ccbf54bdf7
Added support for make-flrectangular, flreal-part, flimag-part and
...
their unsafe counterparts to Typed Scheme and its optimizer.
original commit: 389a20795a5bb6db25341b899e7ec58e6eb5a0d1
2010-07-02 20:58:30 -04:00
Vincent St-Amour
a3a3bd1e2e
Added coercion of fixnums to floats to the optimizer.
...
original commit: 556734a223f4193c1c23ded76f204f1e6bb25295
2010-07-02 20:58:29 -04:00
Vincent St-Amour
fe84eaf722
Added struct optimizations.
...
original commit: a6d11a1df08336183e1af36b787c134e1bf4f469
2010-07-02 20:58:28 -04:00
Vincent St-Amour
c6d892cd0f
Fixed make-vector's type to reflect generalization on vectors.
...
original commit: ed4f7b7bd7bc452b6accfd32ae14402fc60532c7
2010-07-02 15:48:08 -04:00
Vincent St-Amour
d1687b5b2b
Added optimization when iterating over lists.
...
original commit: 458b6b65c9c281c0da2f2c63de068037d3d55703
2010-07-02 15:48:06 -04:00
Vincent St-Amour
e431a658e6
Fixed types for the unsafe versions of vector-length.
...
original commit: 843621398b1086f492f6b9130a7a93a65c2fe4f3
2010-07-02 15:48:03 -04:00
Vincent St-Amour
fbf7cbd494
Fixed the behavior of the optimizer on sqrt.
...
original commit: 351de3f767cd7b32fe75963e206c7c8da379d26b
2010-07-02 15:47:58 -04:00
Vincent St-Amour
1ebe111f88
Fixed the type of real->decimal-string.
...
original commit: cdfbbc5476b6c2df62aedc8813ad13bc28cb2619
2010-07-02 15:47:56 -04:00
Sam Tobin-Hochstadt
75ea7fcd25
add `displayln'
...
original commit: 6f7c0112d3310a3e189874974c0a623a0c330537
2010-07-01 17:12:59 -04:00
Sam Tobin-Hochstadt
b837057b1d
Fix error reporting regression.
...
original commit: 829689eb9d93f19a7872a31c8d536be542ed8675
2010-07-01 13:46:16 -04:00
Sam Tobin-Hochstadt
63b18963f3
Better error message for multiple ->
...
Closes PR 10493.
original commit: 75bd26d3265d807406db3d7014e4a02ec826630c
2010-07-01 11:35:21 -04:00
Vincent St-Amour
2229399d2c
Updated build-list and build-vector's types for fixnums.
...
original commit: 1fe70704a2cbe4462f9bd1b116db9f356d06b4ea
2010-06-30 14:53:23 -04:00
Vincent St-Amour
eb326dd443
Better types for modulo and remainder involving fixnums.
...
original commit: adf5c8c030656026d70a627009a0655bd1546af7
2010-06-30 14:53:22 -04:00
Vincent St-Amour
6dd9ffd727
Added the Nonnegative-Float type.
...
original commit: 62a15df3eb2fd7dc5a8ef2455c0f20918697a668
2010-06-30 14:53:22 -04:00
Vincent St-Amour
e25b242c6a
Added filters for numeric comparisons.
...
original commit: f026da5ecf4cd144dfc82ec5660c95542c49bb07
2010-06-30 14:53:22 -04:00
Vincent St-Amour
9b7ee99d39
Extended type signatures for addition.
...
original commit: e8c42cd20cc00e607e44bb6f172333d49b8a707d
2010-06-30 14:53:21 -04:00
Vincent St-Amour
f89158a144
Updated make-vector's type for fixnums.
...
original commit: 06b636b2e31e32fed83d1a58293e1b8f36f8381a
2010-06-30 14:53:21 -04:00
Vincent St-Amour
b7d9ed75e2
Added the Inexact-Complex type.
...
original commit: dcfb2d8a94b1359217b9451b7a97d4afa425a6da
2010-06-30 14:53:21 -04:00
Vincent St-Amour
c6a22a53f4
Fixed the type of min and max to only operate on reals.
...
original commit: ef576e27c5187783648209c55d4ca211ff693e05
2010-06-30 14:53:20 -04:00
Vincent St-Amour
848b6f0e02
Kept track of source location better in the for: macros and got rid of
...
useless type ascriptions.
original commit: 22a652ef8effe8cf670cd69221cb3dd4689b6a21
2010-06-30 14:53:20 -04:00
Vincent St-Amour
431d91bf89
Fixed the type for hash-ref!
...
original commit: 90252c9bd33e7205a5494dd13fc823d6df78b477
2010-06-30 14:53:20 -04:00
Vincent St-Amour
98738ea50a
Added a rule for valid float promotion when dividing.
...
original commit: 8ec6d7ff3f835f88be73c07dddcf9e2dd6388e79
2010-06-30 14:53:19 -04:00
Vincent St-Amour
be0e26235a
Fixed build-vector's type.
...
original commit: f27aac552fde4580850493dbde9fbb3d4a989e5a
2010-06-30 14:53:19 -04:00
Vincent St-Amour
783b505c9d
Eliminate exact->inexact of floats.
...
original commit: a6872c67a74e5d65a8a68b7fd5daa16b4225efe9
2010-06-30 14:53:18 -04:00
Vincent St-Amour
d89e82755f
Added fixnum optimizations.
...
original commit: dfafc0b2958debe3953aa6c525a737f8c63859c8
2010-06-30 14:53:18 -04:00
Vincent St-Amour
18155bf2c5
Added fixnums to more type signatures.
...
original commit: cee39c4a38bb0ca41f79a4b8e9e159501e5d627d
2010-06-30 14:53:18 -04:00
Sam Tobin-Hochstadt
887f054a55
Refactor struct type representation.
...
- fields now represented by fld struct.
- mutability on per-field basis
- accessors are per field
This fixes lots of existing bugs, allows future #:mutable on fields.
original commit: c01b2397796cce0ade2ed7515ffe33c9eb338c4f
2010-06-29 17:33:36 -04:00
Sam Tobin-Hochstadt
7341d85d62
Remove bogus reference to 'sexpression', add docs for Sexp type, don't use Sexp where inappropriate
...
original commit: 26e73cf61d80636246dd0bf5912b7670c30698d6
2010-06-28 11:12:21 -04:00
Sam Tobin-Hochstadt
e3f8fff0e8
Generalize mutated variables when inferring types.
...
original commit: 90d8a3cc13dd76ba8d1eaefa98ee5e3248e43b04
2010-06-28 11:12:20 -04:00
Vincent St-Amour
e96760613b
Fixed the optimizer so that it optimizes float comparisons.
...
original commit: 382a45ad6fe99f758451631b07fac393333893a8
2010-06-25 11:00:26 -04:00
Vincent St-Amour
fe3ce60a26
Typed Scheme now optimizes (exact->inexact <Integer>) to (->fl <Integer>).
...
original commit: d6008f9191c5e00e335d2f683fecbc9d09c34475
2010-06-25 11:00:25 -04:00
Vincent St-Amour
773d817389
Typed Scheme now optimizes (fl)vector-length for all vectors and
...
vector-(ref,set!) for vectors of known length.
original commit: b345d5f0f0d2b8bbf02a5a97b335e288ef172e58
2010-06-25 11:00:24 -04:00
Vincent St-Amour
b8378a32a7
Added better tracing to the optimizer.
...
original commit: d47221c55dba99ecbce45affa92011203b02bb9e
2010-06-25 11:00:23 -04:00
Sam Tobin-Hochstadt
680e7fee29
More fixnum improvements.
...
original commit: 3251712ef79832415b371a7ff2c6593da0372411
2010-06-24 18:17:01 -04:00
Sam Tobin-Hochstadt
a7b787db6c
Add Fixnum type.
...
original commit: 4b1c62c9785a6578ba2f894a53a8ee6f1a03152f
2010-06-24 18:05:55 -04:00
Sam Tobin-Hochstadt
68ba63ce4d
Better handling of unsafe identifier generation.
...
original commit: 3078807757448b9223bcd58cfa10d7b30db4ddee
2010-06-24 11:05:55 -04:00
Vincent St-Amour
1d48090ecb
Added support for unsafe struct operations to Typed Scheme.
...
original commit: 7d1040283ed325c93fb5499649a0aba5cfadfab7
2010-06-22 18:42:25 -04:00
Vincent St-Amour
9cbdbd8ed7
Added support for unsafe operations on heterogenous vectors.
...
original commit: 379d9a21251696293a997aa1c58611b85b41b6ce
2010-06-22 18:29:57 -04:00
Vincent St-Amour
8dc90d067b
Moved the types for some byte string operations to
...
base-env-indexing-abs.rkt.
original commit: eea31102b015d77ee989dfb0951729b3f1bfa313
2010-06-22 18:29:57 -04:00
Vincent St-Amour
1cf790fc86
Fixed the types of flvector operations.
...
original commit: 192c1fa995f44163d42e46f2466bdd05e74a98a8
2010-06-22 18:29:56 -04:00
Vincent St-Amour
0f27106fdd
Made make-vector's type more convenient.
...
original commit: 61545c4e75795adbdd951ed94fb6274a1a7b9709
2010-06-22 18:29:56 -04:00
Sam Tobin-Hochstadt
8869cd4d22
Add `struct:'
...
original commit: 6e1954d79b520fefd21abe81d06fe615e056ac93
2010-06-22 16:29:35 -04:00
Sam Tobin-Hochstadt
1e98e1c1fd
Add index-env.
...
- Remove Dotted and DottedBoth values from tvar-env
- Abstract env extension and lookup for tvar/index-env
- Abstract index inference
- Remove pointless parameterizations
original commit: d570006db81dda68e69b7058fd3edfb68cc3d042
2010-06-21 18:29:58 -04:00