mirror of
https://github.com/ilyakooo0/urbit.git
synced 2024-09-22 07:59:22 +03:00
New pump setup, etc.
This commit is contained in:
parent
795fef3a52
commit
339feb8ba6
193
arvo/ames.hoon
193
arvo/ames.hoon
@ -67,15 +67,15 @@
|
|||||||
$: seq/tick :: next tick to fill
|
$: seq/tick :: next tick to fill
|
||||||
lac/tick :: acked tick until
|
lac/tick :: acked tick until
|
||||||
mis/(map tick (pair path coop)) :: nonsequential acks
|
mis/(map tick (pair path coop)) :: nonsequential acks
|
||||||
myn/mini :: packet pump
|
|
||||||
cob/(map tick comb) :: live messages
|
cob/(map tick comb) :: live messages
|
||||||
|
myn/mini :: packet pump
|
||||||
== ::
|
== ::
|
||||||
++ comb :: live message
|
++ comb :: live message
|
||||||
$: cup/(unit coop) :: final ack
|
$: cup/(unit coop) :: final ack
|
||||||
cha/path :: channel
|
cha/path :: channel
|
||||||
num/frag :: number of fragments
|
num/frag :: number of fragments
|
||||||
ack/frag :: number acked
|
ack/frag :: number acked
|
||||||
pex/(list clue) :: left to send
|
cly/(list clue) :: left to send
|
||||||
== ::
|
== ::
|
||||||
++ corn :: flow by server
|
++ corn :: flow by server
|
||||||
$: hen/duct :: admin channel
|
$: hen/duct :: admin channel
|
||||||
@ -282,7 +282,7 @@
|
|||||||
|((lth q.a q.b) &(=(q.a q.b) (lth p.a p.b)))
|
|((lth q.a q.b) &(=(q.a q.b) (lth p.a p.b)))
|
||||||
:: ::
|
:: ::
|
||||||
++ abet :: resolve
|
++ abet :: resolve
|
||||||
^- (pair (list flex) mini)
|
^- {(list flex) mini}
|
||||||
=. . aver
|
=. . aver
|
||||||
[(flop fex) +<+]
|
[(flop fex) +<+]
|
||||||
:: ::
|
:: ::
|
||||||
@ -373,6 +373,24 @@
|
|||||||
[n.lop $(lop l.lop) r.lop]
|
[n.lop $(lop l.lop) r.lop]
|
||||||
==
|
==
|
||||||
:: ::
|
:: ::
|
||||||
|
++ cull :: clear message
|
||||||
|
|= tiq/tick
|
||||||
|
%_ +>
|
||||||
|
liv
|
||||||
|
|- ^+ liv
|
||||||
|
?~ liv ~
|
||||||
|
=+ vil=[n.liv $(liv l.liv) $(liv r.liv)]
|
||||||
|
?. =(tiq q.tel.clu.n.liv) vil
|
||||||
|
~(nip to `(qeu coal)`vil)
|
||||||
|
::
|
||||||
|
lop
|
||||||
|
|- ^+ lop
|
||||||
|
?~ lop ~
|
||||||
|
=+ pol=[n.lop $(lop l.lop) $(lop r.lop)]
|
||||||
|
?: =(tiq q.tel.n.lop) pol
|
||||||
|
~(nip to `(qeu clue)`pol)
|
||||||
|
==
|
||||||
|
:: ::
|
||||||
++ done :: process cooked ack
|
++ done :: process cooked ack
|
||||||
|= {lyd/(unit coal) dam/flap cop/coop lag/@dr}
|
|= {lyd/(unit coal) dam/flap cop/coop lag/@dr}
|
||||||
^+ +>
|
^+ +>
|
||||||
@ -1993,32 +2011,91 @@
|
|||||||
^+ . :: wakeup
|
^+ . :: wakeup
|
||||||
.
|
.
|
||||||
::
|
::
|
||||||
++ ve :: ve:ho:um:am
|
++ ve :: outbound core
|
||||||
|_ {kos/bole colt} :: new outgoing core
|
|_ $: kos/bole ::
|
||||||
++ ve-abet :: abet:we:ho:um:am
|
mup/_pume ::
|
||||||
%= +> :: resolve
|
colt ::
|
||||||
|
== ::
|
||||||
|
++ ve-abet :: resolve core
|
||||||
|
=. . ve-able
|
||||||
|
=. . ve-feed
|
||||||
|
=. . ve-able
|
||||||
|
=. . ve-tire
|
||||||
|
%= +>
|
||||||
sal.bah
|
sal.bah
|
||||||
(~(put by sal.bah) kos +<+)
|
(~(put by sal.bah) kos +<+>)
|
||||||
==
|
==
|
||||||
::
|
|
||||||
++ ve-wait :: next wakeup
|
|
||||||
^- (unit @da)
|
|
||||||
!!
|
|
||||||
:: ::
|
:: ::
|
||||||
++ ve-wood :: send
|
++ ve-able :: apply pump effects
|
||||||
|= {cha/path val/*}
|
^+ .
|
||||||
=< ve-abet
|
=^ fex myn abet:mup
|
||||||
^+ +>
|
=. mup ~(. pume ~ myn)
|
||||||
=^ pex diz (zuul:diz now [%bond [(mix kos 1) seq] cha val])
|
|- ^+ +>.$
|
||||||
%_ +>.$
|
?~ fex +>.$
|
||||||
seq +(seq)
|
%= $
|
||||||
cob
|
+>.$
|
||||||
%+ ~(put by cob)
|
=. +>.$ $(fex t.fex)
|
||||||
seq
|
?- -.i.fex
|
||||||
^- comb
|
$send
|
||||||
!!
|
+>.$(+> (busk xong:diz [q.i.fex ~]))
|
||||||
|
::
|
||||||
|
$good
|
||||||
|
(ve-good p.i.fex q.i.fex)
|
||||||
|
==
|
||||||
==
|
==
|
||||||
::
|
:: ::
|
||||||
|
++ ve-back :: hear an ack
|
||||||
|
|= {dam/flap cop/coop lag/@dr}
|
||||||
|
+>(mup (back:mup dam cop lag))
|
||||||
|
:: ::
|
||||||
|
++ ve-feed :: feed pump
|
||||||
|
^+ .
|
||||||
|
=^ cly . (ve-find want.mup)
|
||||||
|
+(mup (ship:mup now cly))
|
||||||
|
:: ::
|
||||||
|
++ ve-find :: collect packets
|
||||||
|
|= may/@ud
|
||||||
|
^- {(list clue) _+>}
|
||||||
|
=- [(flop -<) ->]
|
||||||
|
=+ [inx=lac hav=*(list clue)]
|
||||||
|
|- ^- {(list clue) _+>.^$}
|
||||||
|
?: |(=(0 may) =(inx seq)) [hav +>.^$]
|
||||||
|
=^ hey +>.^$ (ve-flow inx may hav)
|
||||||
|
$(inx +(inx), may p.hey, hav q.hey)
|
||||||
|
:: ::
|
||||||
|
++ ve-flow :: collect from msg
|
||||||
|
|= {tiq/tick may/@ud hav/(list clue)}
|
||||||
|
=+ mob=(~(got by cob) tiq)
|
||||||
|
|- ^- {(pair @ud (list clue)) _+>.^$}
|
||||||
|
?: |(=(0 may) ?=($~ cly.mob))
|
||||||
|
[[may hav] +>.^$(cob (~(put by cob) tiq mob))]
|
||||||
|
%= $
|
||||||
|
may (dec may)
|
||||||
|
hav [i.cly.mob hav]
|
||||||
|
cly.mob t.cly.mob
|
||||||
|
==
|
||||||
|
:: ::
|
||||||
|
++ ve-good :: handle ack
|
||||||
|
|= {paz/part cop/coop}
|
||||||
|
^+ +>
|
||||||
|
=+ bum=(~(get by cob) q.paz)
|
||||||
|
?: |(?=($~ bum) =(~ cly.u.bum))
|
||||||
|
~& [%ve-good-ignore paz ?=($~ cop)]
|
||||||
|
+>.$
|
||||||
|
?^ cop
|
||||||
|
::
|
||||||
|
:: a failure; save this nack, clear the message
|
||||||
|
::
|
||||||
|
~& [%ve-good-fail q.paz]
|
||||||
|
%_ +>.$
|
||||||
|
mup (cull:mup q.paz)
|
||||||
|
cob (~(put by cob) q.paz u.bum(cly ~, cup `cop))
|
||||||
|
==
|
||||||
|
?> (lth ack.u.bum num.u.bum)
|
||||||
|
=. ack.u.bum +(ack.u.bum)
|
||||||
|
=. cup.u.bum ?.(=(ack.u.bum num.u.bum) ~ [~ ~])
|
||||||
|
+>.$(cob (~(put by cob) q.paz u.bum))
|
||||||
|
:: ::
|
||||||
++ ve-tire :: report results
|
++ ve-tire :: report results
|
||||||
|- ^+ +
|
|- ^+ +
|
||||||
=+ zup=(~(get by cob) lac)
|
=+ zup=(~(get by cob) lac)
|
||||||
@ -2033,7 +2110,73 @@
|
|||||||
[%cola [our her] kos [cha u.cup]:u.zup]
|
[%cola [our her] kos [cha u.cup]:u.zup]
|
||||||
[%coke [our her] (~(got by r.zam.bah) kos) [cha u.cup]:u.zup]
|
[%coke [our her] (~(got by r.zam.bah) kos) [cha u.cup]:u.zup]
|
||||||
==
|
==
|
||||||
|
:: ::
|
||||||
|
++ ve-wait :: next wakeup
|
||||||
|
^- (unit @da)
|
||||||
|
wait:mup
|
||||||
|
:: ::
|
||||||
|
++ ve-wood :: send
|
||||||
|
|= {cha/path val/*}
|
||||||
|
^+ +>
|
||||||
|
=^ pex diz (zuul:diz now [%bond [(mix kos 1) seq] cha val])
|
||||||
|
%_ +>.$
|
||||||
|
seq +(seq)
|
||||||
|
cob
|
||||||
|
%+ ~(put by cob)
|
||||||
|
seq
|
||||||
|
^- comb
|
||||||
|
:* ~
|
||||||
|
cha
|
||||||
|
(lent pex)
|
||||||
|
0
|
||||||
|
=+ inx=0
|
||||||
|
|- ?~ pex ~
|
||||||
|
:_ $(pex +.pex, inx +(inx))
|
||||||
|
[& [inx seq] (shaf %flap i.pex) i.pex]
|
||||||
|
==
|
||||||
|
==
|
||||||
--
|
--
|
||||||
|
:: ::
|
||||||
|
++ vind :: default colt
|
||||||
|
^- colt
|
||||||
|
:* 0 :: seq/tick
|
||||||
|
0 :: lac/tick
|
||||||
|
~ :: mis/(map tick (pair path coop))
|
||||||
|
~ :: cob/(map tick comb)
|
||||||
|
^- mini
|
||||||
|
:* ^- stat
|
||||||
|
:* :* 0 :: cur/@ud
|
||||||
|
4 :: max/@ud
|
||||||
|
0 :: rey/@ud
|
||||||
|
==
|
||||||
|
:* (div ~s1 30) :: rtt/@dr
|
||||||
|
~2010.1.1 :: las/@da
|
||||||
|
~2010.1.1 :: lad/@da
|
||||||
|
== ==
|
||||||
|
~
|
||||||
|
~
|
||||||
|
== ==
|
||||||
|
:: ::
|
||||||
|
++ vond :: outgoing core
|
||||||
|
|= {kos/bole cot/colt}
|
||||||
|
~(. ve kos ~(. pume ~ myn.cot) cot)
|
||||||
|
:: ::
|
||||||
|
++ vand :: response core
|
||||||
|
|= kos/bole
|
||||||
|
(vond kos (fall (~(get by sal.bah) kos) vind))
|
||||||
|
:: ::
|
||||||
|
++ vend :: request core
|
||||||
|
|= hen/duct
|
||||||
|
^+ ve
|
||||||
|
=+ ust=(~(get by q.zam.bah) hen)
|
||||||
|
?~ ust
|
||||||
|
%. [p.zam.bah vind]
|
||||||
|
%_ vond
|
||||||
|
p.zam.bah (add 2 p.zam.bah)
|
||||||
|
q.zam.bah (~(put by q.zam.bah) hen p.zam.bah)
|
||||||
|
r.zam.bah (~(put by r.zam.bah) p.zam.bah hen)
|
||||||
|
==
|
||||||
|
(vond u.ust (~(got by sal.bah) u.ust))
|
||||||
::
|
::
|
||||||
++ we :: we:ho:um:am
|
++ we :: we:ho:um:am
|
||||||
|_ {kos/bole colt} :: outgoing core
|
|_ {kos/bole colt} :: outgoing core
|
||||||
|
Loading…
Reference in New Issue
Block a user