mirror of
https://github.com/ilyakooo0/urbit.git
synced 2024-11-15 13:17:41 +03:00
Merge branch 'test' of https://github.com/urbit/urbit into test
This commit is contained in:
commit
23939c6dfd
@ -235,7 +235,7 @@
|
||||
;~(pfix fas sym)
|
||||
==
|
||||
(cook |=(a=term `goal`[our.hid a]) sym)
|
||||
(easy [our.hid %helm])
|
||||
(easy [our.hid %hood])
|
||||
==
|
||||
++ dp-model-cat ;~(plug dp-server-cat dp-config) :: ++dojo-model
|
||||
++ dp-model-dog ;~(plug dp-server-dog dp-config) :: ++dojo-model
|
||||
|
@ -2,98 +2,105 @@
|
||||
:::: /hook/core/hood/ape :: ::
|
||||
:: :: ::
|
||||
/? 314 :: zuse version
|
||||
/- *sole :: structures
|
||||
/+ sole, helm :: libraries
|
||||
/+ sole, talk, helm, kiln :: libraries
|
||||
:: :: ::
|
||||
:::: :: ::
|
||||
!: :: ::
|
||||
=> |% :: gall boilerplate
|
||||
++ suss ,[term @tas @da] :: config report
|
||||
++ dill :: sent to %dill
|
||||
$% [%crud p=term q=tang] :: fat report
|
||||
[%text p=tape] :: thin report
|
||||
[%veer p=@ta q=path r=@t] :: install vane
|
||||
[%vega p=path] :: reboot by path
|
||||
[%verb ~] :: verbose mode
|
||||
== ::
|
||||
++ card ::
|
||||
$% [%cash wire p=@p q=buck] ::
|
||||
[%conf wire dock %load ship term] ::
|
||||
[%flog wire dill] ::
|
||||
[%plug wire @p @tas @p @tas] ::
|
||||
[%want wire sock path *] :: send message
|
||||
== ::
|
||||
++ move (pair bone card) :: user-level move
|
||||
--
|
||||
=> |% :: module boilerplate
|
||||
++ hood-good ::
|
||||
|* hed=hood-head ::
|
||||
|= paw=hood-part ::
|
||||
?- hed ::
|
||||
%helm ?>(?=(%helm -.paw) `helm-part`paw) ::
|
||||
%helm ?>(?=(%helm -.paw) `helm-part`paw) ::
|
||||
%kiln ?>(?=(%kiln -.paw) `kiln-part`paw) ::
|
||||
== ::
|
||||
++ hood-head ,_-:*hood-part ::
|
||||
++ hood-mold ::
|
||||
|= hed=hood-head ::
|
||||
?- hed ::
|
||||
%helm helm-part ::
|
||||
%kiln kiln-part ::
|
||||
== ::
|
||||
++ hood-part ::
|
||||
$? helm-part ::
|
||||
kiln-part ::
|
||||
== ::
|
||||
-- ::
|
||||
:: :: ::
|
||||
:::: :: ::
|
||||
:: :: ::
|
||||
|_ $: hid=hide :: system state
|
||||
moz=(list move) :: transient moves
|
||||
lac=(map ,@tas hood-part) :: part system
|
||||
[%0 lac=(map ,@tas hood-part)] :: part system
|
||||
== ::
|
||||
++ abet [(flop moz) .(moz ~)] :: resolve core
|
||||
++ able :: find/make part
|
||||
|* hed=hood-head
|
||||
=+ rep=(~(get by lac) hed)
|
||||
((hood-good hed) ?^(rep u.rep `hood-part`*(hood-mold hed)))
|
||||
::
|
||||
++ ably :: save part
|
||||
|= [moz=(list move) rep=hood-part]
|
||||
%_ +>
|
||||
moz (weld moz ^moz)
|
||||
lac (~(put by lac) -.rep rep)
|
||||
==
|
||||
|* [moz=(list) rep=hood-part]
|
||||
[(flop moz) +>(lac (~(put by lac) -.rep rep))]
|
||||
:: :: ::
|
||||
:::: :: ::
|
||||
:: :: ::
|
||||
++ poke-helm-begin ::
|
||||
|= [from helm-begin]
|
||||
abet:(ably (poke-begin:(helm-work [hid +<-] (able %helm)) +<+))
|
||||
++ poke-hood-begin ::
|
||||
|= [from hood-begin]
|
||||
(ably (poke-begin:(helm-work [hid +<-] (able %helm)) +<+))
|
||||
::
|
||||
++ poke-helm-init ::
|
||||
|= [from helm-init]
|
||||
abet:(ably (poke-init:(helm-work [hid +<-] (able %helm)) +<+))
|
||||
++ poke-hood-init ::
|
||||
|= [from hood-init]
|
||||
(ably (poke-init:(helm-work [hid +<-] (able %helm)) +<+))
|
||||
::
|
||||
++ poke-helm-reload ::
|
||||
|= [from helm-reload]
|
||||
abet:(ably (poke-reload:(helm-work [hid +<-] (able %helm)) +<+))
|
||||
++ poke-hood-reload ::
|
||||
|= [from hood-reload]
|
||||
(ably (poke-reload:(helm-work [hid +<-] (able %helm)) +<+))
|
||||
::
|
||||
++ poke-helm-reset ::
|
||||
++ poke-hood-reset ::
|
||||
|= [from ~]
|
||||
abet:(ably (poke-reset:(helm-work [hid +<-] (able %helm)) +<+))
|
||||
(ably (poke-reset:(helm-work [hid +<-] (able %helm)) +<+))
|
||||
::
|
||||
++ poke-helm-verb ::
|
||||
++ poke-hood-verb ::
|
||||
|= [from ~]
|
||||
abet:(ably (poke-verb:(helm-work [hid +<-] (able %helm)) +<+))
|
||||
(ably (poke-verb:(helm-work [hid +<-] (able %helm)) +<+))
|
||||
::
|
||||
++ poke-helm-start ::
|
||||
|= [from helm-start]
|
||||
abet:(ably (poke-start:(helm-work [hid +<-] (able %helm)) +<+))
|
||||
++ poke-hood-start ::
|
||||
|= [from hood-start]
|
||||
(ably (poke-start:(helm-work [hid +<-] (able %helm)) +<+))
|
||||
::
|
||||
++ poke-will ::
|
||||
|= [from (unit will)]
|
||||
abet:(ably (poke-will:(helm-work [hid +<-] (able %helm)) +<+))
|
||||
(ably (poke-will:(helm-work [hid +<-] (able %helm)) +<+))
|
||||
::
|
||||
++ poke-hood-merge ::
|
||||
|= [from hood-merge]
|
||||
(ably (poke-merge:(kiln-work [hid +<-] (able %kiln)) +<+))
|
||||
::
|
||||
++ poke-hood-sync ::
|
||||
|= [from hood-sync]
|
||||
(ably (poke-sync:(kiln-work [hid +<-] (able %kiln)) +<+))
|
||||
::
|
||||
++ poke-hood-unix ::
|
||||
|= [from hood-unix]
|
||||
(ably (poke-unix:(kiln-work [hid +<-] (able %kiln)) +<+))
|
||||
::
|
||||
++ onto-helm ::
|
||||
|= [then saw=(each suss tang)]
|
||||
^- (quip move +>)
|
||||
abet:(ably (take-onto:(helm-work [hid ost src] (able %helm)) +<+))
|
||||
|= [then saw=(each ,[term @tas @da] tang)]
|
||||
(ably (take-onto:(helm-work [hid ost src] (able %helm)) +<+))
|
||||
::
|
||||
++ mere-kiln ::
|
||||
|= [then are=(each (set path) (pair term tang))]
|
||||
(ably (take-mere:(kiln-work [hid ost src] (able %kiln)) way +<+))
|
||||
::
|
||||
++ made-kiln ::
|
||||
|= [then @uvH (each gage tang)]
|
||||
(ably (take-made:(kiln-work [hid ost src] (able %kiln)) way +<+))
|
||||
::
|
||||
++ coup-kiln-fancy ::
|
||||
|= [then saw=(unit tang)]
|
||||
(ably (take-coup-fancy:(kiln-work [hid ost src] (able %kiln)) way +<+))
|
||||
::
|
||||
++ coup-kiln-spam
|
||||
|= [then saw=(unit tang)]
|
||||
~? ?=(^ saw) [%kiln-spam-lame u.saw]
|
||||
[~ +>]
|
||||
--
|
||||
|
@ -1649,6 +1649,9 @@
|
||||
?: oug
|
||||
(weld "@ " txt)
|
||||
(weld " " txt)
|
||||
::
|
||||
%app
|
||||
[' ' (trip p.sep)]
|
||||
==
|
||||
--
|
||||
::
|
||||
|
@ -274,7 +274,7 @@
|
||||
(done %blit [bit ~])
|
||||
::
|
||||
++ init :: initialize
|
||||
~& [%doll-init our]
|
||||
~& [%dill-init our]
|
||||
=+ myt=(flop (need tem))
|
||||
=. tem ~
|
||||
=. moz :_(moz [hen %pass / %c %font our %home our %base])
|
||||
@ -422,8 +422,8 @@
|
||||
[[p.q.hic %dojo] ~]
|
||||
?: =(%earl myr)
|
||||
=+ fap=(sein p.q.hic)
|
||||
[[fap %dojo] [fap %talk] [fap %helm] ~]
|
||||
[[p.q.hic %dojo] [p.q.hic %talk] [p.q.hic %helm] ~]
|
||||
[[fap %dojo] [fap %talk] [fap %hood] ~]
|
||||
[[p.q.hic %dojo] [p.q.hic %talk] [p.q.hic %hood] ~]
|
||||
=^ moz all abet:(need (ax (need hey.all) [%flow %sole flo]))
|
||||
?: |((lth p.q.hic 256) (gte p.q.hic (bex 64))) [moz ..^$] :: XX HORRIBLE
|
||||
[:_(moz [(need hey.all) %give %init p.q.hic]) ..^$]
|
||||
|
@ -1,477 +0,0 @@
|
||||
!:
|
||||
:: dill (4d), terminal handling
|
||||
::
|
||||
|= pit=vase
|
||||
=> |% :: interface tiles
|
||||
++ console-action :: console to app
|
||||
$% [%det console-change] :: edit prompt line
|
||||
[%inn ~] :: enter session
|
||||
[%out ~] :: exit session
|
||||
[%ret ~] :: submit and clear
|
||||
== ::
|
||||
++ console-buffer (list ,@c) :: command state
|
||||
++ console-change :: network change
|
||||
$: ler=console-clock :: destination clock
|
||||
haw=@uvH :: source hash
|
||||
ted=console-edit :: state change
|
||||
== ::
|
||||
++ console-clock ,[own=@ud his=@ud] :: vector clock
|
||||
++ console-edit :: shared state change
|
||||
$% [%del p=@ud] :: delete one at
|
||||
[%ins p=@ud q=@c] :: insert at
|
||||
[%mor p=(list console-edit)] :: combination
|
||||
[%nop ~] :: no-op
|
||||
[%set p=console-buffer] :: discontinuity
|
||||
== ::
|
||||
++ console-effect :: app to console
|
||||
$% [%bel ~] :: beep
|
||||
[%blk p=@ud q=@c] :: blink/match char at
|
||||
[%clr ~] :: clear screen
|
||||
[%det console-change] :: edit input
|
||||
[%nex ~] :: save and clear input
|
||||
[%tan p=(list tank)] :: classic tank
|
||||
:: [%taq p=tanq] :: modern tank
|
||||
[%txt p=tape] :: text line
|
||||
== ::
|
||||
++ dill-belt :: console input
|
||||
$% [%aro p=?(%d %l %r %u)] :: arrow key
|
||||
[%bac ~] :: true backspace
|
||||
[%cru p=@tas q=(list tank)] :: echo error
|
||||
[%ctl p=@c] :: control-key
|
||||
[%del ~] :: true delete
|
||||
[%met p=@c] :: meta-key
|
||||
[%ret ~] :: return
|
||||
[%rez p=@ud q=@ud] :: resize, cols, rows
|
||||
[%txt p=(list ,@c)] :: utf32 text
|
||||
[%yow p=gill] :: connect to app
|
||||
== ::
|
||||
++ dill-blit :: console output
|
||||
$% [%bel ~] :: make a noise
|
||||
[%clr ~] :: clear the screen
|
||||
[%hop p=@ud] :: set cursor position
|
||||
[%mor p=(list dill-blit)] :: multiple blits
|
||||
[%pro p=(list ,@c)] :: show as cursor/line
|
||||
[%qit ~] :: close console
|
||||
[%out p=(list ,@c)] :: send output line
|
||||
[%sag p=path q=*] :: save to jamfile
|
||||
[%sav p=path q=@] :: save to file
|
||||
== ::
|
||||
++ gill (pair ship term) :: general contact
|
||||
-- ::
|
||||
=> |% :: console protocol
|
||||
++ axle :: all dill state
|
||||
$: %2 ::
|
||||
ore=(unit ship) :: identity once set
|
||||
hey=(unit duct) :: default duct
|
||||
dug=(map duct axon) :: conversations
|
||||
== ::
|
||||
++ axon :: dill per duct
|
||||
$: ram=term :: console program
|
||||
tem=(unit (list dill-belt)) :: pending, reverse
|
||||
wid=_80 :: terminal width
|
||||
pos=@ud :: cursor position
|
||||
see=(list ,@c) :: current line
|
||||
== ::
|
||||
-- => ::
|
||||
|% :: protocol below
|
||||
++ blew ,[p=@ud q=@ud] :: columns rows
|
||||
++ belt :: raw console input
|
||||
$% [%aro p=?(%d %l %r %u)] :: arrow key
|
||||
[%bac ~] :: true backspace
|
||||
[%ctl p=@c] :: control-key
|
||||
[%del ~] :: true delete
|
||||
[%met p=@c] :: meta-key
|
||||
[%ret ~] :: return
|
||||
[%txt p=(list ,@c)] :: utf32 text
|
||||
== ::
|
||||
++ blit :: raw console output
|
||||
$% [%bel ~] :: make a noise
|
||||
[%clr ~] :: clear the screen
|
||||
[%hop p=@ud] :: set cursor position
|
||||
[%lin p=(list ,@c)] :: set current line
|
||||
[%mor ~] :: newline
|
||||
[%sag p=path q=*] :: save to jamfile
|
||||
[%sav p=path q=@] :: save to file
|
||||
== ::
|
||||
++ flog :: sent to %dill
|
||||
$% [%crud p=@tas q=(list tank)] ::
|
||||
[%text p=tape] ::
|
||||
[%veer p=@ta q=path r=@t] :: install vane
|
||||
[%vega p=path] :: reboot by path
|
||||
[%verb ~] :: verbose mode
|
||||
== ::
|
||||
++ gift :: out result <-$
|
||||
$% [%bbye ~] :: reset prompt
|
||||
[%blit p=(list blit)] :: terminal output
|
||||
[%init p=@p] :: set owner
|
||||
[%logo ~] :: logout
|
||||
[%veer p=@ta q=path r=@t] :: install vane
|
||||
[%vega p=path] :: reboot by path
|
||||
[%verb ~] :: verbose mode
|
||||
== ::
|
||||
++ kiss :: in request ->$
|
||||
$% [%belt p=belt] :: terminal input
|
||||
[%blew p=blew] :: terminal config
|
||||
[%boot p=*] :: weird %dill boot
|
||||
[%crud p=@tas q=(list tank)] :: error with trace
|
||||
[%flog p=flog] :: wrapped error
|
||||
[%flow p=@tas q=(list gill)] :: terminal config
|
||||
[%hail ~] :: terminal refresh
|
||||
[%hook ~] :: this term hung up
|
||||
[%harm ~] :: all terms hung up
|
||||
[%init p=ship] :: after gall ready
|
||||
[%noop ~] :: no operation
|
||||
[%talk p=tank] ::
|
||||
[%text p=tape] ::
|
||||
[%veer p=@ta q=path r=@t] :: install vane
|
||||
[%vega p=path] :: reboot by path
|
||||
[%verb ~] :: verbose mode
|
||||
== ::
|
||||
-- => ::
|
||||
|% :: protocol outward
|
||||
++ mess ::
|
||||
$% [%dill-belt p=(hypo dill-belt)] ::
|
||||
== ::
|
||||
++ club :: agent action
|
||||
$% [%peer p=path] :: subscribe
|
||||
[%poke p=cage] :: apply
|
||||
[%pull ~] :: unsubscribe
|
||||
[%pump ~] :: pump yes/no
|
||||
== ::
|
||||
++ cuft :: internal gift
|
||||
$% [%coup p=(unit tang)] :: poke result
|
||||
[%quit ~] :: close subscription
|
||||
[%reap p=(unit tang)] :: peer result
|
||||
[%diff p=cage] :: subscription output
|
||||
== ::
|
||||
++ cuss (pair term club) :: internal kiss
|
||||
++ suss (trel term ,@tas ,@da) :: config report
|
||||
++ move ,[p=duct q=(mold note gift)] :: local move
|
||||
++ note-ames :: weird ames move
|
||||
$% [%make p=(unit ,@t) q=@ud r=@ s=?] ::
|
||||
[%sith p=@p q=@uw r=?] ::
|
||||
== ::
|
||||
++ note-clay ::
|
||||
$% [%font p=@p q=@tas r=@p s=@tas] ::
|
||||
[%warp p=sock q=riff] :: wait for clay, hack
|
||||
== ::
|
||||
++ note-dill :: note to self, odd
|
||||
$% [%crud p=@tas q=(list tank)] ::
|
||||
[%init p=ship] ::
|
||||
[%text p=tape] ::
|
||||
[%veer p=@ta q=path r=@t] :: install vane
|
||||
[%vega p=path] :: reboot by path
|
||||
[%verb ~] :: verbose mode
|
||||
== ::
|
||||
++ note-behn ::
|
||||
$% [%conf dock %load ship desk] ::
|
||||
[%deal p=sock q=cuss] ::
|
||||
== ::
|
||||
++ note :: out request $->
|
||||
$% [%a note-ames] ::
|
||||
[%b note-behn] ::
|
||||
[%c note-clay] ::
|
||||
[%d note-dill] ::
|
||||
== ::
|
||||
++ riff ,[p=desk q=(unit rave)] :: see %clay
|
||||
++ sign-ames ::
|
||||
$% [%nice ~] ::
|
||||
[%init p=ship] ::
|
||||
== ::
|
||||
++ sign-behn :: see %behn
|
||||
$% [%onto p=(unit tang)] ::
|
||||
== ::
|
||||
++ sign-clay ::
|
||||
$% [%mere p=(each (set path) (pair term tang))] ::
|
||||
[%note p=@tD q=tank] ::
|
||||
[%writ p=riot] ::
|
||||
== ::
|
||||
++ sign-dill ::
|
||||
$% [%blit p=(list blit)] ::
|
||||
== ::
|
||||
++ sign-behn ::
|
||||
$% [%onto p=(each suss tang)] ::
|
||||
[%unto p=cuft] ::
|
||||
== ::
|
||||
++ sign-time ::
|
||||
$% [%wake ~] ::
|
||||
== ::
|
||||
++ sign :: in result $<-
|
||||
$% [%a sign-ames] ::
|
||||
[%b sign-behn] ::
|
||||
[%c sign-clay] ::
|
||||
[%d sign-dill] ::
|
||||
[%t sign-time] ::
|
||||
== ::
|
||||
:::::::: :: dill tiles
|
||||
--
|
||||
=| all=axle
|
||||
|= [now=@da eny=@ ski=sled] :: current invocation
|
||||
=> |%
|
||||
++ as :: per cause
|
||||
|_ $: [moz=(list move) hen=duct our=ship]
|
||||
axon
|
||||
==
|
||||
++ abet :: resolve
|
||||
^- [(list move) axle]
|
||||
[(flop moz) all(dug (~(put by dug.all) hen +<+))]
|
||||
::
|
||||
++ call :: receive input
|
||||
|= kyz=kiss
|
||||
^+ +>
|
||||
?+ -.kyz ~& [%strange-kiss -.kyz] +>
|
||||
%flow +>
|
||||
%harm +>
|
||||
%hail +>
|
||||
%belt (send `dill-belt`p.kyz)
|
||||
%text (from %out (tuba p.kyz))
|
||||
%crud :: (send `dill-belt`[%cru p.kyz q.kyz])
|
||||
(crud p.kyz q.kyz)
|
||||
%blew (send %rez p.p.kyz q.p.kyz)
|
||||
%veer (dump kyz)
|
||||
%vega (dump kyz)
|
||||
%verb (dump kyz)
|
||||
==
|
||||
::
|
||||
++ crud
|
||||
|= [err=@tas tac=(list tank)]
|
||||
=+ ^= wol ^- wall
|
||||
:- (trip err)
|
||||
(zing (turn tac |=(a=tank (~(win re a) [0 wid]))))
|
||||
|- ^+ +>.^$
|
||||
?~ wol +>.^$
|
||||
$(wol t.wol, +>.^$ (from %out (tuba i.wol)))
|
||||
::
|
||||
++ dump :: pass down to hey
|
||||
|= git=gift
|
||||
?> ?=(^ hey.all)
|
||||
+>(moz [[u.hey.all %give git] moz])
|
||||
::
|
||||
++ done :: return gift
|
||||
|= git=gift
|
||||
+>(moz :_(moz [hen %give git]))
|
||||
::
|
||||
++ from :: receive belt
|
||||
|= bit=dill-blit
|
||||
^+ +>
|
||||
?: ?=(%mor -.bit)
|
||||
|- ^+ +>.^$
|
||||
?~ p.bit +>.^$
|
||||
$(p.bit t.p.bit, +>.^$ ^$(bit i.p.bit))
|
||||
?: ?=(%out -.bit)
|
||||
%+ done %blit
|
||||
:~ [%lin p.bit]
|
||||
[%mor ~]
|
||||
[%lin see]
|
||||
[%hop pos]
|
||||
==
|
||||
?: ?=(%pro -.bit)
|
||||
(done(see p.bit) %blit [[%lin p.bit] [%hop pos] ~])
|
||||
?: ?=(%hop -.bit)
|
||||
(done(pos p.bit) %blit [bit ~])
|
||||
?: ?=(%qit -.bit)
|
||||
(dump %logo ~)
|
||||
(done %blit [bit ~])
|
||||
::
|
||||
++ init :: initialize
|
||||
~& [%doll-init our]
|
||||
=+ myt=(flop (need tem))
|
||||
=. tem ~
|
||||
=. moz :_(moz [hen %pass / %c %font our %home our %base])
|
||||
:: =. moz :_(moz [hen %pass / %g %show [our [ram ~]] our ~])
|
||||
=. moz :_(moz [hen %pass ~ %b %conf [[our ram] %load our %base]])
|
||||
=. moz :_(moz [hen %pass ~ %b %deal [our our] ram %peer ~])
|
||||
|- ^+ +>
|
||||
?~ myt +>
|
||||
$(myt t.myt, +> (send i.myt))
|
||||
::
|
||||
++ into :: preinitialize
|
||||
|= gyl=(list gill)
|
||||
%_ +>
|
||||
tem `(turn gyl |=(a=gill [%yow a]))
|
||||
moz
|
||||
:_ moz
|
||||
:* hen
|
||||
%pass
|
||||
/
|
||||
%c
|
||||
[%warp [our our] %base `[%sing %y [%ud 1] /]]
|
||||
==
|
||||
==
|
||||
::
|
||||
++ send :: send action
|
||||
|= bet=dill-belt
|
||||
?^ tem
|
||||
+>(tem `[bet u.tem])
|
||||
%_ +>
|
||||
moz
|
||||
:_ moz
|
||||
[hen %pass ~ %b %deal [our our] ram %poke [%dill-belt -:!>(bet) bet]]
|
||||
==
|
||||
::
|
||||
++ pump :: send diff ack
|
||||
%_ .
|
||||
moz
|
||||
:_(moz [hen %pass ~ %b %deal [our our] ram %pump ~])
|
||||
==
|
||||
::
|
||||
++ take :: receive
|
||||
|= sih=sign
|
||||
^+ +>
|
||||
?- sih
|
||||
[%a %nice *]
|
||||
:: ~& [%take-nice-ames sih]
|
||||
+>
|
||||
::
|
||||
[%a %init *]
|
||||
+>(moz :_(moz [hen %give +.sih]))
|
||||
::
|
||||
[%c %mere *]
|
||||
?: ?=(%& -.p.sih)
|
||||
+>.$
|
||||
~| %dill-mere-fail
|
||||
~| p.p.p.sih
|
||||
|-
|
||||
?~ q.p.p.sih !!
|
||||
~> %mean.|.(i.q.p.p.sih) :: interpolate ford fail into stack trace
|
||||
$(q.p.p.sih t.q.p.p.sih)
|
||||
::
|
||||
[%b %onto *]
|
||||
:: ~& [%take-behn-onto +>.sih]
|
||||
?- -.+>.sih
|
||||
%| (crud %onto p.p.+>.sih)
|
||||
%& (done %blit [%lin (tuba "{<p.p.sih>}")]~)
|
||||
==
|
||||
::
|
||||
[%b %unto *]
|
||||
:: ~& [%take-behn-unto +>.sih]
|
||||
?- -.+>.sih
|
||||
%coup ?~(p.p.+>.sih +>.$ (crud %coup u.p.p.+>.sih))
|
||||
%quit !! :: ??
|
||||
%reap ?~(p.p.+>.sih +>.$ (crud %reap u.p.p.+>.sih))
|
||||
%diff pump:(from ((hard dill-blit) q:`vase`+>+>.sih))
|
||||
==
|
||||
::
|
||||
[%c %note *]
|
||||
(from %out (tuba p.sih ' ' ~(ram re q.sih)))
|
||||
::
|
||||
[%c %writ *]
|
||||
init
|
||||
::
|
||||
[%d %blit *]
|
||||
(done +.sih)
|
||||
::
|
||||
[%t %wake *]
|
||||
:: ~& %dill-wake
|
||||
+>
|
||||
==
|
||||
--
|
||||
::
|
||||
++ ax :: make ++as
|
||||
|= [hen=duct kyz=kiss] ::
|
||||
?~ ore.all ~
|
||||
=+ nux=(~(get by dug.all) hen)
|
||||
?^ nux
|
||||
(some ~(. as [~ hen u.ore.all] u.nux))
|
||||
?. ?=(%flow -.kyz) ~
|
||||
%- some
|
||||
%. q.kyz
|
||||
%~ into as
|
||||
:- [~ hen u.ore.all]
|
||||
:* p.kyz
|
||||
[~ ~]
|
||||
80
|
||||
0
|
||||
(tuba "<{(trip p.kyz)}>")
|
||||
==
|
||||
--
|
||||
|% :: poke/peek pattern
|
||||
++ call :: handle request
|
||||
|= $: hen=duct
|
||||
hic=(hypo (hobo kiss))
|
||||
==
|
||||
^- [p=(list move) q=_..^$]
|
||||
=> %= . :: XX temporary
|
||||
q.hic
|
||||
^- kiss
|
||||
?: ?=(%soft -.q.hic)
|
||||
:: ~& [%dill-call-soft (,@tas `*`-.p.q.hic)]
|
||||
((hard kiss) p.q.hic)
|
||||
?: (~(nest ut -:!>(*kiss)) | p.hic) q.hic
|
||||
~& [%dill-call-flub (,@tas `*`-.q.hic)]
|
||||
((hard kiss) q.hic)
|
||||
==
|
||||
?: ?=(%boot -.q.hic)
|
||||
:_(..^$ [hen %pass ~ (note %a p.q.hic)]~)
|
||||
?: ?=(%flog -.q.hic)
|
||||
:: ~& [%dill-flog +.q.hic]
|
||||
?: ?=([%crud %hax-init [%leaf *] ~] p.q.hic)
|
||||
=+ him=(slav %p (crip p.i.q.p.q.hic))
|
||||
:_(..^$ ?~(hey.all ~ [u.hey.all %give %init him]~))
|
||||
:_(..^$ ?~(hey.all ~ [u.hey.all %slip %d p.q.hic]~))
|
||||
=. hey.all ?^(hey.all hey.all `hen)
|
||||
?: ?=(%init -.q.hic)
|
||||
:: ~& [%call-init hen]
|
||||
?: =(ore.all `p.q.hic)
|
||||
[[hen %give q.hic]~ ..^$]
|
||||
=: ore.all `p.q.hic
|
||||
dug.all ~
|
||||
==
|
||||
=+ ^= flo ^- (list (pair ship term))
|
||||
=+ myr=(clan p.q.hic)
|
||||
?: =(%pawn myr)
|
||||
[[p.q.hic %dojo] ~]
|
||||
?: =(%earl myr)
|
||||
=+ fap=(sein p.q.hic)
|
||||
[[fap %dojo] [fap %talk] [fap %helm] ~]
|
||||
[[p.q.hic %dojo] [p.q.hic %talk] [p.q.hic %helm] ~]
|
||||
=^ moz all abet:(need (ax (need hey.all) [%flow %sole flo]))
|
||||
?: |((lth p.q.hic 256) (gte p.q.hic (bex 64))) [moz ..^$] :: XX HORRIBLE
|
||||
[:_(moz [(need hey.all) %give %init p.q.hic]) ..^$]
|
||||
=+ nus=(ax hen q.hic)
|
||||
?~ nus
|
||||
~& [%dill-no-flow q.hic]
|
||||
[~ ..^$]
|
||||
=^ moz all abet:(call:u.nus q.hic)
|
||||
[moz ..^$]
|
||||
::
|
||||
++ doze
|
||||
|= [now=@da hen=duct]
|
||||
^- (unit ,@da)
|
||||
~
|
||||
::
|
||||
++ load :: trivial
|
||||
|= old=axle
|
||||
..^$(all old)
|
||||
:: |= old=* :: diable
|
||||
:: ..^$(ore.all `~zod)
|
||||
::
|
||||
++ scry
|
||||
|= [fur=(unit (set monk)) ren=@tas his=ship syd=desk lot=coin tyl=path]
|
||||
^- (unit (unit cage))
|
||||
[~ ~]
|
||||
::
|
||||
++ stay all
|
||||
::
|
||||
++ take :: process move
|
||||
|= [tea=wire hen=duct hin=(hypo sign)]
|
||||
^- [p=(list move) q=_..^$]
|
||||
?: =(~ ore.all)
|
||||
?: ?=([%a %init *] q.hin)
|
||||
:: ~& [%take-init hen]
|
||||
=. hey.all ?^(hey.all hey.all `hen)
|
||||
[[[hen %give +.q.hin] ~] ..^$]
|
||||
:: [~ ..^$]
|
||||
~& [%take-back q.hin]
|
||||
[~ ..^$]
|
||||
?. (~(has by dug.all) hen)
|
||||
~& [%take-weird-sign q.hin]
|
||||
~& [%take-weird-hen hen]
|
||||
[~ ..^$]
|
||||
=+ our=?>(?=(^ ore.all) u.ore.all)
|
||||
=^ moz all
|
||||
abet:(~(take as [~ hen our] (~(got by dug.all) hen)) q.hin)
|
||||
[moz ..^$]
|
||||
--
|
||||
|
||||
:: good test
|
@ -1072,10 +1072,10 @@
|
||||
%deal `%g
|
||||
%exec `%f
|
||||
%flog `%d
|
||||
%mess `%g
|
||||
%nuke `%g
|
||||
%show `%g
|
||||
%took `%g
|
||||
%font `%c
|
||||
%info `%c
|
||||
%lynx `%c
|
||||
%merg `%c
|
||||
%plug `%c
|
||||
%want `%a
|
||||
==
|
||||
|
12
base/cat/hood/init/gate.hook
Normal file
12
base/cat/hood/init/gate.hook
Normal file
@ -0,0 +1,12 @@
|
||||
::
|
||||
:::: /hook/gate/reload/hood/cat
|
||||
::
|
||||
/? 314
|
||||
::
|
||||
::::
|
||||
!:
|
||||
|= $: [now=@da eny=@uvI bec=beak]
|
||||
[~ ~]
|
||||
==
|
||||
:- %hood-init
|
||||
p.bec
|
12
base/cat/hood/merge/gate.hook
Normal file
12
base/cat/hood/merge/gate.hook
Normal file
@ -0,0 +1,12 @@
|
||||
::
|
||||
:::: /hook/gate/merge/hood/cat
|
||||
::
|
||||
/? 314
|
||||
::
|
||||
::::
|
||||
!:
|
||||
|= $: [now=@da eny=@uvI bec=beak]
|
||||
[[syd=@tas her=@p sud=@tas gem=?([?(%auto germ) ~] ~)] ~]
|
||||
==
|
||||
:- %hood-merge
|
||||
[syd her sud ?~(gem %auto -.gem)]
|
12
base/cat/hood/reload/gate.hook
Normal file
12
base/cat/hood/reload/gate.hook
Normal file
@ -0,0 +1,12 @@
|
||||
::
|
||||
:::: /hook/gate/reload/hood/cat
|
||||
::
|
||||
/? 314
|
||||
::
|
||||
::::
|
||||
!:
|
||||
|= $: [now=@da eny=@uvI bec=beak]
|
||||
[arg=(list term) ~]
|
||||
==
|
||||
:- %hood-reload
|
||||
arg
|
11
base/cat/hood/start/gate.hook
Normal file
11
base/cat/hood/start/gate.hook
Normal file
@ -0,0 +1,11 @@
|
||||
::
|
||||
:::: /hook/gate/start/hood/cat
|
||||
::
|
||||
/? 314
|
||||
::
|
||||
::::
|
||||
!:
|
||||
|= $: [now=@da eny=@uvI bec=beak]
|
||||
[[who=@p dap=term ~] ~]
|
||||
==
|
||||
[%hood-start who dap]
|
12
base/cat/hood/sync/gate.hook
Normal file
12
base/cat/hood/sync/gate.hook
Normal file
@ -0,0 +1,12 @@
|
||||
::
|
||||
:::: /hook/gate/sync/hood/cat
|
||||
::
|
||||
/? 314
|
||||
::
|
||||
::::
|
||||
!:
|
||||
|= $: [now=@da eny=@uvI bec=beak]
|
||||
[arg=[syd=@tas her=@p sud=@tas ~] ~]
|
||||
==
|
||||
:- %hood-sync
|
||||
arg
|
15
base/cat/hood/unix/gate.hook
Normal file
15
base/cat/hood/unix/gate.hook
Normal file
@ -0,0 +1,15 @@
|
||||
::
|
||||
:::: /hook/gate/unix/hood/cat
|
||||
::
|
||||
/? 314
|
||||
::
|
||||
::::
|
||||
!:
|
||||
|= $: [now=@da eny=@uvI bec=beak]
|
||||
[[syd=@tas syn=?(~ [? ~])] ~]
|
||||
==
|
||||
:+ %hood-unix
|
||||
syd
|
||||
?~ syn
|
||||
~
|
||||
`-.syn
|
45
base/dog/hood/begin/gate.hook
Normal file
45
base/dog/hood/begin/gate.hook
Normal file
@ -0,0 +1,45 @@
|
||||
::
|
||||
:::: /hook/gate/begin/hood/gun
|
||||
::
|
||||
/? 314
|
||||
/- *sole
|
||||
::
|
||||
::::
|
||||
!:
|
||||
=> |%
|
||||
++ begs ,[his=@p tic=@p yen=@t ges=gens]
|
||||
--
|
||||
|= $: [now=@da eny=@uvI bec=beak]
|
||||
[~ ~]
|
||||
==
|
||||
^- (sole-result (cask begs))
|
||||
%+ sole-lo
|
||||
[%& %hood-begin "your ship: ~"]
|
||||
%+ sole-go fed:ag
|
||||
|= his=@p
|
||||
%+ sole-lo
|
||||
[%& %hood-ticket "your ticket: ~"]
|
||||
%+ sole-go fed:ag
|
||||
|= tic=@p
|
||||
%+ sole-lo
|
||||
[%& %hood-entropy "some entropy: "]
|
||||
%+ sole-go (boss 256 (more gon qit))
|
||||
|= yen=@t
|
||||
=+ ney=(shax yen)
|
||||
%+ sole-yo `tank`[%leaf "entropy check: {(scow %p `@p`(mug ney))}"]
|
||||
%+ sole-so %hood-begin
|
||||
:* his
|
||||
tic
|
||||
ney
|
||||
::
|
||||
^- gens
|
||||
:- %en
|
||||
=+ can=(clan his)
|
||||
?- can
|
||||
%czar [%czar ~]
|
||||
%duke [%duke %anon ~]
|
||||
%earl [%earl (scot %p his)]
|
||||
%king [%king ?:(=(~doznec his) 'Urban Republic' (scot %p his))]
|
||||
%pawn [%pawn ~]
|
||||
==
|
||||
==
|
12
base/dog/hood/reload/gate.hook
Normal file
12
base/dog/hood/reload/gate.hook
Normal file
@ -0,0 +1,12 @@
|
||||
::
|
||||
:::: /hook/gate/reload/hood/gun
|
||||
::
|
||||
/? 314
|
||||
/- *sole
|
||||
::
|
||||
::::
|
||||
!:
|
||||
|= $: [now=@da eny=@uvI bec=beak]
|
||||
[arg=(list term) ~]
|
||||
==
|
||||
(sole-so %hood-reload arg)
|
12
base/dog/hood/reset/gate.hook
Normal file
12
base/dog/hood/reset/gate.hook
Normal file
@ -0,0 +1,12 @@
|
||||
::
|
||||
:::: /hook/gate/reset/hood/gun
|
||||
::
|
||||
/? 314
|
||||
/- *sole
|
||||
::
|
||||
::::
|
||||
!:
|
||||
|= $: [now=@da eny=@uvI bec=beak]
|
||||
[~ ~]
|
||||
==
|
||||
(sole-so %hood-reset ~)
|
13
base/dog/hood/verb/gate.hook
Normal file
13
base/dog/hood/verb/gate.hook
Normal file
@ -0,0 +1,13 @@
|
||||
::
|
||||
:::: /hook/gate/verb/hood/gun
|
||||
::
|
||||
/? 314
|
||||
/- *sole
|
||||
::
|
||||
::::
|
||||
!:
|
||||
|= $: [now=@da eny=@ bec=beak]
|
||||
[~ ~]
|
||||
==
|
||||
~& %hood-verb
|
||||
(sole-so %hood-verb ~)
|
@ -19,24 +19,24 @@
|
||||
:: :: ::
|
||||
:::: :: ::
|
||||
:: :: ::
|
||||
++ helm-begin :: begin command
|
||||
++ hood-begin :: begin command
|
||||
$: his=@p :: identity
|
||||
tic=@p :: ticket
|
||||
eny=@t :: entropy
|
||||
ges=gens :: description
|
||||
== ::
|
||||
++ helm-init :: report init
|
||||
++ hood-init :: report init
|
||||
$: him=ship ::
|
||||
== ::
|
||||
++ helm-start :: start (local) server
|
||||
++ hood-start :: start (local) server
|
||||
$: syd=desk :: desk
|
||||
dap=term :: program
|
||||
== ::
|
||||
++ helm-reset :: reset command
|
||||
++ hood-reset :: reset command
|
||||
,~ ::
|
||||
++ helm-verb :: reset command
|
||||
,~ ::
|
||||
++ helm-reload :: reload command
|
||||
++ hood-reload :: reload command
|
||||
(list term) ::
|
||||
-- ::
|
||||
:: :: ::
|
||||
@ -76,7 +76,7 @@
|
||||
?~(+< +> $(+< t.+<, +> (emit i.+<)))
|
||||
::
|
||||
++ poke-begin :: make/send keypair
|
||||
|= helm-begin =< abet
|
||||
|= hood-begin =< abet
|
||||
?> ?=(~ bur)
|
||||
=+ buz=(shax :(mix (jam ges) eny))
|
||||
=+ loy=(bruw 2.048 buz)
|
||||
@ -88,7 +88,7 @@
|
||||
(emit %flog /helm %crud %hax-init leaf/(scow %p him) ~)
|
||||
::
|
||||
++ poke-start :: start a server
|
||||
|= helm-start =< abet
|
||||
|= hood-start =< abet
|
||||
(emit %conf /helm [our dap] %load our syd)
|
||||
::
|
||||
++ poke-reload :: reload vanes
|
||||
@ -114,7 +114,7 @@
|
||||
==
|
||||
::
|
||||
++ poke-reset :: reset system
|
||||
|= helm-reset =< abet
|
||||
|= hood-reset =< abet
|
||||
%- emil
|
||||
=+ top=`path`/(scot %p our)/base/arvo/(scot %da lat)
|
||||
:- [%flog /reset %vega (weld top `path`/hoon)]
|
||||
|
@ -1,7 +0,0 @@
|
||||
:: :: ::
|
||||
:::: /hook/core/hood/lib :: ::
|
||||
:: :: ::
|
||||
/? 310 :: arvo version
|
||||
/- *helm :: structures
|
||||
/+ helm :: libraries
|
||||
.
|
331
base/lib/kiln/core.hook
Normal file
331
base/lib/kiln/core.hook
Normal file
@ -0,0 +1,331 @@
|
||||
:: :: ::
|
||||
:::: /hook/core/kiln/lib :: ::
|
||||
:: :: ::
|
||||
/? 310 :: version
|
||||
/- *talk :: structures
|
||||
/+ talk :: libraries
|
||||
:: :: ::
|
||||
:::: :: ::
|
||||
:: :: ::
|
||||
|% :: ::
|
||||
++ kiln-part :: kiln state
|
||||
$: %kiln :: doubletag
|
||||
%0 :: state version
|
||||
rem=(map desk kiln-desk) ::
|
||||
== ::
|
||||
++ kiln-desk :: per-desk state
|
||||
$: auto=? :: escalate on failure
|
||||
gem=germ :: strategy
|
||||
her=@p :: from ship
|
||||
sud=@tas :: from desk
|
||||
cas=case :: at case
|
||||
== ::
|
||||
:: :: ::
|
||||
:::: :: ::
|
||||
:: :: ::
|
||||
++ hood-unix ::
|
||||
$: syd=desk ::
|
||||
syn=(unit bean) ::
|
||||
== ::
|
||||
++ hood-sync ::
|
||||
$: syd=desk ::
|
||||
her=ship ::
|
||||
sud=desk ::
|
||||
== ::
|
||||
++ hood-merge ::
|
||||
$: syd=desk ::
|
||||
ali=ship ::
|
||||
sud=desk ::
|
||||
gim=?(%auto germ) ::
|
||||
== ::
|
||||
-- ::
|
||||
:: :: ::
|
||||
:::: :: ::
|
||||
!: :: ::
|
||||
|% :: helm library
|
||||
++ kiln-work :: work in kiln
|
||||
|= [[hide from] kiln-part]
|
||||
?> =(src our)
|
||||
=> |% :: arvo structures
|
||||
++ card ::
|
||||
$% [%exec wire @p beak (unit silk)] ::
|
||||
[%font wire @p @tas @p @tas] ::
|
||||
[%info wire @p @tas nori] ::
|
||||
[%lynx wire @p @tas (unit ,?)] ::
|
||||
[%merg wire @p @tas @p @tas germ] ::
|
||||
[%plug wire @p @tas @p @tas] ::
|
||||
[%poke wire dock pear] ::
|
||||
== ::
|
||||
++ pear :: poke fruit
|
||||
$% [%talk-command command:talk] ::
|
||||
[%hood-merge hood-merge] ::
|
||||
== ::
|
||||
++ suss ,[term @tas @da] :: config report
|
||||
++ milk (trel ship desk silk) ::
|
||||
++ silk ::
|
||||
$& [p=silk q=silk] :: cons
|
||||
$% [%diff p=silk q=silk] :: diff
|
||||
[%done p=(set beam) q=gage] :: literal
|
||||
[%file p=beam] :: from clay
|
||||
[%mash p=mark q=milk r=milk] :: merge
|
||||
[%tabl p=(list (pair silk silk))] :: list
|
||||
== ::
|
||||
++ tage :: %tabl gage
|
||||
,[[%tabl p=(list (pair marc marc))] q=vase] ::
|
||||
++ move (pair bone card) :: user-level move
|
||||
--
|
||||
|_ moz=(list move)
|
||||
++ abet :: resolve
|
||||
[(flop moz) `kiln-part`+>+>->]
|
||||
::
|
||||
++ emit |=(card %_(+> moz [[ost +<] moz])) :: return card
|
||||
++ emil :: return cards
|
||||
|= (list card)
|
||||
^+ +>
|
||||
?~(+< +> $(+< t.+<, +> (emit i.+<)))
|
||||
::
|
||||
++ poke-unix ::
|
||||
|= hood-unix
|
||||
abet:(emit %lynx /kiln our syd syn)
|
||||
::
|
||||
++ poke-sync ::
|
||||
|= hood-sync
|
||||
abet:(emit %font /kiln our syd her sud)
|
||||
::
|
||||
++ poke-merge ::
|
||||
|= hood-merge
|
||||
abet:abet:(merge:(work syd) ali sud gim)
|
||||
::
|
||||
++ take |=(way=wire ?>(?=([@ ~] way) (work i.way))) :: general handler
|
||||
++ take-mere ::
|
||||
|= [way=wire are=(each (set path) (pair term tang))]
|
||||
abet:abet:(mere:(take way) are)
|
||||
::
|
||||
++ take-made ::
|
||||
|= [way=wire dep=@uvH reg=(each gage tang)]
|
||||
abet:abet:(made:(take way) dep reg)
|
||||
::
|
||||
++ take-coup-fancy ::
|
||||
|= [way=wire saw=(unit tang)]
|
||||
abet:abet:(coup-fancy:(take way) saw)
|
||||
::
|
||||
++ work :: state machine
|
||||
|= syd=desk
|
||||
=+ ^- kiln-desk
|
||||
%+ fall (~(get by rem) syd)
|
||||
=+ *kiln-desk
|
||||
%_(- cas [%da lat])
|
||||
|%
|
||||
++ abet :: resolve
|
||||
..work(rem (~(put by rem) syd auto gem her sud cas))
|
||||
::
|
||||
++ blab :: emit, XX remove
|
||||
|= new=(list move)
|
||||
^+ +>
|
||||
+>.$(moz (welp new moz))
|
||||
::
|
||||
++ win . :: successful poke
|
||||
++ lose
|
||||
^+ .
|
||||
~| %kiln-work-failed
|
||||
!!
|
||||
::
|
||||
++ gage-to-tage ::
|
||||
|= res=gage
|
||||
^- tage
|
||||
?@ p.res
|
||||
~|(%bad-marc !!)
|
||||
res
|
||||
::
|
||||
++ tage-to-cages ::
|
||||
|= tab=tage
|
||||
^- (list (pair cage cage))
|
||||
?~ p.tab
|
||||
~
|
||||
:_ $(p.tab t.p.tab, q.tab (slot 3 q.tab))
|
||||
~| %strange-gage
|
||||
:- [?^(p.i.p.tab !! p.i.p.tab) (slot 4 q.tab)]
|
||||
[?^(q.i.p.tab !! q.i.p.tab) (slot 5 q.tab)]
|
||||
::
|
||||
++ perform ::
|
||||
^+ .
|
||||
(blab [ost %merg /kiln/[syd] our syd her sud gem] ~)
|
||||
::
|
||||
++ fancy-merge :: send to self
|
||||
|= [syd=desk her=@p sud=desk gem=?(%auto germ)]
|
||||
^+ +>
|
||||
%- blab :_ ~
|
||||
[ost %poke /kiln/fancy/[^syd] [our %kiln] %hood-merge [syd her sud gem]]
|
||||
::
|
||||
++ spam
|
||||
|= mes=(list tank)
|
||||
%- blab :_ ~
|
||||
:* ost %poke /kiln/spam/[syd]
|
||||
[our %talk] %talk-command
|
||||
^- command:talk
|
||||
:- %publish
|
||||
%- flop
|
||||
=< acc
|
||||
%+ roll mes
|
||||
=< .(eny eny)
|
||||
|= [tan=tank acc=(list thought:talk) eny=@uvI]
|
||||
^- [acc=(list thought:talk) eny=@uvI]
|
||||
=+ (sham eny mes)
|
||||
:_ -
|
||||
:_ acc
|
||||
^- thought:talk
|
||||
:+ -
|
||||
[[[%& our (main our)] [*envelope:talk %pending]] ~ ~]
|
||||
[lat *bouquet:talk [%app (crip ~(ram re tan))]]
|
||||
==
|
||||
::
|
||||
++ merge
|
||||
|= [her=@p sud=@tas gim=?(%auto germ)]
|
||||
^+ +>
|
||||
=. cas [%da lat]
|
||||
?. ?=(%auto gim)
|
||||
perform(auto |, gem gim, her her, sud sud)
|
||||
?: =(0 .^(%cw /(scot %p our)/[syd]/(scot %da lat)))
|
||||
=> $(gim %init)
|
||||
.(auto &)
|
||||
=> $(gim %fine)
|
||||
.(auto &)
|
||||
::
|
||||
++ coup-fancy
|
||||
|= saw=(unit tang)
|
||||
?~ saw
|
||||
=> (spam leaf/"%melding %{(trip sud)} into scratch space" ~)
|
||||
%- blab :_ ~
|
||||
[ost %merg /kiln/[syd] our (cat 3 syd '-scratch') her sud gem]
|
||||
=+ :- "failed to set up conflict resolution scratch space"
|
||||
"I'm out of ideas"
|
||||
lose:(spam leaf/-< leaf/-> ~)
|
||||
::
|
||||
++ mere
|
||||
|= are=(each (set path) (pair term tang))
|
||||
^+ +>
|
||||
?: =(%meld gem)
|
||||
?: ?=(%& -.are)
|
||||
?. auto
|
||||
=+ "successfully merged with strategy {<gem>}"
|
||||
win:(spam leaf/- ?~(p.are ~ [>`(set path)`p.are< ~]))
|
||||
=+ "mashing conflicts"
|
||||
=> .(+>.$ (spam leaf/- ~))
|
||||
=+ tic=(cat 3 syd '-scratch')
|
||||
%- blab :_ ~
|
||||
:* ost %exec /kiln/[syd]
|
||||
our [our tic %da lat] ~ %tabl
|
||||
^- (list (pair silk silk))
|
||||
%+ turn (~(tap in p.are))
|
||||
|= pax=path
|
||||
^- (pair silk silk)
|
||||
:- [%done ~ %path -:!>(*path) pax]
|
||||
=+ base=[%file [our tic %da lat] (flop pax)]
|
||||
=+ alis=[%file [her sud cas] (flop pax)]
|
||||
=+ bobs=[%file [our syd %da lat] (flop pax)]
|
||||
=+ dali=[%diff base alis]
|
||||
=+ dbob=[%diff base bobs]
|
||||
=+ ^- for=mark
|
||||
=+ (slag (dec (lent pax)) pax)
|
||||
?~(- %$ i.-)
|
||||
[%mash for [her sud dali] [our syd dbob]]
|
||||
==
|
||||
=+ "failed to merge with strategy {<p.p.are>}"
|
||||
lose:(spam leaf/- q.p.are)
|
||||
?: ?=(%& -.are)
|
||||
=+ "successfully merged with strategy {<gem>}"
|
||||
win:(spam leaf/- ?~(p.are ~ [>`(set path)`p.are< ~]))
|
||||
?. auto
|
||||
=+ "failed to merge with strategy {<p.p.are>}"
|
||||
lose:(spam leaf/- q.p.are)
|
||||
?+ gem
|
||||
(spam leaf/"strange auto" >gem< ~)
|
||||
::
|
||||
%init
|
||||
=+ :- "auto merge failed on strategy %init"
|
||||
"I'm out of ideas"
|
||||
lose:(spam leaf/-< leaf/-> [>p.p.are< q.p.are])
|
||||
::
|
||||
%fine
|
||||
?. ?=(%bad-fine-merge p.p.are)
|
||||
=+ "auto merge failed on strategy %fine"
|
||||
lose:(spam leaf/- >p.p.are< q.p.are)
|
||||
=> (spam leaf/"%fine merge failed, trying %meet" ~)
|
||||
perform(gem %meet)
|
||||
::
|
||||
%meet
|
||||
?. ?=(%meet-conflict p.p.are)
|
||||
=+ "auto merge failed on strategy %meet"
|
||||
lose:(spam leaf/- >p.p.are< q.p.are)
|
||||
=> (spam leaf/"%meet merge failed, trying %mate" ~)
|
||||
perform(gem %mate)
|
||||
::
|
||||
%mate
|
||||
?. ?=(%mate-conflict p.p.are)
|
||||
=+ "auto merge failed on strategy %mate"
|
||||
lose:(spam leaf/- >p.p.are< q.p.are)
|
||||
=> .(gem %meld)
|
||||
=+ tic=(cat 3 syd '-scratch')
|
||||
=> =+ :- "%mate merge failed with conflicts,"
|
||||
"setting up scratch space at %{(trip tic)}"
|
||||
[tic=tic (spam leaf/-< leaf/-> ~)]
|
||||
(fancy-merge tic our syd %auto)
|
||||
==
|
||||
::
|
||||
++ made
|
||||
|= [dep=@uvH reg=(each gage tang)]
|
||||
^+ +>
|
||||
?: ?=(%| -.reg)
|
||||
=+ "failed to mash"
|
||||
lose:(spam leaf/- p.reg)
|
||||
=+ ^- can=(list (pair path (unit miso)))
|
||||
%+ turn (tage-to-cages (gage-to-tage p.reg))
|
||||
|= [pax=cage dif=cage]
|
||||
^- (pair path (unit miso))
|
||||
?. ?=(%path p.pax)
|
||||
~| "strange path mark: {<p.pax>}"
|
||||
!!
|
||||
[((hard path) q.q.pax) ?:(?=(%null p.dif) ~ `[%dif dif])]
|
||||
=+ notated=(skid can |=([path a=(unit miso)] ?=(^ a)))
|
||||
=+ annotated=(turn `(list (pair path ,*))`-.notated head)
|
||||
=+ unnotated=(turn `(list (pair path ,*))`+.notated head)
|
||||
=+ (trip (cat 3 syd '-scratch'))
|
||||
=+ ^- tan=(list tank)
|
||||
%- zing
|
||||
^- (list (list tank))
|
||||
:~ :~ leaf/""
|
||||
leaf/"done setting up scratch space in %{-}"
|
||||
leaf/"please resolve the following conflicts and run"
|
||||
leaf/":helm+merge %{(trip syd)} {<our>} %{-}"
|
||||
==
|
||||
?~ annotated
|
||||
~
|
||||
:~ leaf/""
|
||||
leaf/"annotated conflicts in:"
|
||||
>`(list path)`annotated<
|
||||
==
|
||||
?~ unnotated
|
||||
~
|
||||
:~ leaf/""
|
||||
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:"
|
||||
>`(list path)`unnotated<
|
||||
==
|
||||
==
|
||||
=< win
|
||||
%- blab:(spam tan)
|
||||
:_ ~
|
||||
:* ost %info /kiln/[syd]/dash
|
||||
our (cat 3 syd '-scratch')
|
||||
%& *cart
|
||||
%+ murn can
|
||||
|= [p=path q=(unit miso)]
|
||||
`(unit (pair path miso))`?~(q ~ `[p u.q])
|
||||
==
|
||||
--
|
||||
--
|
||||
--
|
@ -10,7 +10,6 @@
|
||||
::
|
||||
|%
|
||||
++ main :: main story
|
||||
|
||||
|= our=ship ^- cord
|
||||
=+ can=(clan our)
|
||||
?+ can %porch
|
||||
|
Loading…
Reference in New Issue
Block a user