Commit Graph

167 Commits

Author SHA1 Message Date
Vincent St-Amour
c4ae44123f Bytes are fixnums. 2010-07-21 21:09:41 -04:00
Vincent St-Amour
60bfce14bc Fixed unsafe optimization that considered floats as complexes. 2010-07-16 19:08:20 -04:00
Vincent St-Amour
4d5b50dee9 Further fixes in overlap checking.
Rhss of code dispatching on overlapping structs are no longer
considered dead, and as such, are now typechecked.

Had to fix a test that passed only because some not-really-dead code
was not being typechecked.
2010-07-16 19:08:19 -04:00
Stevie Strickland
654b7df1de Two fixes in overlap checking.
- Names were not being resolved, so a superstruct name and substruct name
   could be seen as non-overlapping.
 - Struct parents were not checked in the overlapping algorithm.
2010-07-16 19:08:19 -04:00
Vincent St-Amour
1e550139aa Added dead code elimination. 2010-07-16 12:22:11 -04:00
Vincent St-Amour
58fe07ad70 Better internal error reporting. 2010-07-16 12:22:11 -04:00
Vincent St-Amour
a6d11a1df0 Added struct optimizations. 2010-07-02 20:58:28 -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
06279de2ca Nonnegative-Floats are now generalized to Floats. 2010-07-02 15:16:10 -04:00
Sam Tobin-Hochstadt
9a1c08e230 Avoid some quotes while printing types. 2010-07-01 17:12:59 -04:00
Vincent St-Amour
62a15df3eb Added the Nonnegative-Float type. 2010-06-30 14:53:22 -04:00
Vincent St-Amour
dcfb2d8a94 Added the Inexact-Complex type. 2010-06-30 14:53:21 -04:00
Vincent St-Amour
cee39c4a38 Added fixnums to more type signatures. 2010-06-30 14:53:18 -04:00
Sam Tobin-Hochstadt
18078400b7 make subst structs transparent 2010-06-29 17:34:44 -04:00
Sam Tobin-Hochstadt
c01b239779 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.
2010-06-29 17:33:36 -04:00
Sam Tobin-Hochstadt
4b1c62c978 Add Fixnum type. 2010-06-24 18:05:55 -04:00
Sam Tobin-Hochstadt
a33f460b25 recreate selector table automatically. 2010-06-24 16:48:10 -04:00
Sam Tobin-Hochstadt
3c8952d63d Use the correct field numbers in substructs.
Maintain table of struct accessors/mutators.
2010-06-24 14:53:38 -04:00
Sam Tobin-Hochstadt
b8777d20b2 allow optional specifcation of var pattern 2010-06-21 18:30:29 -04:00
Stevie Strickland
034b22d014 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
2010-06-21 18:30:29 -04:00
Sam Tobin-Hochstadt
339add9f78 Implement substitutions as hash tables from vars to subst-rhs.
- add convenience function for generating substitutions
 - give trivial substitution for unreferenced index variables
2010-06-21 18:30:28 -04:00
Sam Tobin-Hochstadt
44d46e4cd7 Refactor substitution.
- new file types/substitute
 - use structs for substitutions
2010-06-21 18:30:28 -04:00
Sam Tobin-Hochstadt
99e499a503 Change inference to take into account index vs regular vars. 2010-06-21 18:30:24 -04:00
Sam Tobin-Hochstadt
662f982b72 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
2010-06-21 18:30:24 -04:00
Sam Tobin-Hochstadt
d570006db8 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
2010-06-21 18:29:58 -04:00
Sam Tobin-Hochstadt
f7b59f78e9 Generalize ListDots to Listof in inference of loop var types. 2010-06-21 18:29:58 -04:00
Sam Tobin-Hochstadt
fd5a662ccc Subtyping between (List T ... a) and (Listof T[Any/a]) 2010-06-21 18:29:57 -04:00
Sam Tobin-Hochstadt
310bdf3529 Substitution for (List T ...) 2010-06-21 18:29:56 -04:00
Stevie Strickland
62fb6f9311 Add subtyping for dotted lists with the same bound. 2010-06-21 18:29:55 -04:00
Sam Tobin-Hochstadt
40dbb6389c First attempts at adding ListDots (and, incidentally, List*) types. 2010-06-21 18:29:55 -04:00
Vincent St-Amour
a31a7b0718 Added mutable lists to Typed Scheme. 2010-06-16 12:49:01 -04:00
Sam Tobin-Hochstadt
4cc86cc8c8 set-mc[ad]r!, inference, printing, tests for mpairs 2010-06-15 16:10:16 -04:00
Vincent St-Amour
aae1acf035 Fixed a bug in the optimizer that made it optimize where it
shouldn't have.
2010-06-11 20:53:10 -04:00
Vincent St-Amour
96c541912c Fixed a bug with eof and procedure types overlapping. 2010-06-11 19:48:22 -04:00
Sam Tobin-Hochstadt
7c32898cb2 Print names using the name, ignoring aliases. 2010-06-11 17:48:37 -04:00
Sam Tobin-Hochstadt
0379e534e3 New interface for unstable/mutated-vars
- functional hash tables
 - fix clients
2010-06-10 13:28:29 -04:00
Sam Tobin-Hochstadt
0149a05719 Fix promise printing, add docs. Closes PR 10968. 2010-06-09 16:56:31 -04:00
Vincent St-Amour
436e001b0e Fixed the implementation of Channel types. 2010-06-09 15:28:10 -04:00
Vincent St-Amour
15b0c8542d Added the Thread type and related functions. 2010-06-09 14:54:36 -04:00
Vincent St-Amour
ec799fb208 Added Channel types. 2010-06-09 14:54:35 -04:00
Sam Tobin-Hochstadt
78023d08f9 Sequenceof type.
- inferencing and subtyping relation with vectors, lists, etc
- use in `make-sequence'
- add tests
2010-06-09 11:03:12 -04:00
Sam Tobin-Hochstadt
7df8e32793 Properly handling immutable invariant structs. 2010-06-07 14:03:06 -04:00
Sam Tobin-Hochstadt
8194bcc4d4 Guard type-equal? test. 2010-05-27 12:46:37 -04:00
Sam Tobin-Hochstadt
bd0bcda85e Simpler has-name? implementation. 2010-05-27 10:50:15 -04:00
Sam Tobin-Hochstadt
b21f704086 Print empty filters as - 2010-05-24 14:04:01 -07:00
Sam Tobin-Hochstadt
7e9313bad3 Allow recursive types in type annotations for `list'.
Closes PR 10562.
 Tests for fixed bugs.
2010-05-19 15:14:18 -05:00
Sam Tobin-Hochstadt
2c03f2223b mostly done with heterogenous vectors 2010-05-14 11:00:22 -04:00
Sam Tobin-Hochstadt
8d59ee77e4 Don't generate type filters for mutated variables. 2010-05-13 13:24:41 -04:00
Sam Tobin-Hochstadt
e81cdba69f Don't use raw union constructor. 2010-05-12 11:52:43 -04:00
Sam Tobin-Hochstadt
4548426cd4 Merge remote branch 'origin/master' into samth/new-logic2 2010-05-11 15:19:52 -04:00