Commit Graph

197 Commits

Author SHA1 Message Date
Sam Tobin-Hochstadt
85a0fa22d1 progress 2008-09-02 20:25:23 -04:00
Sam Tobin-Hochstadt
3f5069a003 Fix construction of function types. 2008-09-01 15:04:18 -04:00
Sam Tobin-Hochstadt
b5a07f4646 compiles 2008-09-01 14:55:51 -04:00
Sam Tobin-Hochstadt
a8417c7c1c start on keywords 2008-08-29 18:23:59 -04:00
Sam Tobin-Hochstadt
fa8ffb417e Improve error message for summary.
Fix returned error type for polymorphic apps.
Fix typo.

svn: r11487
2008-08-29 20:14:22 +00:00
Sam Tobin-Hochstadt
3ac6b485a5 Improve error message for poly app when fcn is an identifier.
svn: r11486
2008-08-29 19:57:12 +00:00
Sam Tobin-Hochstadt
d546d6e045 Better error messages for require/opaque-type
svn: r11341
2008-08-19 19:48:24 +00:00
Sam Tobin-Hochstadt
79b4f2d078 Print struct names without [].
svn: r11340
2008-08-19 19:40:38 +00:00
Sam Tobin-Hochstadt
513174a2bd Fix handling of `, delay, and this-language using Matthew's advice
svn: r11127
2008-08-07 19:05:32 +00:00
Sam Tobin-Hochstadt
44e0c09d75 Fix typo
svn: r11113
2008-08-06 20:47:28 +00:00
Sam Tobin-Hochstadt
5f787a63d4 Add types for char comparison functions.
svn: r11085
2008-08-05 18:17:27 +00:00
Sam Tobin-Hochstadt
ad2b2b3199 fix some dumb bugs
svn: r11082
2008-08-05 15:05:25 +00:00
Sam Tobin-Hochstadt
28c5e71b01 Fix bug 9649.
svn: r11029
2008-08-01 20:57:48 +00:00
Sam Tobin-Hochstadt
fa857a40ac Allow ... rest variables to be used as lists.
Bind Values as a type.

svn: r11010
2008-07-31 19:26:46 +00:00
Stevie Strickland
be456fec94 Actually, revert that last change. What we'll do is:
* Fix up things so that we actually use 'temp-dir via find-system-path
    instead of using /tmp always
  * Turn off logging via the logging? for-syntax definition.

svn: r10967
2008-07-29 17:06:11 +00:00
Stevie Strickland
91291ba2bc Add the forall Unicode symbol as an acceptable replacement for the
All type constructor.

svn: r10797
2008-07-16 17:37:05 +00:00
Stevie Strickland
0cd54c9e33 Merging in the following code:
svn merge -r10197:10773 http://svn.plt-scheme.org/plt/branches/samth/dots
svn merge -r10210:10737 http://svn.plt-scheme.org/plt/branches/samth/dots-tests

This adds non-uniform variable-arity polymorphism to Typed Scheme.

svn: r10778
2008-07-15 19:03:59 +00:00
Stevie Strickland
39c343ec18 Add filter-map to base-env.ss 2008-07-15 00:33:14 -04:00
Stevie Strickland
8842fb9ea0 Add printing if a starred type was substituted in as well. 2008-07-14 09:42:45 -04:00
Sam Tobin-Hochstadt
2866efd348 logging 2008-07-14 08:48:14 -04:00
Stevie Strickland
b991505297 Just tried the following program:
#lang typed-scheme

(require/typed
  srfi/1
  (fold (All (a b) ((a b -> b) b (Listof a) -> b))))

And got an error because (orig-module-stx) was #f.  I'm not sure whether
it should have been or not, but I've fixed up this to handle that case
(having it just use the normal error message when that's #f, as I'm not
sure whether the error message would be correct otherwise).

However, it might just be that (orig-module-stx) should have not been
#f, in which case this should be checked out.
2008-07-13 21:47:36 -04:00
Sam Tobin-Hochstadt
2456dcc18b Fix handling of mutable structs (setters != getters)
Allow use of #:mutable as define-typed-struct arg
Fix types of random andmap ormap
2008-07-13 17:31:58 -04:00
Stevie Strickland
421df42d00 Switch these over to for/for*. Avoid the hash-copy calls as well, since
we either end up doing the traversal wholesale or throwing some of that
work away by removing items.
2008-07-13 12:14:15 -04:00
Stevie Strickland
fdfc8d7b78 Add comment explaining what's going on here. 2008-07-13 06:14:23 -04:00
Stevie Strickland
e0bad1987d Was thinking of doing some cleanups here, but at the very least I can
get rid of this useless remove, since it's just going to overwrite it
anyway if we don't remove it first.
2008-07-13 06:12:06 -04:00
Stevie Strickland
9f6427ac34 This makes the change mentioned in the log message for r10735 (the previous
revision). So what we'll get here is the following:

Dotted + Dotted = Dotted (from the first case)
Dotted + x      = x      (since x refers to a free use of the dotted var)
x      + Dotted = x      (same)

I think this is correct.
2008-07-12 22:33:04 -04:00
Stevie Strickland
f3eb315425 I'm not sure if this is correct, but this handles the cases where we're
instantiating dotted pre-types where the bound is _not_ free in the
pre-type base.  I checked in a test case for this, that's something like:

(inst (plambda: (a ...) [ys : (Number ... a -> Number)] (apply + ys))
      Integer Boolean String)
 =
(Number Number Number -> Number)

These changes introduce no extra test failures, and we really have to
account for the bound here, and really even if the variable _does_
appear free within the pre-type base, it shouldn't be counted as a
"regular" variable outside of that scope.

Actually, maybe Dotted should behave like Constant, where it just
propogates until there's a separate free use that we're merging with,
in which case we just treat it like the free use (which will
eventually get fix-bound applied to it anyway).  I think I'll make
that change next.
2008-07-12 22:30:00 -04:00
Stevie Strickland
9b289bea27 Actually, I want to be careful with this.
For example, we don't want the result type of the function to be free,
so it's more like:

G, D + {a}, S |- f : (t1 t2 -> t)
G, D, S |- t

(i.e. {a} not free in t)

Hmm.
2008-07-12 22:20:10 -04:00
Stevie Strickland
274814e6aa There's no reason we can't allow foldl on a rest arg, as long as the types
match up appropriately.  Let's do it!
2008-07-12 22:13:44 -04:00
Stevie Strickland
ab2360384f We have to be careful here -- for example, one of the test cases was failing
because the last thing in the instantiate was a function type, which is
a cons.  Look for a cons whose cdr is an identifier.
2008-07-12 22:11:23 -04:00
Eli Barzilay
7d50e61c7f * Newlines at EOFs
* Another big chunk of v4-require-isms
* Allow `#lang framework/keybinding-lang' for keybinding files
* Move hierlist sources into "mrlib/hierlist", leave stub behind

