Commit Graph

28 Commits (2a8af325347d5e90ce874f706f5746cd0ddaac9b)

Author SHA1 Message Date
Joe Groff 608b3c72e0 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 49b19890e0 stack-checker.row-polymorphism: minor cleanup 2010-06-22 22:35:55 -04:00
Daniel Ehrenberg ba7cf1f873 Fixing one of the bad bugs, in row-polymorphism 2010-06-22 17:31:21 -04:00
Slava Pestov c840579540 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 af573bd022 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 cb6bf83f2f 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 f986c9472f carve the tough, gamey steak of stack-checker.polymorphism into chewable morsels 2010-03-11 00:53:40 -08:00
Joe Groff e03ce4b5e1 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 541c347257 stack-checker.row-polymorphism: modify check-variables to enforce non-polymorphic stack effects 2010-03-08 19:44:01 -08:00
Joe Groff 5c08a11016 refactor stack-checker.row-polymorphism a little 2010-03-08 19:32:25 -08:00
Joe Groff 1b3a92441a combine unbalanced-branches-error and invalid-quotation-input into one error 2010-03-07 22:23:24 -08:00
Joe Groff 51de9cbb4a 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 ac90071cd7 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 f5b0f55ec3 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 e2ee197e46 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 4a9b65b422 add stack variable unification to M\ declared-effect infer-call* 2010-03-07 17:51:41 -08:00
Joe Groff 42ed9bb11f 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 a5291e4702 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 7b97b84156 add unit test to show that polymorphic check breaks inference of inline recursive words 2010-03-06 12:28:09 -08:00
Joe Groff ca944518f7 give terminating stack effects a pass in the polymorphic checker 2010-03-05 21:51:38 -08:00
Joe Groff 4cc12d3c70 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 dd9c758447 fix stack error in stack-checker.row-polymorphism 2010-03-05 14:34:50 -08:00
Joe Groff 2ca507eb1a refactor stack-checker slightly to fix circular dependency 2010-03-05 14:27:36 -08:00
Joe Groff 8a36d57505 make effect variables part of effect syntax, stored out of band in effect tuple 2010-03-05 13:30:10 -08:00
Joe Groff fb86397021 make tests pass 2010-03-04 22:43:01 -08:00
Joe Groff 7f33e007f9 improve error reporting 2010-03-04 21:51:49 -08:00
Joe Groff 5c0787a1e3 nested scopes were messing up stack checker state 2010-03-04 20:15:26 -08:00
Joe Groff 9eeb0c1b3b initial implementation of row-polymorphism check 2010-03-04 19:30:08 -08:00