From 62d7281156dbe1b16db15551bfc431fa57b824b4 Mon Sep 17 00:00:00 2001 From: fang Date: Fri, 9 Apr 2021 01:49:14 +0200 Subject: [PATCH 1/7] clay: add /~ ford rune, as /= for directories Hoon files may want to import nouns from all files in a given directory. /~ lets you do so, importing as a (map @ta *) (but with typed values). Note the description as "directories" here, instead of "path prefix". The behavior, as implemented, will not include /path/hoon for /~ /path, instead only including /path/more/hoon and more deeply nested files. This seems to be, generally, the behavior you want, for example when importing from /app/myapp/* for /app/myapp/hoon. Actually using the resulting map requires some manual casting, which is not ideal. Some code style improvement work remains to be done as well. --- pkg/arvo/lib/language-server/parser.hoon | 3 + pkg/arvo/sys/lull.hoon | 2 + pkg/arvo/sys/vane/clay.hoon | 133 +++++++++++++++++++---- 3 files changed, 119 insertions(+), 19 deletions(-) diff --git a/pkg/arvo/lib/language-server/parser.hoon b/pkg/arvo/lib/language-server/parser.hoon index 58e4b91b7b..d52e87219b 100644 --- a/pkg/arvo/lib/language-server/parser.hoon +++ b/pkg/arvo/lib/language-server/parser.hoon @@ -22,6 +22,9 @@ :: %+ rune tis ;~(plug sym ;~(pfix gap stap)) + :: + %+ rune sig + ;~(plug sym ;~(pfix gap stap)) :: %+ rune cen ;~(plug sym ;~(pfix gap ;~(pfix cen sym))) diff --git a/pkg/arvo/sys/lull.hoon b/pkg/arvo/sys/lull.hoon index 23d08ae5bf..c6b2eb1141 100644 --- a/pkg/arvo/sys/lull.hoon +++ b/pkg/arvo/sys/lull.hoon @@ -928,6 +928,7 @@ :: /- sur-file :: surface imports from /sur :: /+ lib-file :: library imports from /lib :: /= face /path :: imports built hoon file at path + :: /~ face /path :: imports built hoon files from directory :: /% face %mark :: imports mark definition from /mar :: /$ face %from %to :: imports mark converter from /mar :: /* face %mark /path :: unbuilt file imports, as mark @@ -936,6 +937,7 @@ $: sur=(list taut) lib=(list taut) raw=(list [face=term =path]) + raz=(list [face=term =path]) maz=(list [face=term =mark]) caz=(list [face=term =mars]) bar=(list [face=term =mark =path]) diff --git a/pkg/arvo/sys/vane/clay.hoon b/pkg/arvo/sys/vane/clay.hoon index 5458e0026f..406c17e219 100644 --- a/pkg/arvo/sys/vane/clay.hoon +++ b/pkg/arvo/sys/vane/clay.hoon @@ -118,11 +118,11 @@ :: Ford cache :: +$ ford-cache - $: files=(map path [res=vase dez=(set path)]) - naves=(map mark [res=vase dez=(set path)]) - marks=(map mark [res=dais dez=(set path)]) - casts=(map mars [res=vase dez=(set path)]) - tubes=(map mars [res=tube dez=(set path)]) + $: files=(map path [res=vase dez=(set [dir=? =path])]) + naves=(map mark [res=vase dez=(set [dir=? =path])]) + marks=(map mark [res=dais dez=(set [dir=? =path])]) + casts=(map mars [res=vase dez=(set [dir=? =path])]) + tubes=(map mars [res=tube dez=(set [dir=? =path])]) == :: $reef-cache: built system files :: @@ -428,18 +428,23 @@ :: ++ an |_ nak=ankh + :: +dug: produce ankh at path + :: + ++ dug + |= =path + ^- (unit ankh) + ?~ path `nak + ?~ kid=(~(get by dir.nak) i.path) + ~ + $(nak u.kid, path t.path) :: +get: produce file at path :: ++ get |= =path ^- (unit cage) - ?~ path - ?~ fil.nak - ~ - `q.u.fil.nak - ?~ kid=(~(get by dir.nak) i.path) - ~ - $(nak u.kid, path t.path) + ?~ nik=(dug path) ~ + ?~ fil.u.nik ~ + `q.u.fil.u.nik -- ++ with-face |=([face=@tas =vase] vase(p [%face face p.vase])) ++ with-faces @@ -472,7 +477,7 @@ +$ state $: baked=(map path cage) cache=ford-cache - stack=(list (set path)) + stack=(list (set [dir=? =path])) cycle=(set build) == +$ args @@ -493,8 +498,8 @@ :: +pop-stack: pop build stack, copying deps downward :: ++ pop-stack - ^- [(set path) _stack.nub] - =^ top=(set path) stack.nub stack.nub + ^- [(set [dir=? =path]) _stack.nub] + =^ top=(set [dir=? =path]) stack.nub stack.nub =? stack.nub ?=(^ stack.nub) stack.nub(i (~(uni in i.stack.nub) top)) [top stack.nub] @@ -524,6 +529,29 @@ ?< (~(has in deletes) path) ~| %file-not-found^path :_(nub (need (~(get an ankh) path))) + :: +list-directory: retrieve directory listing + :: + :: this excludes files directly at /path/mark, + :: instead only including files in the unix-style directory at /path, + :: such as /path/more/mark + :: + ++ list-directory + |= =path + ^- (list ^path) + =/ nuk=(unit _ankh) (~(dug an ankh) path) + ?~ nuk ~ + =| dep=@ud + |- + =; dir=(list ^path) + ?: |((lte dep 1) ?=(~ fil.u.nuk) (~(has in deletes) path)) + dir + [path dir] + %- zing + %+ turn + %+ sort ~(tap by dir.u.nuk) + |=([[a=@ *] [b=@ *]] (aor a b)) + |= [nom=@ta nak=_ankh] + ^$(u.nuk nak, path (snoc path nom), dep +(dep)) :: +build-nave: build a statically typed mark core :: ++ build-nave @@ -816,7 +844,7 @@ ?: (~(has in cycle.nub) file+path) ~|(cycle+file+path^stack.nub !!) =. cycle.nub (~(put in cycle.nub) file+path) - =. stack.nub [(sy path ~) stack.nub] + =. stack.nub [(sy [| path] ~) stack.nub] =^ cag=cage nub (read-file path) ?> =(%hoon p.cag) =/ tex=tape (trip !<(@t q.cag)) @@ -826,11 +854,43 @@ =. files.cache.nub (~(put by files.cache.nub) path [res top]) [res nub] :: + ++ build-directory + |= =path + ^- [(map ^path vase) state] + =/ paz=(list ^path) (list-directory path) + =| rez=(map ^path vase) + |- + ?~ paz + [rez nub] + =* pax i.paz + ?. =(%hoon (rear pax)) + $(paz t.paz) + :: + ::TODO deduplicate with +build-file + ?^ got=(~(get by files.cache.nub) pax) + =? stack.nub ?=(^ stack.nub) + stack.nub(i (~(uni in i.stack.nub) dez.u.got)) + $(paz t.paz, rez (~(put by rez) pax res.u.got)) + ?: (~(has in cycle.nub) file+pax) + ~|(cycle+file+pax^stack.nub !!) + =. cycle.nub (~(put in cycle.nub) file+pax) + =. stack.nub [(sy [& path] ~) stack.nub] + =^ cag=cage nub (read-file pax) + ?> =(%hoon p.cag) + =/ tex=tape (trip !<(@t q.cag)) + =/ =pile (parse-pile pax tex) + =^ res=vase nub (run-pile pile) + =^ top stack.nub pop-stack + =. files.cache.nub (~(put by files.cache.nub) pax [res top]) + :: + $(paz t.paz, rez (~(put by rez) pax res)) + :: ++ run-pile |= =pile =^ sut=vase nub (run-tauts bud %sur sur.pile) =^ sut=vase nub (run-tauts sut %lib lib.pile) =^ sut=vase nub (run-raw sut raw.pile) + =^ sut=vase nub (run-raz sut raz.pile) =^ sut=vase nub (run-maz sut maz.pile) =^ sut=vase nub (run-caz sut caz.pile) =^ sut=vase nub (run-bar sut bar.pile) @@ -870,6 +930,9 @@ :: %+ rune tis ;~(plug sym ;~(pfix gap stap)) + :: + %+ rune sig + ;~(plug sym ;~(pfix gap stap)) :: %+ rune cen ;~(plug sym ;~(pfix gap ;~(pfix cen sym))) @@ -931,6 +994,30 @@ =. p.pin [%face face.i.raw p.pin] $(sut (slop pin sut), raw t.raw) :: + ++ run-raz + |= [sut=vase raz=(list [face=term =path])] + ^- [vase state] + ?~ raz [sut nub] + =^ res=(map path vase) nub + (build-directory path.i.raz) + =; pin=vase + =. p.pin [%face face.i.raz p.pin] + $(sut (slop pin sut), raz t.raz) + :: convert the (map path vase) into a vase of (map @ta *), + :: with paths hyphenated into names and the .hoon cut off + :: + =/ lap=@ud (lent path.i.raz) + |- ^- vase + ?~ res [[%atom %n `0] 0] + %+ slop + %+ slop + :- [%atom %ta ~] + %+ rap 3 + %+ join '-' + (snip (slag lap p.n.res)) + q.n.res + (slop $(res l.res) $(res r.res)) + :: ++ run-maz |= [sut=vase maz=(list [face=term =mark])] ^- [vase state] @@ -1582,12 +1669,20 @@ :: ++ invalidate |* [key=mold value=mold] - |= [cache=(map key [value dez=(set path)]) invalid=(set path)] - =/ builds=(list [key value dez=(set path)]) ~(tap by cache) + |= [cache=(map key [value dez=(set [dir=? =path])]) invalid=(set path)] + =/ builds=(list [key value dez=(set [dir=? =path])]) + ~(tap by cache) |- ^+ cache ?~ builds ~ - ?: ?=(^ (~(int in dez.i.builds) invalid)) + ?: %+ lien ~(tap in dez.i.builds) + |= [dir=? =path] + ?. dir (~(has in invalid) path) + =+ l=(lent path) + %+ lien ~(tap in invalid) + |= i=^path + =+ j=(lent i) + &((gth j +(l)) =(path (scag l i))) $(builds t.builds) (~(put by $(builds t.builds)) i.builds) :: From 1411e08944aec2b505f2bc88459823b8ed71405d Mon Sep 17 00:00:00 2001 From: fang Date: Sat, 10 Apr 2021 01:59:26 +0200 Subject: [PATCH 2/7] clay: specify target type for /~ results Clay will nest-check the results and put a homogenous map into the subject. --- pkg/arvo/lib/language-server/parser.hoon | 2 +- pkg/arvo/sys/lull.hoon | 4 +-- pkg/arvo/sys/vane/clay.hoon | 31 +++++++++++++----------- 3 files changed, 20 insertions(+), 17 deletions(-) diff --git a/pkg/arvo/lib/language-server/parser.hoon b/pkg/arvo/lib/language-server/parser.hoon index d52e87219b..cf57790926 100644 --- a/pkg/arvo/lib/language-server/parser.hoon +++ b/pkg/arvo/lib/language-server/parser.hoon @@ -24,7 +24,7 @@ ;~(plug sym ;~(pfix gap stap)) :: %+ rune sig - ;~(plug sym ;~(pfix gap stap)) + ;~((glue gap) sym wyde:vast stap) :: %+ rune cen ;~(plug sym ;~(pfix gap ;~(pfix cen sym))) diff --git a/pkg/arvo/sys/lull.hoon b/pkg/arvo/sys/lull.hoon index c6b2eb1141..67854e6b15 100644 --- a/pkg/arvo/sys/lull.hoon +++ b/pkg/arvo/sys/lull.hoon @@ -928,7 +928,7 @@ :: /- sur-file :: surface imports from /sur :: /+ lib-file :: library imports from /lib :: /= face /path :: imports built hoon file at path - :: /~ face /path :: imports built hoon files from directory + :: /~ face type /path :: imports built hoon files from directory :: /% face %mark :: imports mark definition from /mar :: /$ face %from %to :: imports mark converter from /mar :: /* face %mark /path :: unbuilt file imports, as mark @@ -937,7 +937,7 @@ $: sur=(list taut) lib=(list taut) raw=(list [face=term =path]) - raz=(list [face=term =path]) + raz=(list [face=term =spec =path]) maz=(list [face=term =mark]) caz=(list [face=term =mars]) bar=(list [face=term =mark =path]) diff --git a/pkg/arvo/sys/vane/clay.hoon b/pkg/arvo/sys/vane/clay.hoon index 406c17e219..82f3d6fb04 100644 --- a/pkg/arvo/sys/vane/clay.hoon +++ b/pkg/arvo/sys/vane/clay.hoon @@ -932,7 +932,7 @@ ;~(plug sym ;~(pfix gap stap)) :: %+ rune sig - ;~(plug sym ;~(pfix gap stap)) + ;~((glue gap) sym wyde:vast stap) :: %+ rune cen ;~(plug sym ;~(pfix gap ;~(pfix cen sym))) @@ -995,7 +995,7 @@ $(sut (slop pin sut), raw t.raw) :: ++ run-raz - |= [sut=vase raz=(list [face=term =path])] + |= [sut=vase raz=(list [face=term =spec =path])] ^- [vase state] ?~ raz [sut nub] =^ res=(map path vase) nub @@ -1003,20 +1003,23 @@ =; pin=vase =. p.pin [%face face.i.raz p.pin] $(sut (slop pin sut), raz t.raz) - :: convert the (map path vase) into a vase of (map @ta *), - :: with paths hyphenated into names and the .hoon cut off :: =/ lap=@ud (lent path.i.raz) - |- ^- vase - ?~ res [[%atom %n `0] 0] - %+ slop - %+ slop - :- [%atom %ta ~] - %+ rap 3 - %+ join '-' - (snip (slag lap p.n.res)) - q.n.res - (slop $(res l.res) $(res r.res)) + =/ =type (~(play ut p.sut) [%kttr spec.i.raz]) + :: ensure results nest in the specified type, + :: and produce a homogenous map containing that type. + :: + :- %- ~(play ut p.sut) + [%kttr %make [%wing ~[%map]] ~[[%base %atom %ta] spec.i.raz]] + |- + ?~ res ~ + ~| [%nest-fail path.i.raz p.n.res] + ?> (~(nest ut type) | p.q.n.res) + :_ [$(res l.res) $(res r.res)] + :_ q.q.n.res + %+ rap 3 + %+ join '-' + (snip (slag lap p.n.res)) :: ++ run-maz |= [sut=vase maz=(list [face=term =mark])] From a45179412b8c166f07de2840273dd79e5f7ae423 Mon Sep 17 00:00:00 2001 From: fang Date: Sat, 10 Apr 2021 02:26:32 +0200 Subject: [PATCH 3/7] clay: for /~, only build top-level files This is semantically cleaner than arbitrary-depth recursion, and lets us stop worrying about hyphenated path conflicts. --- pkg/arvo/sys/vane/clay.hoon | 63 ++++++++++++++----------------------- 1 file changed, 24 insertions(+), 39 deletions(-) diff --git a/pkg/arvo/sys/vane/clay.hoon b/pkg/arvo/sys/vane/clay.hoon index 82f3d6fb04..25a906410c 100644 --- a/pkg/arvo/sys/vane/clay.hoon +++ b/pkg/arvo/sys/vane/clay.hoon @@ -529,29 +529,6 @@ ?< (~(has in deletes) path) ~| %file-not-found^path :_(nub (need (~(get an ankh) path))) - :: +list-directory: retrieve directory listing - :: - :: this excludes files directly at /path/mark, - :: instead only including files in the unix-style directory at /path, - :: such as /path/more/mark - :: - ++ list-directory - |= =path - ^- (list ^path) - =/ nuk=(unit _ankh) (~(dug an ankh) path) - ?~ nuk ~ - =| dep=@ud - |- - =; dir=(list ^path) - ?: |((lte dep 1) ?=(~ fil.u.nuk) (~(has in deletes) path)) - dir - [path dir] - %- zing - %+ turn - %+ sort ~(tap by dir.u.nuk) - |=([[a=@ *] [b=@ *]] (aor a b)) - |= [nom=@ta nak=_ankh] - ^$(u.nuk nak, path (snoc path nom), dep +(dep)) :: +build-nave: build a statically typed mark core :: ++ build-nave @@ -853,24 +830,36 @@ =^ top stack.nub pop-stack =. files.cache.nub (~(put by files.cache.nub) path [res top]) [res nub] + :: +build-directory: builds files in top level of a directory + :: + :: this excludes files directly at /path/hoon, + :: instead only including files in the unix-style directory at /path, + :: such as /path/file/hoon, but not /path/more/file/hoon. :: ++ build-directory |= =path - ^- [(map ^path vase) state] - =/ paz=(list ^path) (list-directory path) - =| rez=(map ^path vase) + ^- [(map @ta vase) state] + =/ fiz=(list @ta) + =/ nuk=(unit _ankh) (~(dug an ankh) path) + ?~ nuk ~ + %+ murn + ~(tap by dir.u.nuk) + |= [nom=@ta nak=_ankh] + ?. ?=([~ [~ *] *] (~(get by dir.nak) %hoon)) ~ + `nom + :: + =| rez=(map @ta vase) |- - ?~ paz + ?~ fiz [rez nub] - =* pax i.paz - ?. =(%hoon (rear pax)) - $(paz t.paz) + =* nom=@ta i.fiz + =/ pax=^path (weld path nom %hoon ~) :: ::TODO deduplicate with +build-file ?^ got=(~(get by files.cache.nub) pax) =? stack.nub ?=(^ stack.nub) stack.nub(i (~(uni in i.stack.nub) dez.u.got)) - $(paz t.paz, rez (~(put by rez) pax res.u.got)) + $(fiz t.fiz, rez (~(put by rez) nom res.u.got)) ?: (~(has in cycle.nub) file+pax) ~|(cycle+file+pax^stack.nub !!) =. cycle.nub (~(put in cycle.nub) file+pax) @@ -883,7 +872,7 @@ =^ top stack.nub pop-stack =. files.cache.nub (~(put by files.cache.nub) pax [res top]) :: - $(paz t.paz, rez (~(put by rez) pax res)) + $(fiz t.fiz, rez (~(put by rez) nom res)) :: ++ run-pile |= =pile @@ -998,13 +987,12 @@ |= [sut=vase raz=(list [face=term =spec =path])] ^- [vase state] ?~ raz [sut nub] - =^ res=(map path vase) nub + =^ res=(map @ta vase) nub (build-directory path.i.raz) =; pin=vase =. p.pin [%face face.i.raz p.pin] $(sut (slop pin sut), raz t.raz) :: - =/ lap=@ud (lent path.i.raz) =/ =type (~(play ut p.sut) [%kttr spec.i.raz]) :: ensure results nest in the specified type, :: and produce a homogenous map containing that type. @@ -1015,11 +1003,8 @@ ?~ res ~ ~| [%nest-fail path.i.raz p.n.res] ?> (~(nest ut type) | p.q.n.res) - :_ [$(res l.res) $(res r.res)] - :_ q.q.n.res - %+ rap 3 - %+ join '-' - (snip (slag lap p.n.res)) + :- [p.n.res q.q.n.res] + [$(res l.res) $(res r.res)] :: ++ run-maz |= [sut=vase maz=(list [face=term =mark])] From 8b4dba28fae87067b54f6db63d099d056d89ba73 Mon Sep 17 00:00:00 2001 From: fang Date: Sat, 10 Apr 2021 16:22:52 +0200 Subject: [PATCH 4/7] clay: update dependency logic for /~ imports To match recent changes to the build logic, where it only includes top-level hoon files. --- pkg/arvo/sys/vane/clay.hoon | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkg/arvo/sys/vane/clay.hoon b/pkg/arvo/sys/vane/clay.hoon index 25a906410c..a0493f7585 100644 --- a/pkg/arvo/sys/vane/clay.hoon +++ b/pkg/arvo/sys/vane/clay.hoon @@ -1669,8 +1669,7 @@ =+ l=(lent path) %+ lien ~(tap in invalid) |= i=^path - =+ j=(lent i) - &((gth j +(l)) =(path (scag l i))) + &(=(path (scag l i)) ?=([@ %hoon ~] (slag l i))) $(builds t.builds) (~(put by $(builds t.builds)) i.builds) :: From 0570fb5b768057ad19f664e24fe0b7ad5eb85e6d Mon Sep 17 00:00:00 2001 From: fang Date: Mon, 12 Apr 2021 13:10:36 +0200 Subject: [PATCH 5/7] clay: share logic between build-file and directory By factoring their shared logic out into +build-dependency, which gets passed the relevant details about how to track the file being built in the dependency stack. --- pkg/arvo/sys/vane/clay.hoon | 33 ++++++++++++--------------------- 1 file changed, 12 insertions(+), 21 deletions(-) diff --git a/pkg/arvo/sys/vane/clay.hoon b/pkg/arvo/sys/vane/clay.hoon index a0493f7585..3ca9057d02 100644 --- a/pkg/arvo/sys/vane/clay.hoon +++ b/pkg/arvo/sys/vane/clay.hoon @@ -810,9 +810,11 @@ =^ res=vase nub (run-pile pile) res :: - ++ build-file - |= =path + ++ build-dependency + |= dep=(each [dir=path fil=path] path) ^- [vase state] + =/ =path + ?:(?=(%| -.dep) p.dep fil.p.dep) ~| %error-building^path ?^ got=(~(get by files.cache.nub) path) =? stack.nub ?=(^ stack.nub) @@ -821,7 +823,9 @@ ?: (~(has in cycle.nub) file+path) ~|(cycle+file+path^stack.nub !!) =. cycle.nub (~(put in cycle.nub) file+path) - =. stack.nub [(sy [| path] ~) stack.nub] + =. stack.nub + =- [(sy - ~) stack.nub] + ?:(?=(%| -.dep) dep [& dir.p.dep]) =^ cag=cage nub (read-file path) ?> =(%hoon p.cag) =/ tex=tape (trip !<(@t q.cag)) @@ -830,6 +834,10 @@ =^ top stack.nub pop-stack =. files.cache.nub (~(put by files.cache.nub) path [res top]) [res nub] + :: + ++ build-file + |= =path + (build-dependency |+path) :: +build-directory: builds files in top level of a directory :: :: this excludes files directly at /path/hoon, @@ -854,24 +862,7 @@ [rez nub] =* nom=@ta i.fiz =/ pax=^path (weld path nom %hoon ~) - :: - ::TODO deduplicate with +build-file - ?^ got=(~(get by files.cache.nub) pax) - =? stack.nub ?=(^ stack.nub) - stack.nub(i (~(uni in i.stack.nub) dez.u.got)) - $(fiz t.fiz, rez (~(put by rez) nom res.u.got)) - ?: (~(has in cycle.nub) file+pax) - ~|(cycle+file+pax^stack.nub !!) - =. cycle.nub (~(put in cycle.nub) file+pax) - =. stack.nub [(sy [& path] ~) stack.nub] - =^ cag=cage nub (read-file pax) - ?> =(%hoon p.cag) - =/ tex=tape (trip !<(@t q.cag)) - =/ =pile (parse-pile pax tex) - =^ res=vase nub (run-pile pile) - =^ top stack.nub pop-stack - =. files.cache.nub (~(put by files.cache.nub) pax [res top]) - :: + =^ res nub (build-dependency &+[path pax]) $(fiz t.fiz, rez (~(put by rez) nom res)) :: ++ run-pile From dcdf695991bc6cdccdc42186874da8fbc6d92af5 Mon Sep 17 00:00:00 2001 From: fang Date: Fri, 23 Apr 2021 22:56:24 +0200 Subject: [PATCH 6/7] clay: insert %nest-fail into trace conditionally Previously, we would stack on the ~| for every file we had previously processed, even though we only want it in the trace for actual failures. --- pkg/arvo/sys/vane/clay.hoon | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkg/arvo/sys/vane/clay.hoon b/pkg/arvo/sys/vane/clay.hoon index 3ca9057d02..d11fdedfa5 100644 --- a/pkg/arvo/sys/vane/clay.hoon +++ b/pkg/arvo/sys/vane/clay.hoon @@ -992,8 +992,9 @@ [%kttr %make [%wing ~[%map]] ~[[%base %atom %ta] spec.i.raz]] |- ?~ res ~ - ~| [%nest-fail path.i.raz p.n.res] - ?> (~(nest ut type) | p.q.n.res) + ?. (~(nest ut type) | p.q.n.res) + ~| [%nest-fail path.i.raz p.n.res] + !! :- [p.n.res q.q.n.res] [$(res l.res) $(res r.res)] :: From 550dee32dab0a898d46702d908804dd6ee931ec7 Mon Sep 17 00:00:00 2001 From: fang Date: Fri, 23 Apr 2021 23:05:11 +0200 Subject: [PATCH 7/7] clay: +any:in in place of +lien over +tap:in --- pkg/arvo/sys/vane/clay.hoon | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/arvo/sys/vane/clay.hoon b/pkg/arvo/sys/vane/clay.hoon index d11fdedfa5..3ed87130f8 100644 --- a/pkg/arvo/sys/vane/clay.hoon +++ b/pkg/arvo/sys/vane/clay.hoon @@ -1655,11 +1655,11 @@ |- ^+ cache ?~ builds ~ - ?: %+ lien ~(tap in dez.i.builds) + ?: %- ~(any in dez.i.builds) |= [dir=? =path] ?. dir (~(has in invalid) path) =+ l=(lent path) - %+ lien ~(tap in invalid) + %- ~(any in invalid) |= i=^path &(=(path (scag l i)) ?=([@ %hoon ~] (slag l i))) $(builds t.builds)