svn: r10689
2008-07-09 07:18:06 +00:00
Sam Tobin-Hochstadt
eed2c37495 Need to do the same for regular Poly as well. 2008-07-07 19:33:08 -04:00
Sam Tobin-Hochstadt
b835002d72 Finally found a nasty bug involving variables not appearing in the hash table. 2008-07-07 19:21:42 -04:00
Sam Tobin-Hochstadt
6a607be6a9 If there are extra effects, let them be. 2008-07-07 17:15:43 -04:00
Sam Tobin-Hochstadt
8599321b57 Add check that effect lists have same length. 2008-07-07 17:04:09 -04:00
Sam Tobin-Hochstadt
f9c91d6b8a Constraining with bottom produces trivial constraints, not missing constraints. 2008-07-07 16:54:46 -04:00
Sam Tobin-Hochstadt
589ba9d77a Add require of scheme/promise for force.
Handle call-with-values more appropriately.
2008-07-07 16:43:12 -04:00
Sam Tobin-Hochstadt
4758c0b14d Better check for 'is this error from a macro' 2008-07-07 15:54:19 -04:00
Sam Tobin-Hochstadt
2de55888f1 handle nested polymorphic types in the expected type of a lambda 2008-07-07 15:36:33 -04:00
Sam Tobin-Hochstadt
acd6664c52 Fix call with correct # of args. 2008-07-07 15:24:09 -04:00
Sam Tobin-Hochstadt
17dec0046f Remove debugging code. 2008-07-07 15:05:51 -04:00
Sam Tobin-Hochstadt
807336e262 Actually check that lengths are equal. 2008-07-07 15:03:23 -04:00
Sam Tobin-Hochstadt
2844dec0a1 make-Values now checks its argument for having only 1 element 2008-07-07 14:58:22 -04:00
Sam Tobin-Hochstadt
d0939ffa1e Fix up singleton values 2008-07-07 14:49:46 -04:00
Sam Tobin-Hochstadt
044bd551b0 stevie is magic 2008-07-07 14:39:10 -04:00
Sam Tobin-Hochstadt
61cefef89c More info in internal errors.
Fix substitution in nested ... case.
2008-07-07 14:25:15 -04:00
Sam Tobin-Hochstadt
3cd8878999 This shouldn't be here :p 2008-07-07 13:13:32 -04:00
Sam Tobin-Hochstadt
e06a22c29b remove trace 2008-07-07 12:27:08 -04:00
Sam Tobin-Hochstadt
c43c3baa67 values with dots 2008-07-07 11:01:42 -04:00
Stevie Strickland
1aaa6995a1 Try to handle type errors in non-original syntax a bit better. 2008-07-03 12:03:18 -04:00