Commit Graph

793 Commits

Author SHA1 Message Date
Sam Tobin-Hochstadt
fdfdd6e3b2 Fix a bunch of uses of `infer' et al.
original commit: 18f45c413882b9e145fffa84d41bfb5b378396fc
2010-06-21 18:30:25 -04:00
Sam Tobin-Hochstadt
d26ad0e213 Change inference to take into account index vs regular vars.
original commit: 99e499a503b8b319bc0e512b698e5543634e3654
2010-06-21 18:30:24 -04:00
Sam Tobin-Hochstadt
9b93ec46d3 Fix free index computation when the body refers to the bound.
original commit: e8a591d2915c54fdf5b674d9859b7ebc7b13dd73
2010-06-21 18:30:24 -04:00
Sam Tobin-Hochstadt
0d7111128c Refactor free variables.
- free-idxs no longer holds free de Bruijn indexes
   This information is not needed, and not stored anywhere
 - free-idxs holds free *index* variables, in the sense of the TOPLAS submission

original commit: 662f982b724e7194f5729a9894fc642f06e7910f
2010-06-21 18:30:24 -04:00
Sam Tobin-Hochstadt
9d6132fa0e Add case to be fixed
original commit: fe9395fdbf0dcf8e64bdfaf247845c7858e35423
2010-06-21 18:30:23 -04:00
Sam Tobin-Hochstadt
d37f9f7d54 Switch to using functional hash tables for free variables.
original commit: b787c7766c3cac9a5054d6a76ec5de1a78a540c2
2010-06-21 18:30:23 -04:00
Sam Tobin-Hochstadt
b3b2b264a9 Special case for (apply values ListDots)
original commit: a93aecbed74672948b598a960f667d3240f86031
2010-06-21 18:30:20 -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
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
Sam Tobin-Hochstadt
72f1d63d90 Properly compute Dotted variance for ListDots and ValuesDots.
original commit: 0fb1ac66bd03748767a30c41ec69207b9349e1bf
2010-06-21 18:29:58 -04:00
Sam Tobin-Hochstadt
33bbcb17bc Remove dotted-env.
original commit: a9c34dae6a83b296f79a9d432db3e9cfb5f6288c
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
4f2a113076 Eliminate expressions with dotted pre-types.
- Now looks for (List T ...) types.
 - special handling of `map', `andmap', `ormap' when list arg is dotted
 - remove tc-dots-unit

original commit: 4c3f279ab910de4fc5a059e48025d7118c97129b
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
dfe4211df8 Handle simple inference of ListDots.
original commit: 71939d282694485805316a02563083a6882a4fa8
2010-06-21 18:29:56 -04:00
Sam Tobin-Hochstadt
2ecc5d35d4 Substitution for (List T ...)
original commit: 310bdf352980f9c629ccfa8d2a4365dd8f23cd0c
2010-06-21 18:29:56 -04:00
Stevie Strickland
28ff44d0f2 Add subtyping for dotted lists with the same bound.
original commit: 62fb6f93110e9ed23ed0b979af5b3c1608f088e7
2010-06-21 18:29:55 -04:00
Sam Tobin-Hochstadt
54a57ab177 First attempts at adding ListDots (and, incidentally, List*) types.
original commit: 40dbb6389cd22c6f6dff42a20bdf23e32b2ba0d2
2010-06-21 18:29:55 -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
8676d0ac03 Stratify environments to only include props when needed.
original commit: 7e9763cf14cd180db251e48fc864b23768897442
2010-06-21 18:29:54 -04:00
Sam Tobin-Hochstadt
f581c7796d Refactor environments.
- mapping stored as dict
 - use id tables for identifiers
 - use env-filter instead of filter
 - eliminate spurious use of conses

original commit: 647c4eef5940fde0395f9a19496244acab5f62b2
2010-06-21 18:29:54 -04:00
Sam Tobin-Hochstadt
3f49f996de Refactor provide handling.
- use id-tables instead of lists
 - smarter iteration
 - prepare for eliminating declarations when not needed, but don't do it yet

original commit: 4925e7e51f487e3e9dcc3646a28cd30bf334cd02
2010-06-21 15:42:52 -04:00
Stevie Strickland
c903ffe15c Fix use of add-type-expr from commit 5d835ded.
original commit: 0aae2c866f2906c1b4111aff438d3f931afa43f7
2010-06-19 14:58:52 -04:00
Sam Tobin-Hochstadt
a4cec9ce13 Fix error message for 1-arg apply
original commit: 1e15ce1f3299d235cd72eeb171f7224099fba41a
2010-06-19 14:58:52 -04:00
Vincent St-Amour
cfce17b8d1 Fix to make-vector's type.
original commit: 1e2c50ec242c130df1a02e7bee6734d2806f8aa7
2010-06-18 20:24:17 -04:00
Vincent St-Amour
034e27a280 The optimizer now promotes integers to floats when they are used as
arguments to a function whose result is a float.

original commit: 5e901b9ef28a9d48f41fb05e7e4be57b34897180
2010-06-18 17:43:05 -04:00
Vincent St-Amour
a4b8973528 Added the type of the 1 literals in expressions of the form (- x 1) to
the type table.

original commit: 5d835ded47e51e29a86a457e97f87f88561fe1d8
2010-06-18 17:43:05 -04:00
Vincent St-Amour
af2fa50318 Added type signatures for some byte-string functions.
original commit: ecb614849c30cc437b2cb7004321bc9e88fba8fa
2010-06-18 17:43:03 -04:00
Vincent St-Amour
ec41142ab4 Turned indexing back to using integers rather than naturals.
original commit: 60c3067ddb9b187855c81eabd6c5e89d74ebcbff
2010-06-18 17:43:02 -04:00
Vincent St-Amour
361fee5e59 Fixed the type of unsafe-car and unsafe-cdr.
original commit: b39f686e7eb67a6d3dac96fcc94cc2480aa083f2
2010-06-17 19:06:24 -04:00
Vincent St-Amour
55a3f63554 Added types for some bitwise operations.
original commit: 07c1f1e94f05cbbecd6d7606d725c0217f1d4a33
2010-06-17 19:06:24 -04:00
Vincent St-Amour
f14d2fd415 Added types for thread mailbox operations.
Can't have typed mailboxes, though.

original commit: cc796a9f9a1e0284dfd21328323cbedce416870c
2010-06-17 18:45:28 -04:00
Vincent St-Amour
b67fd7f9f1 Got rid of a reference to the non-existent channel/c.
original commit: c4e035dd67d44da53fb17003ad8342ed5fbdf6dd
2010-06-17 18:45:28 -04:00
Sam Tobin-Hochstadt
8088618596 Fix contract for structs
original commit: 02238a7c6d713e9e210ab9efee994eb98c843284
2010-06-17 15:26:13 -04:00
Sam Tobin-Hochstadt
d31b37acc1 handle multiple body expression properly
original commit: 0262ef681ac4394f9c2f8f19836777ee1fcc7a56
2010-06-17 12:50:30 -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
Vincent St-Amour
9eb47ff1a0 Added mutable lists to Typed Scheme.
original commit: a31a7b07187573b9f0d9b8b7b9fcaa21bbb50b8f
2010-06-16 12:49:01 -04:00
Vincent St-Amour
3900201b88 Rewrote the indexing code.
original commit: bb0747f58925c574964234c22bb4ba1d07864e23
2010-06-16 12:49:00 -04:00
Vincent St-Amour
e45bc88bfb Moved some indexing functions' type signatures.
original commit: 9959f050542aba1faee00202ce5b6b1f3cbf07cc
2010-06-16 12:48:59 -04:00
Vincent St-Amour
e6d4962b46 Reimplemented assert as a macro.
original commit: 8dfd7d87ecd5d167514f8c7c5468448c6ad86547
2010-06-15 16:39: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
4ed047109d types for basic mpair ops
original commit: 913179f2ed6e601e795e07f79e2e38399626ad1e
2010-06-15 15:58:37 -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
8ddbeba6e3 fix types of `read' functions
original commit: b644ec7be4c77e5b0ac8c66a1bc10283856447a9
2010-06-14 17:35:05 -04:00
Sam Tobin-Hochstadt
3c594198ce Type for `curry'.
Closes PR 10956

original commit: 81f262c7caf0954f7efebebc6d10bef6c93972bd
2010-06-14 08:24:43 -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
3f3e732ac3 add \rightarrow as alias for ->
original commit: 408d9adb5abaed3f3684e045b62225c13db01a9d
2010-06-13 14:35:05 -04:00