]> gitweb.factorcode.org Git - factor.git/commitdiff
tools.crossref: now 50% faster.
authorJohn Benediktsson <mrjbq7@gmail.com>
Sun, 25 Sep 2011 18:40:55 +0000 (11:40 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Sun, 25 Sep 2011 18:40:55 +0000 (11:40 -0700)
basis/tools/crossref/crossref.factor

index fa45e97c518a01931cf427b45be42a406872f50d..5e144594138cf7734fae6ed85afee5446d19e929 100644 (file)
@@ -21,19 +21,16 @@ M: object quot-uses 2drop ;
 
 M: word quot-uses over crossref? [ conjoin ] [ 2drop ] if ;
 
-: (seq-uses) ( seq assoc -- )
-    [ quot-uses ] curry each ;
-
 : seq-uses ( seq assoc -- )
     over visited get member-eq? [ 2drop ] [
         over visited get push
-        (seq-uses)
+        [ quot-uses ] curry each
     ] if ;
 
 : assoc-uses ( assoc' assoc -- )
     over visited get member-eq? [ 2drop ] [
         over visited get push
-        [ >alist ] dip (seq-uses)
+        [ quot-uses ] curry [ bi@ ] curry assoc-each
     ] if ;
 
 M: array quot-uses seq-uses ;
@@ -62,7 +59,7 @@ M: pathname uses string>> source-file top-level-form>> [ uses ] [ { } ] if* ;
 M: vocab uses drop f ;
 
 : crossref-def ( defspec -- )
-    dup uses crossref get add-vertex ;
+    dup uses crossref get-global add-vertex ;
 
 : defs-to-crossref ( -- seq )
     [