diff --git a/bin/brass.pill b/bin/brass.pill index f549dac587..2a4689f24a 100644 --- a/bin/brass.pill +++ b/bin/brass.pill @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:61e583dd7db795dac4a7c31bfd3ee8b240e679bb882e35d4e7d1acb5f9f2f3d6 -size 8270131 +oid sha256:e0af91e5c51359719aaa943f37a1e953989c786412616b18fbaa0addb2cf0740 +size 10272514 diff --git a/bin/ivory.pill b/bin/ivory.pill index 7c2e8e4746..f671a78d05 100644 --- a/bin/ivory.pill +++ b/bin/ivory.pill @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:185ea5e76dc48695e55efc543377e0682e485f81b16e3b443f9be881d026d4f2 -size 2616564 +oid sha256:23d8235b19a3404e0bfbed54aa56a018255beb1f33457e37f521bc0763b4d0eb +size 6245506 diff --git a/bin/solid.pill b/bin/solid.pill index 03c4399035..1c40165693 100644 --- a/bin/solid.pill +++ b/bin/solid.pill @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:28c1ce6409721365a8c24d77af767550bb6596260833af21fa96964b740b3cf8 -size 12381649 +oid sha256:64d7cd93dbdf650e390b9c5780ee8bee22cf925fa31f47a0a1a3b17ce7443302 +size 11566105 diff --git a/pkg/arvo/sys/arvo.hoon b/pkg/arvo/sys/arvo.hoon index 35133e055f..b9f9e1fde3 100644 --- a/pkg/arvo/sys/arvo.hoon +++ b/pkg/arvo/sys/arvo.hoon @@ -252,11 +252,13 @@ :: %what: update from files :: %whey: produce $mass :: XX remove, scry :: %verb: toggle laconicity + :: %whiz: prime vane caches :: $% [%trim p=@ud] [%what p=(list (pair path (cask)))] [%whey ~] [%verb p=(unit ?)] + [%whiz ~] == +$ wasp :: %crud: reroute $ovum with $goof @@ -291,14 +293,23 @@ |=(b=beam =*(s scot `path`[(s %p p.b) q.b (s r.b) s.b])) :: ++ de-beam + ~/ %de-beam |= p=path ^- (unit beam) ?. ?=([@ @ @ *] p) ~ ?~ who=(slaw %p i.p) ~ ?~ des=?~(i.t.p (some %$) (slaw %tas i.t.p)) ~ :: XX +sym ;~(pose low (easy %$)) - ?~ ved=(slay i.t.t.p) ~ - ?. ?=([%$ case] u.ved) ~ - `(unit beam)`[~ [`ship`u.who `desk`u.des `case`p.u.ved] t.t.t.p] + ?~ ved=(de-case i.t.t.p) ~ + `[[`ship`u.who `desk`u.des u.ved] t.t.t.p] +:: +++ de-case + ~/ %de-case + |= =knot + ^- (unit case) + ?^ num=(slaw %ud knot) `[%ud u.num] + ?^ wen=(slaw %da knot) `[%da u.wen] + ?~ lab=(slaw %tas knot) ~ + `[%tas u.lab] :: ++ en-omen |= [vis=view bem=beam] @@ -308,6 +319,7 @@ ~(rent co [%many $/tas/way.vis $/tas/car.vis ~]) :: ++ de-omen + ~/ %de-omen |= pax=path ^- (unit [vis=view bem=beam]) ?~ pax ~ @@ -1000,8 +1012,11 @@ ++ settle |= van=vase ^- (pair vase worm) - =/ [rig=vase wor=worm] (~(slym wa *worm) van *vane-sample) - [van +:(~(slap wa wor) rig [%limb %scry])] + =| sac=worm + =^ rig=vase sac (~(slym wa sac) van *vane-sample) + =^ gat=vase sac (~(slap wa sac) rig [%limb %scry]) + =^ pro=vase sac (~(slap wa sac) gat [%limb %$]) + [van +:(~(mint wa sac) p.pro [%$ 7])] :: :: XX pass identity to preserve behavior? :: @@ -1470,6 +1485,9 @@ %verb ..pith(lac.fad ?~(p.waif !lac.fad u.p.waif)) %what ~(kel what p.waif) %whey ..pith(out [[//arvo mass/whey] out]) + :: + %whiz + ..pith(van.mod (~(run by van.mod) |=(vane (settle:va:part vase)))) == :: ++ peek diff --git a/pkg/arvo/sys/hoon.hoon b/pkg/arvo/sys/hoon.hoon index d84d3a35cf..3ffd858c34 100644 --- a/pkg/arvo/sys/hoon.hoon +++ b/pkg/arvo/sys/hoon.hoon @@ -259,6 +259,8 @@ ++ head |*(^ ,:+<-) :: get head ++ same |*(* +<) :: identity :: +++ succ |=(@ +(+<)) :: successor +:: ++ tail |*(^ ,:+<+) :: get tail ++ test |=(^ =(+<- +<+)) :: equality :: @@ -8764,6 +8766,7 @@ %peek peek %repo repo %rest rest + %sink sink %tack tack %toss toss %wrap wrap @@ -10838,7 +10841,7 @@ |- ^- type ?~ lov sut $(lov t.lov, sut (face i.lov sut)) - :: :: + :: ++ sint :: reduce by reference |= $: :: hod: expand holds :: @@ -10911,6 +10914,39 @@ %- ~(gas in *(set type)) (turn leg |=([p=type q=hoon] (play(sut p) q))) :: + ++ sink + ~/ %sink + |^ ^- cord + ?- sut + %void 'void' + %noun 'noun' + [%atom *] (rap 3 'atom ' p.sut ' ' ?~(q.sut '~' u.q.sut) ~) + [%cell *] (rap 3 'cell ' (mup p.sut) ' ' (mup q.sut) ~) + [%face *] (rap 3 'face ' ?@(p.sut p.sut (mup p.sut)) ' ' (mup q.sut) ~) + [%fork *] (rap 3 'fork ' (mup p.sut) ~) + [%hint *] (rap 3 'hint ' (mup p.sut) ' ' (mup q.sut) ~) + [%hold *] (rap 3 'hold ' (mup p.sut) ' ' (mup q.sut) ~) + :: + [%core *] + %+ rap 3 + :~ 'core ' + (mup p.sut) + ' ' + ?~(p.p.q.sut '~' u.p.p.q.sut) + ' ' + q.p.q.sut + ' ' + r.p.q.sut + ' ' + (mup q.q.sut) + ' ' + (mup p.r.q.sut) + == + == + :: + ++ mup |=(* (scot %p (mug +<))) + -- + :: ++ take |= [vit=vein duz=$-(type type)] ^- (pair axis type) diff --git a/pkg/arvo/sys/lull.hoon b/pkg/arvo/sys/lull.hoon index b02630eabd..cdc6ef10e3 100644 --- a/pkg/arvo/sys/lull.hoon +++ b/pkg/arvo/sys/lull.hoon @@ -1069,14 +1069,23 @@ :::: :: (1d2) :: +$ blew [p=@ud q=@ud] :: columns rows - +$ belt :: old belt + +$ belt :: client input + $? bolt :: simple input + $% [%mod mod=?(%ctl %met %hyp) key=bolt] :: w/ modifier + [%txt p=(list @c)] :: utf32 text + ::TODO consider moving %hey, %rez, %yow here :: + ::TMP forward backwards-compatibility :: + :: :: + [%ctl p=@c] :: + [%met p=@c] :: + == == :: + +$ bolt :: simple input + $@ @c :: simple keystroke $% [%aro p=?(%d %l %r %u)] :: arrow key [%bac ~] :: true backspace - [%ctl p=@c] :: control-key [%del ~] :: true delete - [%met p=@c] :: meta-key + [%hit r=@ud c=@ud] :: mouse click [%ret ~] :: return - [%txt p=(list @c)] :: utf32 text == :: +$ blit :: old blit $% [%bel ~] :: make a noise @@ -2102,6 +2111,7 @@ [%g task:gall] [%i task:iris] [%j task:jael] + [%$ %whiz ~] [@tas %meta vase] == :: full vane names are required in vanes diff --git a/pkg/arvo/sys/vane/clay.hoon b/pkg/arvo/sys/vane/clay.hoon index 993ac2703a..b86b1c1810 100644 --- a/pkg/arvo/sys/vane/clay.hoon +++ b/pkg/arvo/sys/vane/clay.hoon @@ -3660,7 +3660,7 @@ =/ lower=@ud 1 |- :: a should be excluded, so wait until we're past it - ?: =(lower +(a)) + ?: (gte lower +(a)) acc =/ res=(set tako) (reachable-takos (~(got by hit.dom) lower)) $(acc (~(uni in acc) res), lower +(lower)) @@ -3668,7 +3668,7 @@ =| acc=(set tako) =/ upper=@ud b |- - ?: =(upper a) + ?: (lte upper a) acc =/ res=(set tako) (reachable-takos (~(got by hit.dom) upper)) $(acc (~(uni in acc) res), upper (dec upper)) diff --git a/pkg/arvo/sys/vane/dill.hoon b/pkg/arvo/sys/vane/dill.hoon index 4e08fc0e09..ebc0b90385 100644 --- a/pkg/arvo/sys/vane/dill.hoon +++ b/pkg/arvo/sys/vane/dill.hoon @@ -106,7 +106,6 @@ %flow +> %harm +> %hail (send %hey ~) - %belt (send `dill-belt`p.kyz) %text (from %out (tuba p.kyz)) %crud :: (send `dill-belt`[%cru p.kyz q.kyz]) (crud p.kyz q.kyz) @@ -116,6 +115,18 @@ %pack (dump kyz) %crop (dump trim+p.kyz) %verb (pass /verb %$ kyz) + :: + %belt + %- send + ::TMP forwards compatibility with next-dill + :: + ?@ p.kyz [%txt p.kyz ~] + ?: ?=(%hit -.p.kyz) [%txt ~] + ?. ?=(%mod -.p.kyz) p.kyz + =/ =@c + ?@ key.p.kyz key.p.kyz + ?:(?=(?(%bac %del %ret) -.key.p.kyz) `@`-.key.p.kyz ~-) + ?:(?=(%met mod.p.kyz) [%met c] [%ctl c]) == :: ++ crud diff --git a/pkg/arvo/sys/vane/eyre.hoon b/pkg/arvo/sys/vane/eyre.hoon index 8072cbd507..08071af374 100644 --- a/pkg/arvo/sys/vane/eyre.hoon +++ b/pkg/arvo/sys/vane/eyre.hoon @@ -30,6 +30,9 @@ $% [%rest p=@da] [%wait p=@da] == == + $: %c + $>(%warp task:clay) + == :: %d: to dill :: $: %d @@ -53,6 +56,12 @@ $: %gall gift:gall :: $>(%unto gift:gall) + :: + == + $: %clay + gift:clay + :: $>(%writ gift:clay) + :: == == -- :: more structures @@ -1231,9 +1240,9 @@ ::NOTE these will only fail if the mark and/or json types changed, :: since conversion failure also gets caught during first receive. :: we can't do anything about this, so consider it unsupported. - ?~ sign=(channel-event-to-sign channel-event) $ - ?~ json=(sign-to-json request-id u.sign) $ - $(events [(event-json-to-wall id u.json) events]) + ?~ sign=(channel-event-to-sign channel-event) $ + ?~ jive=(sign-to-json request-id u.sign) $ + $(events [(event-json-to-wall id +.u.jive) events]) :: send the start event to the client :: =^ http-moves state @@ -1499,8 +1508,12 @@ :: if conversion succeeds, we *can* send it. if the client is actually :: connected, we *will* send it immediately. :: - =/ json=(unit json) + =/ jive=(unit (quip move json)) (sign-to-json request-id sign) + =/ json=(unit json) + ?~(jive ~ `+.u.jive) + =? moves ?=(^ jive) + (weld moves -.u.jive) =* sending &(?=([%| *] state.u.channel) ?=(^ json)) :: =/ next-id next-id.u.channel @@ -1578,7 +1591,7 @@ ^= data %- wall-to-octs %+ event-json-to-wall next-id - (need (sign-to-json request-id %kick ~)) + +:(need (sign-to-json request-id %kick ~)) :: complete=%.n == @@ -1619,32 +1632,33 @@ :: +sign-to-json: render sign from request-id as json channel event :: ++ sign-to-json + ~% %sign-to-json ..part ~ |= [request-id=@ud =sign:agent:gall] - ^- (unit json) + ^- (unit (quip move json)) :: for facts, we try to convert the result to json :: - =/ jsyn=(unit sign:agent:gall) - ?. ?=(%fact -.sign) `sign - ?: ?=(%json p.cage.sign) `sign + =/ [from=(unit mark) jsyn=(unit sign:agent:gall)] + ?. ?=(%fact -.sign) [~ `sign] + ?: ?=(%json p.cage.sign) [~ `sign] :: find and use tube from fact mark to json :: =* have=mark p.cage.sign =* desc=tape "from {(trip have)} to json" - =/ tube=(unit tube:clay) - =/ tuc=(unit (unit cage)) - (rof ~ %cc [our %home da+now] /[have]/json) - ?. ?=([~ ~ *] tuc) ~ - `!<(tube:clay q.u.u.tuc) - ?~ tube - ((slog leaf+"eyre: no tube {desc}" ~) ~) - :: - =/ res (mule |.((u.tube q.cage.sign))) - ?: ?=(%& -.res) - `[%fact %json p.res] - ((slog leaf+"eyre: failed tube {desc}" ~) ~) - :: + =/ convert=(unit vase) + =/ cag=(unit (unit cage)) + (rof ~ %cf [our %home da+now] /[have]/json) + ?. ?=([~ ~ *] cag) ~ + `q.u.u.cag + ?~ convert + ((slog leaf+"eyre: no convert {desc}" ~) [~ ~]) + ~| "conversion failed {desc}" + [`have `[%fact %json (slym u.convert q.q.cage.sign)]] ?~ jsyn ~ %- some + :- ?~ from ~ + :_ ~ + :^ duct %pass /conversion-cache/[u.from] + [%c %warp our %home `[%sing %f da+now /[u.from]/json]] =* sign u.jsyn =, enjs:format %- pairs @@ -1665,7 +1679,7 @@ :- 'json' ~| [%unexpected-fact-mark p.cage.sign] ?> =(%json p.cage.sign) - ;;(json q.q.cage.sign) + !<(json q.cage.sign) == :: %kick @@ -2320,14 +2334,15 @@ :: |^ ^- [(list move) _http-server-gate] :: - ?+ i.wire - ~|([%bad-take-wire wire] !!) + ?+ i.wire + ~|([%bad-take-wire wire] !!) :: - %run-app-request run-app-request - %watch-response watch-response - %sessions sessions - %channel channel - %acme acme-ack + %run-app-request run-app-request + %watch-response watch-response + %sessions sessions + %channel channel + %acme acme-ack + %conversion-cache `http-server-gate == :: ++ run-app-request diff --git a/pkg/arvo/sys/vane/gall.hoon b/pkg/arvo/sys/vane/gall.hoon index 690fa615eb..4249bcd8e5 100644 --- a/pkg/arvo/sys/vane/gall.hoon +++ b/pkg/arvo/sys/vane/gall.hoon @@ -159,7 +159,10 @@ ~< %slog.[0 leaf+"gall: molted"] :: +molt should never notify its client about agent changes :: - =- [(skip -< |=(move ?=([* %give %onto *] +<))) ->] + =- :_ -> + %+ welp + (skip -< |=(move ?=([* %give %onto *] +<))) + [^duct %pass /whiz/gall %$ %whiz ~]~ =/ adult adult-core =. state.adult [%7 system-duct outstanding contacts yokes=~ blocked]:spore diff --git a/pkg/arvo/sys/zuse.hoon b/pkg/arvo/sys/zuse.hoon index 168c15863a..0d934380bc 100644 --- a/pkg/arvo/sys/zuse.hoon +++ b/pkg/arvo/sys/zuse.hoon @@ -3391,6 +3391,11 @@ :: :: ++no:dejs:format ++ no :: number as cord |=(jon=json ?>(?=([%n *] jon) p.jon)) + :: :: ++nu:dejs:format + ++ nu :: parse number as hex + |= jon=json + ?> ?=([%s *] jon) + (rash p.jon hex) :: :: ++of:dejs:format ++ of :: object as frond |* wer=(pole [cord fist]) @@ -3440,6 +3445,11 @@ =/ ten ~|(key+key.wer (wit.wer (~(get by jom) key.wer))) ?~(t.wer ten [ten ((ou-raw t.wer) jom)]) == + :: :: ++oj:dejs:format + ++ oj :: object as jug + |* =fist + ^- $-(json (jug cord _(fist *json))) + (om (as fist)) :: :: ++om:dejs:format ++ om :: object as map |* wit=fist @@ -3466,6 +3476,12 @@ :: :: ++sa:dejs:format ++ sa :: string as tape |=(jon=json ?>(?=([%s *] jon) (trip p.jon))) + :: :: ++sd:dejs:format + ++ sd :: string @ud as date + |= jon=json + ^- @da + ?> ?=(%s -.jon) + `@da`(rash p.jon dem:ag) :: :: ++se:dejs:format ++ se :: string as aura |= aur=@tas @@ -3580,6 +3596,15 @@ ?. ?=([%s *] jon) ~ (bind (stud:chrono:userlib p.jon) |=(a=date (year a))) :: + ++ dank :: tank + ^- $-(json (unit tank)) + %+ re *tank |. ~+ + %- of :~ + leaf+sa + palm+(ot style+(ot mid+sa cap+sa open+sa close+sa ~) lines+(ar dank) ~) + rose+(ot style+(ot mid+sa open+sa close+sa ~) lines+(ar dank) ~) + == + :: ++ di :: millisecond date (cu from-unix-ms:chrono:userlib ni) :: @@ -3653,6 +3678,12 @@ |* [pre=* wit=fist] (cu |*(* [pre +<]) wit) :: + ++ re :: recursive reparsers + |* [gar=* sef=_|.(fist)] + |= jon=json + ^- (unit _gar) + ((sef) jon) + :: ++ sa :: string as tape |= jon=json ?.(?=([%s *] jon) ~ (some (trip p.jon))) diff --git a/pkg/arvo/ted/btc-rpc.hoon b/pkg/arvo/ted/btc-rpc.hoon index 81f2ddc460..a25398e7cf 100644 --- a/pkg/arvo/ted/btc-rpc.hoon +++ b/pkg/arvo/ted/btc-rpc.hoon @@ -49,7 +49,7 @@ ^- hexb:bc %- flip:byt:bc %- sha256:bc - (script-pubkey:bc a) + (to-script-pubkey:adr:bc a) :: ++ parse-json-rpc |= =json