tools.crossref: speed up build-crossref.

db4
John Benediktsson 2013-03-08 16:18:26 -08:00
parent 2025ffe292
commit 4b5833f252
1 changed files with 13 additions and 13 deletions

View File

@ -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 ;