diff --git a/arvo/eyre.hoon b/arvo/eyre.hoon
index 210ce60db3..4b21253c17 100644
--- a/arvo/eyre.hoon
+++ b/arvo/eyre.hoon
@@ -57,6 +57,7 @@
== ::
$% [%err p=@ud q=(list tank)] :: error report
[%fin p=love] :: ready to send
+ [%fud p=(each beet (list tank))] :: function finished
[%haz p=riot] :: clay responded
[%raw p=hiss] :: wild url
[%who p=@tas q=@ta] :: awaiting auth
@@ -107,6 +108,12 @@
=+ zeb=(~(get by mah) cus)
$(hed t.hed, mah (~(put by mah) cus ?~(zeb [q.i.hed ~] [q.i.hed u.zeb])))
::
+++ lopo :: cage to love
+ |= cay=cage
+ ^- love
+ ?> ?=(%mime p.cay)
+ ((hard love) [%mid q.q.cay])
+::
++ loga :: tanks to manx
|= [til=tape mog=(list manx) tac=(list tank)]
^- manx
@@ -201,6 +208,12 @@
~
==
==
+ ::
+ %made
+ ?. ?=([%hoot @ @ ~] tea)
+ +.$
+ ?> ?=(^ wru)
+ (galt q.u.wru i.t.tea (need (slaw %ud i.t.t.tea)) p.fav)
::
%that :: outbound response
?> ?=([@ @ @ ~] tea) ::
@@ -308,6 +321,15 @@
^- httr
[sas ~[content-type/'text/plain'] [~ (tact str)]]
::
+ ++ galt
+ |= [our=ship ses=hole num=@ud mez=(each beet (list tank))]
+ ^+ +>
+ =+ suf=(~(get by own) our)
+ ?~ suf +>.$
+ =+ cuz=(~(get by wup.u.suf) ses)
+ ?~ cuz +>.$
+ abet:work:(~(inch ya [our ses] u.suf u.cuz) num mez)
+ ::
++ goat
|= [our=ship ses=hole num=@ud fav=card]
=+ suf=(~(get by own) our)
@@ -328,7 +350,7 @@
fon (~(put by fon) him u.ryt(q.rem (~(del by q.rem.u.ryt) num)))
==
::
- ++ gout
+ ++ gout :: receive %clay
|= [our=ship ses=hole num=@ud rot=riot]
^+ +>
=+ suf=(~(get by own) our)
@@ -396,6 +418,16 @@
[%warp our rif]
==
::
+ ++ honk :: ford request
+ |= [our=ship num=@ud ses=hole kas=silk]
+ %_ +>
+ mow
+ :_ mow
+ :+ [~ %gold our]
+ [/f [%e %honk ses (scot %ud num) ~] hen]
+ [%exec kas]
+ ==
+ ::
++ hops :: cancel remote
|= [him=ship num=@]
^+ +>
@@ -1071,6 +1103,16 @@
?. ?=(%det -.som.u.pup) +>.$
+>.$(..ya (hoot our num ses `riff`[p.som.u.pup ~]))
::
+ ++ inch :: function built
+ |= [num=@ud mez=(each beet (list tank))]
+ ^+ +>
+ =+ pup=(~(get by q.rey) num)
+ ?~ pup
+ ~& [%inch-lost ses num mez]
+ +>.$
+ ?> ?=(%way pez.u.pup)
+ +>.$(q.rey (~(put by q.rey) num u.pup(pez [%fud mez])))
+ ::
++ into :: introduce
|= [pul=purl moh=moth]
^+ +>
@@ -1650,29 +1692,14 @@
::
%det
:- [~ pip(pez %way)]
- =+ rif=`riff`[p.som.pip ~ [%| q.som.pip]]
- +>.$(..ya (hoot our num ses rif))
+ +>.$(..ya (hoot our num ses [p.som.pip ~ [%| q.som.pip]]))
::
%fun
- =^ syt +>.$ (lude p.som.pip q.som.pip)
- :_ +>.$
- :- ~
- %= pip
- pez
- ^- pest
- ?~ syt
- [%err 404 [[%leaf "{
} not found"] ~]]
- ?- -.u.syt
- | =+ mad=(loga "server error" r.som.pip p.u.syt)
- :- %fin
- :- %raw
- ^- httr
- :+ 500
- ~[content-type/'text/html']
- [~ (tact (xmlt | mad ~))]
- & [%fin (lofi r.som.pip p.u.syt)]
- ==
- ==
+ :- [~ pip(pez %way)]
+ =+ bem=`beam`(need (tome q.som.pip))
+ =+ bek=`beak`[p.bem q.bem r.bem]
+ =+ kas=`silk`[%cast %mime bek `silk`[%bake p.som.pip bem]]
+ +>.$(..ya (honk our num ses kas))
::
%lon
?^ pus.p.som.pip
@@ -1737,6 +1764,25 @@
[%haz *]
:_ +>.$
[~ pip(pez [%fin %wan 'Hello, world' ~])]
+ ::
+ [%fud *]
+ ?> ?=(%fun -.som.pip)
+ :_ +>.$
+ :- ~
+ %= pip
+ pez
+ ^- pest
+ ?- -.p.pez.pip
+ | =+ mad=(loga "server error" r.som.pip p.p.pez.pip)
+ :- %fin
+ :- %raw
+ ^- httr
+ :+ 500
+ ~[content-type/'text/html']
+ [~ (tact (xmlt | mad ~))]
+ & [%fin (lofi r.som.pip (lopo q.p.p.pez.pip))]
+ ==
+ ==
::
[%raw *]
:_ +>.$
diff --git a/arvo/ford.hoon b/arvo/ford.hoon
index 72acfd8987..8882839544 100644
--- a/arvo/ford.hoon
+++ b/arvo/ford.hoon
@@ -25,13 +25,12 @@
++ plan :: full construction
$: hov=@ud :: hoon version
bek=beak :: load context
- sik=silk :: design
+ kas=silk :: design
== ::
++ task :: problem in progress
$: wor=writ :: rights and powers
nah=duct :: cause
- bek=beak :: context
- sik=silk :: problem
+ kas=silk :: problem
kig=[p=@ud q=(map ,@ud beam)] :: blocks
== ::
-- ::
@@ -54,24 +53,6 @@
^- (set ,[p=beam q=(list tank)])
(~(gas in one) (~(tap in two) ~)) :: XX ugh
::
-++ tome :: parse path
- |= pax=path
- ^- (unit beam)
- ?. ?=([* * * *] pax) ~
- %+ biff (slaw %p i.pax)
- |= who=ship
- %+ biff (slaw %tas i.t.pax)
- |= dex=desk
- %+ biff (slay i.t.t.pax)
- |= cis=coin
- ?. ?=([%$ case] cis) ~
- `(unit beam)`[~ who dex `case`p.cis (flop t.t.t.pax)]
-::
-++ tope :: beam to path
- |= bem=beam
- ^- path
- [(scot %p p.bem) q.bem (scot r.bem) (flop s.bem)]
-::
++ za :: per event
=| $: $: $: wor=writ :: event authority
tea=wire :: event place
@@ -111,7 +92,7 @@
=: p.tad +(p.tad)
dym (~(put by dym) hen num)
==
- ~(exec zo [num `task`[wor hen p.fav q.fav 0 ~]])
+ ~(exec zo [num `task`[wor hen p.fav 0 ~]])
::
%kill
=+ num=(need (~(get by dym) hen))
@@ -199,7 +180,7 @@
^+ ..zo
?: !=(~ q.kig) ..zo
|- ^+ ..zo
- =+ bot=(make sik)
+ =+ bot=(make kas)
?- -.bot
%0 amok:(expo [%made %& p.bot q.bot])
%2 amok:(expo [%made %| p.bot])
@@ -412,6 +393,14 @@
|= vax=vase
(fine %noun vax)
==
+ ::
+ %cast
+ %+ cope $(kas r.kas)
+ |= cay=cage
+ =+ for=`logo`?@(p.cay p.cay %noun)
+ %+ cope (link p.kas ?@(p.cay p.cay %noun) q.kas q.cay)
+ |= vax=vase
+ (fine [p.kas vax])
::
%reef (fine %noun pit)
==
diff --git a/arvo/zuse.hoon b/arvo/zuse.hoon
index c8fdb64e08..a92a29ecef 100644
--- a/arvo/zuse.hoon
+++ b/arvo/zuse.hoon
@@ -1223,7 +1223,6 @@
=+ [yek=[p.u.mys q.u.mys] det=[q.r.u.mys q.s.u.mys]]
=+ guf=(~(get by ang) yek)
=+ ted=`moar`?~(guf [0 0] u.guf)
- :: ~& [%avon p.u.mys q.u.mys [%haz ted] [%too r.u.mys] [%fro s.u.mys]]
?> &(=(p.ted p.r.u.mys) =(q.ted p.s.u.mys))
+>.$(ang ?:(=([0 0] det) (~(del by ang) yek) (~(put by ang) yek det)))
::
@@ -2052,6 +2051,24 @@
=+ [dis=(end 3 1 q.p.u.hyr) rem=(rsh 3 1 q.p.u.hyr)]
?. ?&(?=(%c dis) ?=(?(%v %w %x %y %z) rem)) ~
[~ rem (case p.u.ved) q.p.u.fal q.p.u.dyc tyl]
+::
+++ tome :: parse path
+ |= pax=path
+ ^- (unit beam)
+ ?. ?=([* * * *] pax) ~
+ %+ biff (slaw %p i.pax)
+ |= who=ship
+ %+ biff (slaw %tas i.t.pax)
+ |= dex=desk
+ %+ biff (slay i.t.t.pax)
+ |= cis=coin
+ ?. ?=([%$ case] cis) ~
+ `(unit beam)`[~ who dex `case`p.cis (flop t.t.t.pax)]
+::
+++ tope :: beam to path
+ |= bem=beam
+ ^- path
+ [(scot %p p.bem) q.bem (scot r.bem) (flop s.bem)]
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: section 3bG, Arvo models ::
::
@@ -2234,7 +2251,7 @@
[%dire p=@tas q=dram] :: apply directory
[%dump p=(list ,@t)] :: raw text lines
[%ergo p=@p q=@tas r=@ud] :: version update
- [%exec p=beak q=silk] :: make something
+ [%exec p=silk] :: make something
[%file p=@tas q=@] :: apply atomic file
[%fail p=tape] :: report failure
[%grab ~] :: collect grabage
@@ -2709,7 +2726,7 @@
$% [%bake p=logo q=beam] :: local synthesis
[%boil p=logo q=beam] :: general synthesis
[%call p=silk q=silk] :: slam
- :: [%cast p=logo q=silk] :: logically coerce
+ [%cast p=logo q=beak r=silk] :: translate
:: [%done p=(set beam) q=cage] :: literal
:: [%feed p=silk q=@] :: specific text
:: [%grow p=silk q=beam] :: specific path
diff --git a/main/bin/begin.hoon b/main/bin/begin.hoon
index b811c9c3c9..897201a856 100644
--- a/main/bin/begin.hoon
+++ b/main/bin/begin.hoon
@@ -162,7 +162,9 @@
;~ plug
(cook |=([a=@ b=@] (cat 3 a b)) ;~(plug low low))
;~ pose
- ;~(pfix fas (plus ;~(pose hig hep nud)))
+ ;~ pfix fas
+ (cook |=(a=tape [(crip a) ~]) (plus ;~(pose hig hep nud)))
+ ==
(easy ~)
==
==