Joe Groff
|
e293966618
|
stack-checker.row-polymorphism: check stack effects correctly when a one-sided polymorphic declared effect is matched to a shallow subtype, for example, ( x -- ..a ) to ( -- ); fixes #88
|
2011-09-09 18:13:17 -07:00 |
Slava Pestov
|
1014b62ee7
|
stack-checker.row-polymorphism: minor cleanup
|
2010-06-22 22:35:55 -04:00 |
Daniel Ehrenberg
|
83327635f3
|
Fixing one of the bad bugs, in row-polymorphism
|
2010-06-22 17:31:21 -04:00 |
Slava Pestov
|
572b71238f
|
stack-checker: calling 'dispatch' with unbalanced branches generated an error message that erroneously talked about 'if'
|
2010-04-13 05:24:49 -07:00 |
Slava Pestov
|
6aee6b3adc
|
Add context-specific special object table, generalizing catchstack_save and current_callback_save fields of context struct
|
2010-03-18 22:06:00 +13:00 |
Joe Groff
|
dfbe1211f7
|
pre-chew the bite-sized morsels of stack-checker.row-polymorphism so they're easy for old people to digest
|
2010-03-11 14:09:18 -08:00 |
Joe Groff
|
26ff757de4
|
carve the tough, gamey steak of stack-checker.polymorphism into chewable morsels
|
2010-03-11 00:53:40 -08:00 |
Joe Groff
|
34b29af245
|
non-polymorphic input parameter check was too strict: wouldn't allow ( x -- ) for ( x x -- x ), for example
|
2010-03-09 15:57:00 -08:00 |
Joe Groff
|
3abf1f1ef7
|
stack-checker.row-polymorphism: modify check-variables to enforce non-polymorphic stack effects
|
2010-03-08 19:44:01 -08:00 |
Joe Groff
|
21aa4632c8
|
refactor stack-checker.row-polymorphism a little
|
2010-03-08 19:32:25 -08:00 |
Joe Groff
|
8159a19187
|
combine unbalanced-branches-error and invalid-quotation-input into one error
|
2010-03-07 22:23:24 -08:00 |
Joe Groff
|
9e6f84bc24
|
declare effect on inputs to infer-if in non-literal case, so we get a better error than "unbalanced drop call/nip call"
|
2010-03-07 21:37:24 -08:00 |
Joe Groff
|
1512ed12f3
|
further improve error message for invalid quotation inputs using a table display with the actual quotation effects determined so far
|
2010-03-07 18:40:58 -08:00 |
Joe Groff
|
ea4545e366
|
improve error message for invalid quotation inputs by referencing each declared-effect to its other references
|
2010-03-07 18:27:55 -08:00 |
Joe Groff
|
6b9a79159d
|
tweak declared-effect to wrap the existing known instead of introducing a new value, so we don't confuse the compiler
|
2010-03-07 18:07:42 -08:00 |
Joe Groff
|
b14d59030f
|
add stack variable unification to M\ declared-effect infer-call*
|
2010-03-07 17:51:41 -08:00 |
Joe Groff
|
bbbda64ee7
|
add a with-effect-here combinator that determines the effect of a scoped subset of the stack checker
|
2010-03-07 16:54:25 -08:00 |
Joe Groff
|
339cc8f04e
|
row polymorphism new approach: wrap polymorphic quotation inputs in a "declared-effect" value. M\ declared-effect infer-call* will then assert the effect of declared-effect values during the normal course of stack inference
|
2010-03-07 11:54:57 -08:00 |
Joe Groff
|
68dd644233
|
add unit test to show that polymorphic check breaks inference of inline recursive words
|
2010-03-06 12:28:09 -08:00 |
Joe Groff
|
9571bf6d4b
|
give terminating stack effects a pass in the polymorphic checker
|
2010-03-05 21:51:38 -08:00 |
Joe Groff
|
26e4bb818a
|
reuse infer-call* for polymorphic inference, which handles curried quotations. tests can pass with real "each" etc. now
|
2010-03-05 15:20:55 -08:00 |
Joe Groff
|
c9162c5e31
|
fix stack error in stack-checker.row-polymorphism
|
2010-03-05 14:34:50 -08:00 |
Joe Groff
|
4892bf1d47
|
refactor stack-checker slightly to fix circular dependency
|
2010-03-05 14:27:36 -08:00 |
Joe Groff
|
a3033e885a
|
make effect variables part of effect syntax, stored out of band in effect tuple
|
2010-03-05 13:30:10 -08:00 |
Joe Groff
|
1b1ccb71a4
|
make tests pass
|
2010-03-04 22:43:01 -08:00 |
Joe Groff
|
053ba583fc
|
improve error reporting
|
2010-03-04 21:51:49 -08:00 |
Joe Groff
|
31640ea9c6
|
nested scopes were messing up stack checker state
|
2010-03-04 20:15:26 -08:00 |
Joe Groff
|
23de281186
|
initial implementation of row-polymorphism check
|
2010-03-04 19:30:08 -08:00 |