Commit Graph

350 Commits

Author SHA1 Message Date
Vincent St-Amour
d1687b5b2b Added optimization when iterating over lists.
original commit: 458b6b65c9c281c0da2f2c63de068037d3d55703
2010-07-02 15:48:06 -04:00
Vincent St-Amour
f121650526 Added support for the 2 versions of optimizer tests to be written in
different languages.

original commit: 1886572906c40c11eb777a3eb1e273ce3877037b
2010-07-02 15:48:05 -04:00
Vincent St-Amour
228f9a971b Fixed some tests that used to test for an invalid optimization that is
now valid.

original commit: f6077b02f121c4300a761de4f5f2f1a18c361d7e
2010-07-02 15:48:04 -04:00
Vincent St-Amour
93d8f8839c Literal vectors are now given HeterogenousVector types to preserve
length information.

original commit: 8c25e46141da263e7f8b75813eb5b09af43e0aee
2010-07-02 15:48:00 -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
98c88bf163 Generalization is now done on vector types.
original commit: 636fca1a83d453877bcab60f8e3f613d2afd97c3
2010-07-02 15:16:11 -04:00
Sam Tobin-Hochstadt
2fd9e3236c Better typing for `make-sequence'.
original commit: 71bb63c128f8331dc19455bb75a8918dc5055e03
2010-07-01 17:12:59 -04:00
Sam Tobin-Hochstadt
4b3b0cdf41 Add --just flag for running tests.
original commit: 3d347f117b9ba648536094eb9e0bf1ab1653ea76
2010-07-01 13:47:02 -04:00
Sam Tobin-Hochstadt
2a2a54c438 Fix error spec for this test.
original commit: 4f3e3625b30adb9ec7af9d0139230d8b85150310
2010-07-01 13:45:52 -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
6dd9ffd727 Added the Nonnegative-Float type.
original commit: 62a15df3eb2fd7dc5a8ef2455c0f20918697a668
2010-06-30 14:53:22 -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
d89e82755f Added fixnum optimizations.
original commit: dfafc0b2958debe3953aa6c525a737f8c63859c8
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
Vincent St-Amour
db81a50276 Fixed Typed Scheme's optimizer's test harness to work with drdr.
original commit: 28acece484b050cd42f57c3826e47d92bde31aee
2010-06-25 13:25:42 -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
92347a18b6 Wrote a test harness and a couple of tests for Typed Scheme's optimizer.
original commit: fd987546b3d0293edba097f940c33fbdbf6c3b86
2010-06-25 11:00:23 -04:00
Sam Tobin-Hochstadt
a7b787db6c Add Fixnum type.
original commit: 4b1c62c9785a6578ba2f894a53a8ee6f1a03152f
2010-06-24 18:05:55 -04:00
Sam Tobin-Hochstadt
8e76e34368 More options for test runner.
original commit: 5b1118d514ca8cc7f0071bfa531f8268401fc531
2010-06-24 16:46:31 -04:00
Sam Tobin-Hochstadt
7f6da53efa Use the correct field numbers in substructs.
Maintain table of struct accessors/mutators.

original commit: 3c8952d63d2cd28a3b5a588c0367b53dc963308b
2010-06-24 14:53:38 -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
Sam Tobin-Hochstadt
8869cd4d22 Add `struct:'
original commit: 6e1954d79b520fefd21abe81d06fe615e056ac93
2010-06-22 16:29:35 -04:00
Sam Tobin-Hochstadt
b718e60469 Typecheck `map' expression, not just #'map.
original commit: bce2cedf3864166c137ef91ca3f79f45fb6745da
2010-06-22 10:12:54 -04:00
Sam Tobin-Hochstadt
0bf7faa4fa Initialize `infer' for tests
original commit: 95c5f942e6854e1d066b7627b2f65097e14e24b9
2010-06-22 10:11:14 -04:00
Sam Tobin-Hochstadt
f50aa4917a support `map' over multiple ListDots with the same bound
- also support ListDots + Listof (map errors when not same length)

original commit: 0c7c722e16cd9f6e3e88deaa45cb681337021078
2010-06-21 18:30:30 -04:00
Sam Tobin-Hochstadt
6514ee71e1 Refactor substitution.
- new file types/substitute
 - use structs for substitutions

original commit: 44d46e4cd7ecc06a264282b31dd7ba47dee421f1
2010-06-21 18:30:28 -04:00
Sam Tobin-Hochstadt
da323feea3 This test case now passes.
original commit: dcc8beb5cd00f6fc12c450be56b4ba83823e3898
2010-06-21 18:30:28 -04:00
Sam Tobin-Hochstadt
c2b7caa66d The inference engine doesn't need this annotation anymore.
original commit: e235c837b0d20538ca4c0fc024c18ddb30ac2ae4
2010-06-21 18:30:25 -04:00
Sam Tobin-Hochstadt
fbd795c01e Re-enable the printer here.
original commit: 7b2de5373380a0bc833215dd9d3beed87fa686c3
2010-06-21 18:30:24 -04:00
Sam Tobin-Hochstadt
38e065db7f Change type variable environments from hash tables to sets.
original commit: 12384c6c3fd14020c99018d51058240f4258074d
2010-06-21 18:29:59 -04:00
Sam Tobin-Hochstadt
78b767252d Refactor test harness.
original commit: e9f8cc9aca6a67a9b56f0ba9dd202f0fa2669ab6
2010-06-21 18:29:59 -04:00
Sam Tobin-Hochstadt
341f6d82e6 Generalize ListDots to Listof in inference of loop var types.
original commit: f7b59f78e9212c03e950729944e7a9eb9370f363
2010-06-21 18:29:58 -04:00
Sam Tobin-Hochstadt
db8c693481 Inference for passing ListDots as Listof.
original commit: a2af89bafd3d79587c87425488833e07465f5fc5
2010-06-21 18:29:57 -04:00
Sam Tobin-Hochstadt
92c48f6521 Subtyping between (List T ... a) and (Listof T[Any/a])
original commit: fd5a662ccc7aa2fbc3f29974c075dcabf2a870fe
2010-06-21 18:29:57 -04:00
Sam Tobin-Hochstadt
d91f1e9998 Change type of ... rest args to have (List T ...) types.
original commit: 4cbeb0b2f00e652ce15e5638e15ca83a131b3b8b
2010-06-21 18:29:56 -04:00
Sam Tobin-Hochstadt
fd9b246931 Initial ListDots test.
original commit: e40d1824b0b3717a1c2454ebc87257abca352a8a
2010-06-21 18:29:56 -04:00
Sam Tobin-Hochstadt
021e1146cb More environment refactoring.
- rationalize naming of files
- split files by env constructed

original commit: 50f93b9ed7abeb1d4e687078cb5fef6976d008aa
2010-06-21 18:29:55 -04:00
Sam Tobin-Hochstadt
a4cec9ce13 Fix error message for 1-arg apply
original commit: 1e15ce1f3299d235cd72eeb171f7224099fba41a
2010-06-19 14:58:52 -04:00
Sam Tobin-Hochstadt
6b89ef5f82 base-types-new -> base-types
original commit: 77e4bbb5eb5e568db8478d0e102b1a0f6ece50f9
2010-06-17 11:47:16 -04:00
Sam Tobin-Hochstadt
90039fecdc Try harder to find types for loop variables.
- use `find-annotation' more
 - recognize (let ([x y]) ...)

