tools.crossref: speed up build-crossref.
parent
2025ffe292
commit
4b5833f252
|
@ -15,23 +15,23 @@ GENERIC: uses ( defspec -- seq )
|
||||||
|
|
||||||
SYMBOL: visited
|
SYMBOL: visited
|
||||||
|
|
||||||
GENERIC# quot-uses 1 ( obj assoc -- )
|
USE: bootstrap.image.private
|
||||||
|
|
||||||
|
GENERIC# quot-uses 1 ( obj set -- )
|
||||||
|
|
||||||
M: object quot-uses 2drop ;
|
M: object quot-uses 2drop ;
|
||||||
|
|
||||||
M: word quot-uses over crossref? [ conjoin ] [ 2drop ] if ;
|
M: word quot-uses over crossref? [ adjoin ] [ 2drop ] if ;
|
||||||
|
|
||||||
: seq-uses ( seq assoc -- )
|
: seq-uses ( seq set -- )
|
||||||
over visited get member-eq? [ 2drop ] [
|
over <eq-wrapper> visited get ?adjoin [
|
||||||
over visited get push
|
|
||||||
[ quot-uses ] curry each
|
[ quot-uses ] curry each
|
||||||
] if ;
|
] [ 2drop ] if ; inline
|
||||||
|
|
||||||
: assoc-uses ( assoc' assoc -- )
|
: assoc-uses ( assoc' set -- )
|
||||||
over visited get member-eq? [ 2drop ] [
|
over <eq-wrapper> visited get ?adjoin [
|
||||||
over visited get push
|
|
||||||
[ quot-uses ] curry [ bi@ ] curry assoc-each
|
[ quot-uses ] curry [ bi@ ] curry assoc-each
|
||||||
] if ;
|
] [ 2drop ] if ; inline
|
||||||
|
|
||||||
M: array quot-uses seq-uses ;
|
M: array quot-uses seq-uses ;
|
||||||
|
|
||||||
|
@ -41,9 +41,9 @@ M: callable quot-uses seq-uses ;
|
||||||
|
|
||||||
M: wrapper quot-uses [ wrapped>> ] dip quot-uses ;
|
M: wrapper quot-uses [ wrapped>> ] dip quot-uses ;
|
||||||
|
|
||||||
M: callable uses ( quot -- assoc )
|
M: callable uses ( quot -- seq )
|
||||||
V{ } clone visited [
|
HS{ } clone visited [
|
||||||
H{ } clone [ quot-uses ] keep keys
|
HS{ } clone [ quot-uses ] keep members
|
||||||
] with-variable ;
|
] with-variable ;
|
||||||
|
|
||||||
M: word uses def>> uses ;
|
M: word uses def>> uses ;
|
||||||
|
|
Loading…
Reference in New Issue