Sam Tobin-Hochstadt
b718e60469
Typecheck `map' expression, not just #'map.
...
original commit: bce2cedf3864166c137ef91ca3f79f45fb6745da
2010-06-22 10:12:54 -04:00
Sam Tobin-Hochstadt
eb621217bc
Docs for List x ...
...
original commit: 4df7d09ef1933fc128737ad3d29b61428d80b70b
2010-06-21 18:30:30 -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
84247a1882
allow optional specifcation of var pattern
...
original commit: b8777d20b26837d8ecfa78eeeda25fdccdb4a783
2010-06-21 18:30:29 -04:00
Stevie Strickland
e73d9f5ee8
Generate dcon-dotted, and substitute for them.
...
- generated only in the case where we have two ListDots or two ValuesDots
- or when -> with the same bound, and fixed argument lengts are identical
- currently errors if there are any 'fixed' portions
original commit: 034b22d01401bba31f700dd5cb38fcf731ed64be
2010-06-21 18:30:29 -04:00
Stevie Strickland
a49d4de0ba
Take dcon-dotteds and create an appropriate i-subst/dotted entry.
...
original commit: 9c22701bd3a0178470e736b51c1c6c863ebd08d6
2010-06-21 18:30:29 -04:00
Stevie Strickland
c925e90dc6
Add fixed part to dcon-dotted.
...
original commit: 3f7ca52e370dfa0b81b5c9955c785bd429cda3d8
2010-06-21 18:30:29 -04:00
Sam Tobin-Hochstadt
380885f978
Implement substitutions as hash tables from vars to subst-rhs.
...
- add convenience function for generating substitutions
- give trivial substitution for unreferenced index variables
original commit: 339add9f78723fecb3e7332a8a173f615c37bc2c
2010-06-21 18:30:28 -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
5618abb4f4
provide more information in inference failures
...
original commit: 8990459be69c3e720871bff23827826709990c49
2010-06-21 18:30:27 -04:00
Sam Tobin-Hochstadt
9f8b2e4e2b
fix fail! to use the correct arguments
...
original commit: 692dc025c0db0aa64ee358ae5a36cbd6165455a3
2010-06-21 18:30:27 -04:00
Sam Tobin-Hochstadt
16617152c5
Fix move-to-dmap functions
...
original commit: 9f99c914f3ce2c00119b64caa0be1a286df398c1
2010-06-21 18:30:27 -04:00
Stevie Strickland
f1ef77e550
The initial shot at extending cgen and friends to take both X and Y.
...
This doesn't fully work, in that more test cases are broken. However,
this is mostly due to questionable inference rules in the past, and
so fixing these errors should lead to a more correct inference algorithm.
(i.e. we need to handle things like (List X ... a) (List Y .. b),
where a and b are not the same bound. We'd started this work before,
but never actually gone through with it, since smashing regular and
dotted type variables into the same environment meant some things
magically worked when they possibly shouldn't have.)
original commit: b5d4d54d450b7c2e87ab1d80db66e84cbd1bd2e5
2010-06-21 18:30:26 -04:00
Stevie Strickland
b956e47ed2
Export the types provide macro.
...
original commit: 078b57c77da5051470cf88e932c69f9f95ed60b6
2010-06-21 18:30:26 -04:00
Stevie Strickland
5a4d6ed4a0
Fix up subst-gen to treat vars and idxs separately.
...
original commit: ec09139e0a22007fd3f6bd7ac69336053d65bb48
2010-06-21 18:30:26 -04:00
Sam Tobin-Hochstadt
7e4ee76e4e
Various small assorted fixes.
...
original commit: d886331807f55e5a2a4ebb464b50d50835e20393
2010-06-21 18:30:25 -04:00
Sam Tobin-Hochstadt
c10334cfb0
More progress on refactoring infer
...
original commit: 82e7d281cb028e9d2e5c57a9a8c01b4d4e18275a
2010-06-21 18:30:25 -04:00
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