original commit: bdbb6d48e62e8009154a095f1fc5752766ab34fe
2010-06-17 11:26:33 -04:00
Sam Tobin-Hochstadt
eed1167639 set-mc[ad]r!, inference, printing, tests for mpairs
original commit: 4cc86cc8c808d375f10c2c1fa2e4b54b126a26da
2010-06-15 16:10:16 -04:00
Sam Tobin-Hochstadt
36d46fac77 eq? is a predicate for eof
original commit: f73d63e1afdca9f509ff0a143ae2348875766ce2
2010-06-15 14:59:08 -04:00
Sam Tobin-Hochstadt
b4d568a84d Generate -> instead of ->* when required by case->.
Closes PR 10977.

original commit: cf5c74a2ca36a951d7cbeac61e58235f493291dd
2010-06-13 15:01:57 -04:00
Sam Tobin-Hochstadt
ae851e41cd Allow (All (A) A -> A), dropping pair of parens.
original commit: d4d286d31dce759129c372c9e42bfb37300bf167
2010-06-13 14:38:03 -04:00
Sam Tobin-Hochstadt
b19c37e9df Actually typecheck actuals even when there's a type annotation.
original commit: 1cff0a1f85e30ca231cde5fa94ec2d8c47b74d68
2010-06-11 19:35:56 -04:00
Sam Tobin-Hochstadt
79fe558827 Fix type of `zero?' to properly handle 0.0.
original commit: 7ece2a4872bfd02d7b62b39c040e877c7ba638ee
2010-06-11 18:54:05 -04:00
Sam Tobin-Hochstadt
aa087d75db Fix optimizer for refactoring.
original commit: fd1b20c93d195f236619a415e15c1b1dc8efde7f
2010-06-11 14:21:42 -04:00
Sam Tobin-Hochstadt
946a8dd48f new bug with mutation
original commit: b649575afc2611ca0a3bec1f6f3d70e45ec011c1
2010-06-11 11:55:22 -04:00
Sam Tobin-Hochstadt
ed35e04293 New interface for unstable/mutated-vars
- functional hash tables
 - fix clients

original commit: 0379e534e3f0024473d6af9379d0cac0d2bd1a37
2010-06-10 13:28:29 -04:00