Sam Tobin-Hochstadt
7f0a330c0c
Adding drest capability to lambda formal checking.
2008-06-18 17:21:53 -04:00
Sam Tobin-Hochstadt
e77ad12feb
Add debug macro, and fix check-below to return appropriate values.
2008-06-18 16:52:04 -04:00
Stevie Strickland
3e4e5af03c
Thinkoed, all of them should have -lst added.
2008-06-18 16:10:54 -04:00
Stevie Strickland
6986b12618
Fix extra -lst call that shouldn't be there.
2008-06-18 16:03:33 -04:00
Stevie Strickland
5299c9fd5a
Consolidate errors so they only happen once (could get rest arg-related
...
error and formal number mismatch error), and then consolidate code.
2008-06-18 15:57:41 -04:00
Stevie Strickland
948286f0c6
Rework how lambda formals are handled to try and guess something more
...
correct when there's a mismatch.
2008-06-18 15:02:54 -04:00
Stevie Strickland
17937f5451
Fix up lambda formal handling so that if we get too many or too few formals
...
for the appropriate type, we associate the correct types with the formals
we do have. If we have more formals than types, then a rest-arg function
will have the extra formals as the type of the rest-arg, else we will just
make them bottom.
2008-06-18 13:39:58 -04:00
Stevie Strickland
4010a39c2d
* Should have used star (bound in syntax-case), not just * in type-of-formals
...
* I'm pretty sure ann should never get a starred or dotted type, since those
can't appear outside of an arrow context.
2008-06-18 12:57:52 -04:00
Stevie Strickland
6a30c9dec9
No need for this, it's handled by a case lower down (and correctly, so why
...
force changes in two positions?)
2008-06-18 12:45:08 -04:00
Stevie Strickland
c2a53b316b
* Enforce the use of a '*' in list-like rest args.
...
* Abstract out annotation errors so that we can report it in the other case
where it's useful.
2008-06-18 12:31:08 -04:00
Stevie Strickland
2b4f1691fa
Add an informative comment here.
2008-06-17 22:09:04 -04:00
Stevie Strickland
bd43b23f74
Both of these have the same errors right now, so factor that out into a
...
function.
2008-06-17 22:01:57 -04:00
Stevie Strickland
f86702122d
Fix up error messages to take drests into account.
2008-06-17 21:47:10 -04:00
Stevie Strickland
8bb0890184
I dunno if I like this, but we really shouldn't delay this error, as
...
it should get caught when we attempt dotted vars for testing.
2008-06-17 21:38:05 -04:00
Sam Tobin-Hochstadt
dfdfae95d7
Checkpoint.
2008-06-17 18:10:17 -04:00
Sam Tobin-Hochstadt
c8a2810742
Don't produce extra errors for top-level defines.
...
Lots more error message improvements for application.
Work on polydots apply.
Extend environment only in the proper place in plambda.
Don't let a variable unify with a dotted variable.
2008-06-17 16:28:34 -04:00
Sam Tobin-Hochstadt
ddbb045a3e
Handle polymorphic apply with more args than fixed formals.
2008-06-17 14:29:05 -04:00
Sam Tobin-Hochstadt
1bef5f9d0b
Add handling of dotted functions when not wrapped with a big lambda.
2008-06-17 12:57:29 -04:00
Sam Tobin-Hochstadt
8bf60f9faf
Mask exn's where necessary.
2008-06-17 10:46:28 -04:00
Sam Tobin-Hochstadt
8d810160f2
Only use free-identifier=? when it's an identifier.
2008-06-17 10:43:37 -04:00
Sam Tobin-Hochstadt
cf33d49c26
add
2008-06-16 17:52:47 -04:00
Sam Tobin-Hochstadt
223c822154
It lives!
2008-06-16 17:46:13 -04:00
Sam Tobin-Hochstadt
1b998d7eb8
Definition (but not use) of ... vars
2008-06-16 16:47:08 -04:00
Sam Tobin-Hochstadt
055eb3cd0b
Source location in synthetic module begin.
2008-06-16 16:34:09 -04:00
Sam Tobin-Hochstadt
b952c54803
Fix code gen for PolyDots defs.
2008-06-16 16:32:34 -04:00
Sam Tobin-Hochstadt
fdb780fb00
Remove map*
2008-06-16 13:27:59 -04:00
Sam Tobin-Hochstadt
2ad4403108
Fix for-each type.
...
Improve ... error messages.
2008-06-16 13:26:15 -04:00
Stevie Strickland
c4e253d2d1
Change over some of the base environment over to dotted types.
2008-06-16 13:01:16 -04:00
Stevie Strickland
14da71b5c2
I don't see how this isn't a bug.
2008-06-15 15:56:44 -04:00
Sam Tobin-Hochstadt
52ed6fe0ca
All examples now work.
2008-06-13 17:04:31 -04:00
Stevie Strickland
9e78f5d0c0
Stars and dots living together, mass hysteria.
2008-06-13 11:59:30 -04:00
Stevie Strickland
1a7629ea3b
Pretty sure clist is going the way of the dodo, so I want this to
...
break for now if we use it. Also abstracting out the way you say
"Here's a variable with no constraints," though this might not end up
being used anywhere else anyway, so I'll not export it yet from
constraints^..
2008-06-13 09:59:43 -04:00
Sam Tobin-Hochstadt
34315ea7b3
Shortcut funs and remove first arg to cset-meet*
2008-06-13 09:56:21 -04:00
Sam Tobin-Hochstadt
7cecac2579
Use dmap code.
2008-06-13 09:55:03 -04:00
Sam Tobin-Hochstadt
e2c0b4e642
Implement dmap operations.
...
Remove lots of unneeded requires.
Add in-list-forever and extend to utils.ss
Add optional variable argument to c-meet.
2008-06-12 17:10:31 -04:00
Sam Tobin-Hochstadt
49be490b51
Unitize some more.
2008-06-12 15:43:42 -04:00
Sam Tobin-Hochstadt
bf61e29fac
Unitize infer.ss
2008-06-12 15:39:19 -04:00
Sam Tobin-Hochstadt
457339d9a8
Fix case-lambda type printing.
...
Begin work on handling case-lambda/varargs in ... inference.
Implement hash-union, and use to fix big bugs.
2008-06-11 17:16:40 -04:00
Sam Tobin-Hochstadt
1900cf10f4
Hook up new inference to tc-app.
...
Fix cset-meet handing of var maps and generated variables.
2008-06-11 14:40:34 -04:00
Sam Tobin-Hochstadt
07760164f0
* Split off cgen/arr into a named function
...
* Adding coersion for dotted arg types.
(Still need coersion between dotted<->starred.)
2008-06-11 12:22:33 -04:00
Sam Tobin-Hochstadt
dce8566c89
* Fixed variable promotion/demotion for dotted rest args
...
* Fixed constraint generation for starred functions with
different fixed arg lengths
2008-06-11 11:45:25 -04:00
Sam Tobin-Hochstadt
975f26b93d
Use new * syntax in prims.
...
Handle extra tables in infer.
2008-06-10 16:38:14 -04:00
Sam Tobin-Hochstadt
e29d4eb881
Add syntax for ...
2008-06-10 15:41:56 -04:00
Sam Tobin-Hochstadt
606ef69d20
Switch subtype to use infer.ss for unification.
2008-06-10 15:05:13 -04:00
Sam Tobin-Hochstadt
37c2f7f2c9
Move infer-ops to infer
2008-06-10 14:29:05 -04:00
Sam Tobin-Hochstadt
6afcb9aa96
Remove infer.ss
2008-06-10 14:27:49 -04:00
Sam Tobin-Hochstadt
e912818f86
Instantiation appears to work.
2008-06-10 14:10:40 -04:00
Sam Tobin-Hochstadt
5c8c2d3d96
Instantiate w/ dots
2008-06-10 12:29:53 -04:00
Sam Tobin-Hochstadt
a7f81d931d
Substituion now works
2008-06-10 12:21:59 -04:00
Sam Tobin-Hochstadt
017f756c77
Fix instantiate and abstract to handle bounds properly.
...
NEW INVARIANT - only use instantiate w/ names
2008-06-10 11:29:56 -04:00