diff --git a/main/app/merge/core.hook b/main/app/merge/core.hook index 9a50a3dbb..1a9176695 100644 --- a/main/app/merge/core.hook +++ b/main/app/merge/core.hook @@ -16,6 +16,7 @@ [%nice ~] [%rush %tang (list tank)] == +++ milk (trel ship desk silk) ++ move ,[p=bone q=(mold note gift)] ++ note $% $: %c @@ -53,7 +54,7 @@ [%dune p=(set beam) q=(unit gage)] :: unit literal [%file p=beam] :: from clay [%join p=mark q=silk r=silk] :: merge - [%mash p=mark q=silk r=silk] :: merge + [%mash p=mark q=milk r=milk] :: merge [%mute p=silk q=(list (pair wing silk))] :: mutant [%pact p=silk q=silk] :: patch [%reef ~] :: kernel reef @@ -141,7 +142,7 @@ ++ work |= sih=sign ^+ +> - ~& > [%working auto=auto gem=gem syd=syd her=her sud=sud] + ~| [%working auto=auto gem=gem syd=syd her=her sud=sud] ?: ?=(%meld gem) ?- -.sih %g @@ -174,10 +175,12 @@ =+ base=[%file [our.hid tic %da lat.hid] (flop pax)] =+ alis=[%file [her sud cas] (flop pax)] =+ bobs=[%file [our.hid syd %da lat.hid] (flop pax)] + =+ dali=[%diff base alis] + =+ dbob=[%diff base bobs] =+ ^- for=mark =+ (slag (dec (lent pax)) pax) ?~(- %$ i.-) - [%mash for [%diff base alis] [%diff base bobs]] + [%mash for [her sud dali] [our.hid syd dbob]] == =+ "failed to merge with strategy {}" lose:(spam leaf/- q.p.are.sih) @@ -201,7 +204,8 @@ =+ ^- tan=(list tank) %- zing ^- (list (list tank)) - :~ :~ leaf/"done setting up scratch space in %{-}" + :~ :~ leaf/"" + leaf/"done setting up scratch space in %{-}" leaf/"please resolve conflicts in the following files and run" leaf/":merge %{(trip syd)} our %{-}" == @@ -209,18 +213,19 @@ ~ :~ leaf/"" leaf/"annotated conflicts in:" - >annotated< + >`(list path)`annotated< == ?~ unnotated ~ :~ leaf/"" - leaf/"some conflicts could not be annontated." + leaf/"some conflicts could not be annotated." leaf/"for these, the scratch space contains" leaf/"the most recent common ancestor of the" leaf/"conflicting content." leaf/"" + leaf/"unannotated conflicts in:" - >unnotated< + >`(list path)`unnotated< == == =< win diff --git a/main/arvo/clay.hoon b/main/arvo/clay.hoon index 7b53014c4..5ca434384 100644 --- a/main/arvo/clay.hoon +++ b/main/arvo/clay.hoon @@ -198,17 +198,14 @@ ++ aver :: read |= mun=mood ^- (unit (unit (each cage silk))) - ~? =(for ~zod) [%avering mun] ?: &(=(p.mun %u) !=(p.q.mun now)) :: prevent bad things ~& [%clay-fail p.q.mun %now now] !! =+ ezy=?~(ref ~ (~(get by haw.u.ref) mun)) ?^ ezy `(bind u.ezy (cury same %&)) - ~? =(for ~zod) [%case-to-aeoning mun] =+ nao=(case-to-aeon:ze q.mun) :: ~& [%aver-mun nao [%from syd lim q.mun]] - ~? =(for ~zod) [%reading-at-aeon mun] ?~(nao ~ (read-at-aeon:ze u.nao mun)) :: ++ made-to-tage @@ -519,19 +516,19 @@ ++ take-patch |= res=(each bead (list tank)) ^+ +> - ~& > %taking-patch + :: ~& %taking-patch ?: ?=(%| -.res) %_ +>.$ dok ~ yel [[hen %note '!' %rose [" " "" ""] leaf/"clay patch failed" p.res] yel] == - ~& > %editing + :: ~& %editing =^ hat +>.$ (edit:ze now %& *cart ?~(dok ~|(%no-changes !!) sot.u.dok)) - ~& > %edited + :: ~& %edited =. +>.$ wake - ~& > %woked + :: ~& %woked ?~ dok ~& %no-dok +>.$ ?^ lon.u.dok ~& %not-done-diffing !! => @@ -547,7 +544,7 @@ ?^ lon.u.dok ~& %not-done-diffing !! =+ cay=q.p.res ?@ p.cay ~| %patch-bad-marc !! - ~& > %canning + :: ~& %canning =+ ^= can |- ^- (list ,[path cage]) ?~ p.p.cay @@ -565,10 +562,10 @@ !! :- ((hard path) -.q.coy) [q.i.p.p.cay (slot 3 coy)] - ~& > %canned - ~& > %checking-out + :: ~& %canned + :: ~& %checking-out =. ank.dom (checkout-ankh:ze (mo can)) - ~& > %checked-out + :: ~& %checked-out ?~ hez +>.$(dok ~) =+ ^= ceq |= a=miso @@ -576,8 +573,8 @@ &(?=(%ins -.a) ?=(%mime -.+.a)) &(?=(%mut -.a) ?=(%mime -.+>.a)) == - ~& > %forming-ergo - =- ~& > %formed-ergo - + :: ~& %forming-ergo + :: =- ~& %formed-ergo - %_ +>.$ dok ~ tag :: ?~(hez reg :_(reg [u.hez [%ergo who syd let.dom]])) @@ -904,9 +901,9 @@ == =+ nao=(case-to-aeon:ze q.p.q.i.xiq) ?~ nao $(xiq t.xiq, xaq [i.xiq xaq]) - ~& > %reading-at-aeon + :: ~& %reading-at-aeon =+ vid=(read-at-aeon:ze u.nao p.q.i.xiq) - ~& > %red-at-aeon + :: ~& %red-at-aeon ?~ vid ~& [%oh-well mood=p.q.i.xiq] $(xiq t.xiq, xaq [i.xiq xaq]) $(xiq t.xiq, ..wake (balk p.i.xiq u.vid p.q.i.xiq)) :: @@ -1255,20 +1252,17 @@ ++ read-x |= [yon=aeon pax=path] ^- (unit (unit (each cage silk))) - ~? =(for ~zod) [%reading-x yon pax] =+ tak=(~(get by hit.dom) yon) ?~ tak ~ ?: &(?=(~ ref) =(yon let.dom)) `(bind q.ank:(descend-path:(zu ank.dom) pax) (corl (cury same %&) tail)) - ~? =(for ~zod) [%coming-along yon pax] =+ yak=(tako-to-yaki u.tak) =+ lob=(~(get by q.yak) pax) ?~ lob [~ ~] =+ mar=(lobe-to-mark u.lob) ?. ?=(?(%hoon %hook) mar) - ~? =(for ~zod) [%not-hooning yon pax] [~ ~ %| (lobe-to-silk pax u.lob)] :^ ~ ~ %& :+ mar [%atom %t] @@ -1448,15 +1442,15 @@ :: %fine ?: =(r.ali.dat r.bob.dat) - ~& > [%fine-trivial ali= bob= r.ali.dat r.bob.dat] + ~& [%fine-trivial ali= bob= r.ali.dat r.bob.dat] (done:he ~) ?: (~(has in (reachable-takos r.bob.dat)) r.ali.dat) - ~& > [%fine-mostly-trivial ali= bob=] + ~& [%fine-mostly-trivial ali= bob=] (done:he ~) ?. (~(has in (reachable-takos r.ali.dat)) r.bob.dat) - ~& > [%fine-not-so-trivial ali= bob=] + ~& [%fine-not-so-trivial ali= bob=] (error:he %bad-fine-merge ~) - ~& > [%fine-lets-go ali= bob=] + ~& [%fine-lets-go ali= bob=] =. new.dat ali.dat =. erg.dat %- mo ^- (list ,[path ?]) @@ -2203,7 +2197,6 @@ ++ scry :: inspect |= [fur=(unit (set monk)) ren=@tas his=ship syd=desk lot=coin tyl=path] ^- (unit (unit cage)) - ~? =(his ~zod) [%scrying ren syd lot tyl] =+ got=(~(has by fat.ruf) his) =+ luk=?.(?=(%$ -.lot) ~ ((soft case) p.lot)) ?~ luk [~ ~] diff --git a/main/arvo/ford.hoon b/main/arvo/ford.hoon index a231c691a..18f92dee5 100644 --- a/main/arvo/ford.hoon +++ b/main/arvo/ford.hoon @@ -50,6 +50,7 @@ ++ kiss :: in request ->$ $% [%exec p=@p q=beak r=(unit silk)] :: make / kill == :: +++ milk (trel ship desk silk) :: sourced silk ++ move ,[p=duct q=(mold note gift)] :: local move ++ note :: out request $-> $% $: %c :: to %clay @@ -73,7 +74,7 @@ [%dune p=(set beam) q=(unit gage)] :: unit literal [%file p=beam] :: from clay [%join p=mark q=silk r=silk] :: merge - [%mash p=mark q=silk r=silk] :: merge + [%mash p=mark q=milk r=milk] :: annotate [%mute p=silk q=(list (pair wing silk))] :: mutant [%pact p=silk q=silk] :: patch [%plan p=beam q=spur r=hood] :: structured assembly @@ -710,10 +711,9 @@ == :: ++ mash - |= [cof=cafe for=mark kas=silk kos=silk] + |= [cof=cafe for=mark mas=milk mos=milk] ^- (bolt gage) - ~& > [%lets-see-if-we-cannae-be-mashing for] - %. [cof kas kos] + %. [cof r.mas r.mos] ;~ cope ;~ coax |=([cof=cafe p=silk q=silk] (make cof p)) @@ -733,7 +733,8 @@ =+ too=((soft ,@tas) q:(slap gar [%cnzy %sted])) ?~ too (flaw cof leaf/"bad ++sted:grad" ~) - (make cof %mash u.too [%done ~ cay] [%done ~ coy]) + %+ make cof + [%mash u.too [p.mas q.mas [%done ~ cay]] [p.mos q.mos [%done ~ coy]]] =+ fom=((soft ,@tas) q:(slap gar [%cnzy %form])) ?~ fom (flaw cof leaf/"bad ++form:grad" ~) @@ -748,7 +749,12 @@ %+ cope %^ maul cof (slap (slap pro [%cnzy %grad]) [%cnzy %mash]) - (slop q.cay q.coy) + ;: slop + (slop [[%atom %p] p.mas] [[%atom %tas] q.mas]) + (slop [[%atom %p] p.mos] [[%atom %tas] q.mos]) + q.cay + q.coy + == |= [cof=cafe dif=vase] (fine cof u.fom dif) == @@ -834,7 +840,7 @@ |= [cof=cafe bem=beam] ^- (bolt beam) ?: ?=(%ud -.r.bem) (fine cof bem) - =+ von=(ska ~ %cw bem(s ~)) + =+ von=(save ~ %cw bem(s ~)) ?~ von [p=cof q=[%1 [%w bem ~] ~ ~]] (fine cof bem(r [%ud ((hard ,@) +.+:(need u.von))])) :: @@ -859,14 +865,7 @@ ++ lear :: load vase |= [cof=cafe bem=beam] ^- (bolt cage) - ~& > [%a-bit-leary bem] - =+ ral=(~(get by keg) %cx bem) - ?^ ral - ~& > %already-done - (fine cof u.ral) - ~& > %not-already-done - =+ von=(ska ~ %cx bem) - ~& > [%at-least-cx-worked bem] + =+ von=(save ~ %cx bem) ?~ von [p=*cafe q=[%1 [[%x bem ~] ~ ~]]] ?~ u.von @@ -876,14 +875,14 @@ ++ lend :: load arch |= [cof=cafe bem=beam] ^- (bolt arch) - =+ von=(ska ~ %cy bem) + =+ von=(save ~ %cy bem) ?~ von [p=cof q=[%1 [%y bem ~] ~ ~]] (fine cof ((hard arch) q.q:(need u.von))) :: ++ liar :: load vase |= [cof=cafe bem=beam] ^- (bolt vase) - =+ von=(ska ~ %cx bem) + =+ von=(save ~ %cx bem) ?~ von [p=*cafe q=[%1 [[%x bem ~] ~ ~]]] ?~ u.von @@ -1020,7 +1019,7 @@ ^- (bolt vase) %+ cope (mail cof p.vax gen) |= [cof=cafe typ=type fol=nock] - %+ (coup cof) (mock [q.vax fol] (mole (slod (save ska)))) + %+ (coup cof) (mock [q.vax fol] (mole (slod save))) |=(val=* `vase`[typ val]) :: ++ make :: reduce silk @@ -1189,7 +1188,7 @@ ^- (bolt vase) %+ cope (malt cof p.gat p.sam) |= [cof=cafe typ=type] - %+ (coup cof) (mong [q.gat q.sam] (mole (slod (save ska)))) + %+ (coup cof) (mong [q.gat q.sam] (mole (slod save))) |=(val=* `vase`[typ val]) :: ++ meow :: assemble @@ -1557,14 +1556,13 @@ exec(q.kig (~(del by q.kig) tik), keg (~(put by keg) [- bem] r.u.rot)) :: ++ save - |= sky=sled ^- sled |= [(unit (set monk)) tem=term bem=beam] ^- (unit (unit cage)) =+ (~(get by keg) tem bem) ?^ - ``u.- - (sky +<.$) + (ska +<.$) -- -- :: diff --git a/main/mar/mime/door.hook b/main/mar/mime/door.hook index e7e52af92..7c699f828 100644 --- a/main/mar/mime/door.hook +++ b/main/mar/mime/door.hook @@ -13,6 +13,6 @@ ++ form %mime ++ diff |=(mime +<) ++ pact |=(mime +<) - ++ join |=([mime mime] `(unit mime)``+<-) + ++ join |=([mime mime] `(unit mime)`~) -- -- diff --git a/main/mar/txt/door.hook b/main/mar/txt/door.hook index 667a9de30..2cf7285eb 100644 --- a/main/mar/txt/door.hook +++ b/main/mar/txt/door.hook @@ -1,4 +1,4 @@ -:: maybeze +:: :::: /hook/door/term-line/mar :: /? 314 @@ -27,6 +27,7 @@ :: ++ pact |= dif=(urge cord) + ~| [%pacting dif] ^- wain (lurk txt dif) :: @@ -60,6 +61,7 @@ |=(cud=(urge cord) [i.bob cud]) ~ == + :: %| ?- -.i.bob %| ~ @@ -88,8 +90,166 @@ -- :: ++ mash - |= [ali=(urge cord) bob=(urge cord)] + |= [als=[ship desk] bos=[ship desk] ali=(urge cord) bob=(urge cord)] ^- (urge cord) - (fall (join ali bob) ali) + |^ + =. ali (clean ali) + =. bob (clean bob) + |- ^- (urge cord) + ?~ ali bob + ?~ bob ali + ?- -.i.ali + %& + ?- -.i.bob + %& + ?: =(p.i.ali p.i.bob) + [i.ali $(ali t.ali, bob t.bob)] + ?: (gth p.i.ali p.i.bob) + [i.bob $(p.i.ali (sub p.i.ali p.i.bob), bob t.bob)] + [i.ali $(ali t.ali, p.i.bob (sub p.i.bob p.i.ali))] + :: + %| + ?: =(p.i.ali (lent p.i.bob)) + [i.bob $(ali t.ali, bob t.bob)] + ?: (gth p.i.ali (lent p.i.bob)) + [i.bob $(p.i.ali (sub p.i.ali (lent p.i.bob)), bob t.bob)] + =+ ^- [fic=(unce cord) ali=(urge cord) bob=(urge cord)] + (resolve ali bob) + [fic $(ali ali, bob bob)] + :: ~ :: here, alice is good for a while, but not for the whole + == :: length of bob's changes + :: + %| + ?- -.i.bob + %| + =+ ^- [fic=(unce cord) ali=(urge cord) bob=(urge cord)] + (resolve ali bob) + [fic $(ali ali, bob bob)] + :: + %& + ?: =(p.i.bob (lent p.i.ali)) + [i.ali $(ali t.ali, bob t.bob)] + ?: (gth p.i.bob (lent p.i.ali)) + [i.ali $(ali t.ali, p.i.bob (sub p.i.bob (lent p.i.ali)))] + =+ ^- [fic=(unce cord) ali=(urge cord) bob=(urge cord)] + (resolve ali bob) + [fic $(ali ali, bob bob)] + == + == + :: + ++ annotate :: annotate conflict + |= $: ali=(list ,@t) + bob=(list ,@t) + bas=(list ,@t) + == + ^- (list ,@t) + %- zing + ^- (list (list ,@t)) + %- flop + ^- (list (list ,@t)) + :- :_ ~ + %^ cat 3 '<<<<<<<<<<<<' + %^ cat 3 ' ' + %^ cat 3 `@t`(scot %p -.bos) + %^ cat 3 '/' + +.bos + :- bob + :- ~['------------'] + :- bas + :- ~['++++++++++++'] + :- ali + :- :_ ~ + %^ cat 3 '>>>>>>>>>>>>' + %^ cat 3 ' ' + %^ cat 3 `@t`(scot %p -.als) + %^ cat 3 '/' + +.als + ~ + :: + ++ clean :: clean + |= wig=(urge cord) + ^- (urge cord) + ?~ wig ~ + ?~ t.wig wig + ?: ?=(%& -.i.wig) + ?: ?=(%& -.i.t.wig) + $(wig [[%& (add p.i.wig p.i.t.wig)] t.t.wig]) + [i.wig $(wig t.wig)] + ?: ?=(%| -.i.t.wig) + $(wig [[%| (welp p.i.wig p.i.t.wig) (welp q.i.wig q.i.t.wig)] t.t.wig]) + [i.wig $(wig t.wig)] + :: + ++ resolve + |= [ali=(urge cord) bob=(urge cord)] + ^- [fic=[%| p=(list cord) q=(list cord)] ali=(urge cord) bob=(urge cord)] + =- [[%| bac (annotate alc boc bac)] ali bob] + |- ^- $: $: bac=(list cord) + alc=(list cord) + boc=(list cord) + == + ali=(urge cord) + bob=(urge cord) + == + ?~ ali [[~ ~ ~] ali bob] + ?~ bob [[~ ~ ~] ali bob] + ?- -.i.ali + %& + ?- -.i.bob + %& [[~ ~ ~] ali bob] :: no conflict + %| + =+ lob=(lent p.i.bob) + ?: =(lob p.i.ali) + [[p.i.bob p.i.bob q.i.bob] t.ali t.bob] + ?: (lth lob p.i.ali) + [[p.i.bob p.i.bob q.i.bob] [[%& (sub p.i.ali lob)] t.ali] t.bob] + =+ wat=(scag (sub lob p.i.ali) p.i.bob) + =+ res=$(ali t.ali, bob [[%| (scag (sub lob p.i.ali) p.i.bob) ~] t.bob]) + :* :* (welp bac.res wat) + (welp alc.res wat) + (welp boc.res q.i.bob) + == + ali.res + bob.res + == + == + :: + %| + ?- -.i.bob + %& + =+ loa=(lent p.i.ali) + ?: =(loa p.i.bob) + [[p.i.ali q.i.ali p.i.ali] t.ali t.bob] + ?: (lth loa p.i.bob) + [[p.i.ali q.i.ali p.i.ali] t.ali [[%& (sub p.i.bob loa)] t.bob]] + =+ wat=(slag (sub loa p.i.bob) p.i.ali) + =+ res=$(ali [[%| (scag (sub loa p.i.bob) p.i.ali) ~] t.ali], bob t.bob) + :* :* (welp bac.res wat) + (welp alc.res q.i.ali) + (welp boc.res wat) + == + ali.res + bob.res + == + :: + %| + =+ loa=(lent p.i.ali) + =+ lob=(lent p.i.bob) + ?: =(loa lob) + [[p.i.ali q.i.ali q.i.bob] t.ali t.bob] + =+ ^= res + ?: (gth loa lob) + $(ali [[%| (scag (sub loa lob) p.i.ali) ~] t.ali], bob t.bob) + ~& [%scagging loa=loa pibob=p.i.bob slag=(scag loa p.i.bob)] + $(ali t.ali, bob [[%| (scag (sub lob loa) p.i.bob) ~] t.bob]) + :* :* (welp bac.res ?:((gth loa lob) p.i.bob p.i.ali)) + (welp alc.res q.i.ali) + (welp boc.res q.i.bob) + == + ali.res + bob.res + == + == + == + -- -- --