mirror of
https://github.com/ilyakooo0/urbit.git
synced 2024-12-16 02:22:12 +03:00
Clay subscribes to changes to marks, so Ford can cache-promote them. Seems much faster
This commit is contained in:
parent
6fcbaab5fa
commit
ba4405565f
@ -8,7 +8,7 @@
|
|||||||
:: Here are the structures. `++raft` is the formal arvo state. It's also
|
:: Here are the structures. `++raft` is the formal arvo state. It's also
|
||||||
:: worth noting that many of the clay-related structures are defined in zuse.
|
:: worth noting that many of the clay-related structures are defined in zuse.
|
||||||
::
|
::
|
||||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
!:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||||
|= pit/vase
|
|= pit/vase
|
||||||
=, clay
|
=, clay
|
||||||
=> |%
|
=> |%
|
||||||
@ -331,8 +331,9 @@
|
|||||||
$: $d ::
|
$: $d ::
|
||||||
$% {$flog p/{$crud p/@tas q/(list tank)}} :: to %dill
|
$% {$flog p/{$crud p/@tas q/(list tank)}} :: to %dill
|
||||||
== == ::
|
== == ::
|
||||||
$: $f ::
|
$: $f :: to %ford
|
||||||
$% {$exec p/@p q/(unit {beak silk:ford})} ::
|
$% {$exec p/@p q/(unit {beak silk:ford})} :: make / kill
|
||||||
|
{$wasp p/@p q/{@uvH ?}} :: depends ask / kill
|
||||||
== == ::
|
== == ::
|
||||||
$: $t ::
|
$: $t ::
|
||||||
$% {$wait p/@da} ::
|
$% {$wait p/@da} ::
|
||||||
@ -349,8 +350,9 @@
|
|||||||
{$mere p/(each (set path) (pair term tang))}
|
{$mere p/(each (set path) (pair term tang))}
|
||||||
{$writ p/riot} ::
|
{$writ p/riot} ::
|
||||||
== == ::
|
== == ::
|
||||||
$: $f ::
|
$: $f :: by %ford
|
||||||
$% {$made p/@uvH q/gage:ford} ::
|
$% {$made p/@uvH q/gage:ford} :: computed result
|
||||||
|
{$news p/@uvH} :: fresh depends
|
||||||
== == ::
|
== == ::
|
||||||
$: $t ::
|
$: $t ::
|
||||||
$% {$wake $~} :: timer activate
|
$% {$wake $~} :: timer activate
|
||||||
@ -2405,6 +2407,7 @@
|
|||||||
=+ dat=p.dat
|
=+ dat=p.dat
|
||||||
=| don/? :: keep going
|
=| don/? :: keep going
|
||||||
|%
|
|%
|
||||||
|
++ this .
|
||||||
::
|
::
|
||||||
:: Resolve. If we're done, produce a result.
|
:: Resolve. If we're done, produce a result.
|
||||||
::
|
::
|
||||||
@ -2434,7 +2437,7 @@
|
|||||||
:: we're in, and call the appropriate function for that stage.
|
:: we're in, and call the appropriate function for that stage.
|
||||||
::
|
::
|
||||||
++ route
|
++ route
|
||||||
|= {sat/term res/(each riot gage:ford)}
|
|= {sat/term res/(each riot (pair @uvH gage:ford))}
|
||||||
^+ +>.$
|
^+ +>.$
|
||||||
?. =(sat wat.dat)
|
?. =(sat wat.dat)
|
||||||
~| :* %hold-your-horses-merge-out-of-order
|
~| :* %hold-your-horses-merge-out-of-order
|
||||||
@ -2447,12 +2450,12 @@
|
|||||||
!!
|
!!
|
||||||
?+ +< ~|((crip <[%bad-stage sat ?~(-.res %riot %gage)]>) !!)
|
?+ +< ~|((crip <[%bad-stage sat ?~(-.res %riot %gage)]>) !!)
|
||||||
{$ali $& *} %.(p.res fetched-ali)
|
{$ali $& *} %.(p.res fetched-ali)
|
||||||
{$diff-ali $| *} %.(p.res diffed-ali)
|
{$diff-ali $| *} %.(q.p.res diffed-ali)
|
||||||
{$diff-bob $| *} %.(p.res diffed-bob)
|
{$diff-bob $| *} %.(q.p.res diffed-bob)
|
||||||
{$merge $| *} %.(p.res merged)
|
{$merge $| *} %.(q.p.res merged)
|
||||||
{$build $| *} %.(p.res built)
|
{$build $| *} %.(q.p.res built)
|
||||||
{$checkout $| *} %.(p.res checked-out)
|
{$checkout $| *} %.(p.res checked-out)
|
||||||
{$ergo $| *} %.(p.res ergoed)
|
{$ergo $| *} %.(q.p.res ergoed)
|
||||||
==
|
==
|
||||||
::
|
::
|
||||||
:: Start a merge.
|
:: Start a merge.
|
||||||
@ -3047,11 +3050,12 @@
|
|||||||
==
|
==
|
||||||
::
|
::
|
||||||
:: Apply the new commit to our state and, if we need to tell unix about
|
:: Apply the new commit to our state and, if we need to tell unix about
|
||||||
:: some of the changes, call ++ergo.
|
:: some of the changes, call ++ergo. Also emit %wasp moves to %ford to
|
||||||
|
:: make sure the marks stay live.
|
||||||
::
|
::
|
||||||
++ checked-out
|
++ checked-out
|
||||||
|= res/gage:ford
|
|= {dep/@uvH res/gage:ford}
|
||||||
^+ +>
|
^+ this
|
||||||
=+ tay=(gage-to-cages-or-error res)
|
=+ tay=(gage-to-cages-or-error res)
|
||||||
?: ?=($| -.tay)
|
?: ?=($| -.tay)
|
||||||
(error:he %checkout-bad-made leaf+"merge checkout failed" p.tay)
|
(error:he %checkout-bad-made leaf+"merge checkout failed" p.tay)
|
||||||
@ -3059,7 +3063,7 @@
|
|||||||
?: ?=($| -.can)
|
?: ?=($| -.can)
|
||||||
(error:he %checkout p.can)
|
(error:he %checkout p.can)
|
||||||
?: ?=($| -.gon.dat)
|
?: ?=($| -.gon.dat)
|
||||||
+>.$
|
this
|
||||||
=. let.dom +(let.dom)
|
=. let.dom +(let.dom)
|
||||||
=. hit.dom (~(put by hit.dom) let.dom r.new.dat)
|
=. hit.dom (~(put by hit.dom) let.dom r.new.dat)
|
||||||
=. ank.dat
|
=. ank.dat
|
||||||
@ -3067,7 +3071,16 @@
|
|||||||
%- ~(run by (~(uni by bop.dat) p.can))
|
%- ~(run by (~(uni by bop.dat) p.can))
|
||||||
|=(cage [(page-to-lobe p q.q) +<])
|
|=(cage [(page-to-lobe p q.q) +<])
|
||||||
=. ank.dom ank.dat
|
=. ank.dom ank.dat
|
||||||
=> .(..wake wake)
|
=> .(..this ^+(this ..this)) :: rollback ..this TMI
|
||||||
|
=. ..wake wake
|
||||||
|
=. +>.$
|
||||||
|
%- emit
|
||||||
|
^- move
|
||||||
|
:* hen %pass
|
||||||
|
~[%merge (scot %p p.bob) q.bob (scot %p p.ali) q.ali %checkout]
|
||||||
|
%f %wasp p.bob dep &
|
||||||
|
==
|
||||||
|
^+ this
|
||||||
?~ hez done:he
|
?~ hez done:he
|
||||||
=+ mus=(must-ergo (turn ~(tap by erg.dat) head))
|
=+ mus=(must-ergo (turn ~(tap by erg.dat) head))
|
||||||
?: =(~ mus) done:he
|
?: =(~ mus) done:he
|
||||||
@ -3509,7 +3522,7 @@
|
|||||||
=+ her=(slav %p i.t.t.t.tea)
|
=+ her=(slav %p i.t.t.t.tea)
|
||||||
=* sud i.t.t.t.t.tea
|
=* sud i.t.t.t.t.tea
|
||||||
=* sat i.t.t.t.t.t.tea
|
=* sat i.t.t.t.t.t.tea
|
||||||
=+ dat=?-(+<.q.hin $writ [%& p.q.hin], $made [%| q.q.hin])
|
=+ dat=?-(+<.q.hin $writ [%& p.q.hin], $made [%| p.q.hin q.q.hin])
|
||||||
=+ ^- kan/(unit dome)
|
=+ ^- kan/(unit dome)
|
||||||
%+ biff (~(get by fat.ruf) her)
|
%+ biff (~(get by fat.ruf) her)
|
||||||
|= room
|
|= room
|
||||||
@ -3538,6 +3551,9 @@
|
|||||||
::
|
::
|
||||||
$crud
|
$crud
|
||||||
[[[hen %slip %d %flog +.q.hin] ~] ..^$]
|
[[[hen %slip %d %flog +.q.hin] ~] ..^$]
|
||||||
|
::
|
||||||
|
$news
|
||||||
|
[~ ..^$]
|
||||||
::
|
::
|
||||||
$made
|
$made
|
||||||
?~ tea !!
|
?~ tea !!
|
||||||
|
Loading…
Reference in New Issue
Block a user