From d979478bc44fc068f0cbdeac46cd3825b446fb9c Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Fri, 20 Jul 2012 10:48:16 -0700 Subject: [PATCH] stack-checker: meta-d was a word and symbol, now meta-d word and (meta-d) symbol issuse #358 --- basis/compiler/tree/builder/builder.factor | 2 +- basis/stack-checker/backend/backend-tests.factor | 6 +++--- basis/stack-checker/backend/backend.factor | 4 ++-- basis/stack-checker/branches/branches.factor | 6 +++--- basis/stack-checker/inlining/inlining.factor | 4 ++-- basis/stack-checker/state/state.factor | 11 +++++++---- 6 files changed, 18 insertions(+), 15 deletions(-) diff --git a/basis/compiler/tree/builder/builder.factor b/basis/compiler/tree/builder/builder.factor index 820ad07cf2..a13c5a695e 100644 --- a/basis/compiler/tree/builder/builder.factor +++ b/basis/compiler/tree/builder/builder.factor @@ -35,7 +35,7 @@ M: word (build-tree) [ recursive-state set V{ } clone stack-visitor set - [ [ >vector \ meta-d set ] [ length input-count set ] bi ] + [ [ >vector (meta-d) set ] [ length input-count set ] bi ] [ (build-tree) ] bi* ] with-infer nip ; diff --git a/basis/stack-checker/backend/backend-tests.factor b/basis/stack-checker/backend/backend-tests.factor index a714ddf5ab..80cbea0b94 100644 --- a/basis/stack-checker/backend/backend-tests.factor +++ b/basis/stack-checker/backend/backend-tests.factor @@ -3,9 +3,9 @@ stack-checker.state stack-checker.values sequences assocs ; IN: stack-checker.backend.tests [ ] [ - V{ } clone \ meta-d set - V{ } clone \ meta-r set - V{ } clone \ literals set + V{ } clone (meta-d) set + V{ } clone (meta-r) set + V{ } clone literals set H{ } clone known-values set 0 input-count set 0 inner-d-index set diff --git a/basis/stack-checker/backend/backend.factor b/basis/stack-checker/backend/backend.factor index 3e65872c64..d7f8269e20 100644 --- a/basis/stack-checker/backend/backend.factor +++ b/basis/stack-checker/backend/backend.factor @@ -99,10 +99,10 @@ M: object apply-object push-literal ; : infer-quot-here ( quot -- ) meta-r [ - V{ } clone \ meta-r set + V{ } clone (meta-r) set [ apply-object terminated? get not ] all? [ commit-literals check->r ] [ literals get delete-all ] if - ] dip \ meta-r set ; + ] dip (meta-r) set ; : infer-quot ( quot rstate -- ) recursive-state get [ diff --git a/basis/stack-checker/branches/branches.factor b/basis/stack-checker/branches/branches.factor index 00f2773b38..cec851eb76 100644 --- a/basis/stack-checker/branches/branches.factor +++ b/basis/stack-checker/branches/branches.factor @@ -70,9 +70,9 @@ SYMBOLS: combinator quotations ; : datastack-phi ( seq -- phi-in phi-out ) [ input-count branch-variable ] [ inner-d-index branch-variable infimum inner-d-index set ] - [ \ meta-d active-variable ] tri + [ (meta-d) active-variable ] tri unify-branches - [ input-count set ] [ ] [ dup >vector \ meta-d set ] tri* ; + [ input-count set ] [ ] [ dup >vector (meta-d) set ] tri* ; : terminated-phi ( seq -- terminated ) terminated? branch-variable ; @@ -87,7 +87,7 @@ SYMBOLS: combinator quotations ; tri ; : copy-inference ( -- ) - \ meta-d [ clone ] change + (meta-d) [ clone ] change literals [ clone ] change input-count [ ] change inner-d-index [ ] change ; diff --git a/basis/stack-checker/inlining/inlining.factor b/basis/stack-checker/inlining/inlining.factor index 7b0e37c1b1..eec44a238f 100644 --- a/basis/stack-checker/inlining/inlining.factor +++ b/basis/stack-checker/inlining/inlining.factor @@ -58,7 +58,7 @@ SYMBOL: enter-out : emit-enter-recursive ( label -- ) enter-out get >>enter-out enter-in get enter-out get #enter-recursive, - enter-out get >vector \ meta-d set ; + enter-out get >vector (meta-d) set ; : entry-stack-height ( label -- stack ) enter-out>> length ; @@ -77,7 +77,7 @@ SYMBOL: enter-out : end-recursive-word ( word label -- ) [ check-return ] - [ meta-d dup copy-values dup \ meta-d set #return-recursive, ] + [ meta-d dup copy-values dup (meta-d) set #return-recursive, ] bi ; : recursive-word-inputs ( label -- n ) diff --git a/basis/stack-checker/state/state.factor b/basis/stack-checker/state/state.factor index 0469f45858..67f8cdc67b 100644 --- a/basis/stack-checker/state/state.factor +++ b/basis/stack-checker/state/state.factor @@ -15,11 +15,14 @@ SYMBOL: inner-d-index DEFER: commit-literals +SYMBOL: (meta-d) +SYMBOL: (meta-r) + ! Compile-time data stack -: meta-d ( -- stack ) commit-literals \ meta-d get ; +: meta-d ( -- stack ) commit-literals (meta-d) get ; ! Compile-time retain stack -: meta-r ( -- stack ) \ meta-r get ; +: meta-r ( -- stack ) (meta-r) get ; ! Uncommitted literals. This is a form of local dead-code ! elimination; the goal is to reduce the number of IR nodes @@ -29,7 +32,7 @@ SYMBOL: literals : (push-literal) ( obj -- ) dup make-known - [ nip \ meta-d get push ] [ #push, ] 2bi ; + [ nip (meta-d) get push ] [ #push, ] 2bi ; : commit-literals ( -- ) literals get [ @@ -48,7 +51,7 @@ SYMBOL: literals : init-inference ( -- ) terminated? off - V{ } clone \ meta-d set + V{ } clone (meta-d) set V{ } clone literals set 0 input-count set 0 inner-d-index set ;