]> gitweb.factorcode.org Git - factor.git/commitdiff
vocabs.hierarchy: much faster using directory entries.
authorJohn Benediktsson <mrjbq7@gmail.com>
Mon, 13 Aug 2012 18:12:15 +0000 (11:12 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Mon, 13 Aug 2012 18:12:15 +0000 (11:12 -0700)
basis/vocabs/hierarchy/hierarchy.factor

index 0a5de9b4e276a9e09929f52961e510ac656558c6..e960a0c4dcc4c6b3ba7831961b916549db7b3bca 100644 (file)
@@ -1,7 +1,7 @@
 ! Copyright (C) 2007, 2009 Slava Pestov.\r
 ! See http://factorcode.org/license.txt for BSD license.\r
 USING: accessors arrays assocs combinators.short-circuit fry\r
-io.directories io.files io.files.info io.pathnames kernel make\r
+io.directories io.files io.files.types io.pathnames kernel make\r
 memoize namespaces sequences sorting splitting vocabs sets\r
 vocabs.loader vocabs.metadata vocabs.errors ;\r
 RENAME: child-vocabs vocabs => vocabs:child-vocabs\r
@@ -18,9 +18,12 @@ M: vocab-prefix vocab-name name>> ;
 : vocab-subdirs ( dir -- dirs )\r
     [\r
         [\r
-            { [ link-info directory? ] [ "." head? not ] } 1&&\r
-        ] filter\r
-    ] with-directory-files natural-sort ;\r
+            {\r
+                [ type>> +directory+ = ]\r
+                [ name>> "." head? not ]\r
+            } 1&&\r
+        ] filter [ name>> ] map!\r
+    ] with-directory-entries natural-sort ;\r
 \r
 : vocab-dir? ( root name -- ? )\r
     over\r