WIP: Commiting so I can get the ~+ patch.

This commit is contained in:
Elliot Glaysher 2018-08-08 14:47:01 -07:00
parent 5d9339052e
commit 81bd72ee21
11 changed files with 5781 additions and 13704 deletions

View File

@ -23,10 +23,10 @@
poy/(unit dojo-project) :: working
$: :: sur: structure imports
::
sur=(list cable:ford-api)
sur=(list cable:ford)
:: lib: library imports
::
lib=(list cable:ford-api)
lib=(list cable:ford)
==
var/(map term cage) :: variable state
old/(set term) :: used TLVs
@ -108,7 +108,7 @@
mark
{$hiss hiss:eyre}
==
[%build wire @p ? schematic:ford-api]
[%build wire @p ? schematic:ford]
[%kill wire @p]
{$deal wire sock term club} ::
{$info wire @p toro:clay} ::
@ -126,7 +126,7 @@
$= result
$% :: %complete: contains the result of the completed build
::
[%complete build-result=build-result:ford-api]
[%complete build-result=build-result:ford]
:: %incomplete: couldn't finish build; contains error message
::
[%incomplete =tang]
@ -223,13 +223,13 @@
::
++ parse-cables
%+ cook
|= cables=(list cable:ford-api)
|= cables=(list cable:ford)
:+ 0 %ex
^- hoon
::
:- %clsg
%+ turn cables
|= cable=cable:ford-api
|= cable=cable:ford
^- hoon
::
:+ %clhp
@ -249,7 +249,7 @@
:: NOTE: This is a verbatim duplicate of Ford's cable parsing
::
++ parse-cable
%+ cook |=(a=cable:ford-api a)
%+ cook |=(a=cable:ford a)
;~ pose
(stag ~ ;~(pfix tar sym))
(cook |=([face=term tis=@ file=term] [`face file]) ;~(plug sym tis sym))
@ -338,7 +338,7 @@
++ dy-abet +>(poy `+<) :: resolve
++ dy-amok +>(poy ~) :: terminate
++ dy-ford :: send work to ford
|= [way=wire schematic=schematic:ford-api]
|= [way=wire schematic=schematic:ford]
^+ +>+>
?> ?=($~ pux)
:: pin all builds to :now.hid so they don't get cached forever
@ -361,7 +361,7 @@
++ dy-slam :: call by ford
|= {way/wire gat/vase sam/vase}
^+ +>+>
(dy-ford way `schematic:ford-api`[%call [%$ %noun gat] [%$ %noun sam]])
(dy-ford way `schematic:ford`[%call [%$ %noun gat] [%$ %noun sam]])
::
++ dy-errd :: reject change, abet
|= {rev/(unit sole-edit) err/@u}
@ -527,13 +527,13 @@
$lib
%_ .
lib
((dy-cast (list cable:ford-api) !>(*(list cable:ford-api))) q.cay)
((dy-cast (list cable:ford) !>(*(list cable:ford))) q.cay)
==
::
$sur
%_ .
sur
((dy-cast (list cable:ford-api) !>(*(list cable:ford-api))) q.cay)
((dy-cast (list cable:ford) !>(*(list cable:ford))) q.cay)
==
::
$dir =+ ^= pax ^- path
@ -1248,7 +1248,7 @@
++ dy-silk-vase |=(vax/vase [%$ %noun vax]) :: vase to silk
++ dy-silk-sources :: arglist to silk
|= src/(list dojo-source)
^- schematic:ford-api
^- schematic:ford
::
:+ %$ %noun
|-
@ -1257,7 +1257,7 @@
::
++ dy-silk-config :: configure
|= {cay/cage cig/dojo-config}
^- [wire schematic:ford-api]
^- [wire schematic:ford]
?. (~(nest ut [%cell [%atom %$ ~] %noun]) | p.q.cay)
::
:: naked gate
@ -1280,10 +1280,10 @@
:+ [%$ %noun !>([now=now.hid eny=eny.hid bec=he-beak])]
(dy-silk-sources p.cig)
:+ %mute [%$ %noun (fall (slew 27 gat) !>(~))]
^- (list [wing schematic:ford-api])
^- (list [wing schematic:ford])
%+ turn ~(tap by q.cig)
|= {a/term b/(unit dojo-source)}
^- [wing schematic:ford-api]
^- [wing schematic:ford]
:- [a ~]
:+ %$ %noun
?~(b !>([~ ~]) (dy-vase p.u.b))
@ -1373,7 +1373,7 @@
?: ?=($ur -.bil)
(dy-eyre /hand p.bil [q.bil %get ~ ~])
%- dy-ford
^- [path schematic:ford-api]
^- [path schematic:ford]
?- -.bil
$ge (dy-silk-config (dy-cage p.p.p.bil) q.p.bil)
$dv [/hand [%core [he-disc (weld /hoon (flop p.bil))]]]
@ -1419,13 +1419,13 @@
::
++ dy-mare :: build expression
|= gen/hoon
^- schematic:ford-api
^- schematic:ford
=+ too=(dy-hoon-mark gen)
=- ?~(too - [%cast he-disc u.too -])
:+ %ride gen
:- [%$ dy-hoon-head]
:^ %plan he-rail `coin`blob+**
`scaffold:ford-api`[he-rail zuse sur lib ~ ~]
`scaffold:ford`[he-rail zuse sur lib ~ ~]
::
++ dy-step :: advance project
|= nex/@ud
@ -1544,7 +1544,7 @@
|= $: way=wire
date=@da
$= result
$% [%complete build-result=build-result:ford-api]
$% [%complete build-result=build-result:ford]
[%incomplete =tang]
== ==
^+ +>
@ -1559,7 +1559,7 @@
::
%success
::
%. (result-to-cage:ford-api build-result.result)
%. (result-to-cage:ford build-result.result)
=+ dye=~(. dy u.poy(pux ~))
?+ way !!
{$hand $~} dy-hand:dye

File diff suppressed because it is too large Load Diff

View File

@ -61,7 +61,7 @@
?> =(src our)
=> |% :: arvo structures
++ card ::
$% {$exec wire @p $~ {beak silk:ford}} ::
$% {$build wire @p ? schematic:ford} ::
{$drop wire @p @tas} ::
{$info wire @p @tas nori} ::
{$mont wire @tas beam} ::
@ -287,17 +287,20 @@
|= {way/wire are/(each (set path) (pair term tang))}
abet:abet:(mere:(take way) are)
::
++ take-made ::
|= {way/wire dep/@uvH reg/gage:ford}
:: hack for |overload
::
:: We might have gotten an ignorable response back for our cache priming
:: ford call. If it matches our magic wire, ignore it.
::
?: =(/prime/cache way)
~& %cache-primed
abet
abet:abet:(made:(take way) dep reg)
++ made
|= [date=@da result=made-result:ford]
abet
:: ++ take-made ::
:: |= {way/wire dep/@uvH reg/gage:ford}
:: :: hack for |overload
:: ::
:: :: We might have gotten an ignorable response back for our cache priming
:: :: ford call. If it matches our magic wire, ignore it.
:: ::
:: ?: =(/prime/cache way)
:: ~& %cache-primed
:: abet
:: abet:abet:(made:(take way) dep reg)
::
++ take-coup-fancy ::
|= {way/wire saw/(unit tang)}
@ -342,23 +345,25 @@
|= {way/wire $~}
?> ?=({@ $~} way)
=+ tym=(slav %dr i.way)
:: this builds up a ford build for the front page to prime the cache.
=. +>.$
=/ request-data :~
[0 [0 8.080] 0 'localhost' ~]
:: associate 0 as the anonymous ship, which is the ++add result.
[[0 (scot %p (add our ^~((bex 64))))] ~ ~]
'not-yet-implemented'
`'en-US,en;q=0.9'
`.127.0.0.1
==
=/ monies/coin [%many ~[[%blob request-data] [%$ ~.n 0]]]
=/ request/silk:ford [%bake %urb monies [our %home [%da now]] /web]
(emit `card`[%exec /kiln/prime/cache our `[[our %home [%da now]] request]])
=. +>.$
(emit %wipe /kiln/overload/[i.way] our ~)
=. +>.$
(emit %wait /kiln/overload/[i.way] (add tym now))
:: TODO: Cache priming doesn't actually work yet.
::
:: :: this builds up a ford build for the front page to prime the cache.
:: =. +>.$
:: =/ request-data :~
:: [0 [0 8.080] 0 'localhost' ~]
:: :: associate 0 as the anonymous ship, which is the ++add result.
:: [[0 (scot %p (add our ^~((bex 64))))] ~ ~]
:: 'not-yet-implemented'
:: `'en-US,en;q=0.9'
:: `.127.0.0.1
:: ==
:: =/ monies/coin [%many ~[[%blob request-data] [%$ ~.n 0]]]
:: =/ request/silk:ford [%bake %urb monies [our %home [%da now]] /web]
:: (emit `card`[%exec /kiln/prime/cache our `[[our %home [%da now]] request]])
:: =. +>.$
:: (emit %wipe /kiln/overload/[i.way] our ~)
:: =. +>.$
:: (emit %wait /kiln/overload/[i.way] (add tym now))
abet
::
++ spam
@ -484,29 +489,29 @@
p.res
(ford-fail p.res)
::
++ gage-to-cages
|= gag/gage:ford ^- (list (pair cage cage))
(unwrap-tang (gage-to-tage gag))
::
++ gage-to-tage
|= gag/gage:ford
^- (each (list (pair cage cage)) tang)
?. ?=($tabl -.gag)
(mule |.(`$~`(ford-fail >%strange-gage< ~)))
=< ?+(. [%& .] {@ *} .)
|- ^- ?((list {cage cage}) (each $~ tang))
?~ p.gag ~
?- -.p.i.p.gag
$tabl (mule |.(`$~`(ford-fail >%strange-gage< ~)))
$| (mule |.(`$~`(ford-fail p.p.i.p.gag)))
$&
?- -.q.i.p.gag
$tabl (mule |.(`$~`(ford-fail >%strange-gage< ~)))
$| (mule |.(`$~`(ford-fail p.q.i.p.gag)))
$& =+ $(p.gag t.p.gag)
?+(- [[p.p p.q]:i.p.gag -] {@ *} -)
==
==
:: ++ gage-to-cages
:: |= gag/gage:ford ^- (list (pair cage cage))
:: (unwrap-tang (gage-to-tage gag))
:: ::
:: ++ gage-to-tage
:: |= gag/gage:ford
:: ^- (each (list (pair cage cage)) tang)
:: ?. ?=($tabl -.gag)
:: (mule |.(`$~`(ford-fail >%strange-gage< ~)))
:: =< ?+(. [%& .] {@ *} .)
:: |- ^- ?((list {cage cage}) (each $~ tang))
:: ?~ p.gag ~
:: ?- -.p.i.p.gag
:: $tabl (mule |.(`$~`(ford-fail >%strange-gage< ~)))
:: $| (mule |.(`$~`(ford-fail p.p.i.p.gag)))
:: $&
:: ?- -.q.i.p.gag
:: $tabl (mule |.(`$~`(ford-fail >%strange-gage< ~)))
:: $| (mule |.(`$~`(ford-fail p.q.i.p.gag)))
:: $& =+ $(p.gag t.p.gag)
:: ?+(- [[p.p p.q]:i.p.gag -] {@ *} -)
:: ==
:: ==
::
++ perform ::
^+ .
@ -544,75 +549,82 @@
++ mere
|= are/(each (set path) (pair term tang))
^+ +>
?: =(%meld gem)
?: ?=($& -.are)
?. auto
=+ "merged with strategy {<gem>}"
win:(spam leaf+- ?~(p.are ~ [>`(set path)`p.are< ~]))
:: ~? > =(~ p.are) [%mere-no-conflict syd]
=+ "mashing conflicts"
=> .(+>.$ (spam leaf+- ~))
=+ tic=(cat 3 syd '-scratch')
%- blab :_ ~
:* ost %exec /kiln/[syd]
our ~ [our tic %da now] %tabl
^- (list (pair silk:ford silk:ford))
:: ~& > kiln-mashing+[p.are syd=syd +<.abet]
%+ turn ~(tap in p.are)
|= pax/path
^- (pair silk:ford silk:ford)
:- [%$ %path -:!>(*path) pax]
=+ base=[%file [our tic %da now] (flop pax)]
=+ alis=[%file [her sud cas] (flop pax)]
=+ bobs=[%file [our syd %da now] (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 meld"
lose:(spam leaf+- >p.p.are< q.p.are)
?: ?=($& -.are)
=+ "merged with strategy {<gem>}"
win:(spam leaf+- ?~(p.are ~ [>`(set path)`p.are< ~]))
?. auto
=+ "failed to merge with strategy {<gem>}"
lose:(spam leaf+- >p.p.are< 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+-> q.p.are)]
(fancy-merge tic our syd %init)
==
~& %todo-renable-mere
+>
:: ?: =(%meld gem)
:: ?: ?=($& -.are)
:: ?. auto
:: =+ "merged with strategy {<gem>}"
:: win:(spam leaf+- ?~(p.are ~ [>`(set path)`p.are< ~]))
:: :: ~? > =(~ p.are) [%mere-no-conflict syd]
:: =+ "mashing conflicts"
:: => .(+>.$ (spam leaf+- ~))
:: =+ tic=(cat 3 syd '-scratch')
:: %- blab :_ ~
:: :* ost %build /kiln/[syd] our live=%.n
:: :: our ~ [our tic %da now] %tabl
:: ^- schematic:ford
:: :- %list
:: ^- (list schematic:ford)
:: :: ~& > kiln-mashing+[p.are syd=syd +<.abet]
:: %+ turn ~(tap in p.are)
:: |= pax/path
:: ^- [schematic:ford schematic:ford]
:: :- [%$ %path -:!>(*path) pax]
:: =+ base=[%pin [%scry [[our tic] (flop pax)]]]
:: :: =+ base=[%file [our tic %da now] (flop pax)]
:: ?> ?=([%da @] cas)
:: =+ alis=[%pin p.cas [%scry [[our syd] (flop pax)]]]
:: :: =+ alis=[%file [her sud cas] (flop pax)]
:: =+ bobs=[%file [our syd %da now] (flop pax)]
:: =+ dali=[%diff base alis]
:: =+ dbob=[%diff base bobs]
:: =+ ^- for/mark
:: =+ (slag (dec (lent pax)) pax)
:: ?~(- %$ i.-)
:: [%mash [our tic] for [her sud dali] [our syd dbob]]
:: ==
:: =+ "failed to merge with strategy meld"
:: lose:(spam leaf+- >p.p.are< q.p.are)
:: ?: ?=($& -.are)
:: =+ "merged with strategy {<gem>}"
:: win:(spam leaf+- ?~(p.are ~ [>`(set path)`p.are< ~]))
:: ?. auto
:: =+ "failed to merge with strategy {<gem>}"
:: lose:(spam leaf+- >p.p.are< 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+-> q.p.are)]
:: (fancy-merge tic our syd %init)
:: ==
::
++ tape-to-tanks
|= a/tape ^- (list tank)
@ -624,54 +636,63 @@
(welp (tape-to-tanks "\0a{c}{a}") >b< ~)
::
++ made
|= {dep/@uvH reg/gage:ford}
|= [date=@da result=made-result:ford]
:: |= {dep/@uvH reg/gage:ford}
^+ +>
?: ?=($| -.reg)
=+ "failed to mash"
lose:(spam leaf+- p.reg)
=+ ^- can/(list (pair path (unit miso)))
%+ turn (gage-to-cages 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])]
:: ~& > kiln-made+[(turn can head) syd=syd +<.abet]
=+ notated=(skid can |=({path a/(unit miso)} ?=(^ a)))
=+ annotated=(turn `(list (pair path *))`-.notated head)
=+ unnotated=(turn `(list (pair path *))`+.notated head)
=+ `desk`(cat 3 syd '-scratch')
=+ ^- tan/(list tank)
%- zing
^- (list (list tank))
:~ %- tape-to-tanks
"""
done setting up scratch space in {<[-]>}
please resolve the following conflicts and run
|merge {<syd>} our {<[-]>}
"""
%^ tanks-if-any
"annotated conflicts in:" annotated
""
%^ tanks-if-any
"unannotated conflicts in:" unnotated
"""
some conflicts could not be annotated.
for these, the scratch space contains
the most recent common ancestor of the
conflicting content.
~& %todo-reenable-made
+>
:: ::
:: ?. ?=([%complete %success *] result)
:: =+ "failed to mash"
:: lose:(spam leaf+- p.reg)
:: ?> ?=([%complete %success %list *] result)
:: =+ ^- can/(list (pair path (unit miso)))
:: %+ turn results.build-result.result
:: |= res=build-result
:: ^- (pair path (unit miso))
:: ?> ?=(%$ -.res)
:: =+ pax=(result-to-cage:ford head.res)
:: =+ dif=(result-to-cage:ford tail.res)
:: ::
:: ?. ?=($path p.pax)
:: ~| "strange path mark: {<p.pax>}"
:: !!
:: [((hard path) q.q.pax) ?:(?=($null p.dif) ~ `[%dif dif])]
:: :: ~& > kiln-made+[(turn can head) syd=syd +<.abet]
:: =+ notated=(skid can |=({path a/(unit miso)} ?=(^ a)))
:: =+ annotated=(turn `(list (pair path *))`-.notated head)
:: =+ unnotated=(turn `(list (pair path *))`+.notated head)
:: =+ `desk`(cat 3 syd '-scratch')
:: =+ ^- tan/(list tank)
:: %- zing
:: ^- (list (list tank))
:: :~ %- tape-to-tanks
:: """
:: done setting up scratch space in {<[-]>}
:: please resolve the following conflicts and run
:: |merge {<syd>} our {<[-]>}
:: """
:: %^ tanks-if-any
:: "annotated conflicts in:" annotated
:: ""
:: %^ tanks-if-any
:: "unannotated conflicts in:" unnotated
:: """
:: some conflicts could not be annotated.
:: for these, the scratch space contains
:: the most recent common ancestor of the
:: conflicting content.
"""
==
=< win
%- blab:(spam tan)
:_ ~
:* ost %info /kiln/[syd] our
(cat 3 syd '-scratch') %&
%+ murn can
|= {p/path q/(unit miso)}
`(unit (pair path miso))`?~(q ~ `[p u.q])
==
:: """
:: ==
:: =< win
:: %- blab:(spam tan)
:: :_ ~
:: :* ost %info /kiln/[syd] our
:: (cat 3 syd '-scratch') %&
:: %+ murn can
:: |= {p/path q/(unit miso)}
:: `(unit (pair path miso))`?~(q ~ `[p u.q])
:: ==
--
--

View File

@ -16,7 +16,7 @@
::
|%
++ data $%({$json json} {$mime mime})
++ card $% {$exec wire @p $~ {beak silk:ford}}
++ card $% {$build wire @p ? schematic:ford}
{$info wire @p toro:clay}
==
--
@ -126,21 +126,34 @@
::
++ poke--data
|= {{ext/(unit @t) pax/path} dat/data} ^+ abet
?~ ext $(ext [~ -.dat])
=+ cay=?-(-.dat $json [-.dat !>(+.dat)], $mime [-.dat !>(+.dat)])
?: =(u.ext -.dat)
(made pax ~ &+cay)
=< abet
%^ emit %exec write+pax :: XX defer %nice
[our ~ beak-now %cast u.ext $+cay]
abet
:: ?~ ext $(ext [~ -.dat])
:: =+ cay=?-(-.dat $json [-.dat !>(+.dat)], $mime [-.dat !>(+.dat)])
:: ?: =(u.ext -.dat)
:: (made pax ~ &+cay)
:: =< abet
:: %^ emit %build write+pax live=%.n :: XX defer %nice
:: ^- schematic:ford :: SYNTAX ERROR AT START OF LINE?
:: =/ =beak beak-now
:: [%cast [p q]:beak u.ext [%$ cay]]
::
++ made
|= {pax/wire @ res/gage:ford} ^+ abet
:: ?. =(our src)
:: ~|(foreign-write/[our=our src=src] !!)
?+ -.res ~|(gage+-.res !!)
$| (mean p.res)
$& =- abet:(emit %info write+~ our -)
(foal :(welp (en-beam beak-now ~) pax /[-.p.res]) p.res)
==
|= [pax=wire date=@da result=made-result:ford]
^+ abet
abet
:: :: |= {pax/wire @ res/gage:ford} ^+ abet
:: :: ?. =(our src)
:: :: ~|(foreign-write/[our=our src=src] !!)
:: ?: ?=(%incomplete -.result)
:: (mean tang.result)
:: ::
:: =/ build-result build-result.result.sih
:: ::
:: ?: ?=([%error *] build-result)
:: (mean message.build-result)
:: ::
:: =/ =cage (result-to-cage:ford build-result)
:: ::
:: =- abet:(emit %info write+~ our -)
:: (foal :(welp (en-beam beak-now ~) pax /[-.p.cage]) p.cage)
--

View File

@ -166,7 +166,6 @@
++ slur-e ~/(%slur-e |=({gat/vase hil/mill} =+(%e (slur gat hil))))
++ slur-f ~/(%slur-f |=({gat/vase hil/mill} =+(%f (slur gat hil))))
++ slur-g ~/(%slur-g |=({gat/vase hil/mill} =+(%g (slur gat hil))))
++ slur-t ~/(%slur-t |=({gat/vase hil/mill} =+(%t (slur gat hil))))
++ slur-z ~/(%slur-z |=({gat/vase hil/mill} =+(%z (slur gat hil))))
::
++ slur-pro :: profiling slur
@ -180,7 +179,6 @@
$e (slur-e gat hil)
$f (slur-f gat hil)
$g (slur-g gat hil)
$t (slur-t gat hil)
==
::
++ song :: reduce metacard

View File

@ -335,8 +335,8 @@
$: $d ::
$% {$flog p/{$crud p/@tas q/(list tank)}} :: to %dill
== == ::
$: $t ::
$% [%build our=@p live=? schematic=schematic:ford-api] ::
$: $f ::
$% [%build our=@p live=? schematic=schematic:ford] ::
== ==
$: $b ::
$% {$wait p/@da} ::
@ -353,8 +353,8 @@
{$mere p/(each (set path) (pair term tang))}
{$writ p/riot} ::
== == ::
$: $t ::
$% [%made date=@da result=made-result:ford-api] ::
$: $f ::
$% [%made date=@da result=made-result:ford] ::
== == ::
$: $b ::
$% {$wake $~} :: timer activate
@ -483,7 +483,7 @@
:: ++gage-to-success-cages?
::
++ made-result-to-cages
|= result=made-result:ford-api
|= result=made-result:ford
^- (list (pair cage cage))
(unwrap-tang (made-result-to-cages-or-error result))
::
@ -491,20 +491,19 @@
:: ++gage-to-cages?
::
++ made-result-to-success-cages
|= result=made-result:ford-api
|= result=made-result:ford
^- (list (pair cage cage))
?. ?=([%complete %success %list *] result)
(ford-fail >%strange-ford-result< ~)
:: process each row in the list, filtering out errors
::
%+ murn results.build-result.result
|= row=build-result:ford-api
|= row=build-result:ford
^- (unit [cage cage])
::
?. ?=([%success [%success *] [%success *]] row)
~
=, ford-api
`[(result-to-cage head.row) (result-to-cage tail.row)]
`[(result-to-cage:ford head.row) (result-to-cage:ford tail.row)]
::
:: Expects a single-level gage (i.e. a list of pairs of cages). If the
:: result is of a different form, or if some of the computations in the gage
@ -512,14 +511,14 @@
:: of cages.
::
++ made-result-to-cages-or-error
|= result=made-result:ford-api
|= result=made-result:ford
^- (each (list (pair cage cage)) tang)
::
?: ?=([%incomplete *] result)
(mule |.(`$~`(ford-fail tang.result)))
?. ?=([%complete %success %list *] result)
(mule |.(`$~`(ford-fail >%strange-ford-result -.build-result.result< ~)))
=/ results=(list build-result:ford-api)
=/ results=(list build-result:ford)
results.build-result.result
=< ?+(. [%& .] {@ *} .)
|-
@ -535,8 +534,8 @@
::
=+ $(results t.results)
?: ?=([@ *] -) -
=, ford-api
[[(result-to-cage head.i.results) (result-to-cage tail.i.results)] -]
:_ -
[(result-to-cage:ford head.i.results) (result-to-cage:ford tail.i.results)]
::
:: Assumes the list of pairs of cages is actually a listified map of paths
:: to cages, and converts it to (map path cage) or a stack trace on error.
@ -597,7 +596,7 @@
(emit hen %give %writ ~ [p.mun q.mun syd] r.mun p.dat)
%- emit
:* hen %pass [%blab p.mun (scot q.mun) syd r.mun]
%t %build our live=%.n %pin
%f %build our live=%.n %pin
(case-to-date q.mun)
(lobe-to-schematic:ze [her syd] r.mun p.dat)
==
@ -812,9 +811,9 @@
+>.$
%- emit
^- move
:* hen %pass [%ergoing (scot %p her) syd ~] %t
:* hen %pass [%ergoing (scot %p her) syd ~] %f
%build our live=%.n %list
^- (list schematic:ford-api)
^- (list schematic:ford)
%+ turn `(list path)`mus
|= a/path
:- [%$ %path !>(a)]
@ -1130,8 +1129,8 @@
^- (list move)
:~ :* hen %pass
[%inserting (scot %p her) syd (scot %da wen) ~]
%t %build our live=%.n %pin wen %list
^- (list schematic:ford-api)
%f %build our live=%.n %pin wen %list
^- (list schematic:ford)
%+ turn ins
|= {pax/path mis/miso}
?> ?=($ins -.mis)
@ -1141,8 +1140,8 @@
==
:* hen %pass
[%diffing (scot %p her) syd (scot %da wen) ~]
%t %build our live=%.n %pin wen %list
^- (list schematic:ford-api)
%f %build our live=%.n %pin wen %list
^- (list schematic:ford)
%+ turn dif
|= {pax/path mis/miso}
?> ?=($dif -.mis)
@ -1153,9 +1152,9 @@
==
:* hen %pass
[%castifying (scot %p her) syd (scot %da wen) ~]
%t %build our live=%.n %pin wen %list
%f %build our live=%.n %pin wen %list
::~ [her syd %da wen] %tabl
^- (list schematic:ford-api)
^- (list schematic:ford)
%+ turn mut
|= {pax/path mis/miso}
?> ?=($mut -.mis)
@ -1230,7 +1229,7 @@
:: diffs and mutations), then we go ahead and run ++apply-edit.
::
++ take-inserting
|= {wen/@da res/made-result:ford-api}
|= {wen/@da res/made-result:ford}
^+ +>
?~ dok
~& %clay-take-inserting-unexpected-made +>.$
@ -1258,7 +1257,7 @@
:: insertions and mutations), then we go ahead and run ++apply-edit.
::
++ take-diffing
|= {wen/@da res/made-result:ford-api}
|= {wen/@da res/made-result:ford}
^+ +>
?~ dok
~& %clay-take-diffing-unexpected-made +>.$
@ -1289,7 +1288,7 @@
:: this is handled in ++take-mutating.
::
++ take-castify
|= {wen/@da res/made-result:ford-api}
|= {wen/@da res/made-result:ford}
^+ +>
?~ dok
~& %clay-take-castifying-unexpected-made +>.$
@ -1309,8 +1308,8 @@
%- emit
:* hen %pass
[%mutating (scot %p her) syd (scot %da wen) ~]
%t %build our live=%.n %pin wen %list
^- (list schematic:ford-api)
%f %build our live=%.n %pin wen %list
^- (list schematic:ford)
%+ turn cat
|= {pax/path cay/cage}
:- [%$ %path -:!>(*path) pax]
@ -1328,7 +1327,7 @@
:: ++apply-edit.
::
++ take-mutating
|= {wen/@da res/made-result:ford-api}
|= {wen/@da res/made-result:ford}
^+ +>
?~ dok
~& %clay-take-mutating-unexpected-made +>.$
@ -1405,12 +1404,12 @@
|= hat/(map path lobe)
^+ +>
%- emit
:* hen %pass [%patching (scot %p her) syd ~] %t
:* hen %pass [%patching (scot %p her) syd ~] %f
%build our live=%.n %list
^- (list schematic:ford-api)
^- (list schematic:ford)
%+ turn ~(tap by hat)
|= {a/path b/lobe}
^- schematic:ford-api
^- schematic:ford
:- [%$ %path-hash !>([a b])]
(lobe-to-schematic:ze [her syd] a b)
==
@ -1426,12 +1425,12 @@
:: mim in dok). The result is handled in ++take-ergo.
::
++ take-patch
|= res/made-result:ford-api
|= res/made-result:ford
^+ +>
:: ~& %taking-patch
?. ?=([%complete %success *] res)
=. dok ~
=* message (made-result-as-error:ford-api res)
=* message (made-result-as-error:ford res)
(print-to-dill '!' %rose [" " "" ""] leaf+"clay patch failed" message)
:: ~& %editing
=+ ^- sim/(list (pair path misu))
@ -1492,12 +1491,12 @@
:: ~& %forming-ergo
:: =- ~& %formed-ergo -
%- emit(dok ~)
:* hen %pass [%ergoing (scot %p her) syd ~] %t
:* hen %pass [%ergoing (scot %p her) syd ~] %f
%build our live=%.n %list
^- (list schematic:ford-api)
^- (list schematic:ford)
%+ turn ~(tap in sum)
|= a/path
^- schematic:ford-api
^- schematic:ford
:- [%$ %path !>(a)]
=+ b=(~(got by can) a)
?: ?=($del -.b)
@ -1518,7 +1517,7 @@
:: an %ergo card) to keep unix up-to-date. Send this to unix.
::
++ take-ergo
|= res/made-result:ford-api
|= res/made-result:ford
^+ +>
?: ?=([%incomplete *] res)
(print-to-dill '!' %rose [" " "" ""] leaf+"clay ergo failed" tang.res)
@ -1664,7 +1663,7 @@
%- emit
:* hen %pass
[%foreign-x (scot %p our) (scot %p her) syd car (scot cas) pax]
%t %build our live=%.n %pin
%f %build our live=%.n %pin
(case-to-date cas)
(vale-page [her syd] peg)
==
@ -1675,8 +1674,8 @@
:: purposes.
::
++ vale-page
|= [disc=disc:ford-api a=page]
^- schematic:ford-api
|= [disc=disc:ford a=page]
^- schematic:ford
?. ?=($hoon p.a) [%vale disc a]
?. ?=(@t q.a) [%dude |.(>%weird-hoon<) %ride [%zpzp ~] %$ *cage]
[%$ p.a [%atom %t ~] q.a]
@ -1686,15 +1685,15 @@
:: This completes the receiving of %x foreign data.
::
++ take-foreign-x
|= {car/care cas/case pax/path res/made-result:ford-api}
|= {car/care cas/case pax/path res/made-result:ford}
^+ +>
?> ?=(^ ref)
?. ?=([%complete %success *] res)
~| "validate foreign x failed"
=+ why=(made-result-as-error:ford-api res)
=+ why=(made-result-as-error:ford res)
~> %mean.|.(%*(. >[%plop-fail %why]< |1.+> why))
!!
=* as-cage `(result-to-cage:ford-api build-result.res)
=* as-cage `(result-to-cage:ford build-result.res)
wake(haw.u.ref (~(put by haw.u.ref) [car cas pax] as-cage))
::
:: When we get a %w foreign update, store this in our state.
@ -1773,9 +1772,9 @@
%- emit
:* hen %pass
[%foreign-plops (scot %p our) (scot %p her) syd lum ~]
%t %build our live=%.n %pin (case-to-date cas)
%f %build our live=%.n %pin (case-to-date cas)
%list
^- (list schematic:ford-api)
^- (list schematic:ford)
%+ turn ~(tap in pop)
|= a/plop
?- -.a
@ -1789,7 +1788,7 @@
:: state.
::
++ take-foreign-plops
|= {lem/(unit @da) res/made-result:ford-api}
|= {lem/(unit @da) res/made-result:ford}
^+ +>
?> ?=(^ ref)
?> ?=(^ nak.u.ref)
@ -2069,8 +2068,8 @@
:: Creates a schematic out of a page (which is a [mark noun]).
::
++ page-to-schematic
|= [disc=disc:ford-api a=page]
^- schematic:ford-api
|= [disc=disc:ford a=page]
^- schematic:ford
::
?. ?=($hoon p.a) [%volt disc a]
:: %hoon bootstrapping
@ -2079,15 +2078,15 @@
:: Creates a schematic out of a lobe (content hash).
::
++ lobe-to-schematic
|= [disc=disc:ford-api pax=path lob=lobe]
^- schematic:ford-api
|= [disc=disc:ford pax=path lob=lobe]
^- schematic:ford
::
=+ ^- hat/(map path lobe)
?: =(let.dom 0)
~
q:(aeon-to-yaki let.dom)
=+ lol=`(unit lobe)`?.(=(~ ref) `0vsen.tinel (~(get by hat) pax))
|- ^- schematic:ford-api
|- ^- schematic:ford
?: =([~ lob] lol)
=+ (need (need (read-x let.dom pax)))
?> ?=($& -<)
@ -2750,7 +2749,7 @@
:: we're in, and call the appropriate function for that stage.
::
++ route
|= {sat/term res/(each riot made-result:ford-api)}
|= {sat/term res/(each riot made-result:ford)}
^+ +>.$
?. =(sat wat.dat)
~| :* %hold-your-horses-merge-out-of-order
@ -3037,11 +3036,11 @@
:* hen %pass
=+ (cat 3 %diff- nam)
[%merge (scot %p p.bob) q.bob (scot %p p.ali) q.ali - ~]
%t %build p.bob live=%.n %pin (case-to-date r.oth) %list
^- (list schematic:ford-api)
%f %build p.bob live=%.n %pin (case-to-date r.oth) %list
^- (list schematic:ford)
%+ murn ~(tap by q.bas.dat)
|= {pax/path lob/lobe}
^- (unit schematic:ford-api)
^- (unit schematic:ford)
=+ a=(~(get by q.yak) pax)
?~ a
~
@ -3068,7 +3067,7 @@
:: call ++diff-bob.
::
++ diffed-ali
|= res/made-result:ford-api
|= res/made-result:ford
^+ +>
=+ tay=(made-result-to-cages-or-error res)
?: ?=($| -.tay)
@ -3116,7 +3115,7 @@
:: call ++merge.
::
++ diffed-bob
|= res/made-result:ford-api
|= res/made-result:ford
^+ +>
=+ tay=(made-result-to-cages-or-error res)
?: ?=($| -.tay)
@ -3166,11 +3165,11 @@
%- emit(wat.dat %merge)
:* hen %pass
[%merge (scot %p p.bob) q.bob (scot %p p.ali) q.ali %merge ~]
%t %build p.bob live=%.n %list
^- (list schematic:ford-api)
%f %build p.bob live=%.n %list
^- (list schematic:ford)
%+ turn ~(tap by (~(int by can.dal.dat) can.dob.dat))
|= {pax/path *}
^- schematic:ford-api
^- schematic:ford
=+ cal=(~(got by can.dal.dat) pax)
=+ cob=(~(got by can.dob.dat) pax)
=+ ^= her
@ -3184,7 +3183,7 @@
:: Put merged changes in bof.dat and call ++build.
::
++ merged
|= res/made-result:ford-api
|= res/made-result:ford
=+ tay=(made-result-to-cages-or-error res)
?: ?=($| -.tay)
(error:he %merge-bad-made leaf+"merging failed" p.tay)
@ -3206,11 +3205,11 @@
%- emit(wat.dat %build)
:* hen %pass
[%merge (scot %p p.bob) q.bob (scot %p p.ali) q.ali %build ~]
%t %build p.bob live=%.n %list
^- (list schematic:ford-api)
%f %build p.bob live=%.n %list
^- (list schematic:ford)
%+ murn ~(tap by bof.dat)
|= {pax/path cay/(unit cage)}
^- (unit schematic:ford-api)
^- (unit schematic:ford)
?~ cay
~
:- ~
@ -3232,7 +3231,7 @@
:: Sum all the changes into a new commit (new.dat), and checkout.
::
++ built
|= res/made-result:ford-api
|= res/made-result:ford
^+ +>
=+ tay=(made-result-to-cages-or-error res)
?: ?=($| -.tay)
@ -3352,12 +3351,12 @@
%- emit(wat.dat %checkout)
:* hen %pass
[%merge (scot %p p.bob) q.bob (scot %p p.ali) q.ali %checkout ~]
%t %build p.bob live=%.n %pin (case-to-date r.val) %list
%f %build p.bob live=%.n %pin (case-to-date r.val) %list
:: ~ val %tabl
^- (list schematic:ford-api)
^- (list schematic:ford)
%+ murn ~(tap by q.new.dat)
|= {pax/path lob/lobe}
^- (unit schematic:ford-api)
^- (unit schematic:ford)
?: (~(has by bop.dat) pax)
~
`[[%$ %path !>(pax)] (merge-lobe-to-schematic:he [p q]:val pax lob)]
@ -3367,7 +3366,7 @@
:: some of the changes, call ++ergo.
::
++ checked-out
|= res/made-result:ford-api
|= res/made-result:ford
^+ +>
=+ tay=(made-result-to-cages-or-error res)
?: ?=($| -.tay)
@ -3410,11 +3409,11 @@
%- emit(wat.dat %ergo)
:* hen %pass
[%merge (scot %p p.bob) q.bob (scot %p p.ali) q.ali %ergo ~]
%t %build p.bob live=%.n %pin (case-to-date r.val) %list
^- (list schematic:ford-api)
%f %build p.bob live=%.n %pin (case-to-date r.val) %list
^- (list schematic:ford)
%+ turn ~(tap in sum)
|= a/path
^- schematic:ford-api
^- schematic:ford
:- [%$ %path !>(a)]
=+ b=(~(got by erg.dat) a)
?. b
@ -3427,7 +3426,7 @@
:: Tell unix about the changes made by the merge.
::
++ ergoed
|= res/made-result:ford-api
|= res/made-result:ford
^+ +>
=+ tay=(made-result-to-cages-or-error res)
?: ?=($| -.tay)
@ -3486,8 +3485,8 @@
:: We short-circuit if we already have the content somewhere.
::
++ merge-lobe-to-schematic
|= [disc=disc:ford-api pax=path lob=lobe]
^- schematic:ford-api
|= [disc=disc:ford pax=path lob=lobe]
^- schematic:ford
=+ hat=q.ali.dat
=+ hot=q.bob.dat
=+ ^= lal
@ -3495,7 +3494,7 @@
|= had/dome
(~(get by q:(tako-to-yaki (~(got by hit.had) let.had))) pax)
=+ lol=(~(get by hot) pax)
|- ^- schematic:ford-api
|- ^- schematic:ford
?: =([~ lob] lol)
=+ (need (need (read-x let.dom pax)))
?> ?=($& -<)
@ -3952,7 +3951,7 @@
?> ?=($made +<.q.hin)
?. ?=([%complete %success *] result.q.hin)
~| %blab-fail
~> %mean.|.((made-result-as-error:ford-api result.q.hin))
~> %mean.|.((made-result-as-error:ford result.q.hin))
!! :: interpolate ford fail into stack trace
:_ ..^$ :_ ~
:* hen %give %writ ~
@ -3960,7 +3959,7 @@
[i.t.tea ((hard case) +>:(slay i.t.t.tea)) i.t.t.t.tea]
::
`path`t.t.t.t.tea
`cage`(result-to-cage:ford-api build-result.result.q.hin)
`cage`(result-to-cage:ford build-result.result.q.hin)
==
?- -.+.q.hin
::

View File

@ -29,12 +29,12 @@
{$this p/? q/clip r/httq} :: proxied request
{$meta vase} :: type check
== == ::
$: $f ::
$% [%build our=@p live=? schematic=schematic:ford]
[%kill our=@p]
== ==
$: $g :: to %gall
$% {$deal p/sock q/cush:gall} :: full transmission
== ==
$: $t ::
$% [%build our=@p live=? schematic=schematic:ford-api]
[%kill our=@p]
== == == ::
++ sign :: in result $<-
$? $: $a :: by %ames
@ -50,8 +50,8 @@
$: $e :: by self
$% {$thou p/httr} :: response for proxy
== == ::
$: $t
$% [%made date=@da result=made-result:ford-api] ::
$: $f
$% [%made date=@da result=made-result:ford] ::
== ==
$: @tas :: by any
$% {$crud p/@tas q/(list tank)} ::
@ -791,7 +791,7 @@
:: ~& did-thud+[-.lid hen]
?- -.lid
$exec
(pass-note p.lid %t [%kill our])
(pass-note p.lid %f [%kill our])
::
$poll
?. (~(has by wix) p.lid)
@ -955,7 +955,7 @@
[%| tang.result.sih]
?: ?=([%complete %error *] result.sih)
[%| message.build-result.result.sih]
[%& [p q.q]:(result-to-cage:ford-api build-result.result.sih)]
[%& [p q.q]:(result-to-cage:ford build-result.result.sih)]
(ames-gram (slav %p p.tee) got-inner+~ (slav %uv q.tee) res)
::
{$ha *}
@ -964,7 +964,7 @@
(fail-turbo 404 tang.result.sih)
?: ?=([%complete %error *] result.sih)
(fail-turbo 404 message.build-result.result.sih)
=/ cay=cage (result-to-cage:ford-api build-result.result.sih)
=/ cay=cage (result-to-cage:ford build-result.result.sih)
?: ?=($red-quri p.cay)
=+ url=(apex:en-purl ((hard quri) q.q.cay))
(give-thou 307 [location+(crip url)]~ ~)
@ -988,7 +988,7 @@
?. ?=([%complete %success *] result.sih)
(give-turbo-sigh result.sih)
::
=/ cay/cage (result-to-cage:ford-api build-result.result.sih)
=/ cay/cage (result-to-cage:ford build-result.result.sih)
?> ?=($hiss p.cay)
?: =('~' p.tee)
(eyre-them tee q.cay)
@ -1004,7 +1004,7 @@
((slog tang.result.sih) +>.^$)
?: ?=([%complete %error *] result.sih)
((slog message.build-result.result.sih) +>.^$)
=/ cay=cage (result-to-cage:ford-api build-result.result.sih)
=/ cay=cage (result-to-cage:ford build-result.result.sih)
%+ get-rush:(ire-ix p.tee) q.tee
?> ?=($json p.cay) :: XX others
((hard json) q.q.cay)
@ -1051,7 +1051,7 @@
|= [tea=whir mar=mark cay=cage]
=/ disc [p q]:(norm-beak -.top)
%^ execute-turbo tea live=%.n
^- schematic:ford-api
^- schematic:ford
[%cast disc mar [%$ cay]]
::
++ cast-thou :: turbo
@ -1090,14 +1090,14 @@
+>.$
::
++ exec-turbo-live
|= [tea=whir req=schematic:ford-api]
|= [tea=whir req=schematic:ford]
=. lyv (~(put by lyv) hen [%exec tea])
(execute-turbo tea live=%.n req)
::
++ execute-turbo
|= [tea=whir live=? request=schematic:ford-api]
|= [tea=whir live=? request=schematic:ford]
%+ pass-note tea
:* %t %build our live
:* %f %build our live
[%dude [|.(+)]:[%leaf "eyre: execute {<tea>}"] request]
==
::
@ -1139,12 +1139,12 @@
[%tang !>(p.res)]
::
++ give-turbo-sigh
|= result=made-result:ford-api
|= result=made-result:ford
~& %give-turbo-sigh
=- +>.$(mow :_(mow [hen %give %sigh `cage`-]))
?: ?=(%incomplete -.result)
[%tang !>(tang.result)]
(result-to-cage:ford-api build-result.result)
(result-to-cage:ford build-result.result)
::
++ mean-json |=({sas/@uG err/ares} (give-json sas ~ (ares-to-json err)))
++ nice-json |=(* (give-json 200 ~ (frond:enjs %ok %b &)))
@ -1220,12 +1220,12 @@
~& [%bake pez]
%+ exec-turbo-live p.pez
^- schematic:ford-api
^- schematic:ford
:- %alts :~
^- schematic:ford-api
^- schematic:ford
[%bake q.pez r.pez [[p q] s]:s.pez]
::
^- schematic:ford-api
^- schematic:ford
[%bake %red-quri r.pez [[p q] s]:s.pez]
==
::
@ -1937,7 +1937,7 @@
++ self .
++ abet +>(sec (~(put by sec) +<- +<+))
++ execute-turbo
|= [wir=whir-se live=? schematic=schematic:ford-api]
|= [wir=whir-se live=? schematic=schematic:ford]
(execute-turbo:abet se+[wir usr dom] live schematic)
++ dead-this |=(a/tang (fail:abet 500 0v0 a))
++ dead-hiss |=(a/tang pump(req ~(nap to req), ..vi (give-sigh %| a)))
@ -1955,11 +1955,11 @@
++ build
%^ execute-turbo %core live=%.y
:::+ %dude [|.(+)]:>%mod-samp<
^- schematic:ford-api
^- schematic:ford
:+ %mute
^- schematic:ford-api
^- schematic:ford
[%core [[our %home] (flop %_(dom . sec+dom))]]
^- (list (pair wing schematic:ford-api))
^- (list (pair wing schematic:ford))
:* [[%& 12]~ %$ bale+!>(*(bale @))] :: XX specify on type?
?~ cor ~
?~ u.cor ~
@ -1974,7 +1974,7 @@
%^ execute-turbo arm live=%.n
call+[ride+[limb+arm prep-cor] [%$ sam]]
::
++ prep-cor ^- schematic:ford-api
++ prep-cor ^- schematic:ford
?~ cor ~|(%no-core !!)
?~ u.cor ~|(%nil-driver !!)
:+ %$ %core
@ -2028,7 +2028,7 @@
==
::
++ get-made
|= [wir/whir-se result=made-result:ford-api] ^+ abet
|= [wir/whir-se result=made-result:ford] ^+ abet
:: |= {wir/whir-se dep/@uvH res/(each cage tang)} ^+ abet
?: ?=($core wir) (made-core result)
%. result
@ -2040,12 +2040,12 @@
==
::
++ made-core
|= [result=made-result:ford-api]
|= [result=made-result:ford]
:: |= {dep/@uvH gag/(each cage tang)}
:: ~& got-update/dep
:: =. ..vi (pass-note %core [%f [%wasp our dep &]])
?: ?=([%complete %success *] result)
=/ =cage (result-to-cage:ford-api build-result.result)
=/ =cage (result-to-cage:ford build-result.result)
pump(cor `q:cage)
?: &(=(~ cor) =(%$ usr))
=. cor `~
@ -2116,8 +2116,8 @@
$(a t.a)
::
++ on-ford-fail
|= {err/$-(tang _abet) try/$-(made-result:ford-api _abet)}
|= a/made-result:ford-api ^+ abet
|= {err/$-(tang _abet) try/$-(made-result:ford _abet)}
|= a/made-result:ford ^+ abet
?: ?=(%incomplete -.a)
(err tang.a)
?: ?=(%error -.build-result.a)
@ -2126,13 +2126,13 @@
::
++ on-error
|= {err/$-(tang _abet) handle-move/_|.(|~(vase abet))}
|= a=made-result:ford-api ^+ abet
|= a=made-result:ford ^+ abet
=+ try=(possibly-stateful |=(b/_self (handle-move(+ b)))) :: XX types
?: ?=(%incomplete -.a)
(err tang.a)
?: ?=(%error -.build-result.a)
(err message.build-result.a)
=/ =cage (result-to-cage:ford-api build-result.a)
=/ =cage (result-to-cage:ford build-result.a)
=- ?-(-.- $& p.-, $| (err p.-))
(mule |.(~|(driver+dom ~|(bad-res+p.q.cage (try q.cage)))))
::

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +1,4 @@
!:
:: :: %gall, agent execution
!? 163
::::
@ -150,7 +151,7 @@
:: +mo-recieve-core: receives an app core built by ford-turbo
::
++ mo-recieve-core
|= [dap=dude byk=beak made-result=made-result:ford-api]
|= [dap=dude byk=beak made-result=made-result:ford]
^+ +>
::
?: ?=([%incomplete *] made-result)
@ -161,7 +162,7 @@
?: ?=([%error *] build-result)
(mo-give %onto %| message.build-result)
::
=/ result-cage=cage (result-to-cage:ford-api build-result)
=/ result-cage=cage (result-to-cage:ford build-result)
::
=/ app-data=(unit seat) (~(get by bum) dap)
?^ app-data
@ -206,7 +207,7 @@
^+ +>
%+ mo-pass [%sys %core dap (scot %p p.byk) q.byk (scot r.byk) ~]
^- note-arvo
[%t %build our live=%.y [%core [[p q]:byk [%hoon dap %app ~]]]]
[%f %build our live=%.y [%core [[p q]:byk [%hoon dap %app ~]]]]
::
++ mo-away :: foreign request
|= {him/ship caz/cush} ::
@ -306,14 +307,14 @@
^+ +>
?+ -.pax !!
$core
?> ?=([%t %made *] sih)
?> ?=([%f %made *] sih)
?> ?=({@ @ @ @ $~} t.pax)
(mo-recieve-core i.t.pax (mo-chew t.t.pax) result.sih)
::
%pel :: translated peer
?> ?=({@ $~} t.pax)
=+ mar=i.t.pax
?> ?=([%t %made *] sih)
?> ?=([%f %made *] sih)
::
?: ?=([%incomplete *] result.sih)
(mo-give %unto %coup `tang.result.sih)
@ -323,7 +324,7 @@
?: ?=([%error *] build-result)
(mo-give %unto %coup `message.build-result)
::
(mo-give %unto %diff (result-to-cage:ford-api build-result))
(mo-give %unto %diff (result-to-cage:ford build-result))
::
$red :: diff ack
?> ?=({@ @ @ $~} t.pax)
@ -343,7 +344,7 @@
::
%rep :: reverse request
?> ?=({@ @ @ $~} t.pax)
?> ?=([%t %made *] sih)
?> ?=([%f %made *] sih)
=+ :* him=(slav %p i.t.pax)
dap=i.t.t.pax
num=(slav %ud i.t.t.t.pax)
@ -361,7 +362,7 @@
::
:: "XX pump should ack"
=. +>.$ (mo-give %mack ~)
=* result-cage (result-to-cage:ford-api build-result)
=* result-cage (result-to-cage:ford build-result)
(mo-give(hen (mo-ball him num)) %unto %diff result-cage)
::
$req :: inbound request
@ -371,11 +372,17 @@
num=(slav %ud i.t.t.t.pax)
==
?: ?=({$f $made *} sih)
?- -.q.+>.sih
$tabl ~|(%made-tabl !!)
$| (mo-give %mack `p.q.+>.sih) :: XX should crash
$& (mo-pass [%sys pax] %g %deal [him our] i.t.t.pax %poke p.q.+>.sih)
==
?: ?=([%incomplete *] result.sih)
:: "XX should crash"
(mo-give %mack `tang.result.sih)
::
=/ build-result build-result.result.sih
::
?: ?=([%error *] build-result)
:: "XX should crash"
(mo-give %mack `message.build-result)
=/ cay/cage (result-to-cage:ford build-result)
(mo-pass [%sys pax] %g %deal [him our] i.t.t.pax %poke cay)
?: ?=({$a $woot *} sih) +>.$ :: quit ack, boring
?> ?=({$g $unto *} sih)
=+ cuf=`cuft`+>.sih
@ -391,7 +398,7 @@
%val :: inbound validate
?> ?=({@ @ $~} t.pax)
=+ [him=(slav %p i.t.pax) dap=i.t.t.pax]
?> ?=([%t %made *] sih)
?> ?=([%f %made *] sih)
::
?: ?=([%incomplete *] result.sih)
(mo-give %unto %coup `tang.result.sih)
@ -401,7 +408,7 @@
?: ?=([%error *] build-result)
(mo-give %unto %coup `message.build-result)
::
=* result-cage (result-to-cage:ford-api build-result)
=* result-cage (result-to-cage:ford build-result)
(mo-clip dap `prey`[%high ~ him] [%poke result-cage])
::
$way :: outbound request
@ -468,12 +475,12 @@
?: ?=($puff -.cub)
%+ mo-pass
[%sys %val (scot %p q.q.pry) dap ~]
[%t %build our live=%.n [%vale [p q]:(mo-beak dap) +.cub]]
[%f %build our live=%.n [%vale [p q]:(mo-beak dap) +.cub]]
?: ?=($punk -.cub)
%+ mo-pass
[%sys %val (scot %p q.q.pry) dap ~]
:* %t %build our live=%.n
^- schematic:ford-api
:* %f %build our live=%.n
^- schematic:ford
[%cast [p q]:(mo-beak dap) p.cub [%$ q.cub]]
==
?: ?=($peer-not -.cub)
@ -510,7 +517,7 @@
$d
%+ mo-pass
[%sys %rep (scot %p him) dap (scot %ud num) ~]
[%t %build our live=%.n [%vale [p q]:(mo-beak dap) p.ron q.ron]]
[%f %build our live=%.n [%vale [p q]:(mo-beak dap) p.ron q.ron]]
::
$x =. +> (mo-give %mack ~) :: XX should crash
(mo-give(hen (mo-ball him num)) %unto %quit ~)
@ -588,7 +595,7 @@
?: =(mar p.cay) [%give %unto p.q.cov]
:+ %pass
[%sys %pel dap ~]
[%t %build our live=%.n [%cast [p q]:(mo-beak dap) mar [%$ cay]]]
[%f %build our live=%.n [%cast [p q]:(mo-beak dap) mar [%$ cay]]]
::
$pass
:+ %pass `path`[%use dap p.q.cov]
@ -1213,12 +1220,11 @@
$crew `%c
$crow `%c
$deal `%g
$exec `%f
$build `%f
$kill `%f
$flog `%d
$drop `%c
$info `%c
%kill `%t
%build `%t
$merg `%c
$mont `%c
$nuke `%a
@ -1232,7 +1238,7 @@
$want `%a
$warp `%c
$well `%e
$wipe `%f :: XX cache clear
:: $wipe `%f :: XX cache clear
==
--
--

File diff suppressed because it is too large Load Diff

View File

@ -847,94 +847,9 @@
:: ::::
:::: ++ford :: (1f) build
:: ::::
++ ford ^?
|%
:: ::
:::: ++able:ford :: (1f1) arvo moves
:: ::::
++ able ^?
|%
++ gift :: out result <-$
$% {$made p/@uvH q/gage} :: computed result
{$mass p/mass} :: memory usage
{$news p/@uvH} :: fresh depends
== ::
++ task :: in request ->$
$% {$exec p/@p q/(unit bilk)} :: make / kill
{$wasp p/@p q/{@uvH ?}} :: depends ask / kill
{$wegh $~} :: report memory
{$wipe p/@p $~} :: clear cache
== ::
-- ::able
++ bilk (pair beak silk) :: sourced request
++ gage :: recursive cage+tang
$% {$& p/cage} :: success
{$| p/tang} :: error
{$tabl p/(list (pair gage gage))} :: table of results
== ::
++ hood :: assembly plan
$: zus/@ud :: zuse kelvin
sur/(list hoof) :: structures
lib/(list hoof) :: libraries
fan/(list horn) :: resources
src/(list hoop) :: program
== ::
++ hoof (trel ? term (unit (pair case ship))) :: resource reference
++ hoop :: source in hood
$% {$& p/hoon} :: direct hoon
{$| p/beam} :: resource location
== ::
++ hops :: XX late-bound path
$: pre/(unit tyke) ::
pof/(unit {p/@ud q/tyke}) ::
== ::
++ horn :: resource tree
$% {$fssg p/hoon} :: /~ twig by hand
{$fsbc p/hoon} :: /$ argument
{$fsbr p/(list horn)} :: /| options
{$fshx p/horn} :: /# insert dephash
{$fspt p/horn} :: /@ insert mod-time
{$fsts p/term q/horn} :: /= apply face
{$fsdt p/(list horn)} :: /. list
{$fscm p/(list (pair spur horn))} :: /, switch by path
{$fscn p/horn} :: /% propagate args
{$fspm p/(list mark) q/horn} :: /& translates
{$fscb p/horn} :: /_ homo map
{$fssm p/hoon q/horn} :: /; operate on
{$fscl p/hops q/horn} :: /: relative to
{$fskt p/hoon q/horn} :: /^ cast
{$fszp q/mark} :: /!mark/ eval value
{$fszy q/mark} :: /mark/ static/grow
== ::
++ milk (trel ship desk silk) :: sourced silk
++ silk :: construction layer
$^ {p/silk q/silk} :: cons
$% {$$ p/cage} :: literal
{$alts p/(list silk)} :: options
{$bake p/mark q/coin r/beam} :: local synthesis
{$bunt p/mark} :: example of mark
{$call p/silk q/silk} :: slam
{$cast p/mark q/silk} :: translate
{$core p/beam} :: build program
{$diff p/silk q/silk} :: diff
{$dude p/(trap tank) q/silk} :: error wrap
{$file p/beam} :: from clay
{$flag p/(set $@(@uvH beam)) q/silk} :: add dependencies
{$join 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/coin r/hood} :: structured assembly
{$reef $~} :: kernel reef
{$ride p/hoon q/silk} :: silk thru hoon
{$tabl p/(list (pair silk silk))} :: list
{$vale p/mark q/*} :: validate
{$volt p/(cask *)} :: unsafe add type
== ::
-- ::ford
:: |ford: build system vane interface
::
++ ford-api ^?
++ ford ^?
|%
:: |able:ford: ford's public +move interface
::
@ -5833,7 +5748,6 @@
gift:able:eyre
gift:able:ford
gift:able:gall
gift:able:ford-api
==
++ task-arvo :: in request ->$
$? task:able:ames
@ -5843,7 +5757,6 @@
task:able:eyre
task:able:ford
task:able:gall
task:able:ford-api
==
++ note-arvo :: out request $->
$? {@tas $meta vase}
@ -5854,7 +5767,6 @@
{$e task:able:eyre}
{$f task:able:ford}
{$g task:able:gall}
{$t task:able:ford-api}
== ==
++ sign-arvo :: in result $<-
$% {$a gift:able:ames}
@ -5865,7 +5777,6 @@
{$f gift:able:ford}
{$g gift:able:gall}
{$j gift:able:jael}
{$t gift:able:ford-api}
==
::
++ unix-task :: input from unix