]> gitweb.factorcode.org Git - factor.git/commitdiff
vocabs.loader: only cache roots for vocabs that are found.
authorJohn Benediktsson <mrjbq7@gmail.com>
Thu, 16 Dec 2021 22:51:02 +0000 (14:51 -0800)
committerJohn Benediktsson <mrjbq7@gmail.com>
Thu, 16 Dec 2021 22:51:02 +0000 (14:51 -0800)
core/vocabs/loader/loader.factor

index 0be009c10ef3dba1e5fda3cd3feab8d6b0b415d9..ad2f998ef49011d81edf030d7d353d6e5bf506f4 100644 (file)
@@ -50,11 +50,12 @@ PRIVATE>
     "/" join ;
 
 : find-vocab-root ( vocab -- path/f )
-    vocab-name root-cache get [
-        dup ".private" tail? [ drop f ] [
-            ".factor" append-vocab-dir find-root-for
-        ] if
-    ] cache ;
+    vocab-name dup ".private" tail? [ drop f ] [
+        root-cache get 2dup at [ 2nip ] [
+            over ".factor" append-vocab-dir find-root-for
+            [ [ -rot set-at ] [ 2drop ] if* ] keep
+        ] if*
+    ] if ;
 
 : vocab-exists? ( name -- ? )
     dup lookup-vocab [ ] [ find-vocab-root ] ?if ;