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