mirror of
https://github.com/urbit/shrub.git
synced 2024-12-11 23:48:22 +03:00
merge master, new tree/main.js
This commit is contained in:
commit
deda8e2314
@ -1005,7 +1005,9 @@
|
||||
::
|
||||
++ peer-sole
|
||||
~? !=(src.hid our.hid) [%dojo-peer-stranger ost.hid src.hid]
|
||||
:: ?> =(src.hid our.hid)
|
||||
?> ?| =(src.hid our.hid)
|
||||
&(=(%earl (clan src.hid)) =(our.hid (sein src.hid)))
|
||||
==
|
||||
=^ moz .
|
||||
?. (~(has by hoc) ost.hid) [~ .]
|
||||
~& [%dojo-peer-replaced ost.hid]
|
||||
|
@ -4,7 +4,7 @@
|
||||
=> =~
|
||||
:: structures
|
||||
|%
|
||||
++ move {p/duct q/(mold note gift-ames)} :: local move
|
||||
++ move {p/duct q/(wind note gift-ames)} :: local move
|
||||
++ note :: out request $->
|
||||
$? $: $d :: to %dill
|
||||
$% {$flog p/flog} ::
|
||||
|
@ -19,7 +19,7 @@
|
||||
{$wake $~} :: timer activate
|
||||
{$wegh $~} :: report memory
|
||||
== ::
|
||||
++ move {p/duct q/(mold note gift)} :: local move
|
||||
++ move {p/duct q/(wind note gift)} :: local move
|
||||
++ note $~ :: out request $->
|
||||
++ sign $~ :: in result $<-
|
||||
++ clok (broq @da duct) :: stored timers
|
||||
|
@ -49,7 +49,7 @@
|
||||
$merge $build $checkout $ergo :: waiting for?
|
||||
== ::
|
||||
++ moot {p/case q/case r/path s/(map path lobe)} :: stored change range
|
||||
++ move {p/duct q/(mold note gift)} :: local move
|
||||
++ move {p/duct q/(wind note gift)} :: local move
|
||||
++ nako $: gar/(map aeon tako) :: new ids
|
||||
let/aeon :: next id
|
||||
lar/(set yaki) :: new commits
|
||||
|
@ -43,7 +43,7 @@
|
||||
++ mess ::
|
||||
$% {$dill-belt p/(hypo dill-belt)} ::
|
||||
== ::
|
||||
++ move {p/duct q/(mold note gift)} :: local move
|
||||
++ move {p/duct q/(wind note gift)} :: local move
|
||||
++ note-ames :: weird ames move
|
||||
$% {$make p/(unit @t) q/@ud r/@ s/?} ::
|
||||
{$sith p/@p q/@uw r/?} ::
|
||||
|
185
arvo/eyre.hoon
185
arvo/eyre.hoon
@ -6,7 +6,7 @@
|
||||
|% :: interfaces
|
||||
++ gift gift-eyre :: out result <-$
|
||||
++ kiss kiss-eyre :: in request ->$
|
||||
++ move {p/duct q/(mold note gift)} :: local move
|
||||
++ move {p/duct q/(wind note gift)} :: local move
|
||||
++ note :: out request $->
|
||||
$% $: $a :: to %ames
|
||||
$% {$wont p/sock q/{path *}} ::
|
||||
@ -31,8 +31,9 @@
|
||||
$% {$deal p/sock q/cush} :: full transmission
|
||||
== == == ::
|
||||
++ sign :: in result $<-
|
||||
$? $: $a :: by %aformedmes
|
||||
$% {$woot p/ship q/coop} ::
|
||||
$? $: $a :: by %ames
|
||||
$% {$woot p/ship q/coop} :: ackgnowledgment
|
||||
{$went ship cape} :: XX ignore
|
||||
== == ::
|
||||
$: $b :: by %behn
|
||||
$% {$wake $~} :: timer activate
|
||||
@ -241,62 +242,119 @@
|
||||
==
|
||||
::
|
||||
++ favi :: XX favicon
|
||||
%+ can 6 :~
|
||||
[20 0wf~.~0000.00000.00000.00000.00000.1g000.00002.000g0.00200.000g0.
|
||||
000a0.001kU.001gE.02000.g0082.00000.C0005.a00w0.04001.0g008.00g00]
|
||||
::
|
||||
[98 (fil 6 98 0w3.~~~~~)]
|
||||
[59 0wf~~~Z.jkRf~.OYLb~.~~~~~.~~~~~.~Z~vT.~LrSZ.~SNIr.fZnlR.v~CVK.r~~LX.
|
||||
-~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.rSZLY.Ib2P~.gA92~.XqSJL.-vDV~.~fzU-.
|
||||
~M000.fY000.3~000.0~M00.0fZwo.63~-f.zU~~~.~~~~~.~~~~~.~~~~~.~~~~~.V-vD~.
|
||||
pStD~.M000f.Y0003.~0000.~M000.fZ6hA.r~GqC.F~X-~.L~Z7h.Qv~82.0w~~b.OYL~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~X-~L.-FGqD.~nlRt.~SRJr.v~3MY.f~~~~.~~~~~.
|
||||
~~~~~.~~~Xu.TJ~Yv.7N~~~]
|
||||
::
|
||||
[98 (fil 6 98 0w3.~~~~~)]
|
||||
[1 0wf~~]
|
||||
[63 (fil 6 63 0w0)]
|
||||
[11 0wf~~0.00000.00000.00000.00000.00050.00000.00200.0g000.40000.0w000.0a000]
|
||||
[389 (fil 6 389 0w3.~~~~~)]
|
||||
[3 0w~.~~~Xe.PI~~H.W-L~~]
|
||||
[9 (fil 6 9 0w3.~~~~~)]
|
||||
[6 0w~~.~~StD.p~VWu.DL-7x.Uv~Dp.St~Zv.nR~~~]
|
||||
[14 (fil 6 14 0w3.~~~~~)]
|
||||
[4 0w3~.~~~IX.eP~ez.EW~WG.GGL~~]
|
||||
[5 (fil 6 5 0w3.~~~~~)]
|
||||
[11 0wf~~~.-byUL.ZzoSf.~3MYf.~M000.fY000.
|
||||
3~000.0~MQd.3vZik.Bb~Kb.yU~~P.Y~f~~]
|
||||
[11 (fil 6 11 0w3.~~~~~)]
|
||||
[13 0wfY.10g7~.gk51~.WOIHf.~RZvn.~~~~~.~~~~~.
|
||||
~~~~~.~~W-L.H~QVe.jLY00.03~cj.4N~~b.OYL~~]
|
||||
[6 (fil 6 6 0wfY0)]
|
||||
[3 0w~.~~~Os.D9~Ok.B9vY0]
|
||||
[10 (fil 6 10 0w3.~~~~~)]
|
||||
[10 0wf.YJbiT.~sTdP.~VunB.~ZZvn.T~aiA.F~M00.0fY00.03~00.00~VG.qCL~~]
|
||||
[10 (fil 6 10 0wfY0)]
|
||||
[3 0w~.~~~Qt.7h~NI.r6~Y0]
|
||||
[9 (fil 6 9 0w3.~~~~~)]
|
||||
[3 0w3~5N.sn~Y~.fP~~~]
|
||||
[10 (fil 6 10 0wfY0)]
|
||||
[10 0w3~~~.-QJbj.~0000.~M000.fY000.3~6hA.p~SFG.qL-6x.Er~oC.9y~NU.u7LY0]
|
||||
[10 (fil 6 10 0w3.~~~~~)]
|
||||
[3 0w3~5h.kl~XG.WKL~~]
|
||||
[7 (fil 6 7 0wfY0)]
|
||||
[12 0w~~~~.~fPY~.QB9iv.Y0003.~k51g.~Z~vT.~~~~~.
|
||||
~~~~~.~~~~~.~~~FW.uD~Cp.Cp~P8.OcLY0]
|
||||
[11 (fil 6 11 0w3.~~~~~)]
|
||||
[11 0wf~~~.~nRZv.-FGqD.~hQt7.~MEa2.LY000.
|
||||
3~000.0~M00.0fY20.wb~i4.x8~YX.ePL~~]
|
||||
[5 (fil 6 5 0w3.~~~~~)]
|
||||
[4 0w3~.~~-~L.X~~lB.pm~~n.RZv~~]
|
||||
[13 (fil 6 13 0w3.~~~~~)]
|
||||
[7 0w3~~.~~kRd.j~DFW.u~Ue3.w~-ez.EX~Nc.j4~~P.Y~f~~]
|
||||
[9 (fil 6 9 0w3.~~~~~)]
|
||||
[3 0w~.~~~~L.X-~~H.W-L~~]
|
||||
[389 (fil 6 389 0w3.~~~~~)]
|
||||
[1 0wf~~]
|
||||
==
|
||||
::
|
||||
0w3.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~LX-.~~HW-.L~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.Rdjk~.VWuDL.-3wUf.~zEWe.~Yj4N.f~Y~f.P~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~-~LX.~~lBp.m~~nR.Zv~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.RZvn~.GqCF~.Qt7h~.Ya2wH.~0000.~M000.fY000.
|
||||
3~0w8.2~Qx8.if~eP.IX~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~fP.Y~QB9.ivY00.03~k5.1g~Z~.vT~~~.~~~~~.~~~~~.~~~~~.FWuD~.
|
||||
CpCp~.P8OcL.Y0003.~0000.~M000.fY000.3~000.0~M00.0fY00.03~00.00~Nk.l5v-W.KHH~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~-QJ.bj~00.
|
||||
00~M0.00fY0.003~6.hAp~S.FGqL-.6xEr~.oC9y~.NUu7L.Y0003.~0000.~M000.fY000.3~000.
|
||||
0~M00.0fY00.03~00.00~M0.00fY0.003~0.000~N.sn5~~.fPY~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~Z7.hQvYr.6NL~0.000~M.000fY.0003~.0000~.
|
||||
M000f.Y0003.~0000.~M000.fY000.3~000.0~M00.0fYJb.iT~sT.dP~Vu.nB~ZZ.vnT~a.iAF~M.
|
||||
000fY.0003~.0000~.VGqCL.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~Y.D9OvY.B9in~.0000~.M000f.Y0003.~0000.~M000.fY000.3~000.0~M41.
|
||||
0vZ1g.k7~Ha.OI~~n.RZv~~.~~~~~.~~~~~.~~~~~.HW-L~.jAVe~.M000f.YNcj7.~YLbO.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.-byUL.
|
||||
ZzoSf.~3MYf.~M000.fY000.3~000.0~MQd.3vZik.Bb~Kb.yU~~P.Y~f~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~IXeP.~ezEW.~WGGG.L~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~pSt.D~DFW.u~Uu7.x~-tD.
|
||||
pT~RZ.vn~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~IXe.
|
||||
P~-LH.W~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~0000.00000.00000.00000.00000.50000.00002.000g0.00400.000w0.000a0.00000.
|
||||
00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.
|
||||
00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.
|
||||
00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.
|
||||
00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.
|
||||
00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.
|
||||
00000.00000.3~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.Rdjk~.~bOYL.~~~~~.~~~~~.~~TZ~.v-ZLr.T~r6N.I~Rtn.l~-rC.
|
||||
VL~-~.LX~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.ZLrS~.OMIbf.Z2gAb.~JHqS.~V-vD.~Y-fz.
|
||||
X~000.0~M00.0fY00.03~00.00~S1.wof~U.-fz~~.~~~~~.~~~~~.~~~~~.~~~~~.~DV-v.ZDpSv.
|
||||
~0000.~M000.fY000.3~000.0~Qp6.hL-FG.qD~LX.-~~Qt.7h~Yw.823~Y.LbO~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~LX-.~WCFG.vZtnl.T~rmR.J~Yf3.M~~~~.~~~~~.~~~~~.~~~~J.XuT~N.
|
||||
Yv7~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.~~~~~.
|
||||
~~~~~.~~~~~.~0000.00000.00000.00000.00000.1g000.00002.000g0.00200.000g0.000a0.
|
||||
001kU.001gE.02000.g0082.00000.C0005.a00w0.04001.0g008.00g00
|
||||
++ js :: static javascript
|
||||
|%
|
||||
++ poll :: dependency long-poll
|
||||
@ -675,6 +733,11 @@
|
||||
:: (emule |.(~|(gall-dumb+tee !!)))
|
||||
::
|
||||
$woot +>.$
|
||||
$went
|
||||
:: XX eyre sends no wests, so should get no wents
|
||||
::~& e+unexpected+sih
|
||||
+>.$
|
||||
::
|
||||
$thou
|
||||
?+ -.tee !!
|
||||
$ay (ames-gram (slav %p p.tee) got+~ (slav %uv q.tee) |2.sih)
|
||||
@ -739,9 +802,9 @@
|
||||
=+ usr=(slav %ta p.tee)
|
||||
=+ ((hard {pul/purl ^}) q.q.cay)
|
||||
?. ?=($& -.r.p.pul)
|
||||
~& [%auth-lost usr p.r.p.pul]
|
||||
~& [%auth-lost usr (head:earn p.pul)]
|
||||
(eyre-them tee q.cay)
|
||||
(get-req:(dom-vi usr p.r.p.pul) q.tee q.cay)
|
||||
(get-req:(dom-vi usr (scag 2 p.r.p.pul)) q.tee q.cay)
|
||||
::
|
||||
:: {$hi ^}
|
||||
:: ?: ?=($| -.q.sih)
|
||||
|
@ -9,7 +9,7 @@
|
||||
++ gift gift-ford :: out result <-$
|
||||
++ heel path :: functional ending
|
||||
++ kiss kiss-ford :: in request ->$
|
||||
++ move {p/duct q/(mold note gift)} :: local move
|
||||
++ move {p/duct q/(wind note gift)} :: local move
|
||||
++ note :: out request $->
|
||||
$% $: $c :: to %clay
|
||||
$% {$warp p/sock q/riff} ::
|
||||
@ -37,7 +37,7 @@
|
||||
jav/(map * calx) :: cache
|
||||
== ::
|
||||
++ bolt :: gonadic edge
|
||||
|* a/$-(* *) :: product clam
|
||||
|* a/mold :: product clam
|
||||
$: p/cafe :: cache
|
||||
$= q ::
|
||||
$% {$0 p/(set beam) q/a} :: depends+product
|
||||
@ -47,7 +47,7 @@
|
||||
== ::
|
||||
:: ::
|
||||
++ burg :: gonadic rule
|
||||
|* {a/$-(* *) b/$-(* *)} :: from and to
|
||||
|* {a/mold b/mold} :: from and to
|
||||
$-({c/cafe d/a} (bolt b)) ::
|
||||
:: ::
|
||||
++ cafe :: live cache
|
||||
@ -425,7 +425,7 @@
|
||||
::
|
||||
++ coup :: toon to bolt
|
||||
|= cof/cafe
|
||||
|* {ton/toon fun/$-(* *)}
|
||||
|* {ton/toon fun/gate}
|
||||
:- p=cof
|
||||
^= q
|
||||
?- -.ton
|
||||
@ -468,7 +468,7 @@
|
||||
::
|
||||
++ cowl :: each to bolt
|
||||
|= cof/cafe
|
||||
|* {tod/(each * tang) fun/$-(* *)}
|
||||
|* {tod/(each * tang) fun/gate}
|
||||
%+ (coup cof)
|
||||
?- -.tod
|
||||
$& [%0 p=p.tod]
|
||||
|
@ -24,8 +24,8 @@
|
||||
{$send p/ship q/cush} ::
|
||||
{$hiss p/(unit knot) q/mark r/cage} ::
|
||||
== ::
|
||||
++ cove (pair bone (mold cote cuft)) :: internal move
|
||||
++ move {p/duct q/(mold note-arvo gift-arvo)} :: typed move
|
||||
++ cove (pair bone (wind cote cuft)) :: internal move
|
||||
++ move {p/duct q/(wind note-arvo gift-arvo)} :: typed move
|
||||
-- ::
|
||||
|% :::::::::::::::::::::::::::::::::::::::::::::::::::::: %gall state
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
|
@ -25,7 +25,7 @@
|
||||
~
|
||||
|% ::
|
||||
++ abel typo :: original sin: span
|
||||
++ ache |* {a/$-(* *) b/$-(* *)} :: either a or b
|
||||
++ ache |* {a/mold b/mold} :: either a or b
|
||||
$%({$| p/b} {$& p/a}) :: b default
|
||||
++ atom @ :: just an atom
|
||||
++ axis @ :: tree address
|
||||
@ -72,7 +72,7 @@
|
||||
++ date {{a/? y/@ud} m/@ud t/tarp} :: parsed date
|
||||
++ dime {p/@ta q/@} ::
|
||||
++ dock (pair @p term) :: message target
|
||||
++ each |* {a/$-(* *) b/$-(* *)} :: either a or b
|
||||
++ each |* {a/mold b/mold} :: either a or b
|
||||
$%({$& p/a} {$| p/b}) :: a default
|
||||
++ edge {p/hair q/(unit {p/* q/nail})} :: parsing output
|
||||
++ foot $% {$ash p/twig} :: dry arm, geometric
|
||||
@ -81,7 +81,7 @@
|
||||
++ gate $-(* *) :: general gate
|
||||
++ hair {p/@ud q/@ud} :: parsing trace
|
||||
++ knot @ta :: ASCII text
|
||||
++ like |* a/$-(* *) :: generic edge
|
||||
++ like |* a/mold :: generic edge
|
||||
|= b/_`*`[(hair) ~] ::
|
||||
:- p=(hair -.b) ::
|
||||
^= q ::
|
||||
@ -93,9 +93,9 @@
|
||||
{$| p/@ud q/(unit term)} :: by name
|
||||
== ::
|
||||
++ line {p/{$leaf p/odor q/@} q/tile} :: %kelp case
|
||||
++ list |* a/$-(* *) :: null-term list
|
||||
++ list |* a/mold :: null-term list
|
||||
$@($~ {i/a t/(list a)}) ::
|
||||
++ lone |*(a/$-(* *) p/a) :: just one thing
|
||||
++ lone |*(a/mold p/a) :: just one thing
|
||||
++ mane $@(@tas {@tas @tas}) :: XML name+space
|
||||
++ manx {g/marx c/marl} :: XML node
|
||||
++ marl (list manx) :: XML node list
|
||||
@ -103,19 +103,20 @@
|
||||
++ mart (list {n/mane v/tape}) :: XML attributes
|
||||
++ marx {n/mane a/mart} :: XML tag
|
||||
++ metl ?($gold $iron $zinc $lead) :: core variance
|
||||
++ mold $-(* *) :: mold of a span
|
||||
++ noun * :: any noun
|
||||
++ null $~ :: null, nil, etc
|
||||
++ odor @ta :: atom format
|
||||
++ tarp {d/@ud h/@ud m/@ud s/@ud f/(list @ux)} :: parsed time
|
||||
++ time @da :: galactic time
|
||||
++ tree |* a/$-(* *) :: binary tree
|
||||
++ tree |* a/mold :: binary tree
|
||||
$@($~ {n/a l/(tree a) r/(tree a)}) ::
|
||||
++ nail {p/hair q/tape} :: parsing input
|
||||
++ numb @ :: just a number
|
||||
++ pair |*({a/$-(* *) b/$-(* *)} {p/a q/b}) :: just a pair
|
||||
++ quid |*({a/$-(* *) b/*} {a _b}) :: for =^
|
||||
++ quip |*({a/$-(* *) b/*} {(list a) _b}) :: for =^
|
||||
++ wand |* a/(pole $-(* *)) :: hetero list
|
||||
++ pair |*({a/mold b/mold} {p/a q/b}) :: just a pair
|
||||
++ quid |*({a/mold b/*} {a _b}) :: for =^
|
||||
++ quip |*({a/mold b/*} {(list a) _b}) :: for =^
|
||||
++ wand |* a/(pole mold) :: hetero list
|
||||
|= b/* ::
|
||||
?~ a ~ ::
|
||||
?@ b ~ ::
|
||||
@ -130,10 +131,10 @@
|
||||
++ pint {p/{p/@ q/@} q/{p/@ q/@}} :: line+column range
|
||||
++ palo (pair vein opal) :: wing trace, match
|
||||
++ pock (pair axis nock) :: changes
|
||||
++ pole |* a/$-(* *) :: nameless list
|
||||
++ pole |* a/mold :: nameless list
|
||||
$@($~ {a (pole a)}) ::
|
||||
++ port (each palo (pair span nock)) :: successful match
|
||||
++ qual |* {a/$-(* *) b/$-(* *) c/$-(* *) d/$-(* *)} :: just a quadruple
|
||||
++ qual |* {a/mold b/mold c/mold d/mold} :: just a quadruple
|
||||
{p/a q/b r/c s/d} ::
|
||||
++ ring @ :: private key
|
||||
++ rule _|=(nail *edge) :: parsing rule
|
||||
@ -178,8 +179,8 @@
|
||||
{$1 p/term q/toga} :: deep toga
|
||||
{$2 p/toga q/toga} :: cell toga
|
||||
== ::
|
||||
++ trap |*(a/_* _|?(*a)) :: makes perfect sense
|
||||
++ trel |* {a/$-(* *) b/$-(* *) c/$-(* *)} :: just a triple
|
||||
++ trap |*(a/_* _|?(*a)) :: makes perfect sense
|
||||
++ trel |* {a/mold b/mold c/mold} :: just a triple
|
||||
{p/a q/b r/c} ::
|
||||
++ tuna :: tagflow
|
||||
$% {$a p/twig} :: plain text
|
||||
@ -388,11 +389,11 @@
|
||||
== ::
|
||||
$% {$d p/@ud} :: blocklist
|
||||
== ::
|
||||
++ unce |* a/$-(* *) :: change part
|
||||
++ unce |* a/mold :: change part
|
||||
$% {$& p/@ud} :: skip[copy]
|
||||
{$| p/(list a) q/(list a)} :: p -> q[chunk]
|
||||
== ::
|
||||
++ unit |* a/$-(* *) :: maybe
|
||||
++ unit |* a/mold :: maybe
|
||||
$@($~ {$~ u/a}) ::
|
||||
++ upas :: tree change (%d)
|
||||
$^ {p/upas q/upas} :: cell
|
||||
@ -400,7 +401,7 @@
|
||||
{$1 p/*} :: insert new
|
||||
{$2 p/axis q/udon} :: mutate!
|
||||
== ::
|
||||
++ urge |*(a/$-(* *) (list (unce a))) :: list change
|
||||
++ urge |*(a/mold (list (unce a))) :: list change
|
||||
++ vase {p/span q/*} :: span-value pair
|
||||
++ vise {p/typo q/*} :: old vase
|
||||
++ wall (list tape) :: text lines (no \n)
|
||||
@ -416,14 +417,14 @@
|
||||
mit/(map (pair span twig) (pair span nock)) :: ++mint
|
||||
== ::
|
||||
:: ::
|
||||
++ map |* {a/$-(* *) b/$-(* *)} :: associative tree
|
||||
++ map |* {a/mold b/mold} :: associative tree
|
||||
$@($~ {n/{p/a q/b} l/(map a b) r/(map a b)}) ::
|
||||
++ qeu |* a/$-(* *) :: queue
|
||||
++ qeu |* a/mold :: queue
|
||||
$@($~ {n/a l/(qeu a) r/(qeu a)}) ::
|
||||
++ set |* a/$-(* *) :: set
|
||||
++ set |* a/mold :: set
|
||||
$@($~ {n/a l/(set a) r/(set a)}) ::
|
||||
++ jar |*({a/$-(* *) b/$-(* *)} (map a (list b))) :: map of lists
|
||||
++ jug |*({a/$-(* *) b/$-(* *)} (map a (set b))) :: map of sets
|
||||
++ jar |*({a/mold b/mold} (map a (list b))) :: map of lists
|
||||
++ jug |*({a/mold b/mold} (map a (set b))) :: map of sets
|
||||
-- ::
|
||||
:::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
:::::: :::::: volume 2, Hoon libraries and compiler ::::::
|
||||
@ -783,7 +784,7 @@
|
||||
::
|
||||
++ turn :: transform
|
||||
~/ %turn
|
||||
|* {a/(list) b/$-(* *)}
|
||||
|* {a/(list) b/gate}
|
||||
|-
|
||||
?~ a ~
|
||||
[i=(b i.a) t=$(a t.a)]
|
||||
@ -1256,7 +1257,7 @@
|
||||
--
|
||||
::
|
||||
++ stat :: positive counter
|
||||
|* a/$-(* *)
|
||||
|* a/mold
|
||||
|= (trel ? a (map a @ud))
|
||||
^+ r
|
||||
=+ (~(get by r) q)
|
||||
@ -2215,8 +2216,8 @@
|
||||
++ same |*(* +<) :: identity
|
||||
++ head |*(^ +<-) :: get head
|
||||
++ tail |*(^ +<+) :: get head
|
||||
++ fore |*(a/$-(* *) |*(b/$-(* *) (pair a b))) :: pair before
|
||||
++ aftr |*(a/$-(* *) |*(b/$-(* *) (pair b a))) :: pair after
|
||||
++ fore |*(a/mold |*(b/mold (pair a b))) :: pair before
|
||||
++ aftr |*(a/mold |*(b/mold (pair b a))) :: pair after
|
||||
++ test |=(^ =(+<- +<+)) :: equality
|
||||
++ cork |*({a/_|=(* **) b/gate} (corl b a)) :: compose forward
|
||||
++ corl :: compose backwards
|
||||
@ -2239,14 +2240,15 @@
|
||||
|=({a/@ b/@} `(list @)`?:(=(a +(b)) ~ [a $(a +(a))]))
|
||||
::
|
||||
++ hard :: force coerce to span
|
||||
|* han/$-(* *)
|
||||
|* han/mold
|
||||
|= fud/* ^- han
|
||||
~| %hard
|
||||
=+ gol=(han fud)
|
||||
?>(=(gol fud) gol)
|
||||
::
|
||||
++ soft :: maybe coerce to span
|
||||
|* han/$-(* *)
|
||||
|* han/mold
|
||||
|
||||
|= fud/* ^- (unit han)
|
||||
=+ gol=(han fud)
|
||||
?.(=(gol fud) ~ [~ gol])
|
||||
@ -2450,7 +2452,7 @@
|
||||
$(a r.a, +<+.b $(a l.a, +<+.b (b n.a +<+.b)))
|
||||
::
|
||||
+- run :: apply gate to values
|
||||
|* {b/$-(* *) c/*}
|
||||
|* {b/gate c/*}
|
||||
|-
|
||||
?~ a c
|
||||
$(a r.a, c [(b n.a) $(a l.a)])
|
||||
@ -2716,7 +2718,7 @@
|
||||
$(a r.a, +<+.b $(a l.a, +<+.b (b n.a +<+.b)))
|
||||
::
|
||||
+- rib :: transform + product
|
||||
|* {b/* c/$-(* *)}
|
||||
|* {b/* c/gate}
|
||||
|- ^+ [b a]
|
||||
?~ a [b ~]
|
||||
=+ d=(c n.a b)
|
||||
@ -2726,7 +2728,7 @@
|
||||
[-.f [n.a +.e +.f]]
|
||||
::
|
||||
+- run :: apply gate to values
|
||||
|* b/$-(* *)
|
||||
|* b/gate
|
||||
|-
|
||||
?~ a a
|
||||
[n=[p=p.n.a q=(b q.n.a)] l=$(a l.a) r=$(a r.a)]
|
||||
@ -2960,7 +2962,7 @@
|
||||
::
|
||||
++ cook :: apply gate
|
||||
~/ %cook
|
||||
|* {poq/$-(* *) sef/rule}
|
||||
|* {poq/gate sef/rule}
|
||||
~/ %fun
|
||||
|= tub/nail
|
||||
=+ vex=(sef tub)
|
||||
@ -10485,12 +10487,12 @@
|
||||
:::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
~% %arvo + ~
|
||||
|%
|
||||
++ arch {fil/(unit @uvI) dir/(map @ta $~)} :: fundamental node
|
||||
++ arvo (mold {p/term q/mill} mill) :: arvo card
|
||||
++ beam {{p/ship q/desk r/case} s/path} :: global name
|
||||
++ beak {p/ship q/desk r/case} :: garnish with beak
|
||||
++ bone @ud :: opaque duct
|
||||
++ care ?($$ $u $v $w $x $y $z) :: namespace mode
|
||||
++ arch {fil/(unit @uvI) dir/(map @ta $~)} :: fundamental node
|
||||
++ arvo (wind {p/term q/mill} mill) :: arvo card
|
||||
++ beam {{p/ship q/desk r/case} s/path} :: global name
|
||||
++ beak {p/ship q/desk r/case} :: garnish with beak
|
||||
++ bone @ud :: opaque duct
|
||||
++ care ?($$ $u $v $w $x $y $z) :: namespace mode
|
||||
++ case :: version
|
||||
$% {$da p/@da} :: date
|
||||
{$tas p/@tas} :: label
|
||||
@ -10498,15 +10500,15 @@
|
||||
== ::
|
||||
++ desk @tas :: ship desk case spur
|
||||
++ cage (cask vase) :: global metadata
|
||||
++ cask |*(a/$-(* *) (pair mark a)) :: global data
|
||||
++ cask |*(a/mold (pair mark a)) :: global data
|
||||
++ cuff :: permissions
|
||||
$: p/(unit (set monk)) :: can be read by
|
||||
q/(set monk) :: caused or created by
|
||||
== ::
|
||||
++ curd {p/@tas q/*} :: spanless card
|
||||
++ duct (list wire) :: causal history
|
||||
++ hypo |*(a/$-(* *) (pair span a)) :: span associated
|
||||
++ hobo |* a/$-(* *) :: kiss wrapper
|
||||
++ hypo |*(a/mold (pair span a)) :: span associated
|
||||
++ hobo |* a/mold :: kiss wrapper
|
||||
$? $% {$soft p/*} ::
|
||||
== ::
|
||||
a ::
|
||||
@ -10531,13 +10533,6 @@
|
||||
++ mill (each vase milt) :: vase+metavase
|
||||
++ milt {p/* q/*} :: metavase
|
||||
++ monk (each ship {p/@tas q/@ta}) :: general identity
|
||||
++ mold :: new kernel action
|
||||
|* {a/$-(* *) b/$-(* *)} :: forward+reverse
|
||||
$% {$pass p/path q/a} :: advance
|
||||
{$slip p/a} :: lateral
|
||||
{$sick p/b} :: lame refactoring
|
||||
{$give p/b} :: retreat
|
||||
== ::
|
||||
++ muse {p/@tas q/duct r/arvo} :: sourced move
|
||||
++ move {p/duct q/arvo} :: arvo move
|
||||
++ ovum {p/wire q/curd} :: spanless ovum
|
||||
@ -10556,6 +10551,13 @@
|
||||
pah/span :: -:!>(*path)
|
||||
mev/span :: -:!>([%meta *vase])
|
||||
== ::
|
||||
++ wind :: new kernel action
|
||||
|* {a/mold b/mold} :: forward+reverse
|
||||
$% {$pass p/path q/a} :: advance
|
||||
{$slip p/a} :: lateral
|
||||
{$sick p/b} :: lame refactoring
|
||||
{$give p/b} :: retreat
|
||||
== ::
|
||||
++ wire path :: event pretext
|
||||
++ sloy
|
||||
|= sod/slyd
|
||||
|
@ -40,7 +40,7 @@
|
||||
[%nuke ~] :: erase subscriber
|
||||
[%tell p=@uw q=(unit ,@da) r=path] :: save secret
|
||||
== ::
|
||||
++ move ,[p=duct q=(mold note gift)] :: typed move
|
||||
++ move ,[p=duct q=(wind note gift)] :: typed move
|
||||
++ note :: out request $->
|
||||
$% $: %b :: to %behn
|
||||
$% [%wait p=@da] ::
|
||||
|
@ -851,12 +851,12 @@
|
||||
|=(jon/json ?.(?=({$b *} jon) ~ [~ u=!p.jon]))
|
||||
::
|
||||
++ ci :: maybe transform
|
||||
|* {poq/$-(* *) wit/fist}
|
||||
|* {poq/gate wit/fist}
|
||||
|= jon/json
|
||||
(biff (wit jon) poq)
|
||||
::
|
||||
++ cu :: transform
|
||||
|* {poq/$-(* *) wit/fist}
|
||||
|* {poq/gate wit/fist}
|
||||
|= jon/json
|
||||
(bind (wit jon) poq)
|
||||
::
|
||||
|
@ -9,7 +9,7 @@
|
||||
::::
|
||||
::
|
||||
:- %say
|
||||
|= {^ {arg/(list path)} vane=?($c $g)}
|
||||
|= {^ {arg/(list path)} vane/?($c $g)}
|
||||
=- tang+(flop `tang`(zing -))
|
||||
%+ turn arg
|
||||
|= pax/path
|
||||
@ -17,7 +17,7 @@
|
||||
=+ ark=.^(arch (cat 3 vane %y) pax)
|
||||
?^ fil.ark
|
||||
?: =(%sched -:(flop pax))
|
||||
[> .^((map ,@da cord) (cat 3 vane %x) pax)<]~
|
||||
[>.^((map @da cord) (cat 3 vane %x) pax)<]~
|
||||
[leaf+(spud pax) (pretty-file .^(noun (cat 3 vane %x) pax))]
|
||||
?- dir.ark :: handle ambiguity
|
||||
$~
|
||||
|
@ -1,5 +1,5 @@
|
||||
::
|
||||
:::: /hoon/ticket/gen
|
||||
:::: /hoon/list/gmail/gen
|
||||
::
|
||||
/? 310
|
||||
::
|
||||
|
28
gen/hood/init-oauth2/google.hoon
Normal file
28
gen/hood/init-oauth2/google.hoon
Normal file
@ -0,0 +1,28 @@
|
||||
::
|
||||
:::: /hoon/google/init-oauth2/hood/gen
|
||||
::
|
||||
/? 314
|
||||
/- sole
|
||||
::
|
||||
::::
|
||||
!:
|
||||
[sole .]
|
||||
:- %ask
|
||||
|= $: {now/@da eny/@uvI bec/beak}
|
||||
{arg/$@($~ {jon/json $~})}
|
||||
$~
|
||||
==
|
||||
^- (sole-result {$write-sec-atom p/host q/@})
|
||||
%+ sole-yo leaf+"Accepting credentials for https://*.googleapis.com"
|
||||
=+ hot=[%& /com/googleapis]
|
||||
=- ?~ arg -
|
||||
(fun.q.q jon.arg)
|
||||
%+ sole-lo
|
||||
[%& %oauth-json "json credentials: "]
|
||||
%+ sole-go apex:poja
|
||||
|= jon/json
|
||||
=+ ~| bad-json+jon
|
||||
=- `{cid/@t cis/@t}`(need (rep jon))
|
||||
rep=(ot web+(ot 'client_id'^so 'client_secret'^so ~) ~):jo
|
||||
%+ sole-so %write-sec-atom :: XX typed pair
|
||||
[hot (role cid cis ~)]
|
@ -1,3 +1,6 @@
|
||||
::
|
||||
:::: /hoon/oauth2/lib
|
||||
::
|
||||
|%
|
||||
++ fass :: rewrite quay
|
||||
|= a/quay
|
||||
@ -18,14 +21,42 @@
|
||||
?~ b ''
|
||||
(rap 3 |-([i.b ?~(t.b ~ [a $(b t.b)])]))
|
||||
::
|
||||
++ mean-wall !.
|
||||
|= {a/term b/tape} ^+ !!
|
||||
=- (mean (flop `tang`[>a< -]))
|
||||
(turn (lore (crip b)) |=(c/cord leaf+(trip c)))
|
||||
::
|
||||
++ dbg-post `purl`[`hart`[| `6.000 [%& /localhost]] `pork``/testing `quay`/]
|
||||
++ endpoint |=({dom/(list cord) a/path} [[& ~ &+dom] [~ a] ~])
|
||||
++ bad-response |=(a/@u ?:(=(2 (div a 100)) | ~&(bad-httr+a &)))
|
||||
++ grab-json
|
||||
|* {a/httr b/fist:jo}
|
||||
~| bad-json+r.a
|
||||
~| (poja q:(need r.a))
|
||||
(need (;~(biff poja b) q:(need r.a)))
|
||||
::
|
||||
++ parse-url
|
||||
|= a/$@(cord:purl purl) ^- purl
|
||||
?^ a a
|
||||
~| bad-url+a
|
||||
(rash a auri:epur)
|
||||
::
|
||||
++ interpolate-url
|
||||
|= {a/$@(cord purl) b/(unit hart) c/(list (pair term knot))}
|
||||
^- purl
|
||||
?@ a $(a (parse-url a)) :: deal with cord
|
||||
%_ a
|
||||
p ?^(b u.b p.a)
|
||||
q.q (interpolate-path q.q.a c)
|
||||
==
|
||||
::
|
||||
++ interpolate-path :: [/a/:b/c [%b 'foo']~] -> /a/foo/c
|
||||
|= {a/path b/(list (pair term knot))} ^- path
|
||||
?~ a ?~(b ~ ~|(unused-values+b !!))
|
||||
=+ (rush i.a ;~(pfix col sym))
|
||||
?~ - [i.a $(a t.a)] :: not interpolable
|
||||
?~ b ~|(no-value+u !!)
|
||||
?. =(u p.i.b) ~|(mismatch+[u p.i.b] !!)
|
||||
[q.i.b $(a t.a, b t.b)]
|
||||
--
|
||||
::
|
||||
::::
|
||||
@ -35,40 +66,52 @@
|
||||
++ refresh {tok/token needed/@da pending/_`?`|}
|
||||
++ keys cord:{cid/@t cis/@t}
|
||||
++ core-move |*(a/* $^({sec-move _a} sec-move)) ::here's a change
|
||||
++ decode-keys :: XX from bale w/ typed %jael
|
||||
|= key/keys
|
||||
?~ key ~|(%oauth-no-keys ~_(leaf+"Run |init-oauth2" !!))
|
||||
~| %oauth-bad-keys
|
||||
((hard {cid/@t cis/@t $~}) (lore key))
|
||||
--
|
||||
::
|
||||
::::
|
||||
::
|
||||
|= {dialog/{p/host q/path r/quay} code-exchange/path}
|
||||
=+ state-usr=|
|
||||
|= {dialog/$@(cord:purl purl) code-exchange/$@(cord:purl purl)}
|
||||
=+ :+ state-usr=|
|
||||
dialog-url=(parse-url dialog)
|
||||
exchange-url=(parse-url code-exchange)
|
||||
|_ {(bale keys) scope/(list cord)}
|
||||
++ client-id cid:(decode-keys key)
|
||||
++ client-secret cis:(decode-keys key)
|
||||
++ client-id cid:decode-keys
|
||||
++ client-secret cis:decode-keys
|
||||
++ decode-keys :: XX from bale w/ typed %jael
|
||||
^- {cid/@t cis/@t $~}
|
||||
?. =(~ `@`key)
|
||||
~| %oauth-bad-keys
|
||||
((hard {cid/@t cis/@t $~}) (lore key))
|
||||
%+ mean-wall %oauth-no-keys
|
||||
"""
|
||||
Run |init-oauth2
|
||||
If necessary, obtain client keys configured for a redirect_uri of
|
||||
{(trip redirect-uri)}
|
||||
"""
|
||||
::
|
||||
++ urb-hart [| `8.443 [%& /localhost]] :: XX get from eyre
|
||||
++ toke-url (endpoint dom code-exchange)
|
||||
++ our-host .^(hart %e /(scot %p our)/host/fake)
|
||||
++ auth-url
|
||||
~& [%oauth-warning "Make sure this urbit".
|
||||
"is running on {(earn urb-hart `~ ~)}"]
|
||||
~& [%oauth-warning "Make sure this urbit ".
|
||||
"is running on {(earn our-host `~ ~)}"]
|
||||
^- purl
|
||||
:+ [& ~ p.dialog] [~ q.dialog]
|
||||
%- fass
|
||||
%+ welp r.dialog
|
||||
:~ state+?.(state-usr '' (pack usr /''))
|
||||
client-id+client-id
|
||||
redirect-uri+redirect-uri
|
||||
scope+(join ' ' scope)
|
||||
%_ dialog-url
|
||||
r
|
||||
%+ welp r.dialog-url
|
||||
%- fass
|
||||
:~ state+?.(state-usr '' (pack usr /''))
|
||||
client-id+client-id
|
||||
redirect-uri+redirect-uri
|
||||
scope+(join ' ' scope)
|
||||
==
|
||||
==
|
||||
::
|
||||
++ redirect-uri
|
||||
++ redirect-uri
|
||||
%- crip %- earn
|
||||
=+ usr-knot=?:(state-usr '_state' (scot %ta usr))
|
||||
`purl`[`hart`urb-hart `pork``/~/ac/(join '.' (flop dom))/[usr-knot]/in `quay`~]
|
||||
%^ interpolate-url 'https://our-host/~/ac/:domain/:user/in'
|
||||
`our-host
|
||||
:~ domain+(join '.' (flop dom))
|
||||
user+?:(state-usr '_state' (scot %ta usr))
|
||||
==
|
||||
::
|
||||
++ out-filtered
|
||||
|= {tok/token aut/$-(hiss hiss)}
|
||||
@ -90,7 +133,7 @@
|
||||
::
|
||||
++ toke-req
|
||||
|= {grant-type/cord quy/quay} ^- {$send hiss}
|
||||
:+ %send toke-url
|
||||
:+ %send exchange-url
|
||||
:+ %post (malt ~[content-type+~['application/x-www-form-urlencoded']])
|
||||
=- `(tact +:(tail:earn -))
|
||||
%- fass
|
||||
@ -119,7 +162,9 @@
|
||||
|* {done/* parse/(pole {knot fist}:jo)}
|
||||
|= handle/$-(_?~(parse ~ (need *(ot:jo parse))) (core-move done))
|
||||
|= a/httr ^- (core-move done)
|
||||
?: (bad-response p.a) [%redo ~] :: handle 4xx?
|
||||
?: (bad-response p.a)
|
||||
[%give a]
|
||||
:: [%redo ~] :: handle 4xx?
|
||||
(handle (grab-json a (ot:jo parse)))
|
||||
::
|
||||
++ res-give |=(a/httr [%give a])
|
||||
@ -156,4 +201,3 @@
|
||||
[[%redo ~] (handle-access axs.tok)]
|
||||
--
|
||||
--
|
||||
|
||||
|
26
sec/com/facebook.hoon
Normal file
26
sec/com/facebook.hoon
Normal file
@ -0,0 +1,26 @@
|
||||
:: Test url +https://graph.facebook.com/v2.5/me
|
||||
::
|
||||
:::: /hoon/facebook/com/sec
|
||||
::
|
||||
/+ oauth2
|
||||
::
|
||||
::::
|
||||
::
|
||||
=+ ^= aut
|
||||
%+ oauth2
|
||||
dialog='https://www.facebook.com/dialog/oauth?response_type=code'
|
||||
exchange='https://graph.facebook.com/v2.3/oauth/access_token'
|
||||
|_ {bal/(bale keys.aut) access-token/token.aut}
|
||||
++ auth ~(. aut bal /'user_about_me'/'user_posts')
|
||||
++ out (out-quay:auth key='access_token' value=access-token)
|
||||
++ in in-code:auth
|
||||
++ bak
|
||||
%- (bak-parse:auth . access-token.aut expires-in.aut ~)
|
||||
|= {access-token/@t expires-in/@u}
|
||||
?: (lth expires-in ^~((div ~d7 ~s1))) :: short-lived token
|
||||
%^ toke-req:auth grant-type='fb_exchange_token'
|
||||
[key='fb_exchange_token' value=access-token]
|
||||
~
|
||||
[[%redo ~] ..bak(access-token access-token)]
|
||||
::++ wyp ~
|
||||
--
|
@ -1,18 +0,0 @@
|
||||
/+ oauth2
|
||||
::
|
||||
::::
|
||||
::
|
||||
=+ [`/com/facebook/www /dialog/oauth response-type/%code ~]
|
||||
=+ aut=(oauth2 - /'v2.3'/oauth/'access_token')
|
||||
|_ [bal=(bale keys.aut) access-token=token.aut]
|
||||
++ auth ~(. aut bal /'user_about_me'/'user_posts')
|
||||
++ out (out-quay:auth 'access_token'^access-token)
|
||||
++ in in-code:auth
|
||||
++ bak
|
||||
%- (bak-parse:auth . access-token.aut expires-in.aut ~)
|
||||
|= [access-token=@t expires-in=@u]
|
||||
?: (lth expires-in ^~((div ~d7 ~s1))) :: short-lived token
|
||||
(toke-req:auth 'fb_exchange_token' fb-exchange-token/access-token ~)
|
||||
[[%redo ~] ..bak(access-token access-token)]
|
||||
::++ wyp ~
|
||||
--
|
@ -1,3 +1,7 @@
|
||||
:: Test url +https://api.github.com/user
|
||||
::
|
||||
:::: /hoon/github/com/sec
|
||||
::
|
||||
/+ basic-auth
|
||||
!:
|
||||
|_ {bal/(bale keys:basic-auth) $~}
|
@ -1,3 +1,7 @@
|
||||
:: Test url +https://www.googleapis.com/oauth2/v1/userinfo
|
||||
::
|
||||
:::: /hoon/googleapis/com/sec
|
||||
::
|
||||
/+ oauth2
|
||||
::
|
||||
::::
|
||||
@ -16,11 +20,16 @@
|
||||
=+ lon=(fall (slaw %t usr) usr)
|
||||
=< .(state-usr &)
|
||||
%- oauth2
|
||||
=- [[&+/com/google/accounts /o/oauth2/v2/auth -] /oauth2/v4/token]
|
||||
:~ login-hint+?~(lon '' (crip (rash lon suffix-email)))
|
||||
access-type+%offline
|
||||
response-type+%code
|
||||
prompt+%consent
|
||||
:_ exchange='https://www.googleapis.com/oauth2/v4/token'
|
||||
^= dialog
|
||||
%* . (need (epur 'https://accounts.google.com/o/oauth2/v2/auth'))
|
||||
r
|
||||
%- fass:oauth2
|
||||
:~ login-hint+?~(lon '' (crip (rash lon suffix-email)))
|
||||
access-type+%offline
|
||||
response-type+%code
|
||||
prompt+%consent
|
||||
==
|
||||
==
|
||||
--
|
||||
!:
|
||||
@ -28,10 +37,12 @@
|
||||
::
|
||||
|_ {bal/(bale keys:oauth2) user-state}
|
||||
++ auth-re ~(. (re:auth .) ref |=(a/_ref +>(ref a)))
|
||||
++ auth ~(. (auth-usr usr.bal) bal (scopes 'userinfo.email' 'plus.me' ~))
|
||||
++ auth ~(. (auth-usr usr.bal) bal scopes)
|
||||
++ scopes
|
||||
=+ scope=|=(b/@ta (endpoint:oauth2 dom.bal /auth/[b]))
|
||||
|=(a/(list @ta) ['https://mail.google.com' (turn a |=(b/@ta (crip (earn (scope b)))))])
|
||||
:~ 'https://mail.google.com'
|
||||
'https://www.googleapis.com/auth/plus.me'
|
||||
'https://www.googleapis.com/auth/userinfo.email'
|
||||
==
|
||||
::
|
||||
++ out (out-fix-expired:auth-re (out-math:auth ber))
|
||||
++ res |=(a/httr ((res-handle-refreshed:auth-re save-access res-give:auth) a))
|
||||
@ -43,5 +54,4 @@
|
||||
(in-code:auth a)
|
||||
++ bak |=(a/httr ((bak-save-tokens:auth-re save-access) a))
|
||||
++ upd *user-state
|
||||
::
|
||||
--
|
@ -1,11 +1,18 @@
|
||||
:: Test url +https://slack.com/api/auth.test
|
||||
::
|
||||
:::: /hoon/slack/com/sec
|
||||
::
|
||||
/+ oauth2
|
||||
::
|
||||
::::
|
||||
::
|
||||
=+ aut=(oauth2 [`/com/slack /oauth/authorize ~] /api/'oauth.access')
|
||||
|_ [(bale keys:oauth2) tok=token.aut]
|
||||
=+ ^= aut
|
||||
%+ oauth2
|
||||
'https://slack.com/oauth/authorize'
|
||||
'https://slack.com/api/oauth.access'
|
||||
|_ {(bale keys:oauth2) tok/token.aut}
|
||||
++ aut ~(. ^aut +<- /client/admin)
|
||||
++ out (out-quay:aut 'token'^tok)
|
||||
++ in in-code:aut
|
||||
++ bak (bak-save-access:aut . |=(tok=token:aut +>(tok tok)))
|
||||
++ bak (bak-save-access:aut . |=(tok/token:aut +>(tok tok)))
|
||||
--
|
||||
|
@ -109,9 +109,11 @@ window.urb.send = function(data,params,cb) { // or send(data, cb)
|
||||
|
||||
this.qreq('post',url,params,true,function(err,data) {
|
||||
/* if(err) { $send.seqn--; }
|
||||
else */ if(data && data.data.fail && urb.wall !== false)
|
||||
else */ if(data && data.data.fail && urb.wall !== false) {
|
||||
document.location = "#ERROR"
|
||||
document.write("<pre>"+JSON.stringify(params.xyro)+"\n"
|
||||
+data.data.mess+"</pre>") // XX
|
||||
}
|
||||
if(cb) { cb.apply(this,arguments); }
|
||||
})
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
::
|
||||
:::: /hoon/talk/web
|
||||
:::: /hoon/listen/web
|
||||
::
|
||||
/? 310
|
||||
;div.mini-module
|
||||
|
@ -4,6 +4,9 @@
|
||||
/? 310
|
||||
;module(nav_title "Talk", nav_no-dpad "", nav_no-sibs "", nav_subnav "talk-station")
|
||||
;script@"/~~/~/at/lib/js/urb.js";
|
||||
;script@"https://cdn.rawgit.com/seatgeek/react-infinite/0.8.0/dist/react-infinite.js";
|
||||
;script@"https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.11.2/moment-with-locales.js";
|
||||
;script@"https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.1/moment-timezone.js";
|
||||
;script@"/talk/main.js";
|
||||
;link/"/talk/main.css"(rel "stylesheet");
|
||||
;talk;
|
||||
|
@ -1492,7 +1492,11 @@ module.exports = _.extend(reactify, {
|
||||
});
|
||||
|
||||
|
||||
<<<<<<< HEAD
|
||||
},{"../stores/TreeStore.coffee":22,"./LoadComponent.coffee":11}],15:[function(require,module,exports){
|
||||
=======
|
||||
},{"../stores/TreeStore.coffee":22,"./LoadComponent.coffee":12}],15:[function(require,module,exports){
|
||||
>>>>>>> master
|
||||
var appendNext, recl, rele, waitingScripts;
|
||||
|
||||
recl = React.createClass;
|
||||
|
Loading…
Reference in New Issue
Block a user