2018-02-22 21:11:59 +03:00
|
|
|
:: :: ames (4a), networking
|
2013-09-29 00:21:18 +04:00
|
|
|
::
|
2017-10-24 08:17:38 +03:00
|
|
|
|= pit=vase
|
2013-09-29 00:21:18 +04:00
|
|
|
=> =~
|
2014-06-03 09:07:32 +04:00
|
|
|
:: structures
|
2017-04-17 04:52:41 +03:00
|
|
|
=, ames
|
2018-08-17 00:39:39 +03:00
|
|
|
:: this number needs to be below 8
|
|
|
|
=+ protocol-version=0
|
2017-04-17 04:52:41 +03:00
|
|
|
|%
|
2017-10-24 08:17:38 +03:00
|
|
|
+= move [p=duct q=(wind note:able gift:able)] :: local move
|
2017-04-17 04:52:41 +03:00
|
|
|
--
|
|
|
|
::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
|
|
:: section 4aA, identity logic ::
|
2018-09-13 08:48:18 +03:00
|
|
|
:: removed ::
|
2017-04-17 04:52:41 +03:00
|
|
|
::
|
|
|
|
::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
|
|
:: section 4aB, packet format ::
|
|
|
|
::
|
|
|
|
|%
|
|
|
|
++ bite :: packet to cake
|
2017-10-24 08:17:38 +03:00
|
|
|
|= pac=rock ^- cake
|
2017-04-17 04:52:41 +03:00
|
|
|
=+ [mag=(end 5 1 pac) bod=(rsh 5 1 pac)]
|
|
|
|
=+ :* vez=(end 0 3 mag) :: protocol version
|
|
|
|
chk=(cut 0 [3 20] mag) :: checksum
|
|
|
|
wix=(bex +((cut 0 [23 2] mag))) :: width of receiver
|
|
|
|
vix=(bex +((cut 0 [25 2] mag))) :: width of sender
|
|
|
|
tay=(cut 0 [27 5] mag) :: message type
|
|
|
|
==
|
2018-02-22 21:11:41 +03:00
|
|
|
?> =(protocol-version vez)
|
2017-04-17 04:52:41 +03:00
|
|
|
?> =(chk (end 0 20 (mug bod)))
|
|
|
|
:+ [(end 3 wix bod) (cut 3 [wix vix] bod)]
|
|
|
|
(kins tay)
|
|
|
|
(rsh 3 (add wix vix) bod)
|
|
|
|
::
|
2017-10-24 08:17:38 +03:00
|
|
|
++ kins |=(tay=@ (snag tay `(list skin)`[%none %open %fast %full ~]))
|
|
|
|
++ ksin |=(sin=skin `@`?-(sin %none 0, %open 1, %fast 2, %full 3))
|
2017-04-17 04:52:41 +03:00
|
|
|
++ spit :: cake to packet
|
2017-10-24 08:17:38 +03:00
|
|
|
|= kec=cake ^- @
|
2017-04-17 04:52:41 +03:00
|
|
|
=+ wim=(met 3 p.p.kec)
|
|
|
|
=+ dum=(met 3 q.p.kec)
|
|
|
|
=+ yax=?:((lte wim 2) 0 ?:((lte wim 4) 1 ?:((lte wim 8) 2 3)))
|
|
|
|
=+ qax=?:((lte dum 2) 0 ?:((lte dum 4) 1 ?:((lte dum 8) 2 3)))
|
|
|
|
=+ wix=(bex +(yax))
|
|
|
|
=+ vix=(bex +(qax))
|
|
|
|
=+ bod=:(mix p.p.kec (lsh 3 wix q.p.kec) (lsh 3 (add wix vix) r.kec))
|
|
|
|
=+ tay=(ksin q.kec)
|
|
|
|
%+ mix
|
|
|
|
%+ can 0
|
2018-02-22 21:11:41 +03:00
|
|
|
:~ [3 protocol-version]
|
2017-04-17 04:52:41 +03:00
|
|
|
[20 (mug bod)]
|
|
|
|
[2 yax]
|
|
|
|
[2 qax]
|
|
|
|
[5 tay]
|
2016-11-24 07:25:07 +03:00
|
|
|
==
|
2017-04-17 04:52:41 +03:00
|
|
|
(lsh 5 1 bod)
|
|
|
|
--
|
|
|
|
::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
|
|
:: section 4aC, PKI engine ::
|
2016-11-24 07:25:07 +03:00
|
|
|
::
|
2017-04-17 04:52:41 +03:00
|
|
|
|%
|
|
|
|
++ go :: go
|
2017-10-24 08:17:38 +03:00
|
|
|
|_ ton=town :: ames state
|
2017-04-17 04:52:41 +03:00
|
|
|
++ as :: as:go
|
2017-10-24 08:17:38 +03:00
|
|
|
|_ [our=ship saf=sufi] :: per server
|
2017-04-17 04:52:41 +03:00
|
|
|
++ lax :: lax:as:go
|
2018-08-17 00:39:39 +03:00
|
|
|
=| rov=(unit lane) :: maybe lane change
|
2017-10-24 08:17:38 +03:00
|
|
|
|_ [her=ship dur=dore] :: per client
|
2017-04-17 04:52:41 +03:00
|
|
|
++ cluy :: cluy:lax:as:go
|
2018-09-13 08:48:18 +03:00
|
|
|
^- [lyf=life cub=acru] :: client crypto
|
|
|
|
?> ?=(^ lew.wod.dur)
|
|
|
|
[life.u.lew.wod.dur (com:nu:crub:crypto pass.u.lew.wod.dur)]
|
2016-11-24 07:25:07 +03:00
|
|
|
::
|
2017-04-17 04:52:41 +03:00
|
|
|
++ clon
|
|
|
|
^- life
|
2018-09-13 08:48:18 +03:00
|
|
|
:: XX default life of 1?
|
|
|
|
::
|
|
|
|
?~(lew.wod.dur 0 life.u.lew.wod.dur)
|
2016-11-24 07:25:07 +03:00
|
|
|
::
|
2017-04-17 04:52:41 +03:00
|
|
|
++ deng
|
2018-09-13 08:48:18 +03:00
|
|
|
|= law=(unit deed)
|
|
|
|
:: XX port
|
|
|
|
::
|
|
|
|
+>
|
2017-04-17 04:52:41 +03:00
|
|
|
::
|
|
|
|
++ griz :: griz:lax:as:go
|
2017-10-24 08:17:38 +03:00
|
|
|
|= now=@da :: generate key for
|
|
|
|
^- [p=code q=_+>]
|
2017-04-17 04:52:41 +03:00
|
|
|
=+ key=(shas %enty (mix now any.ton))
|
|
|
|
:- key
|
|
|
|
%= +>.$
|
|
|
|
any.ton (shax (mix now any.ton))
|
|
|
|
heg.caq.dur (~(put by heg.caq.dur) (shaf %hand key) key)
|
|
|
|
==
|
|
|
|
::
|
|
|
|
++ pode :: pode:lax:as:go
|
2017-10-24 08:17:38 +03:00
|
|
|
|= now=@da :: timeout route
|
2017-04-17 04:52:41 +03:00
|
|
|
^+ +>
|
2016-10-10 21:09:25 +03:00
|
|
|
?: (lth her 256) +>(lun.wod.dur [~ %if ~2000.1.1 0 (mix her .0.0.1.0)])
|
2017-04-17 04:52:41 +03:00
|
|
|
+>(lun.wod.dur ~)
|
|
|
|
::
|
|
|
|
++ kuch :: kuch:lax:as:go
|
2017-10-24 08:17:38 +03:00
|
|
|
|= had=hand :: hear key tag
|
|
|
|
^- (unit [code _+>])
|
2017-04-17 04:52:41 +03:00
|
|
|
=+ wey=(~(get by heg.caq.dur) had)
|
|
|
|
?^ wey
|
|
|
|
=+ key=u.wey
|
|
|
|
:+ ~ key
|
|
|
|
%= ..kuch
|
|
|
|
yed.caq.dur [~ had u.wey]
|
|
|
|
heg.caq.dur (~(del by heg.caq.dur) had)
|
|
|
|
qim.caq.dur (~(put by qim.caq.dur) had key)
|
|
|
|
==
|
|
|
|
=+ dyv=(~(get by qim.caq.dur) had)
|
2013-09-29 00:21:18 +04:00
|
|
|
?~ dyv ~
|
2017-04-17 04:52:41 +03:00
|
|
|
[~ u.dyv ..kuch]
|
|
|
|
::
|
|
|
|
++ wasc :: wasc:lax:as:go
|
2017-10-24 08:17:38 +03:00
|
|
|
|= key=code :: hear foreign code
|
2017-04-17 04:52:41 +03:00
|
|
|
^+ +>
|
|
|
|
=+ had=(shaf %hand key)
|
|
|
|
%_ ..wasc
|
|
|
|
yed.caq.dur [~ had key]
|
|
|
|
qim.caq.dur (~(put by qim.caq.dur) had key)
|
|
|
|
==
|
|
|
|
::
|
|
|
|
++ wast :: wast:lax:as:go
|
2017-10-24 08:17:38 +03:00
|
|
|
|= ryn=lane :: set route
|
2017-04-17 04:52:41 +03:00
|
|
|
^+ +>
|
|
|
|
%= +>
|
|
|
|
lun.wod.dur
|
2017-10-24 08:17:38 +03:00
|
|
|
?: ?=([%ix *] ryn)
|
2017-10-24 07:48:07 +03:00
|
|
|
?: ?| ?=(~ lun.wod.dur)
|
2017-10-24 08:17:38 +03:00
|
|
|
?=([%ix *] u.lun.wod.dur)
|
|
|
|
?& ?=([%if *] u.lun.wod.dur)
|
2017-04-17 04:52:41 +03:00
|
|
|
(gth p.ryn (add ~s10 p.u.lun.wod.dur))
|
|
|
|
==
|
|
|
|
==
|
|
|
|
[~ ryn]
|
|
|
|
lun.wod.dur
|
|
|
|
[~ ryn]
|
2018-08-17 00:39:39 +03:00
|
|
|
::
|
|
|
|
rov
|
|
|
|
|- ^- (unit lane)
|
|
|
|
:: XX check will
|
|
|
|
?: ?| !=(our (sein:title her))
|
|
|
|
?=(?(%earl %pawn) (clan:title her))
|
|
|
|
==
|
|
|
|
~
|
|
|
|
?- ryn
|
|
|
|
[%if *] ?. ?=([~ %if *] lun.wod.dur)
|
|
|
|
`ryn
|
|
|
|
?:(=(r.u.lun.wod.dur r.ryn) ~ `ryn)
|
|
|
|
::
|
|
|
|
[%ix *] ?. ?=([~ %ix *] lun.wod.dur)
|
|
|
|
`ryn
|
|
|
|
?:(=(r.u.lun.wod.dur r.ryn) ~ `ryn)
|
|
|
|
::
|
|
|
|
[%is *] ?~(q.ryn ~ $(ryn u.q.ryn))
|
|
|
|
==
|
2017-04-17 04:52:41 +03:00
|
|
|
==
|
|
|
|
::
|
|
|
|
++ wist :: wist:lax:as:go
|
2017-10-24 08:17:38 +03:00
|
|
|
|= $: now=@da :: route via
|
|
|
|
waz=(list @p)
|
|
|
|
ryn=(unit lane)
|
|
|
|
pac=rock
|
2017-04-17 04:52:41 +03:00
|
|
|
==
|
|
|
|
^- (list boon)
|
|
|
|
?: =(our her) [[%ouzo *lane pac] ~]
|
|
|
|
?~ waz ~
|
|
|
|
=+ dyr=?:(=(her i.waz) dur (gur i.waz))
|
|
|
|
?. ?& !=(our i.waz)
|
|
|
|
?=(^ lun.wod.dyr)
|
|
|
|
==
|
|
|
|
$(waz t.waz)
|
2017-10-24 07:48:07 +03:00
|
|
|
:_ ?: ?=(%ix -.u.lun.wod.dyr)
|
2017-04-17 04:52:41 +03:00
|
|
|
$(waz t.waz)
|
|
|
|
~
|
|
|
|
:+ %ouzo u.lun.wod.dyr
|
|
|
|
?: &(=(i.waz her) =(~ ryn)) pac
|
|
|
|
=+ mal=(jam `meal`[%fore her ryn pac])
|
|
|
|
%- spit
|
|
|
|
^- cake
|
|
|
|
:* [our i.waz]
|
|
|
|
?~ yed.caq.dyr [%none mal]
|
|
|
|
:- %fast
|
|
|
|
%^ cat 7
|
|
|
|
p.u.yed.caq.dyr
|
2017-10-02 04:50:19 +03:00
|
|
|
(en:crub:crypto q.u.yed.caq.dyr mal)
|
2017-04-17 04:52:41 +03:00
|
|
|
==
|
|
|
|
::
|
|
|
|
++ xeno :: xeno:lax:as:go
|
|
|
|
^- (list ship) :: foreign canon
|
|
|
|
(saxo:title her)
|
|
|
|
::
|
|
|
|
++ xong :: xong:lax:as:go
|
|
|
|
^- (list ship) :: route unto
|
|
|
|
=+ [fro=xen too=xeno]
|
|
|
|
=+ ^= oot ^- (list ship)
|
2017-10-24 08:17:38 +03:00
|
|
|
=| oot=(list ship)
|
2017-04-17 04:52:41 +03:00
|
|
|
|- ^+ oot
|
|
|
|
?~ too ~
|
2017-10-24 08:17:38 +03:00
|
|
|
?: (lien fro |=(a=ship =(a i.too))) ~
|
2017-04-17 04:52:41 +03:00
|
|
|
[i.too $(too t.too)]
|
|
|
|
:: ~& [%xong-to [our her] (weld oot ?>(?=(^ fro) t.fro))]
|
|
|
|
(weld oot ?>(?=(^ fro) t.fro))
|
|
|
|
::
|
|
|
|
++ zuul :: zuul:lax:as:go
|
2017-10-24 08:17:38 +03:00
|
|
|
|= [now=@da ham=meal] :: encode message
|
|
|
|
^- [p=(list rock) q=_+>]
|
2017-04-17 04:52:41 +03:00
|
|
|
=< weft
|
|
|
|
|%
|
2017-06-06 23:23:58 +03:00
|
|
|
++ wasp :: null security
|
2017-10-24 08:17:38 +03:00
|
|
|
^-([p=skin q=@] [%none (jam ham)])
|
2017-06-06 23:23:58 +03:00
|
|
|
::
|
2017-04-17 04:52:41 +03:00
|
|
|
++ weft :: fragment message
|
2017-10-24 08:17:38 +03:00
|
|
|
^- [p=(list rock) q=_+>.$]
|
2017-06-06 23:23:58 +03:00
|
|
|
=^ gim ..weft wisp
|
|
|
|
:_ +>.$
|
2017-04-17 04:52:41 +03:00
|
|
|
^- (list rock)
|
2018-09-13 08:48:18 +03:00
|
|
|
=+ wit=(met 13 q.gim)
|
2017-04-17 04:52:41 +03:00
|
|
|
?< =(0 wit)
|
2017-06-06 23:23:58 +03:00
|
|
|
?: =(1 wit)
|
2017-04-17 04:52:41 +03:00
|
|
|
=+ yup=(spit [our her] p.gim q.gim)
|
|
|
|
[yup ~]
|
2018-09-13 08:48:18 +03:00
|
|
|
=+ ruv=(rip 13 q.gim)
|
2013-09-29 00:21:18 +04:00
|
|
|
=+ gom=(shaf %thug q.gim)
|
2017-04-17 03:12:12 +03:00
|
|
|
=+ inx=0
|
2017-04-17 04:52:41 +03:00
|
|
|
|- ^- (list rock)
|
|
|
|
?~ ruv ~
|
|
|
|
=+ ^= vie
|
|
|
|
%+ spit
|
|
|
|
[our her]
|
2013-09-29 00:21:18 +04:00
|
|
|
wasp(ham [%carp (ksin p.gim) inx wit gom i.ruv])
|
2017-04-17 04:52:41 +03:00
|
|
|
:- vie
|
|
|
|
$(ruv t.ruv, inx +(inx))
|
|
|
|
::
|
|
|
|
++ wisp :: generate message
|
2017-10-24 08:17:38 +03:00
|
|
|
^- [[p=skin q=@] q=_..wisp]
|
2017-04-17 04:52:41 +03:00
|
|
|
?: =(%carp -.ham)
|
2017-06-06 23:23:58 +03:00
|
|
|
[wasp ..wisp]
|
2017-04-17 04:52:41 +03:00
|
|
|
?: !=(~ yed.caq.dur)
|
|
|
|
?> ?=(^ yed.caq.dur)
|
2017-06-06 23:23:58 +03:00
|
|
|
:_ ..wisp
|
2017-04-17 04:52:41 +03:00
|
|
|
:- %fast
|
|
|
|
%^ cat 7
|
|
|
|
p.u.yed.caq.dur
|
2018-09-13 08:48:18 +03:00
|
|
|
(en:cub:cluy q.u.yed.caq.dur (jam ham))
|
2017-06-06 23:23:58 +03:00
|
|
|
?: &(=(~ lew.wod.dur) =(%back -.ham))
|
|
|
|
[wasp ..wisp]
|
2017-04-17 04:52:41 +03:00
|
|
|
=^ tuy +>.$
|
|
|
|
?:(=(~ lew.wod.dur) [*code +>.$] (griz now))
|
2017-06-06 23:23:58 +03:00
|
|
|
:_ ..wisp
|
2017-04-17 04:52:41 +03:00
|
|
|
=+ yig=sen
|
2017-10-02 04:50:19 +03:00
|
|
|
:: =+ bil=`wyll`(pare wyl.dur law.saf) :: XX not set
|
|
|
|
=+ bil=law.saf :: XX send whole wyll
|
2017-04-17 04:52:41 +03:00
|
|
|
=+ hom=(jam ham)
|
|
|
|
?: =(~ lew.wod.dur)
|
|
|
|
:- %open
|
|
|
|
%^ jam
|
2018-09-13 08:48:18 +03:00
|
|
|
[~ `life`lyf.yig]
|
|
|
|
:: XX port
|
|
|
|
::
|
|
|
|
`bil
|
|
|
|
(sign:as:cub.yig hom)
|
2017-04-17 04:52:41 +03:00
|
|
|
:- %full
|
|
|
|
=+ cay=cluy
|
|
|
|
%^ jam
|
2018-09-13 08:48:18 +03:00
|
|
|
[`life`lyf.cay `life`lyf.yig]
|
|
|
|
:: XX port
|
|
|
|
::
|
|
|
|
`bil
|
|
|
|
(seal:as:cub.yig pub:ex:cub.cay (jam tuy hom))
|
2017-04-17 04:52:41 +03:00
|
|
|
-- :: --zuul:lax:as:go
|
|
|
|
-- :: --lax:as:go
|
|
|
|
::
|
2014-07-21 07:15:02 +04:00
|
|
|
++ gur :: default dore
|
2017-10-24 08:17:38 +03:00
|
|
|
|= her=ship
|
2014-07-21 07:15:02 +04:00
|
|
|
^- dore
|
2017-04-17 04:52:41 +03:00
|
|
|
=+ def=?.((lth her 256) ~ [~ %if ~2000.1.1 0 (mix her .0.0.1.0)])
|
2018-09-13 08:48:18 +03:00
|
|
|
[[~2100.1.1 def ~] *clot]
|
2017-04-17 04:52:41 +03:00
|
|
|
::
|
2014-07-21 07:15:02 +04:00
|
|
|
++ myx :: dore by ship
|
2017-10-24 08:17:38 +03:00
|
|
|
|= her=ship
|
2017-04-17 04:52:41 +03:00
|
|
|
^+ lax
|
2018-08-02 03:52:24 +03:00
|
|
|
=/ fod=dore
|
|
|
|
(fall (~(get by hoc.saf) her) (gur her))
|
|
|
|
~(. lax [her fod])
|
2017-04-17 04:52:41 +03:00
|
|
|
::
|
2014-07-21 07:15:02 +04:00
|
|
|
++ nux :: install dore
|
2017-10-24 08:17:38 +03:00
|
|
|
|= new=_lax
|
2017-04-17 04:52:41 +03:00
|
|
|
^+ +>
|
|
|
|
+>(hoc.saf (~(put by hoc.saf) her.new dur.new))
|
|
|
|
::
|
|
|
|
++ sen :: current crypto
|
2018-09-13 08:48:18 +03:00
|
|
|
^- [lyf=life cub=acru]
|
2017-04-17 04:52:41 +03:00
|
|
|
?~(val.saf !! [p.i.val.saf r.i.val.saf])
|
|
|
|
::
|
|
|
|
++ sev :: crypto by life
|
2017-10-24 08:17:38 +03:00
|
|
|
|= mar=life
|
|
|
|
^- [p=? q=acru]
|
2017-04-17 04:52:41 +03:00
|
|
|
?~ val.saf !!
|
|
|
|
?: =(mar p.i.val.saf)
|
|
|
|
[& r.i.val.saf]
|
|
|
|
?> (lth mar p.i.val.saf)
|
|
|
|
:- |
|
|
|
|
|- ^- acru
|
|
|
|
?> ?=(^ t.val.saf)
|
|
|
|
?: =(mar p.i.t.val.saf)
|
|
|
|
r.i.t.val.saf
|
|
|
|
$(t.val.saf t.t.val.saf)
|
|
|
|
::
|
|
|
|
++ xen :: canon
|
|
|
|
|- ^- (list ship)
|
|
|
|
(saxo:title our)
|
|
|
|
-- :: --as:go
|
|
|
|
::
|
|
|
|
++ su :: install safe
|
2017-10-24 08:17:38 +03:00
|
|
|
|= new=_as
|
2017-04-17 04:52:41 +03:00
|
|
|
^- town
|
|
|
|
ton(urb (~(put by urb.ton) our.new saf.new))
|
|
|
|
::
|
|
|
|
++ ti :: expire by time
|
2017-10-24 08:17:38 +03:00
|
|
|
|= now=@da
|
2017-04-17 04:52:41 +03:00
|
|
|
^- town
|
|
|
|
!!
|
|
|
|
::
|
|
|
|
++ us :: produce safe
|
2017-10-24 08:17:38 +03:00
|
|
|
|= our=ship
|
2017-04-17 04:52:41 +03:00
|
|
|
^- (unit _as)
|
|
|
|
=+ goh=(~(get by urb.ton) our)
|
|
|
|
?~ goh ~
|
|
|
|
[~ ~(. as [our u.goh])]
|
|
|
|
-- :: --go
|
|
|
|
--
|
|
|
|
::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
2013-09-29 00:21:18 +04:00
|
|
|
:: section 4aF, packet pump ::
|
|
|
|
|%
|
|
|
|
++ pu :: packet pump
|
|
|
|
|_ shed
|
|
|
|
++ abet +<
|
|
|
|
++ ahoy :: ahoy:pu
|
|
|
|
^+ . :: initialize
|
|
|
|
%_ .
|
|
|
|
rtt ~s1
|
|
|
|
rto ~s4
|
|
|
|
rtn ~
|
|
|
|
rue ~
|
|
|
|
nus 0
|
|
|
|
nif 0
|
|
|
|
nep 0
|
|
|
|
caw 2
|
|
|
|
cag 64
|
|
|
|
diq ~
|
|
|
|
pyz ~
|
|
|
|
puq ~
|
|
|
|
==
|
|
|
|
::
|
|
|
|
++ bick :: bick:pu
|
2017-10-24 08:17:38 +03:00
|
|
|
|= [now=@da fap=flap] :: ack by hash
|
|
|
|
^- [[p=(unit soup) q=(list rock)] _+>]
|
2013-09-29 00:21:18 +04:00
|
|
|
=+ sun=(~(get by diq) fap)
|
|
|
|
?~ sun
|
|
|
|
:: ~& [%bick-none `@p`(mug fap)] :: not a real error
|
|
|
|
[[~ ~] +>.$]
|
|
|
|
:: ~& [%bick-good `@p`(mug fap) u.sun]
|
|
|
|
=. diq (~(del by diq) fap)
|
|
|
|
=^ gub +>.$ (bock now u.sun)
|
|
|
|
=^ yop +>.$ (harv now)
|
|
|
|
[[gub yop] +>.$]
|
|
|
|
::
|
|
|
|
++ bilk :: bilk:pu
|
2017-10-24 08:17:38 +03:00
|
|
|
|= now=@da :: inbound packet
|
2013-09-29 00:21:18 +04:00
|
|
|
^+ +>
|
|
|
|
=+ trt=(mul 2 rtt)
|
|
|
|
%= +>.$
|
|
|
|
rue [~ now]
|
|
|
|
rto trt
|
|
|
|
rtn ?~(puq ~ [~ (add now trt)])
|
|
|
|
==
|
|
|
|
::
|
2013-10-09 22:55:23 +04:00
|
|
|
++ boom :: boom:pu
|
2017-10-24 08:17:38 +03:00
|
|
|
|= now=@da ^- ? :: address timeout
|
2017-10-24 07:48:07 +03:00
|
|
|
|(?=(~ rue) (gte (sub now u.rue) ~m1))
|
2013-10-09 22:55:23 +04:00
|
|
|
::
|
2013-09-29 00:21:18 +04:00
|
|
|
++ bust :: bust:pu
|
|
|
|
^- ? :: not responding
|
|
|
|
&(?=(^ rtn) (gte rto ~s16))
|
|
|
|
::
|
|
|
|
++ bike :: bike:pu
|
|
|
|
^+ . :: check stats
|
|
|
|
?> .= nif
|
|
|
|
|- ^- @
|
|
|
|
?~ puq 0
|
|
|
|
:(add !liv.q.n.puq $(puq l.puq) $(puq r.puq))
|
|
|
|
.
|
|
|
|
::
|
|
|
|
++ beet :: beet:pu
|
|
|
|
^+ . :: advance unacked
|
|
|
|
=- +(nep ?~(foh nus u.foh))
|
|
|
|
^= foh
|
2015-12-06 00:01:00 +03:00
|
|
|
|- ^- (unit @ud)
|
2013-09-29 00:21:18 +04:00
|
|
|
?~ puq ~
|
|
|
|
?: (lte p.n.puq nep) $(puq l.puq)
|
|
|
|
=+ rig=$(puq r.puq)
|
|
|
|
?^(rig rig [~ p.n.puq])
|
|
|
|
::
|
|
|
|
++ bine :: bine:pu
|
2017-10-24 08:17:38 +03:00
|
|
|
|= [now=@da num=@ud] :: apply ack
|
|
|
|
^- [(unit soup) _+>]
|
2013-09-29 00:21:18 +04:00
|
|
|
?~ puq !!
|
|
|
|
?. =(num p.n.puq)
|
|
|
|
?: (gth num p.n.puq)
|
|
|
|
=+ lef=$(puq l.puq)
|
|
|
|
[-.lef +.lef(puq [n.puq puq.lef r.puq])]
|
|
|
|
=+ rig=$(puq r.puq)
|
|
|
|
[-.rig +.rig(puq [n.puq l.puq puq.rig])]
|
|
|
|
=: rtt ?. &(liv.q.n.puq =(1 nux.q.n.puq)) rtt
|
|
|
|
=+ gap=(sub now lys.q.n.puq)
|
|
|
|
:: ~& [%bock-trip num (div gap (div ~s1 1.000))]
|
|
|
|
(div (add (mul 2 rtt) gap) 3)
|
|
|
|
nif (sub nif !liv.q.n.puq)
|
|
|
|
==
|
|
|
|
=+ lez=(dec (need (~(get by pyz) gom.q.n.puq)))
|
|
|
|
=^ gub pyz
|
2013-12-09 01:23:03 +04:00
|
|
|
?: =(0 lez)
|
2013-09-29 00:21:18 +04:00
|
|
|
[[~ gom.q.n.puq] (~(del by pyz) gom.q.n.puq)]
|
|
|
|
[~ (~(put by pyz) gom.q.n.puq lez)]
|
|
|
|
:- gub
|
|
|
|
+>.$(puq ~(nap to puq))
|
|
|
|
::
|
|
|
|
++ bock :: bock:pu
|
2017-10-24 08:17:38 +03:00
|
|
|
|= [now=@da num=@ud] :: ack by sequence
|
|
|
|
^- [(unit soup) _+>]
|
2013-09-29 00:21:18 +04:00
|
|
|
=^ gym +> (bine now num)
|
|
|
|
:- gym
|
|
|
|
?: (gth num nep)
|
2013-12-09 01:23:03 +04:00
|
|
|
=+ cam=(max 2 (div caw 2))
|
2013-09-29 00:21:18 +04:00
|
|
|
:: ~& [%bock-hole num nep cam]
|
|
|
|
beet:(wept(nep num, cag cam, caw cam) nep num)
|
|
|
|
=. caw ?: (lth caw cag) +(caw)
|
|
|
|
(add caw !=(0 (mod (mug now) caw)))
|
2013-12-09 01:23:03 +04:00
|
|
|
?: =(num nep)
|
2013-09-29 00:21:18 +04:00
|
|
|
:: ~& [%bock-fine num nif caw cag]
|
|
|
|
beet
|
|
|
|
:: ~& [%bock-fill num nif caw cag]
|
2013-12-09 01:23:03 +04:00
|
|
|
+>.$
|
2013-09-29 00:21:18 +04:00
|
|
|
::
|
2013-12-09 01:23:03 +04:00
|
|
|
++ harv :: harv:pu
|
2017-10-24 08:17:38 +03:00
|
|
|
|= now=@da :: harvest queue
|
|
|
|
^- [(list rock) _+>]
|
2013-09-29 00:21:18 +04:00
|
|
|
?: =(~ puq) [~ +>(rtn ~)]
|
|
|
|
?. (gth caw nif) [~ +>]
|
|
|
|
=+ wid=(sub caw nif)
|
2017-10-24 08:17:38 +03:00
|
|
|
=| rub=(list rock)
|
2013-09-29 00:21:18 +04:00
|
|
|
=< abet =< apse
|
2013-12-09 01:23:03 +04:00
|
|
|
|%
|
|
|
|
++ abet
|
2013-09-29 00:21:18 +04:00
|
|
|
?~ rub [~ +>.$]
|
|
|
|
[(flop rub) +>.$(rtn [~ (add rto now)])]
|
|
|
|
::
|
|
|
|
++ apse
|
|
|
|
^+ .
|
|
|
|
?~ puq .
|
|
|
|
?: =(0 wid) .
|
|
|
|
=> rigt =< left
|
2013-12-24 00:49:15 +04:00
|
|
|
?> ?=(^ puq)
|
2013-09-29 00:21:18 +04:00
|
|
|
?: =(0 wid) .
|
|
|
|
?. =(| liv.q.n.puq) .
|
|
|
|
:: ~& [%harv nux.q.n.puq p.n.puq]
|
|
|
|
%_ .
|
|
|
|
wid (dec wid)
|
|
|
|
rub [pac.q.n.puq rub]
|
|
|
|
nif +(nif)
|
|
|
|
liv.q.n.puq &
|
|
|
|
nux.q.n.puq +(nux.q.n.puq)
|
|
|
|
lys.q.n.puq now
|
|
|
|
==
|
|
|
|
::
|
2014-03-14 21:49:21 +04:00
|
|
|
++ left
|
2013-12-24 00:49:15 +04:00
|
|
|
?> ?=(^ puq)
|
|
|
|
^+(. =+(lef=apse(puq l.puq) lef(puq [n.puq puq.lef r.puq])))
|
2014-03-14 21:49:21 +04:00
|
|
|
++ rigt
|
2013-12-24 00:49:15 +04:00
|
|
|
?> ?=(^ puq)
|
|
|
|
^+(. =+(rig=apse(puq r.puq) rig(puq [n.puq l.puq puq.rig])))
|
2013-09-29 00:21:18 +04:00
|
|
|
--
|
|
|
|
::
|
|
|
|
++ wack :: wack:pu
|
2017-10-24 08:17:38 +03:00
|
|
|
|= now=@da :: wakeup (timeout)
|
|
|
|
^- [(list rock) _+>]
|
2013-12-24 00:49:15 +04:00
|
|
|
?. &(!=(~ rtn) ?>(?=(^ rtn) (gte now u.rtn))) [~ +>]
|
2013-09-29 00:21:18 +04:00
|
|
|
:: ~& [%slow (div rto (div ~s1 1.000))]
|
|
|
|
=. +> (wept 0 nus)
|
|
|
|
?> =(0 nif)
|
|
|
|
=+ oub=(gte rto ~s16)
|
|
|
|
=: caw 2
|
2013-12-09 01:23:03 +04:00
|
|
|
rto ;: min
|
|
|
|
(mul 2 rto)
|
2017-05-16 23:56:54 +03:00
|
|
|
~m2
|
|
|
|
(mul ~s16 ?~(rue 1 +((div (sub now u.rue) ~d1))))
|
2013-09-29 00:21:18 +04:00
|
|
|
==
|
|
|
|
==
|
|
|
|
(harv now)
|
|
|
|
::
|
|
|
|
++ wept :: wept:pu
|
2017-10-24 08:17:38 +03:00
|
|
|
|= [fip=@ud lap=@ud] :: fip thru lap-1
|
2013-09-29 00:21:18 +04:00
|
|
|
=< abet =< apse
|
|
|
|
|%
|
|
|
|
++ abet +>.$
|
|
|
|
++ apse
|
|
|
|
^+ .
|
|
|
|
?~ puq .
|
|
|
|
?: (lth p.n.puq fip) ?~(l.puq . left)
|
|
|
|
?: (gte p.n.puq lap) ?~(r.puq . rigt)
|
|
|
|
=> rigt =< left
|
2013-12-24 00:49:15 +04:00
|
|
|
?> ?=(^ puq)
|
2013-09-29 00:21:18 +04:00
|
|
|
?.(liv.q.n.puq . .(nif (dec nif), liv.q.n.puq |))
|
|
|
|
::
|
2014-03-14 21:49:21 +04:00
|
|
|
++ left
|
2013-12-24 00:49:15 +04:00
|
|
|
?> ?=(^ puq)
|
|
|
|
^+(. =+(lef=apse(puq l.puq) lef(puq [n.puq puq.lef r.puq])))
|
2014-03-14 21:49:21 +04:00
|
|
|
++ rigt
|
2013-12-24 00:49:15 +04:00
|
|
|
?> ?=(^ puq)
|
|
|
|
^+(. =+(rig=apse(puq r.puq) rig(puq [n.puq l.puq puq.rig])))
|
2013-09-29 00:21:18 +04:00
|
|
|
--
|
|
|
|
::
|
|
|
|
++ whap :: whap:pu
|
2017-10-24 08:17:38 +03:00
|
|
|
|= [now=@da gom=soup wyv=(list rock)] :: send a message
|
|
|
|
^- [(list rock) _+>]
|
2013-09-29 00:21:18 +04:00
|
|
|
=. pyz (~(put by pyz) gom (lent wyv))
|
|
|
|
=. +>
|
|
|
|
|- ^+ +>.^$
|
|
|
|
?~ wyv +>.^$
|
|
|
|
%= $
|
|
|
|
wyv t.wyv
|
|
|
|
nus +(nus)
|
|
|
|
diq (~(put by diq) (shaf %flap i.wyv) nus)
|
|
|
|
puq (~(put to puq) [nus `soul`[gom 0 | ~2000.1.1 i.wyv]])
|
|
|
|
==
|
|
|
|
(harv now)
|
|
|
|
--
|
|
|
|
--
|
|
|
|
::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
2017-04-17 04:52:41 +03:00
|
|
|
:: section 4aG, protocol engine ::
|
|
|
|
::
|
|
|
|
|%
|
|
|
|
++ am :: am
|
2017-10-24 08:17:38 +03:00
|
|
|
|_ [now=@da fox=fort] :: protocol engine
|
2018-09-14 06:01:04 +03:00
|
|
|
++ vein :: vein:am
|
|
|
|
|= [our=ship =life vein=(map life ring)] :: new private keys
|
|
|
|
^- fort
|
|
|
|
::
|
|
|
|
~| [%vein-mismatch +<]
|
|
|
|
?> (~(has by vein) life)
|
|
|
|
?> =(life (roll ~(tap in ~(key by vein)) max))
|
|
|
|
::
|
|
|
|
~| %vein-stub
|
|
|
|
?< (~(has by urb.ton.fox) our)
|
|
|
|
::
|
|
|
|
=/ can=(list ship)
|
|
|
|
%- flop
|
|
|
|
|- ^- (list ship)
|
|
|
|
?:((lth our 256) ~ =+(seg=(sein:title our) [seg $(our seg)]))
|
|
|
|
::
|
|
|
|
=/ new=wund
|
|
|
|
%+ turn
|
|
|
|
%+ sort
|
|
|
|
~(tap by vein)
|
|
|
|
|= [a=[=^life =ring] b=[=^life =ring]]
|
|
|
|
(gth life.a life.b)
|
|
|
|
|= [=^life =ring]
|
|
|
|
[life ring (nol:nu:crub:crypto ring)]
|
|
|
|
::
|
|
|
|
=/ ded=deed
|
|
|
|
?> ?=(^ new)
|
|
|
|
[life=p.i.new pass=pub:ex:r.i.new oath=~]
|
|
|
|
::
|
|
|
|
%= fox
|
|
|
|
urb.ton (~(put by urb.ton.fox) our [can new ded ~ ~])
|
|
|
|
zac (~(put by zac.fox) our *corn)
|
|
|
|
==
|
|
|
|
::
|
2017-04-17 04:52:41 +03:00
|
|
|
++ gnaw :: gnaw:am
|
2017-10-24 08:17:38 +03:00
|
|
|
|= [kay=cape ryn=lane pac=rock] :: process packet
|
|
|
|
^- [p=(list boon) q=fort]
|
2018-02-22 21:11:41 +03:00
|
|
|
?. =(protocol-version (end 0 3 pac)) [~ fox]
|
2017-04-17 04:52:41 +03:00
|
|
|
=+ kec=(bite pac)
|
|
|
|
?: (goop p.p.kec) [~ fox]
|
|
|
|
?. (~(has by urb.ton.fox) q.p.kec)
|
|
|
|
[~ fox]
|
|
|
|
=< zork
|
2013-09-29 00:21:18 +04:00
|
|
|
=< zank
|
2014-05-29 23:20:27 +04:00
|
|
|
:: ~& [%hear p.p.kec ryn `@p`(mug (shaf %flap pac))]
|
2013-09-29 00:21:18 +04:00
|
|
|
%- ~(chew la:(ho:(um q.p.kec) p.p.kec) kay ryn %none (shaf %flap pac))
|
|
|
|
[q.kec r.kec]
|
2017-04-17 04:52:41 +03:00
|
|
|
::
|
|
|
|
++ goop :: blacklist
|
2017-10-24 08:17:38 +03:00
|
|
|
|= him=ship
|
2017-04-17 04:52:41 +03:00
|
|
|
|
|
|
|
|
::
|
2013-09-29 00:21:18 +04:00
|
|
|
++ hall :: hall:am
|
2013-12-09 01:23:03 +04:00
|
|
|
^- (list sock) :: all sockets
|
2017-10-24 08:17:38 +03:00
|
|
|
=| sox=(list sock) :: XX hideous
|
2013-12-09 01:23:03 +04:00
|
|
|
|- ^+ sox
|
2013-09-29 00:21:18 +04:00
|
|
|
?~ zac.fox sox
|
|
|
|
=. sox $(zac.fox l.zac.fox)
|
|
|
|
=. sox $(zac.fox r.zac.fox)
|
|
|
|
|- ^+ sox
|
|
|
|
?~ wab.q.n.zac.fox sox
|
2013-12-09 01:23:03 +04:00
|
|
|
=. sox $(wab.q.n.zac.fox l.wab.q.n.zac.fox)
|
|
|
|
=. sox $(wab.q.n.zac.fox r.wab.q.n.zac.fox)
|
2013-09-29 00:21:18 +04:00
|
|
|
[[p.n.zac.fox p.n.wab.q.n.zac.fox] sox]
|
|
|
|
::
|
2017-04-17 04:52:41 +03:00
|
|
|
++ kick :: kick:am
|
2017-10-24 08:17:38 +03:00
|
|
|
|= hen=duct :: refresh net
|
|
|
|
=+ aks=(turn ~(tap by urb.ton.fox) |=([p=ship q=sufi] p))
|
|
|
|
|- ^- [p=(list boon) q=fort]
|
2017-04-17 04:52:41 +03:00
|
|
|
?~ aks [~ fox]
|
|
|
|
=^ buz fox zork:(kick:(um i.aks) hen)
|
|
|
|
=^ biz fox $(aks t.aks)
|
|
|
|
[(weld p.buz p.biz) fox]
|
|
|
|
::
|
2014-07-24 06:02:50 +04:00
|
|
|
++ rack :: rack:am
|
2017-10-24 08:17:38 +03:00
|
|
|
|= [soq=sock cha=path cop=coop] :: e2e ack
|
2014-07-24 06:02:50 +04:00
|
|
|
=+ oh=(ho:(um p.soq) q.soq)
|
2014-11-26 04:02:48 +03:00
|
|
|
=^ gud oh (cook:oh cop cha ~)
|
|
|
|
?. gud oh
|
2014-07-24 06:02:50 +04:00
|
|
|
(cans:oh cha)
|
2017-04-17 04:52:41 +03:00
|
|
|
::
|
|
|
|
++ wake :: wake:am
|
2017-10-24 08:17:38 +03:00
|
|
|
|= hen=duct :: harvest packets
|
|
|
|
^- [p=(list boon) q=fort]
|
2013-09-29 00:21:18 +04:00
|
|
|
=+ sox=hall
|
2017-10-24 08:17:38 +03:00
|
|
|
=| bin=(list boon)
|
|
|
|
|- ^- [p=(list boon) q=fort]
|
2013-12-09 01:23:03 +04:00
|
|
|
?~ sox
|
2013-10-09 22:55:23 +04:00
|
|
|
=^ ban fox (kick hen)
|
|
|
|
[(weld bin p.ban) fox]
|
2013-09-29 00:21:18 +04:00
|
|
|
=^ bun fox zork:zank:thaw:(ho:(um p.i.sox) q.i.sox)
|
|
|
|
$(sox t.sox, bin (weld p.bun bin))
|
2017-04-17 04:52:41 +03:00
|
|
|
::
|
|
|
|
++ wise :: wise:am
|
2017-10-24 08:17:38 +03:00
|
|
|
|= [soq=sock hen=duct cha=path val=*] :: send a statement
|
|
|
|
^- [p=(list boon) q=fort]
|
2017-05-22 02:32:33 +03:00
|
|
|
zork:zank:(wool:(ho:(um p.soq) q.soq) hen cha val)
|
2017-04-17 04:52:41 +03:00
|
|
|
::
|
|
|
|
++ um :: per server
|
2017-10-24 08:17:38 +03:00
|
|
|
|= our=ship
|
2018-08-02 03:52:24 +03:00
|
|
|
=/ gus (need (~(us go ton.fox) our))
|
|
|
|
=/ weg=corn (fall (~(get by zac.fox) our) *corn)
|
2017-10-24 08:17:38 +03:00
|
|
|
=| bin=(list boon)
|
2017-04-17 04:52:41 +03:00
|
|
|
|%
|
|
|
|
++ ho :: ho:um:am
|
2017-10-24 08:17:38 +03:00
|
|
|
|= her=ship :: per friend
|
2017-04-17 04:52:41 +03:00
|
|
|
=+ diz=(myx:gus her)
|
|
|
|
=+ bah=(~(get by wab.weg) her)
|
2013-09-29 00:21:18 +04:00
|
|
|
=+ puz=?~(bah ahoy:pu %*(. pu +< sop.u.bah))
|
|
|
|
=> .(bah `bath`?~(bah [abet:puz ~ ~] u.bah))
|
2017-04-17 04:52:41 +03:00
|
|
|
|%
|
|
|
|
++ busk :: busk:ho:um:am
|
2017-10-24 08:17:38 +03:00
|
|
|
|= [waz=(list ship) pax=(list rock)] :: send packets
|
2017-04-17 04:52:41 +03:00
|
|
|
%_ +>
|
|
|
|
bin
|
|
|
|
|- ^+ bin
|
2013-09-29 00:21:18 +04:00
|
|
|
?~ pax bin
|
|
|
|
$(pax t.pax, bin (weld (flop (wist:diz now waz ~ i.pax)) bin))
|
2017-04-17 04:52:41 +03:00
|
|
|
==
|
|
|
|
::
|
2014-07-24 06:02:50 +04:00
|
|
|
++ cans :: cans:ho:um:am
|
2017-10-24 08:17:38 +03:00
|
|
|
|= cha=path
|
2014-07-24 06:02:50 +04:00
|
|
|
=+ rum=(need (~(get by raz.bah) cha))
|
|
|
|
=. rum
|
|
|
|
%= rum
|
|
|
|
did +(did.rum)
|
2014-07-26 06:10:24 +04:00
|
|
|
mis (~(del by mis.rum) did.rum)
|
2014-07-24 06:02:50 +04:00
|
|
|
==
|
|
|
|
(coat cha rum)
|
|
|
|
::
|
|
|
|
++ coat :: coat:ho:um:am
|
2017-10-24 08:17:38 +03:00
|
|
|
|= [cha=path rum=race] :: update input race
|
2017-04-17 04:52:41 +03:00
|
|
|
^+ +>
|
2014-07-24 06:02:50 +04:00
|
|
|
=+ cun=(~(get by mis.rum) did.rum)
|
2017-10-24 07:48:07 +03:00
|
|
|
?: |(!dod.rum ?=(~ cun))
|
2017-05-22 07:31:43 +03:00
|
|
|
::
|
|
|
|
:: if we have not yet received the current message,
|
|
|
|
:: or if we are not idle, just wait.
|
|
|
|
::
|
2014-07-24 06:02:50 +04:00
|
|
|
+>.$(raz.bah (~(put by raz.bah) cha rum))
|
2017-05-22 07:31:43 +03:00
|
|
|
?. =(%good p.u.cun)
|
|
|
|
::
|
|
|
|
:: if we are recording a failed message, acknowledge
|
|
|
|
:: it now, since it obviously won't be processed.
|
|
|
|
::
|
|
|
|
~& [%fail-ack did.rum]
|
2018-02-22 21:11:59 +03:00
|
|
|
=^ gud +>.$
|
2017-05-22 07:31:43 +03:00
|
|
|
(cook ``[%dead-message ~] cha `[q.u.cun r.u.cun])
|
|
|
|
?. gud +>.$
|
|
|
|
%= +>.$
|
|
|
|
raz.bah
|
|
|
|
%+ ~(put by raz.bah) cha
|
|
|
|
%= rum
|
|
|
|
did +(did.rum)
|
|
|
|
mis (~(del by mis.rum) did.rum)
|
|
|
|
==
|
|
|
|
==
|
2017-04-17 04:52:41 +03:00
|
|
|
::
|
2017-05-22 07:31:43 +03:00
|
|
|
:: the message is good. send it to be processed.
|
2017-04-17 04:52:41 +03:00
|
|
|
::
|
2014-07-26 06:10:24 +04:00
|
|
|
?> ?=(^ s.u.cun)
|
|
|
|
%= +>.$
|
|
|
|
raz.bah (~(put by raz.bah) cha rum(dod |))
|
2014-07-24 06:02:50 +04:00
|
|
|
bin
|
|
|
|
:_ bin
|
2017-05-22 04:36:29 +03:00
|
|
|
:^ %milk
|
2014-07-24 06:02:50 +04:00
|
|
|
[our her]
|
2018-09-13 08:48:18 +03:00
|
|
|
`soap`[[lyf:sen:gus clon:diz] cha did.rum]
|
2014-07-26 06:10:24 +04:00
|
|
|
u.s.u.cun
|
2017-04-17 04:52:41 +03:00
|
|
|
==
|
|
|
|
::
|
2014-07-24 06:02:50 +04:00
|
|
|
++ cook :: cook:ho:um:am
|
2017-10-24 08:17:38 +03:00
|
|
|
|= [cop=coop cha=path ram=(unit [ryn=lane dam=flap])]
|
|
|
|
^- [gud=? con=_+>] :: acknowledgment
|
2017-10-10 08:22:47 +03:00
|
|
|
:: ~& [%ames-cook cop cha ram]
|
2014-07-24 06:02:50 +04:00
|
|
|
=+ rum=(need (~(get by raz.bah) cha))
|
2014-08-02 06:04:50 +04:00
|
|
|
=+ lat=(~(get by mis.rum) did.rum)
|
2017-10-24 07:48:07 +03:00
|
|
|
?: &(?=(~ lat) ?=(~ ram))
|
2014-11-26 04:02:48 +03:00
|
|
|
~& %ack-late-or-redundant
|
|
|
|
[%| +>.$]
|
|
|
|
:- %&
|
2017-10-24 08:17:38 +03:00
|
|
|
=+ ^- [ryn=lane dam=flap]
|
2014-07-26 06:10:24 +04:00
|
|
|
?^ ram [ryn.u.ram dam.u.ram]
|
2017-10-24 07:48:07 +03:00
|
|
|
?< ?=(~ lat)
|
2014-08-02 06:04:50 +04:00
|
|
|
[q r]:u.lat
|
2014-07-26 06:10:24 +04:00
|
|
|
=. raz.bah
|
2014-08-01 06:44:49 +04:00
|
|
|
?^ ram raz.bah
|
2014-07-26 06:10:24 +04:00
|
|
|
%+ ~(put by raz.bah) cha
|
2014-08-01 06:44:49 +04:00
|
|
|
rum(dod &, bum ?~(cop bum.rum (~(put by bum.rum) did.rum u.cop)))
|
2017-05-22 04:36:29 +03:00
|
|
|
=^ roc diz (zuul:diz now [%back cop dam ~s0])
|
2014-07-24 06:02:50 +04:00
|
|
|
(busk(diz (wast:diz ryn)) xong:diz roc)
|
2017-04-17 04:52:41 +03:00
|
|
|
::
|
2013-09-29 00:21:18 +04:00
|
|
|
++ done :: done:ho:um:am
|
2017-10-24 08:17:38 +03:00
|
|
|
|= [cha=path num=@ud] :: complete outgoing
|
|
|
|
^- [(unit duct) _+>]
|
2017-10-10 08:22:47 +03:00
|
|
|
:: ~& [%ames-done cha num]
|
2013-09-29 00:21:18 +04:00
|
|
|
=+ rol=(need (~(get by ryl.bah) cha))
|
|
|
|
=+ rix=(~(get by san.rol) num)
|
|
|
|
?~ rix [~ +>.$]
|
|
|
|
:- rix
|
|
|
|
%_ +>.$
|
2013-12-09 01:23:03 +04:00
|
|
|
ryl.bah
|
2013-09-29 00:21:18 +04:00
|
|
|
(~(put by ryl.bah) cha rol(san (~(del by san.rol) num)))
|
|
|
|
==
|
2017-04-17 04:52:41 +03:00
|
|
|
::
|
2013-09-29 00:21:18 +04:00
|
|
|
++ la :: la:ho:um:am
|
2017-10-24 08:17:38 +03:00
|
|
|
|_ [kay=cape ryn=lane aut=skin dam=flap] :: per packet
|
2017-04-17 04:52:41 +03:00
|
|
|
::
|
2013-09-29 00:21:18 +04:00
|
|
|
++ chew :: chew:la:ho:um:am
|
2017-10-24 08:17:38 +03:00
|
|
|
|= [sin=skin msg=@] :: receive
|
2013-09-29 00:21:18 +04:00
|
|
|
^+ +>
|
|
|
|
=< apse
|
2013-12-09 01:23:03 +04:00
|
|
|
|%
|
2013-09-29 00:21:18 +04:00
|
|
|
++ apse
|
|
|
|
^+ +>.$
|
2018-08-02 03:52:24 +03:00
|
|
|
=/ oub bust:puz
|
|
|
|
=/ neg =(~ yed.caq.dur.diz)
|
2013-09-29 00:21:18 +04:00
|
|
|
=. +>.$ east
|
2018-08-02 03:52:24 +03:00
|
|
|
=/ eng =(~ yed.caq.dur.diz)
|
|
|
|
=/ bou bust:puz
|
|
|
|
=? +>.$ &(oub !bou)
|
|
|
|
(emit [%wine [our her] " is ok"])
|
|
|
|
=? +>.$ &(neg !eng)
|
|
|
|
(emit [%wine [our her] " is your neighbor"])
|
2013-09-29 00:21:18 +04:00
|
|
|
+>.$
|
|
|
|
::
|
|
|
|
++ east
|
|
|
|
^+ +>.$
|
|
|
|
?- sin
|
2017-10-24 07:48:07 +03:00
|
|
|
%none
|
2013-09-29 00:21:18 +04:00
|
|
|
:: ~& %chew-none
|
2013-12-28 05:21:11 +04:00
|
|
|
=. puz (bilk:puz now)
|
2013-09-29 00:21:18 +04:00
|
|
|
(chow ((hard meal) (cue msg)))
|
|
|
|
::
|
2017-10-24 07:48:07 +03:00
|
|
|
%fast
|
2013-09-29 00:21:18 +04:00
|
|
|
:: ~& %chew-fast
|
|
|
|
=+ [mag=`hand`(end 7 1 msg) bod=(rsh 7 1 msg)]
|
|
|
|
=+ dey=(kuch:diz mag)
|
2014-03-14 21:49:21 +04:00
|
|
|
?~ dey
|
2014-09-26 22:32:21 +04:00
|
|
|
:: ~& [%bad-key her mag]
|
2013-12-29 08:59:45 +04:00
|
|
|
+>.$ :: ignore unknown key
|
2013-12-28 05:21:11 +04:00
|
|
|
=. puz (bilk:puz now)
|
2013-09-29 00:21:18 +04:00
|
|
|
=^ key diz u.dey
|
2018-09-13 08:48:18 +03:00
|
|
|
(chow(aut sin) ((hard meal) (cue (dy:cub:sen:gus key bod))))
|
2013-09-29 00:21:18 +04:00
|
|
|
::
|
2017-10-24 07:48:07 +03:00
|
|
|
%full
|
2013-09-29 00:21:18 +04:00
|
|
|
:: ~& %chew-full
|
2018-09-13 08:48:18 +03:00
|
|
|
=+ mex=((hard ,[p=[p=life q=life] q=(unit deed) r=@]) (cue msg))
|
2014-04-24 02:45:46 +04:00
|
|
|
=. diz (deng:diz q.mex)
|
|
|
|
=+ wug=cluy:diz
|
2018-09-13 08:48:18 +03:00
|
|
|
?> =(q.p.mex lyf.wug)
|
2014-04-24 02:45:46 +04:00
|
|
|
=+ gey=(sev:gus p.p.mex)
|
2018-09-13 08:48:18 +03:00
|
|
|
=+ sem=(need (tear:as:q.gey pub:ex:cub.wug r.mex))
|
2018-08-21 22:23:00 +03:00
|
|
|
=+ mes=((hard (pair @ @)) (cue sem))
|
2013-09-29 00:21:18 +04:00
|
|
|
=. diz (wasc:diz p.mes)
|
2013-12-28 05:21:11 +04:00
|
|
|
=. puz (bilk:puz now)
|
2014-04-24 02:45:46 +04:00
|
|
|
(west(msg q.mes))
|
2013-09-29 00:21:18 +04:00
|
|
|
::
|
2017-10-24 07:48:07 +03:00
|
|
|
%open
|
2013-09-29 00:21:18 +04:00
|
|
|
:: ~& %chew-open
|
2018-09-13 08:48:18 +03:00
|
|
|
=+ mex=((hard ,[p=[~ q=life] q=(unit deed) r=@]) (cue msg))
|
2014-04-24 02:45:46 +04:00
|
|
|
=. diz (deng:diz q.mex)
|
|
|
|
=+ wug=cluy:diz
|
2018-09-13 08:48:18 +03:00
|
|
|
?> =(q.p.mex lyf.wug)
|
|
|
|
=+ mes=(need (sure:as:cub.wug r.mex))
|
2013-12-28 05:21:11 +04:00
|
|
|
=. puz (bilk:puz now)
|
2014-04-24 02:45:46 +04:00
|
|
|
(west(msg mes))
|
2013-09-29 00:21:18 +04:00
|
|
|
==
|
|
|
|
++ west
|
2017-10-24 07:48:07 +03:00
|
|
|
|= ~
|
2014-04-24 02:45:46 +04:00
|
|
|
=+ vib=(cue msg)
|
|
|
|
=+ mal=(meal vib)
|
|
|
|
?. =(mal vib)
|
2013-10-08 06:04:08 +04:00
|
|
|
~& [%bad-meal her]
|
|
|
|
+>.^$
|
|
|
|
(chow(aut sin) mal)
|
2013-09-29 00:21:18 +04:00
|
|
|
--
|
2017-04-17 04:52:41 +03:00
|
|
|
::
|
2013-12-09 01:23:03 +04:00
|
|
|
++ chow :: chow:la:ho:um:am
|
2017-10-24 08:17:38 +03:00
|
|
|
|= fud=meal :: interpret meal
|
2013-09-29 00:21:18 +04:00
|
|
|
^+ +>
|
|
|
|
=. diz ?:(=(%none aut) diz (wast:diz ryn))
|
|
|
|
(dine fud)
|
2017-04-17 04:52:41 +03:00
|
|
|
::
|
2017-05-22 07:31:43 +03:00
|
|
|
++ cock :: cock:la:ho:um:am
|
2017-05-22 03:38:17 +03:00
|
|
|
^+ . :: send new ack
|
2013-09-29 00:21:18 +04:00
|
|
|
:: ~& [%back kay dam]
|
2017-05-22 03:38:17 +03:00
|
|
|
=* cop `coop`?:(=(%good kay) ~ ``[%dead-packet ~])
|
2017-05-22 04:36:29 +03:00
|
|
|
=^ pax diz (zuul:diz now [%back cop dam ~s0])
|
2013-09-29 00:21:18 +04:00
|
|
|
+(+> (busk(diz (wast:diz ryn)) xong:diz pax))
|
2017-04-17 04:52:41 +03:00
|
|
|
::
|
2014-07-24 06:02:50 +04:00
|
|
|
++ deer :: deer:la:ho:um:am
|
2017-10-24 08:17:38 +03:00
|
|
|
|= [cha=path num=@ud dut=(unit)] :: interpret message
|
2017-04-17 04:52:41 +03:00
|
|
|
^+ +>
|
2014-07-26 06:10:24 +04:00
|
|
|
=+ rum=(fall (~(get by raz.bah) cha) *race)
|
2017-10-24 07:48:07 +03:00
|
|
|
:: ~& [%rx kay cha num [dod.rum did.rum] ?=(~ dut)]
|
2017-05-22 07:31:43 +03:00
|
|
|
=* bad (~(has in bad.fox) her)
|
|
|
|
=. kay ?.((~(has in bad.fox) her) kay ~&(%blocked %dead))
|
2014-07-24 06:02:50 +04:00
|
|
|
%= +>.$
|
|
|
|
+>
|
2017-05-22 07:31:43 +03:00
|
|
|
?: (lth num did.rum)
|
|
|
|
::
|
|
|
|
:: this message already acknowledged; repeat old ack,
|
|
|
|
:: or negative ack if this ship is blocked
|
|
|
|
::
|
|
|
|
=* cop ^- coop
|
2018-02-22 21:11:59 +03:00
|
|
|
%+ fall
|
|
|
|
(~(get by bum.rum) num)
|
2017-05-22 07:31:43 +03:00
|
|
|
?:(bad ~ ``[%blocked ~])
|
|
|
|
con:(cook (~(get by bum.rum) num) cha `[ryn dam])
|
|
|
|
::
|
|
|
|
:: insert this message in unprocessed set
|
|
|
|
::
|
|
|
|
=. mis.rum (~(put by mis.rum) num [kay ryn dam dut])
|
2018-02-22 21:11:59 +03:00
|
|
|
::
|
2017-05-22 07:31:43 +03:00
|
|
|
:: if ship is blocked, advance pointer to latest message
|
|
|
|
::
|
|
|
|
=. did.rum ?.(bad did.rum num)
|
|
|
|
::
|
|
|
|
:: process update
|
|
|
|
::
|
|
|
|
(coat cha rum)
|
2017-04-17 04:52:41 +03:00
|
|
|
==
|
|
|
|
::
|
2013-09-29 00:21:18 +04:00
|
|
|
++ dine :: dine:la:ho:um:am
|
2017-10-24 08:17:38 +03:00
|
|
|
|= fud=meal :: interpret meal
|
2017-04-17 04:52:41 +03:00
|
|
|
^+ +>
|
2013-09-29 00:21:18 +04:00
|
|
|
?- -.fud
|
2017-10-24 07:48:07 +03:00
|
|
|
%back
|
2017-05-22 07:31:43 +03:00
|
|
|
=. +> ?.(=(%full aut) +> cock) :: finish handshake
|
2014-07-24 06:02:50 +04:00
|
|
|
+>(..la (tock p.fud q.fud r.fud))
|
|
|
|
::
|
2017-10-24 07:48:07 +03:00
|
|
|
%bond
|
2017-05-22 04:36:29 +03:00
|
|
|
:: ~& [%bond q.fud r.fud]
|
2018-09-13 08:48:18 +03:00
|
|
|
?> =(lyf:sen:gus p.fud)
|
2017-10-24 07:48:07 +03:00
|
|
|
(deer q.fud r.fud ?-(kay %dead ~, %good [~ s.fud]))
|
2013-09-29 00:21:18 +04:00
|
|
|
::
|
2017-10-24 07:48:07 +03:00
|
|
|
%carp
|
2015-06-07 08:00:18 +03:00
|
|
|
:: =+ zol=(~(get by olz.weg) s.fud)
|
2017-05-22 07:31:43 +03:00
|
|
|
:: ?^ zol cock(kay u.zol)
|
2013-09-29 00:21:18 +04:00
|
|
|
=^ neb nys.weg
|
|
|
|
=+ neb=(~(get by nys.weg) s.fud)
|
|
|
|
?^ neb [u.neb nys.weg]
|
|
|
|
=+ neb=`bait`[(kins p.fud) 0 r.fud ~]
|
|
|
|
[neb (~(put by nys.weg) s.fud neb)]
|
|
|
|
?> (lth q.fud p.r.neb)
|
|
|
|
?> =((kins p.fud) p.neb)
|
|
|
|
?> =(r.fud p.r.neb)
|
2015-12-06 00:01:00 +03:00
|
|
|
=+ doy=`(unit @)`(~(get by q.r.neb) q.fud)
|
2017-05-22 07:31:43 +03:00
|
|
|
?^ doy cock
|
2013-09-29 00:21:18 +04:00
|
|
|
=> ^+ . %= .
|
|
|
|
q.r.neb (~(put by q.r.neb) q.fud t.fud)
|
|
|
|
q.neb +(q.neb)
|
|
|
|
==
|
|
|
|
:: ~& [%carp q.fud s.fud q.neb p.r.neb]
|
|
|
|
?: =(q.neb p.r.neb)
|
|
|
|
=: nys.weg (~(del by nys.weg) s.fud)
|
2015-06-07 08:00:18 +03:00
|
|
|
:: olz.weg (~(put by olz.weg) s.fud kay)
|
2013-09-29 00:21:18 +04:00
|
|
|
==
|
|
|
|
(golf p.neb r.neb)
|
2017-05-22 07:31:43 +03:00
|
|
|
=. +>.$ cock
|
2013-09-29 00:21:18 +04:00
|
|
|
+>.$(nys.weg (~(put by nys.weg) s.fud neb))
|
|
|
|
::
|
2017-10-24 07:48:07 +03:00
|
|
|
%fore
|
2013-09-29 00:21:18 +04:00
|
|
|
=+ ^= lyn ^- lane
|
2013-12-09 01:23:03 +04:00
|
|
|
?~ q.fud ryn
|
2017-10-24 07:48:07 +03:00
|
|
|
?. ?=(%if -.u.q.fud) u.q.fud
|
2014-06-04 01:01:40 +04:00
|
|
|
[%ix +.u.q.fud]
|
2013-09-29 00:21:18 +04:00
|
|
|
:: u.q.fud
|
|
|
|
?: =(our p.fud)
|
2013-12-09 01:23:03 +04:00
|
|
|
(emit %mead lyn r.fud)
|
2013-09-29 00:21:18 +04:00
|
|
|
=+ zid=(myx:gus p.fud)
|
|
|
|
(emir (wist:zid now xong:zid [~ lyn] r.fud))
|
|
|
|
==
|
2017-04-17 04:52:41 +03:00
|
|
|
::
|
2013-09-29 00:21:18 +04:00
|
|
|
++ emir :: emir:la:ho:um:am
|
2017-10-24 08:17:38 +03:00
|
|
|
|= ben=(list boon) :: emit boons
|
2017-04-17 04:52:41 +03:00
|
|
|
^+ +>
|
2013-09-29 00:21:18 +04:00
|
|
|
?~(ben +> $(ben t.ben, bin [i.ben bin]))
|
2017-04-17 04:52:41 +03:00
|
|
|
::
|
2013-09-29 00:21:18 +04:00
|
|
|
++ emit :: emit:la:ho:um:am
|
2017-10-24 08:17:38 +03:00
|
|
|
|= bun=boon :: emit a boon
|
2013-12-09 01:23:03 +04:00
|
|
|
+>(bin [bun bin])
|
2017-04-17 04:52:41 +03:00
|
|
|
::
|
2013-12-09 01:23:03 +04:00
|
|
|
++ golf :: golf:la:ho:um:am
|
2017-10-24 08:17:38 +03:00
|
|
|
|= [sin=skin duv=dove] :: assemble fragments
|
2013-09-29 00:21:18 +04:00
|
|
|
^+ +>
|
|
|
|
%+ chew sin
|
2017-04-17 04:52:41 +03:00
|
|
|
=+ [nix=0 rax=*(list @)]
|
|
|
|
|- ^- @
|
|
|
|
?: =(p.duv nix)
|
2018-09-13 08:48:18 +03:00
|
|
|
(can 13 (turn (flop rax) |=(a=@ [1 a])))
|
2017-04-17 04:52:41 +03:00
|
|
|
$(nix +(nix), rax [(need (~(get by q.duv) nix)) rax])
|
2013-09-29 00:21:18 +04:00
|
|
|
-- :: --la:ho:um:am
|
2017-04-17 04:52:41 +03:00
|
|
|
::
|
|
|
|
++ pong :: pong:ho:um:am
|
2017-10-24 08:17:38 +03:00
|
|
|
|= hen=duct :: test connection
|
2017-04-17 04:52:41 +03:00
|
|
|
^+ +>
|
2013-10-09 22:55:23 +04:00
|
|
|
?. ?& =(~ puq.puz)
|
|
|
|
?| bust:puz
|
2017-10-24 07:48:07 +03:00
|
|
|
?=(~ rue.puz)
|
2013-10-09 22:55:23 +04:00
|
|
|
(gth now (add ~s32 u.rue.puz))
|
2013-12-09 01:23:03 +04:00
|
|
|
(lth u.rue.puz hop.fox)
|
|
|
|
==
|
2017-04-17 04:52:41 +03:00
|
|
|
==
|
2014-04-23 21:02:36 +04:00
|
|
|
+>.$
|
2017-10-10 08:22:47 +03:00
|
|
|
(wool [/a/ping hen] /a/pi ~ |)
|
2013-09-29 00:21:18 +04:00
|
|
|
::
|
|
|
|
++ thaw :: thaw:ho:um:am
|
|
|
|
^+ . :: wakeup bomb
|
|
|
|
=+ oub=bust:puz
|
|
|
|
=^ yem puz (wack:puz now)
|
|
|
|
=+ bou=bust:puz
|
2013-12-09 01:23:03 +04:00
|
|
|
=. bin
|
2015-06-05 02:52:24 +03:00
|
|
|
?. &(bou !oub) bin
|
2014-11-21 01:26:31 +03:00
|
|
|
:_(bin [%wine [our her] " not responding still trying"])
|
2013-12-30 10:56:13 +04:00
|
|
|
=. diz ?:((boom:puz now) (pode:diz now) diz)
|
2013-09-29 00:21:18 +04:00
|
|
|
(busk xong:diz yem)
|
|
|
|
::
|
2014-07-24 06:02:50 +04:00
|
|
|
++ tock :: tock:ho:um:am
|
2017-10-24 08:17:38 +03:00
|
|
|
|= [cop=coop fap=flap cot=@dr] :: e2e ack by hash
|
2014-07-24 06:02:50 +04:00
|
|
|
^+ +>
|
|
|
|
=^ yoh puz (bick:puz now fap)
|
|
|
|
=. +>.$
|
|
|
|
?~ p.yoh +>.$
|
|
|
|
=^ hud +>.$
|
|
|
|
(done p.u.p.yoh q.u.p.yoh)
|
|
|
|
?~ hud +>.$
|
|
|
|
%= +>.$
|
|
|
|
bin
|
|
|
|
:_ bin
|
2018-09-13 08:48:18 +03:00
|
|
|
`boon`[%cake [our her] [[lyf:sen:gus clon:diz] u.p.yoh] cop u.hud]
|
2017-04-17 04:52:41 +03:00
|
|
|
==
|
2014-07-24 06:02:50 +04:00
|
|
|
(busk xong:diz q.yoh)
|
|
|
|
::
|
2013-09-29 00:21:18 +04:00
|
|
|
++ wind :: wind:ho:um:am
|
2017-10-24 08:17:38 +03:00
|
|
|
|= [gom=soup ham=meal]
|
2013-09-29 00:21:18 +04:00
|
|
|
:: ~& [%wind her gom]
|
|
|
|
^+ +>
|
|
|
|
=^ wyv diz (zuul:diz now ham)
|
|
|
|
=^ feh puz (whap:puz now gom wyv)
|
|
|
|
(busk xong:diz feh)
|
|
|
|
::
|
|
|
|
++ wool :: wool:ho:um:am
|
2017-10-24 08:17:38 +03:00
|
|
|
|= [hen=duct cha=path val=*] :: send a statement
|
2013-09-29 00:21:18 +04:00
|
|
|
^+ +>
|
2018-08-02 03:52:24 +03:00
|
|
|
=/ rol=rill (fall (~(get by ryl.bah) cha) *rill)
|
|
|
|
=/ sex=@ud sed.rol
|
2013-11-14 02:41:08 +04:00
|
|
|
:: ~& [%tx [our her] cha sex]
|
2018-09-07 04:41:16 +03:00
|
|
|
:: if we don't have a public key for :her,
|
|
|
|
:: request keys and proceed (skin will be %open)
|
|
|
|
::
|
|
|
|
=? bin =(~ lew.wod.dur.diz) :_(bin [%beer our her])
|
2013-12-09 01:23:03 +04:00
|
|
|
=. ryl.bah
|
2013-09-29 00:21:18 +04:00
|
|
|
%+ ~(put by ryl.bah) cha
|
2018-08-02 03:52:24 +03:00
|
|
|
%= rol
|
|
|
|
sed +(sed.rol)
|
|
|
|
san (~(put by san.rol) sex hen)
|
|
|
|
==
|
2014-07-24 06:02:50 +04:00
|
|
|
%+ wind [cha sex]
|
2018-08-02 03:52:24 +03:00
|
|
|
[%bond clon:diz cha sex val]
|
2013-09-29 00:21:18 +04:00
|
|
|
::
|
2013-10-08 09:56:57 +04:00
|
|
|
++ zest :: zest:ho:um:am
|
2013-10-10 06:45:57 +04:00
|
|
|
:~ :~ :* [%rtt rtt.sop.bah]
|
|
|
|
[%rto rto.sop.bah]
|
|
|
|
[%rtn rtn.sop.bah]
|
|
|
|
[%rue rue.sop.bah]
|
|
|
|
==
|
|
|
|
:* [%nus nus.sop.bah]
|
|
|
|
[%nif nif.sop.bah]
|
|
|
|
[%nep nep.sop.bah]
|
|
|
|
[%caw caw.sop.bah]
|
|
|
|
[%cag cag.sop.bah]
|
|
|
|
==
|
2017-10-02 04:50:19 +03:00
|
|
|
=+ qup=~(tap to puq.sop.bah)
|
2013-10-10 06:45:57 +04:00
|
|
|
:- %qup
|
|
|
|
%+ turn qup
|
2017-10-24 08:17:38 +03:00
|
|
|
|= [a=@ud b=soul]
|
2013-12-09 01:23:03 +04:00
|
|
|
:* a
|
2013-10-10 06:45:57 +04:00
|
|
|
nux.b
|
|
|
|
liv.b
|
|
|
|
lys.b
|
|
|
|
`@p`(mug (shaf %flap pac.b))
|
|
|
|
gom.b
|
|
|
|
==
|
2017-04-17 04:52:41 +03:00
|
|
|
==
|
2013-10-10 06:45:57 +04:00
|
|
|
::
|
|
|
|
:- %raz
|
2017-10-02 04:50:19 +03:00
|
|
|
=+ zar=~(tap by raz.bah)
|
2013-10-10 06:45:57 +04:00
|
|
|
%+ turn zar
|
2017-10-24 08:17:38 +03:00
|
|
|
|= [a=path b=race]
|
2013-10-10 06:45:57 +04:00
|
|
|
:+ a
|
|
|
|
did.b
|
2017-10-02 04:50:19 +03:00
|
|
|
=+ ciy=~(tap by mis.b)
|
2013-10-10 06:45:57 +04:00
|
|
|
%+ turn ciy
|
2017-10-24 08:17:38 +03:00
|
|
|
|= [c=@ud d=[p=cape q=lane r=flap s=(unit)]]
|
2014-07-26 06:10:24 +04:00
|
|
|
[c p.d r.d]
|
2013-10-10 06:45:57 +04:00
|
|
|
::
|
2017-10-02 04:50:19 +03:00
|
|
|
[%ryl ~(tap to ryl.bah)]
|
2013-12-09 01:23:03 +04:00
|
|
|
[%lun lun.wod.dur.diz]
|
2013-10-10 06:45:57 +04:00
|
|
|
[%caq caq.dur.diz]
|
|
|
|
[%lew lew.wod.dur.diz]
|
|
|
|
==
|
2013-10-08 09:56:57 +04:00
|
|
|
::
|
2013-09-29 00:21:18 +04:00
|
|
|
++ zank :: zank:ho:um:am
|
2018-08-17 00:39:39 +03:00
|
|
|
=? bin ?=(^ rov.diz)
|
|
|
|
[[%maze her u.rov.diz] bin]
|
2013-09-29 00:21:18 +04:00
|
|
|
%= +>.$ :: resolve
|
2018-08-17 00:39:39 +03:00
|
|
|
gus (nux:gus diz(rov ~))
|
2013-09-29 00:21:18 +04:00
|
|
|
wab.weg (~(put by wab.weg) her bah(sop abet:puz))
|
|
|
|
==
|
2017-04-17 04:52:41 +03:00
|
|
|
-- :: --ho:um:am
|
|
|
|
::
|
|
|
|
++ kick :: kick:um:am
|
2017-10-24 08:17:38 +03:00
|
|
|
|= hen=duct :: test connection
|
2017-04-17 04:52:41 +03:00
|
|
|
^+ +>
|
|
|
|
=+ hoy=hoy.saf.gus
|
|
|
|
|- ^+ +>.^$
|
|
|
|
?~ hoy
|
|
|
|
+>.^$
|
|
|
|
$(hoy t.hoy, +>.^$ (pong i.hoy hen))
|
|
|
|
::
|
|
|
|
++ pals :: pals:um:am
|
|
|
|
^- (list @p) :: active neighbors
|
2013-12-09 01:23:03 +04:00
|
|
|
%+ turn
|
2017-10-02 04:50:19 +03:00
|
|
|
%+ skim ~(tap by wab.weg)
|
2017-10-24 08:17:38 +03:00
|
|
|
|= [a=ship b=bath]
|
2013-10-10 00:28:49 +04:00
|
|
|
!(~(boom pu sop.b) now)
|
2017-10-24 08:17:38 +03:00
|
|
|
|=([a=ship b=bath] a)
|
2017-04-17 04:52:41 +03:00
|
|
|
::
|
|
|
|
++ pong :: pong:um:am
|
2017-10-24 08:17:38 +03:00
|
|
|
|= [her=ship hen=duct] :: test neighbor
|
2017-04-17 04:52:41 +03:00
|
|
|
^+ +>
|
2013-10-09 22:55:23 +04:00
|
|
|
zank:(pong:(ho her) hen)
|
2017-04-17 04:52:41 +03:00
|
|
|
::
|
|
|
|
++ zork :: zork:um:am
|
2017-10-24 08:17:38 +03:00
|
|
|
^- [p=(list boon) q=fort] :: resolve
|
2017-04-17 04:52:41 +03:00
|
|
|
:- (flop bin)
|
|
|
|
%_ fox
|
|
|
|
ton (~(su go ton.fox) gus)
|
|
|
|
zac (~(put by zac.fox) our.gus weg)
|
|
|
|
==
|
|
|
|
-- :: --um:am
|
|
|
|
-- :: --am
|
2017-04-17 03:12:12 +03:00
|
|
|
--
|
|
|
|
. ==
|
2017-04-17 04:52:41 +03:00
|
|
|
::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
|
|
:: section 4aH, protocol vane ::
|
|
|
|
::
|
2017-10-24 08:17:38 +03:00
|
|
|
=| $: fox=fort :: kernel state
|
2017-04-17 04:52:41 +03:00
|
|
|
== ::
|
2017-10-24 08:17:38 +03:00
|
|
|
|= [now=@da eny=@ ski=sley] :: current invocation
|
2017-04-17 04:52:41 +03:00
|
|
|
^? :: opaque core
|
|
|
|
=<
|
|
|
|
|% :: vane interface
|
|
|
|
++ call :: handle request
|
2017-10-24 08:17:38 +03:00
|
|
|
|= $: hen=duct
|
|
|
|
hic=(hypo (hobo task:able))
|
2017-04-17 04:52:41 +03:00
|
|
|
==
|
|
|
|
=> %= . :: XX temporary
|
|
|
|
q.hic
|
|
|
|
^- task:able
|
2017-10-24 07:48:07 +03:00
|
|
|
?: ?=(%soft -.q.hic)
|
2017-04-17 04:52:41 +03:00
|
|
|
((hard task:able) p.q.hic)
|
|
|
|
?: (~(nest ut -:!>(*task:able)) | p.hic) q.hic
|
|
|
|
~& [%ames-call-flub (@tas `*`-.q.hic)]
|
|
|
|
((hard task:able) q.hic)
|
|
|
|
==
|
2017-10-24 08:17:38 +03:00
|
|
|
^- [p=(list move) q=_..^$]
|
2017-04-17 04:52:41 +03:00
|
|
|
=^ duy ..knob
|
|
|
|
(knob hen q.hic)
|
|
|
|
[duy ..^$]
|
|
|
|
::
|
|
|
|
++ doze
|
2017-10-24 08:17:38 +03:00
|
|
|
|= [now=@da hen=duct]
|
2015-12-08 10:35:55 +03:00
|
|
|
=+ doz=`(unit @da)`[~ (add now ~s32)]
|
2013-09-29 00:21:18 +04:00
|
|
|
|- ^+ doz
|
|
|
|
?~ zac.fox doz
|
|
|
|
=. doz $(zac.fox l.zac.fox)
|
|
|
|
=. doz $(zac.fox r.zac.fox)
|
|
|
|
=+ yem=q.n.zac.fox
|
|
|
|
|- ^+ doz
|
|
|
|
?~ wab.yem doz
|
|
|
|
=. doz $(wab.yem l.wab.yem)
|
|
|
|
=. doz $(wab.yem r.wab.yem)
|
|
|
|
=+ bah=q.n.wab.yem
|
2017-10-02 04:50:19 +03:00
|
|
|
(hunt lth doz rtn.sop.bah)
|
2017-04-17 04:52:41 +03:00
|
|
|
::
|
|
|
|
++ load
|
2018-02-22 21:11:59 +03:00
|
|
|
|= old=fort
|
2017-04-17 04:52:41 +03:00
|
|
|
..^$(fox old)
|
|
|
|
::
|
|
|
|
++ scry
|
2017-10-24 08:17:38 +03:00
|
|
|
|= [fur=(unit (set monk)) ren=@tas why=shop syd=desk lot=coin tyl=path]
|
2017-04-17 04:52:41 +03:00
|
|
|
^- (unit (unit cage))
|
2018-03-19 06:54:47 +03:00
|
|
|
?. ?=(%& -.why) [~ ~]
|
2017-04-17 04:52:41 +03:00
|
|
|
?~ tyl [~ ~]
|
|
|
|
=+ hun=(slaw %p i.tyl)
|
|
|
|
?~ hun [~ ~]
|
|
|
|
?. =(`@`0 ren) ~
|
|
|
|
?+ lot ~
|
2017-10-24 08:17:38 +03:00
|
|
|
[$$ %ud @]
|
2017-10-08 23:44:25 +03:00
|
|
|
(perm p.why u.hun q.p.lot [syd t.tyl])
|
2017-04-17 04:52:41 +03:00
|
|
|
::
|
2017-10-24 08:17:38 +03:00
|
|
|
[$$ %da @]
|
2017-04-17 04:52:41 +03:00
|
|
|
?. =(now q.p.lot) ~
|
2017-10-08 23:44:25 +03:00
|
|
|
(temp p.why u.hun [syd t.tyl])
|
2016-11-24 07:25:07 +03:00
|
|
|
==
|
|
|
|
::
|
2017-04-17 04:52:41 +03:00
|
|
|
++ stay fox
|
|
|
|
++ take :: accept response
|
2017-10-24 08:17:38 +03:00
|
|
|
|= [tea=wire hen=duct hin=(hypo sign:able)]
|
|
|
|
^- [p=(list move) q=_..^$]
|
2017-04-17 04:52:41 +03:00
|
|
|
=^ duy ..knap
|
|
|
|
(knap tea hen q.hin)
|
|
|
|
[duy ..^$]
|
2017-04-17 03:12:12 +03:00
|
|
|
--
|
2017-04-17 04:52:41 +03:00
|
|
|
|%
|
2017-10-24 08:17:38 +03:00
|
|
|
++ claw |=(our=ship ^-(duct hen:(need (~(get by zac.fox) our))))
|
2017-04-17 04:52:41 +03:00
|
|
|
++ clop
|
2017-10-24 08:17:38 +03:00
|
|
|
|= [now=@da hen=duct bon=boon]
|
|
|
|
^- [(list move) fort]
|
2017-04-17 04:52:41 +03:00
|
|
|
?- -.bon
|
2017-10-24 07:48:07 +03:00
|
|
|
%beer
|
2018-09-07 04:41:16 +03:00
|
|
|
=/ wir=wire
|
|
|
|
/our/(scot %p p.p.bon)/her/(scot %p q.p.bon)/now/(scot %da now)
|
|
|
|
:_ fox [hen [%pass wir %j %pubs p.p.bon q.p.bon]]~
|
2017-04-17 04:52:41 +03:00
|
|
|
::
|
2017-10-24 07:48:07 +03:00
|
|
|
%cake
|
2017-12-14 02:11:34 +03:00
|
|
|
:: ~? ?=(^ r.bon) [%cake-woot-bad hen r.bon]
|
2014-07-24 06:02:50 +04:00
|
|
|
:_ fox
|
|
|
|
:~ [s.bon %give %woot q.p.bon r.bon]
|
|
|
|
==
|
2018-08-17 00:39:39 +03:00
|
|
|
::
|
|
|
|
%maze
|
|
|
|
:_ fox
|
|
|
|
%+ turn ~(tap in ten.fox)
|
|
|
|
|=(hen=duct [hen %give %rove p.bon q.bon])
|
2013-09-29 00:21:18 +04:00
|
|
|
::
|
2017-10-24 07:48:07 +03:00
|
|
|
%mead :_(fox [[hen [%give %hear p.bon q.bon]] ~])
|
|
|
|
%milk
|
2017-05-22 04:36:29 +03:00
|
|
|
:: ~& [%milk p.bon q.bon]
|
2017-10-24 08:17:38 +03:00
|
|
|
?> ?=([@ @ *] q.q.bon)
|
2018-09-07 04:41:16 +03:00
|
|
|
?> ?=(?(%a %c %e %g %j) i.q.q.bon)
|
2015-06-23 00:02:27 +03:00
|
|
|
=+ pax=[(scot %p p.p.bon) (scot %p q.p.bon) q.q.bon]
|
|
|
|
:_ fox [hen %pass pax i.q.q.bon %west p.bon t.q.q.bon r.bon]~
|
2013-09-29 00:21:18 +04:00
|
|
|
::
|
2017-10-24 07:48:07 +03:00
|
|
|
%ouzo
|
2018-02-22 21:11:59 +03:00
|
|
|
:: ~& [%send now p.bon `@p`(mug (shaf %flap q.bon))]
|
2017-04-17 04:52:41 +03:00
|
|
|
:_ fox
|
2014-07-10 01:42:08 +04:00
|
|
|
[[gad.fox [%give %send p.bon q.bon]] ~]
|
2018-09-07 04:41:16 +03:00
|
|
|
::
|
|
|
|
%sake
|
|
|
|
=/ wir=wire
|
|
|
|
/our/(scot %p p.bon)/now/(scot %da now)
|
|
|
|
:_ fox [hen [%pass wir %j %vein p.bon]]~
|
2017-04-17 04:52:41 +03:00
|
|
|
::
|
2017-10-24 07:48:07 +03:00
|
|
|
%wine
|
2017-04-17 04:52:41 +03:00
|
|
|
:_ fox
|
|
|
|
=+ fom=~(rend co %$ %p q.p.bon)
|
|
|
|
:~ :- hen
|
|
|
|
:+ %slip %d
|
|
|
|
:+ %flog %text
|
|
|
|
;: weld
|
|
|
|
"; "
|
|
|
|
fom
|
|
|
|
q.bon
|
|
|
|
==
|
2016-11-24 07:25:07 +03:00
|
|
|
==
|
|
|
|
==
|
|
|
|
::
|
2017-04-17 04:52:41 +03:00
|
|
|
++ knap
|
2017-10-24 08:17:38 +03:00
|
|
|
|= [tea=wire hen=duct sih=sign:able]
|
|
|
|
^- [(list move) _+>]
|
2014-06-22 02:06:42 +04:00
|
|
|
?- +<.sih
|
2017-10-24 07:48:07 +03:00
|
|
|
%crud [[[hen [%slip %d %flog +.sih]] ~] +>]
|
2018-09-07 04:41:16 +03:00
|
|
|
::
|
2017-10-24 07:48:07 +03:00
|
|
|
%mack ?~ +>.sih $(sih [%g %nice ~]) :: XX using old code
|
2015-05-07 05:00:58 +03:00
|
|
|
$(sih [%g %mean `[%mack +>+.sih]])
|
2018-09-07 04:41:16 +03:00
|
|
|
::
|
|
|
|
%pubs
|
|
|
|
?. ?=([%our @ %her @ %now @ ~] tea)
|
|
|
|
~& [%strange-pubs tea]
|
|
|
|
[~ +>]
|
|
|
|
~& [%hear-pubs tea sih]
|
|
|
|
=/ our=ship (slav %p i.t.tea)
|
|
|
|
=/ her=ship (slav %p i.t.t.t.tea)
|
2018-09-14 06:01:04 +03:00
|
|
|
=/ wen=@da (slav %da i.t.t.t.t.t.tea)
|
|
|
|
?: =(0 life.sih)
|
|
|
|
~& %ames-hear-empty-pubs
|
|
|
|
[~ +>.$]
|
|
|
|
=/ ded=deed
|
|
|
|
[life.sih (~(got by pubs.sih) life.sih) oath=~]
|
|
|
|
=/ gus (need (~(us go ton.fox) our))
|
|
|
|
=/ diz (myx:gus her)
|
|
|
|
=. lew.wod.dur.diz `ded
|
|
|
|
=. ton.fox (~(su go ton.fox) (nux:gus diz))
|
2018-09-07 04:41:16 +03:00
|
|
|
[~ +>.$]
|
|
|
|
::
|
2017-10-24 07:48:07 +03:00
|
|
|
%unto [~ +>]
|
2018-09-07 04:41:16 +03:00
|
|
|
::
|
|
|
|
%vein
|
|
|
|
?. ?=([%our @ %now @ ~] tea)
|
|
|
|
~& [%strange-vein tea]
|
|
|
|
[~ +>]
|
|
|
|
~& [%hear-vein tea sih]
|
|
|
|
=/ our=ship (slav %p i.t.tea)
|
2018-09-14 06:01:04 +03:00
|
|
|
=/ wen=@da (slav %da i.t.t.t.tea)
|
|
|
|
=. fox (~(vein am [now fox]) our life.sih vein.sih)
|
|
|
|
:: XX save duct in corn here, or remove from structure
|
2018-09-07 04:41:16 +03:00
|
|
|
::
|
|
|
|
[~ +>.$]
|
|
|
|
::
|
2017-10-24 07:48:07 +03:00
|
|
|
%woot [~ +>]
|
|
|
|
?(%mean %nice) :: XX obsolete
|
2017-10-24 08:17:38 +03:00
|
|
|
?: ?=([%ye ~] tea)
|
2014-11-23 09:10:35 +03:00
|
|
|
[~ +>.$]
|
2017-10-24 08:17:38 +03:00
|
|
|
?> ?=([@ @ @ *] tea)
|
2014-07-24 06:02:50 +04:00
|
|
|
=+ soq=[(slav %p i.tea) (slav %p i.t.tea)]
|
2014-08-01 06:44:49 +04:00
|
|
|
=+ pax=t.t.tea
|
2014-07-24 06:02:50 +04:00
|
|
|
=+ ^= fuy
|
|
|
|
=< zork =< zank
|
2014-08-27 05:45:26 +04:00
|
|
|
%^ ~(rack am [now fox]) soq pax
|
2015-05-07 05:00:58 +03:00
|
|
|
:: ~& [%knap-ack ?-(+<.sih %mean `p.+.sih, %nice ~)]
|
2017-10-24 07:48:07 +03:00
|
|
|
?-(+<.sih %mean `p.+.sih, %nice ~)
|
2014-07-24 06:02:50 +04:00
|
|
|
=> %_(. fox q.fuy)
|
2017-10-24 08:17:38 +03:00
|
|
|
=| out=(list move)
|
|
|
|
|- ^- [p=(list move) q=_+>.^$]
|
2014-07-24 06:02:50 +04:00
|
|
|
?~ p.fuy
|
|
|
|
[(flop out) +>.^$]
|
|
|
|
=^ toe fox (clop now hen i.p.fuy)
|
|
|
|
$(p.fuy t.p.fuy, out (weld (flop toe) out))
|
2017-04-17 04:52:41 +03:00
|
|
|
==
|
|
|
|
::
|
|
|
|
++ knob
|
2017-10-24 08:17:38 +03:00
|
|
|
|= [hen=duct kyz=task:able]
|
|
|
|
^- [(list move) _+>]
|
2017-10-24 07:48:07 +03:00
|
|
|
?: ?=(%crud -.kyz)
|
2017-04-17 04:52:41 +03:00
|
|
|
[[[hen [%slip %d %flog kyz]] ~] +>]
|
2017-10-24 07:48:07 +03:00
|
|
|
?: ?=(%west -.kyz)
|
2018-09-13 08:48:18 +03:00
|
|
|
?> ?=([%pi ~] q.kyz)
|
2015-06-23 03:47:19 +03:00
|
|
|
:_ +>.$
|
2018-09-13 08:48:18 +03:00
|
|
|
[[hen %give %mack ~] ~]
|
2017-10-24 07:48:07 +03:00
|
|
|
?: ?=(%wegh -.kyz)
|
2015-05-07 05:25:41 +03:00
|
|
|
~& %ames-weighing
|
|
|
|
[[hen %give %mass wegh]~ +>]
|
2018-02-22 21:11:59 +03:00
|
|
|
=+ ^= fuy
|
2017-10-24 08:17:38 +03:00
|
|
|
^- [p=(list boon) q=fort]
|
2017-04-17 04:52:41 +03:00
|
|
|
?- -.kyz
|
2017-10-24 07:48:07 +03:00
|
|
|
%barn
|
2017-04-17 04:52:41 +03:00
|
|
|
[~ fox(gad hen)]
|
|
|
|
::
|
2017-10-24 07:48:07 +03:00
|
|
|
%hear
|
2014-06-06 03:48:13 +04:00
|
|
|
(~(gnaw am [now fox]) %good p.kyz q.kyz)
|
2013-09-29 00:21:18 +04:00
|
|
|
::
|
2017-10-24 07:48:07 +03:00
|
|
|
%halo
|
2017-07-09 23:05:33 +03:00
|
|
|
(~(gnaw am [now fox]) %dead p.kyz q.kyz)
|
2017-04-17 04:52:41 +03:00
|
|
|
::
|
2017-10-24 07:48:07 +03:00
|
|
|
%hole
|
2014-06-06 03:48:13 +04:00
|
|
|
(~(gnaw am [now fox]) %dead p.kyz q.kyz)
|
2017-04-17 04:52:41 +03:00
|
|
|
::
|
2018-09-07 04:41:16 +03:00
|
|
|
%init
|
|
|
|
:_ fox [%sake p.kyz]~
|
|
|
|
::
|
|
|
|
:: XX confirm unused, remove
|
|
|
|
::
|
2017-10-24 07:48:07 +03:00
|
|
|
%junk
|
2017-04-17 04:52:41 +03:00
|
|
|
[~ fox(any.ton (shax (mix any.ton.fox p.kyz)))]
|
|
|
|
::
|
2017-10-24 07:48:07 +03:00
|
|
|
%kick
|
2017-04-17 04:52:41 +03:00
|
|
|
(~(kick am [now fox(hop p.kyz)]) hen)
|
2018-08-17 00:39:39 +03:00
|
|
|
::
|
|
|
|
%tend
|
|
|
|
:: XX exclude comets and moons? and planets?
|
|
|
|
:: ?> &(?=(^ hen) ?=([@ @ *] i.hen))
|
|
|
|
:: =/ who=@p (slav %p i.t.i.hen)
|
|
|
|
:: ?: ?=((%earl %pawn) (clan:title who))
|
|
|
|
:: [~ fox]
|
|
|
|
[~ fox(ten (~(put in ten.fox) hen))]
|
2017-05-16 23:56:54 +03:00
|
|
|
::
|
2017-10-24 07:48:07 +03:00
|
|
|
%nuke
|
2017-05-16 23:56:54 +03:00
|
|
|
:- ~
|
|
|
|
?: (~(has in bad.fox) p.kyz)
|
|
|
|
~& [%unblock p.kyz]
|
|
|
|
fox(bad (~(del in bad.fox) p.kyz))
|
|
|
|
~& [%block p.kyz]
|
|
|
|
fox(bad (~(put in bad.fox) p.kyz))
|
2017-04-17 04:52:41 +03:00
|
|
|
::
|
2017-10-24 07:48:07 +03:00
|
|
|
%wake
|
2017-04-17 04:52:41 +03:00
|
|
|
(~(wake am [now fox]) hen)
|
|
|
|
::
|
2017-10-24 07:48:07 +03:00
|
|
|
%want
|
2017-04-17 04:52:41 +03:00
|
|
|
(~(wise am [now fox]) p.kyz hen q.kyz r.kyz)
|
|
|
|
==
|
2013-09-29 00:21:18 +04:00
|
|
|
=> %_(. fox q.fuy)
|
2017-10-24 08:17:38 +03:00
|
|
|
=| out=(list move)
|
|
|
|
|- ^- [p=(list move) q=_+>.^$]
|
2013-09-29 00:21:18 +04:00
|
|
|
?~ p.fuy
|
|
|
|
[(flop out) +>.^$]
|
2014-05-27 08:40:22 +04:00
|
|
|
=^ toe fox (clop now hen i.p.fuy)
|
2013-09-29 00:21:18 +04:00
|
|
|
$(p.fuy t.p.fuy, out (weld (flop toe) out))
|
2017-04-17 04:52:41 +03:00
|
|
|
::
|
|
|
|
++ perm
|
2017-10-24 08:17:38 +03:00
|
|
|
|= [our=ship his=ship mar=@ud tyl=path]
|
2017-04-17 04:52:41 +03:00
|
|
|
^- (unit (unit cage))
|
|
|
|
?~ tyl ~
|
|
|
|
=+ gys=(~(us go ton.fox) our)
|
|
|
|
?~ gys ~
|
|
|
|
?. =(our his)
|
|
|
|
~
|
2018-09-13 08:48:18 +03:00
|
|
|
:: XX move to %jael
|
|
|
|
::
|
2017-10-24 08:17:38 +03:00
|
|
|
?: ?=([%code ~] tyl)
|
2018-09-13 08:48:18 +03:00
|
|
|
``[%noun !>((end 6 1 (shaf %pass (shax sec:ex:cub:sen:u.gys))))]
|
2017-04-17 04:52:41 +03:00
|
|
|
~
|
|
|
|
::
|
|
|
|
++ temp
|
2017-10-24 08:17:38 +03:00
|
|
|
|= [our=ship his=ship tyl=path]
|
2017-04-17 04:52:41 +03:00
|
|
|
^- (unit (unit cage))
|
2017-10-24 08:17:38 +03:00
|
|
|
?: ?=([?(%show %tell) *] tyl)
|
2017-04-17 04:52:41 +03:00
|
|
|
?^ t.tyl [~ ~]
|
|
|
|
=+ gys=(~(us go ton.fox) our)
|
|
|
|
?~ gys [~ ~]
|
|
|
|
=+ zet=zest:(ho:(~(um am [now fox]) our) his)
|
|
|
|
``[%noun ?:(=(%show i.tyl) !>(>zet<) !>(zet))]
|
2017-10-24 08:17:38 +03:00
|
|
|
?: ?=([%pals ~] tyl)
|
2017-04-17 04:52:41 +03:00
|
|
|
?. =(our his)
|
|
|
|
~
|
|
|
|
``[%noun !>(pals:(~(um am [now fox]) our))]
|
2018-09-13 08:48:18 +03:00
|
|
|
:: XX move to %jael
|
|
|
|
::
|
2017-10-24 08:17:38 +03:00
|
|
|
?. ?=([%life ~] tyl)
|
2017-04-17 04:52:41 +03:00
|
|
|
=+ muc=$(tyl [%life ~])
|
2018-08-21 02:42:26 +03:00
|
|
|
(perm our his ?~(muc 0 (fall ((soft @ud) u.muc) 0)) tyl)
|
2017-04-17 04:52:41 +03:00
|
|
|
=+ gys=(~(us go ton.fox) our)
|
|
|
|
?~ gys ~
|
|
|
|
?. =(our his)
|
|
|
|
=+ fod=(~(get by hoc.saf.u.gys) his)
|
|
|
|
?~ fod ~
|
|
|
|
?~ lew.wod.u.fod ~
|
2018-09-13 08:48:18 +03:00
|
|
|
``[%noun !>(`@ud`life.u.lew.wod.u.fod)]
|
2017-04-17 04:52:41 +03:00
|
|
|
?~ val.saf.u.gys ~
|
|
|
|
``[%noun !>(`@ud`p.i.val.saf.u.gys)]
|
|
|
|
::
|
|
|
|
++ wegh
|
|
|
|
^- mass
|
|
|
|
:- %ames
|
|
|
|
:- %|
|
|
|
|
:~ fox+[%& fox]
|
|
|
|
==
|
|
|
|
--
|