Commit Graph

320 Commits

Author SHA1 Message Date
Vincent St-Amour
92b3f9af03 Changed the TR numeric tower to use the new flonums.
original commit: a59a99c42dffec38be98f3c0449097c80bad40fe
2010-10-12 16:47:45 -04:00
Vincent St-Amour
19784fffe5 Improved TR's error messages when all domains but one have been eliminated.
original commit: db0046101cb8b75e56215b4528d280894c59a36d
2010-10-07 18:30:35 -04:00
Vincent St-Amour
105b82fb70 Fixed tautology/contradiction recording to work with case-lambda.
original commit: 5395dbca122c534db3d70139c871e0bc4b91515f
2010-10-06 17:32:29 -04:00
Vincent St-Amour
9e13c1a6d9 Register types for send exprs in the type table.
original commit: 21723281899d7aab5692e605386abcf6f92cefe9
2010-10-06 17:32:29 -04:00
Sam Tobin-Hochstadt
5733f06d9a Contract fixes.
original commit: c739128703d917540ff963775459b6c75ccf2c80
2010-10-01 19:29:18 -07:00
Vincent St-Amour
1fb2c973f0 Further improvements for TR's error messages.
Only the most permissive domains whose associated return type is
consistent with the expected type are shown in error messages.

For example, for a function with the following type:
Fixnum -> Fixnum
Integer -> Integer
and an expected type of Integer, only the latter domain is shown in
the error message.

original commit: e011ea00bd73fd8ac3b9c4afe4e1435dcaa27cdb
2010-10-01 17:48:46 -04:00
Vincent St-Amour
5fab19e4df Improved TR's error messages in presence of case-lambda types.
- When displaying errors involving functions that have case-lambda
  types with branches that are redundant modulo filters (such as <, >
  and others), only the general branches appear in the error message.
  (Real Real Real * -> Boolean, in the case of < and co.).
- For all errors involving case-lambda types, only domains for which
  the return type is consistent with the expected type are displayed
  in the error message. Further simplification is planned.

original commit: 206fe52047f24ab89ac1d538c939c04fbbae59b7
2010-09-23 12:59:47 -04:00
Sam Tobin-Hochstadt
087b5fd8f7 Fix internal error when single value expected.
original commit: 979561354d3c0949208e1dd7fed9fe750f4c1cef
2010-09-10 18:29:34 -04:00
Sam Tobin-Hochstadt
a074f3dc6d `require' changes
original commit: 7a1b29c8f27328cacc01b34c8e01f0ac361ccc3d
2010-09-09 16:08:04 -04:00
Sam Tobin-Hochstadt
0c00609ade Enable struct construction when not transforming. Necessary for testing.
original commit: 71ae5f0a6e92f571ab34ed1849ff31c71117e12c
2010-09-09 16:08:04 -04:00
Sam Tobin-Hochstadt
e717d29b74 Lots more laziness, and useless require removal.
original commit: b6b840076b275d653843400f18259bf7f67c7a53
2010-09-09 16:08:03 -04:00
Sam Tobin-Hochstadt
72a11f2d56 Load typechecker dynamically to reduce footprint.
original commit: 120a1d0d87824f90b153047cc3a5408a60753b65
2010-09-08 13:20:34 -04:00
Sam Tobin-Hochstadt
8cdcde83cd Fix contract name references.
original commit: 350cef9af8bc27dc5eb223875d3f7a3c408753a4
2010-09-08 11:05:51 -04:00
Sam Tobin-Hochstadt
fba3c3b9ca Propogate #:mutable for polymorphic structs.
Closes PR 11127

original commit: a0e77705e578927e5d8180e6bc811461173580ab
2010-09-08 10:47:51 -04:00
Sam Tobin-Hochstadt
4bf64acde5 Fix polymorphic structs with mutability.
original commit: 6130f3551c1019c1bc035d802378c29bf574a0c1
2010-09-08 10:24:58 -04:00
Sam Tobin-Hochstadt
a6a1840da1 Use the correct name in the provide.
original commit: d38af188f6ee5d52b442b14a572b7e579b417925
2010-08-27 18:36:49 -04:00
Eli Barzilay
48b7074752 More "~n" -> "\n" changes
original commit: 8e0f8dd39c3744472b450021f003f9cbe8cbcb62
2010-08-26 12:11:00 -04:00
Eli Barzilay
8ab581cf2e Change a bunch of "~%" and "~n" in format strings to "\n".
original commit: 7dc4d2e5a63ab416d90e44d7bf75cb5593329909
2010-08-25 17:17:01 -04:00
Sam Tobin-Hochstadt
4d5a707d99 Handle structs with special constructors and mutability.
Closes PR 11089.

original commit: 3359032ad58d94c9447bf842d8abcf3ad98b41fd
2010-08-13 11:06:56 -04:00
Vincent St-Amour
267e4c1e78 Fixed typechecking of imaginaries.
original commit: dbdbaed50600b7ce47e2dacc12ba1e6f2a0345b4
2010-08-05 09:04:21 -04:00
Vincent St-Amour
db1103ebbc Fixed types of let loop lambdas.
original commit: 914f142f4fc16e4053e9e899b12e094ac93cf53e
2010-07-29 18:29:59 -04:00
Vincent St-Amour
ff4a589eee Register type of loop lambdas generated by the for macros.
original commit: 27f0e50d537ef3adc5c8db94927e6f61b3e89dee
2010-07-29 18:29:52 -04:00
Vincent St-Amour
70cfe1b953 Added dead code elimination.
original commit: 1e550139aa67631ffc965027584284b61453b634
2010-07-16 12:22:11 -04:00
Vincent St-Amour
a4cb468a71 Various fixnum unsafe operations improvements.
original commit: b7229487a59d3fa53f92bffb9f7374ab28bb8032
2010-07-16 12:22:11 -04:00
Vincent St-Amour
06afbef56f Removed a stray TODO comment.
original commit: 8505bd8bca25f9352eca5ad8d8a009bd6fe65a68
2010-07-08 18:29:16 -04:00
Vincent St-Amour
f578a22046 Have type ascriptions record the ascribed type in the type table.
original commit: eb7fc7a9655f26f35220295c24086da3699c3187
2010-07-07 19:42:54 -04:00
Sam Tobin-Hochstadt
10d5e7851e Add typeof mappings only to original form.
original commit: e865380f6f7ebf843c4a4a7dea25261b28e759fc
2010-07-06 14:09:46 -04:00
Sam Tobin-Hochstadt
b415e84cd6 Fix inference for heterogenous vectors.
original commit: 0e400291e78c46cf1f4ded2c668e2b989814fc5e
2010-07-02 17:25:07 -04:00
Sam Tobin-Hochstadt
c67aef8622 Refactoring of tc-app.
- Move `check-below' into its own module
 - Move `tc/apply' to its own unit
 - Move `tc/funapp' and `tc/funapp1' to own module, outside of unit

