From 7e4f2ec6187a1c0897d9068a303bd91eacb00872 Mon Sep 17 00:00:00 2001 From: John Benediktsson Date: Tue, 20 May 2014 12:06:11 -0700 Subject: [PATCH] io.directories.search: faster directory traversal. --- basis/io/directories/search/search.factor | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/basis/io/directories/search/search.factor b/basis/io/directories/search/search.factor index 2406f21345..5462795448 100644 --- a/basis/io/directories/search/search.factor +++ b/basis/io/directories/search/search.factor @@ -2,8 +2,8 @@ ! See http://factorcode.org/license.txt for BSD license. USING: accessors arrays assocs continuations deques dlists fry io.backend io.directories io.files.info io.pathnames kernel -locals math sequences sorting system unicode.case vocabs -vocabs.loader ; +kernel.private locals math sequences sorting strings system +unicode.case vocabs vocabs.loader ; IN: io.directories.search : qualified-directory-entries ( path -- seq ) @@ -22,9 +22,13 @@ IN: io.directories.search > ] [ bfs>> ] bi [ push-front ] [ push-back ] if @@ -35,6 +39,7 @@ TUPLE: directory-iterator path bfs queue ; dup path>> over push-directory-entries ; : next-directory-entry ( iter -- directory-entry/f ) + { directory-iterator } declare dup queue>> deque-empty? [ drop f ] [ dup queue>> pop-back dup directory?