diff --git a/basis/vocabs/hierarchy/hierarchy.factor b/basis/vocabs/hierarchy/hierarchy.factor index f19cc8c573..0a5de9b4e2 100644 --- a/basis/vocabs/hierarchy/hierarchy.factor +++ b/basis/vocabs/hierarchy/hierarchy.factor @@ -38,12 +38,7 @@ ERROR: vocab-root-required root ; : (child-vocabs) ( root prefix -- vocabs ) check-vocab-name - [ - dup ".private" tail? [ 2drop { } ] [ - vocab-dir append-path dup exists? - [ vocab-subdirs ] [ drop { } ] if - ] if - ] + [ vocab-dir append-path dup exists? [ vocab-subdirs ] [ drop { } ] if ] [ nip [ "." append '[ _ prepend ] map! ] unless-empty ] [ drop '[ _ over vocab-dir? [ >vocab-link ] [ ] if ] map! ] 2tri ; diff --git a/core/vocabs/loader/loader-tests.factor b/core/vocabs/loader/loader-tests.factor index e8513348a9..fd1f90de5b 100644 --- a/core/vocabs/loader/loader-tests.factor +++ b/core/vocabs/loader/loader-tests.factor @@ -192,6 +192,3 @@ forget-junk [ "mnop" [ "vocabs.loader.test." swap suffix forget-vocab ] each ] with-compilation-unit - -{ "math" } [ "math.private" vocab-dir ] unit-test -{ "resource:core/math/math-docs.factor" } [ "math.private" vocab-docs-path ] unit-test diff --git a/core/vocabs/loader/loader.factor b/core/vocabs/loader/loader.factor index 6ef0454e66..a05f505060 100644 --- a/core/vocabs/loader/loader.factor +++ b/core/vocabs/loader/loader.factor @@ -42,10 +42,10 @@ M: string vocab-path ( string -- path/f ) PRIVATE> : vocab-dir ( vocab -- dir ) - vocab-name* H{ { CHAR: . CHAR: / } } substitute ; + vocab-name H{ { CHAR: . CHAR: / } } substitute ; : append-vocab-dir ( vocab str/f -- path ) - [ vocab-name* "." split ] dip + [ vocab-name "." split ] dip [ [ dup last ] dip append suffix ] when* "/" join ; @@ -89,9 +89,7 @@ require-when-table [ V{ } clone ] initialize dup check-vocab-hook get call( vocab -- ) [ +parsing+ >>source-loaded? - dup vocab-name ".private" tail? [ [ ] ] [ - dup vocab-source-path [ parse-file ] [ [ ] ] if* - ] if + dup vocab-source-path [ parse-file ] [ [ ] ] if* [ +parsing+ >>source-loaded? ] dip [ % ] [ call( -- ) ] if-bootstrapping +done+ >>source-loaded? @@ -102,9 +100,7 @@ require-when-table [ V{ } clone ] initialize load-help? get [ [ +parsing+ >>docs-loaded? - dup vocab-name ".private" tail? [ - dup vocab-docs-path [ ?run-file ] when* - ] unless + dup vocab-docs-path [ ?run-file ] when* +done+ >>docs-loaded? ] [ ] [ f >>docs-loaded? ] cleanup ] when drop ; diff --git a/core/vocabs/vocabs.factor b/core/vocabs/vocabs.factor index 24fc4fdda4..e2a9b895e7 100644 --- a/core/vocabs/vocabs.factor +++ b/core/vocabs/vocabs.factor @@ -44,6 +44,9 @@ M: object vocab-name check-vocab-name ; : vocab-name* ( vocab-spec -- name ) vocab-name ".private" ?tail drop ; +: private-vocab? ( vocab -- ? ) + vocab-name ".private" tail? ; + GENERIC: lookup-vocab ( vocab-spec -- vocab ) M: vocab lookup-vocab ;