original commit: 219682bbbef3f1593bde169796087b56e354a7fc
2010-07-02 17:25:07 -04:00
Vincent St-Amour
49addde405 Added support for recursive types to vector-ref and vector-set!.
original commit: 40988d6d547366a520668074cc685e3f2ab22b8e
2010-07-02 15:48:07 -04:00
Vincent St-Amour
39d245984a Calls to vector now return heterogenous vectors, to preserve length
information.

original commit: f79f617ee80417059c15d9228489ec1cb716448a
2010-07-02 15:48:03 -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
98c88bf163 Generalization is now done on vector types.
original commit: 636fca1a83d453877bcab60f8e3f613d2afd97c3
2010-07-02 15:16:11 -04:00
Sam Tobin-Hochstadt
4340fd2909 Better handling of expected types for `vector'
original commit: ed88b9dd1a84908d75855e826f2b1e1d60a407a9
2010-07-01 17:32:16 -04:00
Sam Tobin-Hochstadt
2fd9e3236c Better typing for `make-sequence'.
original commit: 71bb63c128f8331dc19455bb75a8918dc5055e03
2010-07-01 17:12:59 -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
fc1a0a9e05 Added special case to the typechecker for (- <positive-fixnum> 1).
original commit: c6373ca7c09ec74e50e8b435b9a0387310c1b202
2010-06-30 14:53:19 -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
7186e085fa minor cleanups
original commit: 3c4f1f39b8acf610576f4069c37929f071c60ec3
2010-06-29 17:33:35 -04:00
Sam Tobin-Hochstadt
efa50529d0 remove unneeded export
original commit: a214f50812546e045ff9ca3c6273a06f89c4bdf9
2010-06-28 11:12:20 -04:00
Sam Tobin-Hochstadt
5883e7e818 Use get-type/infer for un-annotated defines.
original commit: 0bae63b516a3081276aefd1e2d46b28eba4f31be
2010-06-28 11:12:20 -04:00
Sam Tobin-Hochstadt
e3f8fff0e8 Generalize mutated variables when inferring types.
original commit: 90d8a3cc13dd76ba8d1eaefa98ee5e3248e43b04
2010-06-28 11:12:20 -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
c898d882c6 recreate selector table automatically.
original commit: a33f460b2547866d492bf01c81ded9b2a669ea26
2010-06-24 16:48:10 -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
93728d1ebd Switched indexing to integers in the typechecker's special cases for
heterogenous vectors and unsafe struct operations.

original commit: 3c9e7e34db69a6112f8aa87c4e5c3edcd550b4ab
2010-06-22 18:42:26 -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