stack-checker.dependencies: changes the names of the dependency constants
Now named using the +blah+ convention which we're using elsewhere for symbolic constants.char-rename
parent
99653bab91
commit
14e8688112
|
@ -14,39 +14,39 @@ IN: compiler.crossref.tests
|
||||||
{
|
{
|
||||||
10
|
10
|
||||||
H{
|
H{
|
||||||
{ 20 definition-dependency }
|
{ 20 +definition+ }
|
||||||
{ 30 conditional-dependency }
|
{ 30 +conditional+ }
|
||||||
{ 40 effect-dependency }
|
{ 40 +effect+ }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} clone ;
|
} clone ;
|
||||||
|
|
||||||
! dependencies-of
|
! dependencies-of
|
||||||
{
|
{
|
||||||
H{ { 20 definition-dependency } }
|
H{ { 20 +definition+ } }
|
||||||
} [
|
} [
|
||||||
setup-crossref compiled-crossref [
|
setup-crossref compiled-crossref [
|
||||||
10 definition-dependency dependencies-of
|
10 +definition+ dependencies-of
|
||||||
] with-variable
|
] with-variable
|
||||||
] unit-test
|
] unit-test
|
||||||
|
|
||||||
{
|
{
|
||||||
H{ { 20 definition-dependency } { 30 conditional-dependency } }
|
H{ { 20 +definition+ } { 30 +conditional+ } }
|
||||||
} [
|
} [
|
||||||
setup-crossref compiled-crossref [
|
setup-crossref compiled-crossref [
|
||||||
10 conditional-dependency dependencies-of
|
10 +conditional+ dependencies-of
|
||||||
] with-variable
|
] with-variable
|
||||||
] unit-test
|
] unit-test
|
||||||
|
|
||||||
! join-dependencies
|
! join-dependencies
|
||||||
{
|
{
|
||||||
H{
|
H{
|
||||||
{ 1 effect-dependency }
|
{ 1 +effect+ }
|
||||||
{ 2 effect-dependency }
|
{ 2 +effect+ }
|
||||||
{ 3 conditional-dependency }
|
{ 3 +conditional+ }
|
||||||
{ 4 conditional-dependency }
|
{ 4 +conditional+ }
|
||||||
{ 5 definition-dependency }
|
{ 5 +definition+ }
|
||||||
{ 6 definition-dependency }
|
{ 6 +definition+ }
|
||||||
}
|
}
|
||||||
} [
|
} [
|
||||||
{ 1 2 } { 3 4 } { 5 6 } join-dependencies
|
{ 1 2 } { 3 4 } { 5 6 } join-dependencies
|
||||||
|
|
|
@ -19,7 +19,7 @@ generic-call-site-crossref [ H{ } clone ] initialize
|
||||||
[ all-dependencies-of ] dip '[ nip _ dependency>= ] assoc-filter ;
|
[ all-dependencies-of ] dip '[ nip _ dependency>= ] assoc-filter ;
|
||||||
|
|
||||||
: outdated-definition-usages ( set -- assocs )
|
: outdated-definition-usages ( set -- assocs )
|
||||||
members [ word? ] filter [ definition-dependency dependencies-of ] map ;
|
members [ word? ] filter [ +definition+ dependencies-of ] map ;
|
||||||
|
|
||||||
: outdated-effect-usages ( set -- assocs )
|
: outdated-effect-usages ( set -- assocs )
|
||||||
members [ word? ] filter [ all-dependencies-of ] map ;
|
members [ word? ] filter [ all-dependencies-of ] map ;
|
||||||
|
@ -30,7 +30,7 @@ generic-call-site-crossref [ H{ } clone ] initialize
|
||||||
|
|
||||||
: outdated-conditional-usages ( set -- assocs )
|
: outdated-conditional-usages ( set -- assocs )
|
||||||
members H{ } clone '[
|
members H{ } clone '[
|
||||||
conditional-dependency dependencies-of
|
+conditional+ dependencies-of
|
||||||
[ drop _ dependencies-satisfied? ] assoc-reject
|
[ drop _ dependencies-satisfied? ] assoc-reject
|
||||||
] map ;
|
] map ;
|
||||||
|
|
||||||
|
@ -44,8 +44,8 @@ generic-call-site-crossref [ H{ } clone ] initialize
|
||||||
concat f like "generic-call-sites" set-word-prop ;
|
concat f like "generic-call-sites" set-word-prop ;
|
||||||
|
|
||||||
: split-dependencies ( assoc -- effect-deps cond-deps def-deps )
|
: split-dependencies ( assoc -- effect-deps cond-deps def-deps )
|
||||||
[ nip effect-dependency eq? ] assoc-partition
|
[ nip +effect+ eq? ] assoc-partition
|
||||||
[ nip conditional-dependency eq? ] assoc-partition ;
|
[ nip +conditional+ eq? ] assoc-partition ;
|
||||||
|
|
||||||
: (store-dependencies) ( word assoc prop -- )
|
: (store-dependencies) ( word assoc prop -- )
|
||||||
[ keys f like ] dip set-word-prop ;
|
[ keys f like ] dip set-word-prop ;
|
||||||
|
@ -79,9 +79,9 @@ generic-call-site-crossref [ H{ } clone ] initialize
|
||||||
|
|
||||||
: join-dependencies ( effect-deps cond-deps def-deps -- assoc )
|
: join-dependencies ( effect-deps cond-deps def-deps -- assoc )
|
||||||
H{ } clone [
|
H{ } clone [
|
||||||
[ effect-dependency set-at-each ]
|
[ +effect+ set-at-each ]
|
||||||
[ conditional-dependency set-at-each ]
|
[ +conditional+ set-at-each ]
|
||||||
[ definition-dependency set-at-each ] tri-curry tri*
|
[ +definition+ set-at-each ] tri-curry tri*
|
||||||
] keep ;
|
] keep ;
|
||||||
|
|
||||||
: load-dependencies ( word -- assoc )
|
: load-dependencies ( word -- assoc )
|
||||||
|
|
|
@ -6,23 +6,18 @@ generic kernel math namespaces sequences sets words ;
|
||||||
FROM: classes.tuple.private => tuple-layout ;
|
FROM: classes.tuple.private => tuple-layout ;
|
||||||
IN: stack-checker.dependencies
|
IN: stack-checker.dependencies
|
||||||
|
|
||||||
! Words that the current quotation depends on
|
|
||||||
SYMBOL: dependencies
|
SYMBOL: dependencies
|
||||||
|
|
||||||
SYMBOLS: effect-dependency conditional-dependency definition-dependency ;
|
SYMBOLS: +effect+ +conditional+ +definition+ ;
|
||||||
|
|
||||||
: index>= ( obj1 obj2 seq -- ? )
|
: index>= ( obj1 obj2 seq -- ? )
|
||||||
[ index ] curry bi@ >= ;
|
[ index ] curry bi@ >= ;
|
||||||
|
|
||||||
: dependency>= ( how1 how2 -- ? )
|
: dependency>= ( how1 how2 -- ? )
|
||||||
{
|
{ +effect+ +conditional+ +definition+ } index>= ;
|
||||||
effect-dependency
|
|
||||||
conditional-dependency
|
|
||||||
definition-dependency
|
|
||||||
} index>= ;
|
|
||||||
|
|
||||||
: strongest-dependency ( how1 how2 -- how )
|
: strongest-dependency ( how1 how2 -- how )
|
||||||
[ effect-dependency or ] bi@ [ dependency>= ] most ;
|
[ +effect+ or ] bi@ [ dependency>= ] most ;
|
||||||
|
|
||||||
: depends-on ( word how -- )
|
: depends-on ( word how -- )
|
||||||
over primitive? [ 2drop ] [
|
over primitive? [ 2drop ] [
|
||||||
|
@ -32,13 +27,13 @@ SYMBOLS: effect-dependency conditional-dependency definition-dependency ;
|
||||||
] if ;
|
] if ;
|
||||||
|
|
||||||
: add-depends-on-effect ( word -- )
|
: add-depends-on-effect ( word -- )
|
||||||
effect-dependency depends-on ;
|
+effect+ depends-on ;
|
||||||
|
|
||||||
: add-depends-on-conditionally ( word -- )
|
: add-depends-on-conditionally ( word -- )
|
||||||
conditional-dependency depends-on ;
|
+conditional+ depends-on ;
|
||||||
|
|
||||||
: add-depends-on-definition ( word -- )
|
: add-depends-on-definition ( word -- )
|
||||||
definition-dependency depends-on ;
|
+definition+ depends-on ;
|
||||||
|
|
||||||
GENERIC: add-depends-on-c-type ( c-type -- )
|
GENERIC: add-depends-on-c-type ( c-type -- )
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue