From e5bec5bbb896dc0e2399928f7216f0309e687750 Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Sat, 30 Aug 2008 13:31:00 -0500 Subject: [PATCH] clean up vocab loader a bit --- core/vocabs/loader/loader.factor | 35 ++++++++++++-------------------- 1 file changed, 13 insertions(+), 22 deletions(-) diff --git a/core/vocabs/loader/loader.factor b/core/vocabs/loader/loader.factor index 3d97dd4cc7..9a8e3fdce3 100755 --- a/core/vocabs/loader/loader.factor +++ b/core/vocabs/loader/loader.factor @@ -3,7 +3,7 @@ USING: namespaces sequences io.files kernel assocs words vocabs definitions parser continuations io hashtables sorting source-files arrays combinators strings system math.parser -compiler.errors splitting init ; +compiler.errors splitting init accessors ; IN: vocabs.loader SYMBOL: vocab-roots @@ -51,28 +51,19 @@ H{ } clone root-cache set-global SYMBOL: load-help? -: source-was-loaded ( vocab -- ) t swap set-vocab-source-loaded? ; +: load-source ( vocab -- vocab ) + f >>source-loaded? + [ vocab-source-path [ parse-file ] [ [ ] ] if* ] keep + t >>source-loaded? + [ [ % ] [ call ] if-bootstrapping ] dip ; -: source-wasn't-loaded ( vocab -- ) f swap set-vocab-source-loaded? ; -: load-source ( vocab -- ) - [ source-wasn't-loaded ] - [ vocab-source-path [ parse-file ] [ [ ] ] if* ] - [ source-was-loaded ] - tri - [ % ] [ call ] if-bootstrapping ; - -: docs-were-loaded ( vocab -- ) t swap set-vocab-docs-loaded? ; - -: docs-weren't-loaded ( vocab -- ) f swap set-vocab-docs-loaded? ; - -: load-docs ( vocab -- ) +: load-docs ( vocab -- vocab ) load-help? get [ - [ docs-weren't-loaded ] - [ vocab-docs-path [ ?run-file ] when* ] - [ docs-were-loaded ] - tri - ] [ drop ] if ; + f >>docs-loaded? + [ vocab-docs-path [ ?run-file ] when* ] keep + t >>docs-loaded? + ] when ; : reload ( name -- ) [ @@ -100,8 +91,8 @@ GENERIC: (load-vocab) ( name -- ) M: vocab (load-vocab) [ - dup vocab-source-loaded? [ dup load-source ] unless - dup vocab-docs-loaded? [ dup load-docs ] unless + dup vocab-source-loaded? [ load-source ] unless + dup vocab-docs-loaded? [ load-docs ] unless drop ] [ [ swap add-to-blacklist ] keep rethrow ] recover ;