2017-09-13 22:58:24 +03:00
|
|
|
!:::::
|
2016-11-24 07:25:07 +03:00
|
|
|
:: :: %ford, new execution control
|
|
|
|
!? 164
|
|
|
|
::::
|
2016-12-16 09:34:01 +03:00
|
|
|
|= pit/vase
|
2016-12-07 06:13:33 +03:00
|
|
|
=, ford
|
2016-12-02 22:34:07 +03:00
|
|
|
=, format
|
2016-11-24 07:25:07 +03:00
|
|
|
=> =~
|
|
|
|
:: structures
|
|
|
|
|%
|
|
|
|
++ heel path :: functional ending
|
|
|
|
++ move {p/duct q/(wind note gift:able)} :: local move
|
|
|
|
++ note :: out request $->
|
|
|
|
$% $: $c :: to %clay
|
2016-12-07 06:13:33 +03:00
|
|
|
$% {$warp p/sock q/riff:clay} ::
|
2016-11-24 07:25:07 +03:00
|
|
|
== == ::
|
|
|
|
$: $f :: to %ford
|
2016-12-07 06:13:33 +03:00
|
|
|
$% {$exec p/@p q/(unit bilk:ford)} ::
|
2016-11-24 07:25:07 +03:00
|
|
|
== == ::
|
|
|
|
$: $g :: to %gall
|
2016-12-07 06:13:33 +03:00
|
|
|
$% {$deal p/sock q/cush:gall} ::
|
2016-11-24 07:25:07 +03:00
|
|
|
== == == ::
|
|
|
|
++ sign :: in result $<-
|
|
|
|
$% $: $c :: by %clay
|
2016-12-07 06:13:33 +03:00
|
|
|
$% {$writ p/riot:clay} ::
|
2016-11-24 07:25:07 +03:00
|
|
|
== == ::
|
|
|
|
$: $f :: by %ford
|
2016-12-07 06:13:33 +03:00
|
|
|
$% {$made p/@uvH q/gage:ford} ::
|
2016-11-24 07:25:07 +03:00
|
|
|
== == ::
|
|
|
|
$: $g :: by %gall
|
2016-12-07 06:13:33 +03:00
|
|
|
$% {$unto p/cuft:gall} ::
|
2016-11-24 07:25:07 +03:00
|
|
|
== == == ::
|
|
|
|
-- ::
|
|
|
|
|% :: structures
|
|
|
|
++ axle :: all %ford state
|
|
|
|
$: $2 :: version for update
|
|
|
|
pol/(map ship baby) ::
|
|
|
|
== ::
|
|
|
|
++ baby :: state by ship
|
|
|
|
$: tad/{p/@ud q/(map @ud task)} :: tasks by number
|
|
|
|
dym/(map duct @ud) :: duct to task number
|
|
|
|
jav/(map * calx) :: cache
|
2017-10-14 01:57:15 +03:00
|
|
|
deh/deps :: dephash definitions
|
|
|
|
sup/(jug @uvH duct) :: hash listeners
|
|
|
|
out/(set beam) :: listening beams
|
|
|
|
== ::
|
|
|
|
++ deps ::
|
|
|
|
$: def/(map @uvH (set beam)) :: hash obligations
|
|
|
|
bak/(jug beam @uvH) :: update to hash
|
2016-11-24 07:25:07 +03:00
|
|
|
== ::
|
|
|
|
++ bolt :: gonadic edge
|
|
|
|
|* a/mold :: product clam
|
|
|
|
$: p/cafe :: cache
|
|
|
|
$= q ::
|
|
|
|
$% {$0 p/(set beam) q/a} :: depends+product
|
2016-12-07 06:13:33 +03:00
|
|
|
{$1 p/(set {van/vane ren/care:clay bem/beam tan/tang})} :: blocks
|
2016-11-24 07:25:07 +03:00
|
|
|
{$2 p/(set beam) q/tang} :: depends+error
|
|
|
|
== ::
|
2017-11-09 03:41:58 +03:00
|
|
|
== ::
|
2016-11-24 07:25:07 +03:00
|
|
|
++ burg :: gonadic rule
|
2017-09-12 02:19:55 +03:00
|
|
|
|* {a/mold b/mold} :: from and to
|
2016-11-24 07:25:07 +03:00
|
|
|
$-({c/cafe d/a} (bolt b)) ::
|
|
|
|
:: ::
|
|
|
|
++ cafe :: live cache
|
|
|
|
$: p/(set calx) :: used
|
|
|
|
q/(map * calx) :: cache
|
2017-10-14 01:57:15 +03:00
|
|
|
r/deps :: depends
|
2016-11-24 07:25:07 +03:00
|
|
|
== ::
|
|
|
|
:: ::
|
|
|
|
++ calm :: cache metadata
|
|
|
|
$: laz/@da :: last accessed
|
|
|
|
dep/(set beam) :: dependencies
|
|
|
|
== ::
|
|
|
|
++ calx :: concrete cache line
|
|
|
|
$% {$hood p/calm q/(pair beam cage) r/hood} :: compile
|
|
|
|
{$bake p/calm q/(pair mark beam) r/(unit vase)} :: load
|
|
|
|
{$boil p/calm q/(trel coin beam beam) r/vase} :: execute
|
|
|
|
{$path p/calm q/beam r/(unit beam)} :: -to/ transformation
|
|
|
|
{$slit p/calm q/{p/span q/span} r/span} :: slam type
|
|
|
|
{$slim p/calm q/{p/span q/twig} r/(pair span nock)}:: mint
|
|
|
|
{$slap p/calm q/{p/vase q/twig} r/vase} :: compute
|
|
|
|
{$slam p/calm q/{p/vase q/vase} r/vase} :: compute
|
|
|
|
== ::
|
|
|
|
++ task :: problem in progress
|
|
|
|
$: nah/duct :: cause
|
|
|
|
{bek/beak kas/silk} :: problem
|
|
|
|
keg/(map (pair term beam) cage) :: block results
|
2016-12-09 01:16:57 +03:00
|
|
|
kig/(set (trel vane care:clay beam)) :: blocks
|
2016-11-24 07:25:07 +03:00
|
|
|
== ::
|
|
|
|
++ gagl (list (pair gage gage)) ::
|
|
|
|
++ vane ?($a $b $c $d $e $f $g) ::
|
|
|
|
-- ::
|
|
|
|
|% ::
|
|
|
|
++ calf :: reduce calx
|
2017-09-13 22:58:24 +03:00
|
|
|
|* sem/* :: a typesystem hack
|
2016-11-24 07:25:07 +03:00
|
|
|
|= cax/calx
|
|
|
|
?+ sem !!
|
|
|
|
$hood ?>(?=($hood -.cax) r.cax)
|
|
|
|
$bake ?>(?=($bake -.cax) r.cax)
|
|
|
|
$boil ?>(?=($boil -.cax) r.cax)
|
|
|
|
$path ?>(?=($path -.cax) r.cax)
|
|
|
|
$slap ?>(?=($slap -.cax) r.cax)
|
|
|
|
$slam ?>(?=($slam -.cax) r.cax)
|
|
|
|
$slim ?>(?=($slim -.cax) r.cax)
|
|
|
|
$slit ?>(?=($slit -.cax) r.cax)
|
|
|
|
==
|
|
|
|
::
|
|
|
|
++ calk :: cache lookup
|
|
|
|
|= a/cafe ::
|
|
|
|
|= {b/@tas c/*} ::
|
|
|
|
^- {(unit calx) cafe} ::
|
|
|
|
=+ d=(~(get by q.a) [b c]) ::
|
|
|
|
?~ d [~ a] ::
|
|
|
|
[d a(p (~(put in p.a) u.d))] ::
|
|
|
|
:: ::
|
|
|
|
++ came ::
|
|
|
|
|= {a/cafe b/calx} :: cache install
|
|
|
|
^- cafe ::
|
|
|
|
a(q (~(put by q.a) [-.b q.b] b)) ::
|
|
|
|
:: ::
|
|
|
|
++ faun (flux |=(a/vase [%& %noun a])) :: vase to gage
|
2016-12-09 01:16:57 +03:00
|
|
|
++ flay :: unwrap gage to cage
|
2016-11-24 07:25:07 +03:00
|
|
|
|= {a/cafe b/gage} ^- (bolt cage)
|
|
|
|
?- -.b
|
|
|
|
$tabl (flaw a >%bad-marc< ~)
|
|
|
|
$| (flaw a p.b)
|
|
|
|
$& (fine a p.b)
|
|
|
|
==
|
|
|
|
::
|
|
|
|
++ fret :: lift error
|
|
|
|
|= a/(bolt gage) ^- (bolt gage)
|
|
|
|
?. ?=($2 -.q.a) a
|
|
|
|
[p.a [%0 p.q.a `gage`[%| q.q.a]]]
|
|
|
|
::
|
|
|
|
++ fine |* {a/cafe b/*} :: bolt from data
|
|
|
|
[p=`cafe`a q=[%0 p=*(set beam) q=b]] ::
|
|
|
|
++ flaw |= {a/cafe b/tang} :: bolt from error
|
|
|
|
[p=a q=[%2 p=*(set beam) q=b]] ::
|
|
|
|
++ flag :: beam into deps
|
|
|
|
|* {a/beam b/(bolt)} ::
|
|
|
|
?: ?=($1 -.q.b) b
|
|
|
|
=. p.q.b (~(put in p.q.b) a)
|
|
|
|
b
|
|
|
|
:: ::
|
|
|
|
++ flue |=(a/cafe (fine a ~)) :: cafe to empty
|
|
|
|
++ flux |* a/_* :: bolt lift (fmap)
|
|
|
|
|* {cafe _,.+<.a}
|
|
|
|
(fine +<- (a +<+))
|
|
|
|
::
|
|
|
|
++ lark :: filter arch names
|
|
|
|
|= {wox/$-(knot (unit @)) arc/arch}
|
|
|
|
^- (map @ knot)
|
|
|
|
%- ~(gas by *(map @ knot))
|
|
|
|
=| rac/(list (pair @ knot))
|
|
|
|
|- ^+ rac
|
|
|
|
?~ dir.arc rac
|
|
|
|
=. rac $(dir.arc l.dir.arc, rac $(dir.arc r.dir.arc))
|
|
|
|
=+ gib=(wox p.n.dir.arc)
|
|
|
|
?~(gib rac [[u.gib p.n.dir.arc] rac])
|
|
|
|
::
|
|
|
|
++ tack :: fold path to term
|
|
|
|
|= a/{i/term t/(list term)} ^- term
|
|
|
|
(rap 3 |-([i.a ?~(t.a ~ ['-' $(a t.a)])]))
|
|
|
|
::
|
|
|
|
++ tear :: split term
|
|
|
|
=- |=(a/term `(list term)`(fall (rush a (most hep sym)) /[a]))
|
|
|
|
sym=(cook crip ;~(plug low (star ;~(pose low nud))))
|
|
|
|
::
|
|
|
|
++ za :: per event
|
|
|
|
=| $: $: our/ship :: computation owner
|
|
|
|
hen/duct :: event floor
|
|
|
|
$: now/@da :: event date
|
|
|
|
eny/@ :: unique entropy
|
|
|
|
ska/sley :: system namespace
|
|
|
|
== ::
|
|
|
|
mow/(list move) :: pending actions
|
|
|
|
== ::
|
|
|
|
bay/baby :: all owned state
|
|
|
|
== ::
|
|
|
|
|%
|
2017-10-14 01:57:15 +03:00
|
|
|
++ this .
|
2016-11-24 07:25:07 +03:00
|
|
|
++ abet :: resolve
|
|
|
|
^- {(list move) baby}
|
|
|
|
[(flop mow) bay]
|
|
|
|
::
|
2017-10-14 01:57:15 +03:00
|
|
|
++ pass
|
|
|
|
|= {wir/wire noe/note} ^+ this
|
|
|
|
%_(+> mow :_(mow [hen %pass wir noe]))
|
2017-09-12 02:19:55 +03:00
|
|
|
::
|
|
|
|
++ deps-take :: take rev update
|
2017-10-14 01:57:15 +03:00
|
|
|
|= {ren/care:clay bem/beam sih/sign}
|
2017-09-12 02:19:55 +03:00
|
|
|
=< abet ^+ +>
|
|
|
|
?. ?=($writ &2.sih)
|
2017-11-09 03:41:58 +03:00
|
|
|
~|([%bad-dep &2.sih] !!)
|
|
|
|
?~ p.sih +> :: acknowledged
|
2017-10-14 01:57:15 +03:00
|
|
|
=. out.bay (~(del in out.bay) bem)
|
|
|
|
=/ des ~(tap in (~(get ju bak.deh.bay) bem))
|
2017-11-09 03:41:58 +03:00
|
|
|
|- ^+ this
|
|
|
|
?~ des this
|
|
|
|
%_ $
|
2017-10-14 01:57:15 +03:00
|
|
|
sup.bay (~(del by sup.bay) i.des)
|
2017-11-09 03:41:58 +03:00
|
|
|
des t.des
|
2017-10-14 01:57:15 +03:00
|
|
|
mow
|
2017-11-09 03:41:58 +03:00
|
|
|
%- weld :_ mow
|
2017-10-14 01:57:15 +03:00
|
|
|
%+ turn ~(tap in (~(get ju sup.bay) i.des))
|
|
|
|
|=(a/duct `move`[a %give %news i.des])
|
2017-09-12 02:19:55 +03:00
|
|
|
==
|
|
|
|
::
|
|
|
|
++ exec-cancel
|
|
|
|
=< abet ^+ .
|
2016-11-24 07:25:07 +03:00
|
|
|
=+ nym=(~(get by dym.bay) hen)
|
|
|
|
?~ nym :: XX should never
|
|
|
|
~& [%ford-mystery hen]
|
2017-11-09 03:41:58 +03:00
|
|
|
this
|
2016-11-24 07:25:07 +03:00
|
|
|
=+ tas=(need (~(get by q.tad.bay) u.nym))
|
2017-09-12 02:19:55 +03:00
|
|
|
abut:~(decamp zo [u.nym tas])
|
2016-11-24 07:25:07 +03:00
|
|
|
::
|
2017-09-12 02:19:55 +03:00
|
|
|
++ exec-start
|
2016-11-24 07:25:07 +03:00
|
|
|
|= kub/bilk
|
2017-09-12 02:19:55 +03:00
|
|
|
=< abet ^+ +>
|
2016-11-24 07:25:07 +03:00
|
|
|
=+ num=p.tad.bay
|
|
|
|
?< (~(has by dym.bay) hen)
|
|
|
|
=: p.tad.bay +(p.tad.bay)
|
|
|
|
dym.bay (~(put by dym.bay) hen num)
|
|
|
|
==
|
|
|
|
~(exec zo [num `task`[hen kub ~ ~]])
|
|
|
|
::
|
2017-09-12 02:19:55 +03:00
|
|
|
++ task-take
|
2016-12-07 06:13:33 +03:00
|
|
|
|= {num/@ud {van/vane ren/care:clay bem/beam} sih/sign}
|
2017-09-12 02:19:55 +03:00
|
|
|
=< abet ^+ +>
|
2016-11-24 07:25:07 +03:00
|
|
|
?: ?=({$unto $quit *} +.sih)
|
|
|
|
+>.$
|
|
|
|
=+ tus=(~(get by q.tad.bay) num)
|
|
|
|
?~ tus
|
|
|
|
~& [%ford-lost van num]
|
|
|
|
+>.$
|
2017-09-12 02:19:55 +03:00
|
|
|
(~(take zo [num u.tus]) [van ren bem] sih)
|
2016-11-24 07:25:07 +03:00
|
|
|
::
|
2017-10-14 01:57:15 +03:00
|
|
|
::+|
|
|
|
|
::
|
2017-09-12 02:19:55 +03:00
|
|
|
++ wasp :: get next revision
|
2016-11-24 07:25:07 +03:00
|
|
|
~% %ford-w ..is ~
|
|
|
|
|= {dep/@uvH ask/?}
|
2017-09-12 02:19:55 +03:00
|
|
|
=< abet ^+ +>
|
2017-10-14 01:57:15 +03:00
|
|
|
::
|
|
|
|
::
|
2016-11-24 07:25:07 +03:00
|
|
|
?: =(`@`0 dep)
|
|
|
|
~&(dep-empty+hen +>.$)
|
|
|
|
?: =(dep 0vtest) :: upstream testing
|
|
|
|
+>.$(mow ?.(ask mow :_(mow [hen %give %news dep])))
|
2017-09-12 02:19:55 +03:00
|
|
|
::
|
2017-10-14 01:57:15 +03:00
|
|
|
?. (~(has by def.deh.bay) dep)
|
|
|
|
~&([%wasp-unknown dep] this)
|
|
|
|
=/ bes (~(got by def.deh.bay) dep)
|
2017-09-12 02:19:55 +03:00
|
|
|
::
|
2017-10-14 01:57:15 +03:00
|
|
|
|^ ?:(ask start cancel)
|
2017-09-12 02:19:55 +03:00
|
|
|
++ start
|
2017-10-14 01:57:15 +03:00
|
|
|
^+ this
|
|
|
|
?: (~(has by sup.bay) dep)
|
|
|
|
this(sup.bay (~(put ju sup.bay) dep hen))
|
|
|
|
=. sup.bay (~(put ju sup.bay) dep hen)
|
2017-09-12 02:19:55 +03:00
|
|
|
::
|
2017-10-14 01:57:15 +03:00
|
|
|
=> .(bes ~(tap in bes))
|
|
|
|
|- ^+ this
|
|
|
|
?~ bes this
|
|
|
|
:: already sent
|
|
|
|
?: (~(has in out.bay) i.bes) $(bes t.bes)
|
|
|
|
%_ $
|
|
|
|
out.bay (~(put in out.bay) i.bes)
|
|
|
|
bes t.bes
|
|
|
|
mow :_(mow [hen (pass-warp %z i.bes &)])
|
|
|
|
==
|
|
|
|
::
|
|
|
|
++ cancel
|
|
|
|
^+ this
|
|
|
|
=. sup.bay (~(del ju sup.bay) dep hen)
|
|
|
|
?^ sup.bay :: other listeners exist
|
|
|
|
this
|
|
|
|
=> .(bes ~(tap in bes))
|
|
|
|
|- ^+ this
|
|
|
|
?~ bes this
|
2017-11-10 00:08:54 +03:00
|
|
|
?. (~(has in out.bay) i.bes)
|
|
|
|
:: already cancelled
|
|
|
|
::REVIEW assert instead?
|
2017-10-14 01:57:15 +03:00
|
|
|
$(bes t.bes)
|
|
|
|
?: (~(any in (~(get ju bak.deh.bay) i.bes)) ~(has by sup.bay))
|
|
|
|
::REVIEW performance questionable
|
|
|
|
:: if any other dep cares about this beam, stay subscribed
|
|
|
|
$(bes t.bes)
|
|
|
|
%_ $
|
|
|
|
out.bay (~(del in out.bay) i.bes)
|
|
|
|
bes t.bes
|
|
|
|
mow :_(mow [hen (pass-warp %z i.bes |)])
|
2017-09-12 02:19:55 +03:00
|
|
|
==
|
|
|
|
--
|
2016-11-24 07:25:07 +03:00
|
|
|
::
|
2017-10-14 01:57:15 +03:00
|
|
|
++ pass-warp
|
|
|
|
|= {ren/care:clay bem/beam ask/?}
|
2017-11-09 01:06:45 +03:00
|
|
|
:: ~& warp+[(en-beam bem) ask]
|
2017-10-14 01:57:15 +03:00
|
|
|
:+ %pass [(scot %p our) ren (en-beam bem)]
|
|
|
|
[%c [%warp [our p.bem] q.bem ?.(ask ~ `[%next ren r.bem (flop s.bem)])]]
|
|
|
|
::
|
|
|
|
::
|
2016-11-24 07:25:07 +03:00
|
|
|
++ zo
|
|
|
|
~% %ford-z ..is ~
|
2017-09-12 02:19:55 +03:00
|
|
|
=| dyv/@ :: recursion level
|
2016-11-24 07:25:07 +03:00
|
|
|
|_ {num/@ud task}
|
2017-09-12 02:19:55 +03:00
|
|
|
++ abet :: store a blocked task
|
|
|
|
%_(..zo q.tad.bay (~(put by q.tad.bay) num +<+))
|
|
|
|
::
|
|
|
|
++ abut :: remove a task
|
2016-12-16 09:34:01 +03:00
|
|
|
%_ ..zo
|
2016-11-24 07:25:07 +03:00
|
|
|
q.tad.bay (~(del by q.tad.bay) num)
|
|
|
|
dym.bay (~(del by dym.bay) nah)
|
|
|
|
==
|
2017-09-12 02:19:55 +03:00
|
|
|
::
|
|
|
|
++ decamp :: stop requests
|
2016-11-24 07:25:07 +03:00
|
|
|
^+ .
|
2017-02-13 22:58:49 +03:00
|
|
|
=+ kiz=~(tap in kig)
|
2016-11-24 07:25:07 +03:00
|
|
|
|- ^+ +>
|
|
|
|
?~ kiz +>
|
|
|
|
$(kiz t.kiz, mow :_(mow [hen (cancel i.kiz)]))
|
|
|
|
::
|
|
|
|
++ cancel :: stop a request
|
2016-12-07 06:13:33 +03:00
|
|
|
|= {van/vane ren/care:clay bem/beam}
|
2016-11-24 07:25:07 +03:00
|
|
|
^- (wind note gift:able)
|
|
|
|
?+ van ~|(stub-cancel+van !!)
|
|
|
|
$c [%pass (camp-wire +<) van [%warp [our p.bem] q.bem ~]]
|
|
|
|
$g [%pass (camp-wire +<) van [%deal [our p.bem] q.bem [%pull ~]]]
|
|
|
|
==
|
2017-09-12 02:19:55 +03:00
|
|
|
::
|
2016-11-24 07:25:07 +03:00
|
|
|
++ camp-wire :: encode block
|
2016-12-07 06:13:33 +03:00
|
|
|
|= {van/vane ren/care:clay bem/beam} ^- wire
|
2016-12-02 22:34:07 +03:00
|
|
|
[(scot %p our) (scot %ud num) van ren (en-beam bem)]
|
2016-11-24 07:25:07 +03:00
|
|
|
::
|
2017-09-12 02:19:55 +03:00
|
|
|
++ camp :: request data
|
2016-12-07 06:13:33 +03:00
|
|
|
|= {van/vane ren/care:clay bem/beam}
|
2016-11-24 07:25:07 +03:00
|
|
|
^+ +>
|
|
|
|
~& >> [%camping van ren bem]
|
|
|
|
%_ +>.$
|
|
|
|
kig (~(put in kig) +<)
|
|
|
|
mow
|
|
|
|
:_ mow
|
|
|
|
:- hen
|
|
|
|
?+ van ~&(%camp-stub !!)
|
|
|
|
$g
|
2017-09-12 02:19:55 +03:00
|
|
|
=/ tyl/path
|
|
|
|
?. ?=($x ren)
|
|
|
|
s.bem
|
|
|
|
?> ?=(^ s.bem)
|
|
|
|
t.s.bem
|
|
|
|
::
|
|
|
|
:+ %pass (camp-wire +<.$)
|
2016-11-24 07:25:07 +03:00
|
|
|
[%g [%deal [our p.bem] q.bem [%peer %scry ren (flop tyl)]]]
|
|
|
|
::
|
|
|
|
$c
|
2017-09-12 02:19:55 +03:00
|
|
|
:+ %pass (camp-wire +<.$)
|
2016-11-24 07:25:07 +03:00
|
|
|
[%c [%warp [our p.bem] q.bem [~ %sing ren r.bem (flop s.bem)]]]
|
|
|
|
==
|
|
|
|
==
|
|
|
|
::
|
2017-09-12 02:19:55 +03:00
|
|
|
++ take :: handle ^take
|
2017-11-02 01:44:05 +03:00
|
|
|
|= {{van/vane ren/care:clay bem/beam} sih/sign}
|
2017-09-12 02:19:55 +03:00
|
|
|
^+ ..zo
|
|
|
|
?- &2.sih
|
|
|
|
$writ (take-writ [van ren bem] p.sih)
|
|
|
|
$made (take-made [van ren bem] [p q]:sih)
|
|
|
|
$unto
|
|
|
|
?+ -.p.sih ~|(ford-strange-unto+[-.p.sih] !!)
|
|
|
|
$diff (take-diff [van ren bem] p.p.sih)
|
|
|
|
$reap ?~ p.p.sih ..zo
|
|
|
|
((slog leaf+"ford-reap-fail" u.p.p.sih) ..zo)
|
|
|
|
==
|
|
|
|
==
|
|
|
|
::
|
|
|
|
++ take-diff
|
2017-11-02 01:44:05 +03:00
|
|
|
|= {{van/vane ren/care:clay bem/beam} cag/cage}
|
2017-09-12 02:19:55 +03:00
|
|
|
^+ ..zo
|
|
|
|
?> ?=($g van)
|
|
|
|
?: |(!?=($x ren) =(-.s.bem p.cag))
|
|
|
|
=. kig (~(del in kig) +<-.$)
|
|
|
|
=. mow :_(mow [hen (cancel van ren bem)])
|
|
|
|
=+ (cat 3 van ren)
|
|
|
|
exec(keg (~(put by keg) [- bem] cag))
|
|
|
|
=. mow
|
|
|
|
:_ mow
|
|
|
|
:^ hen %pass (camp-wire van ren bem)
|
|
|
|
[%f %exec our ~ bek %cast ((hard mark) -.s.bem) %$ cag]
|
|
|
|
..zo
|
|
|
|
::
|
|
|
|
++ take-made
|
2017-11-02 01:44:05 +03:00
|
|
|
|= {{van/vane ren/care:clay bem/beam} dep/@uvH gag/gage} :: XX depends?
|
2017-09-12 02:19:55 +03:00
|
|
|
^+ ..zo
|
|
|
|
?> ?=($g van)
|
|
|
|
=. kig (~(del in kig) +<-.$)
|
|
|
|
=. mow :_(mow [hen (cancel van ren bem)])
|
|
|
|
?: ?=($| -.gag)
|
2017-09-13 22:54:55 +03:00
|
|
|
abut:(give [%made dep %| leaf+"ford-scry-made-fail" p.gag])
|
2017-09-12 02:19:55 +03:00
|
|
|
?: ?=($tabl -.gag)
|
2017-09-13 22:54:55 +03:00
|
|
|
abut:(give [%made dep %| leaf+"ford-scry-made-strange" ~])
|
2017-09-12 02:19:55 +03:00
|
|
|
=+ (cat 3 van ren)
|
|
|
|
exec(keg (~(put by keg) [- bem] p.gag))
|
|
|
|
::
|
|
|
|
++ take-writ
|
2017-11-02 01:44:05 +03:00
|
|
|
|= {{van/vane ren/care:clay bem/beam} rot/riot:clay}
|
2017-09-12 02:19:55 +03:00
|
|
|
^+ ..zo
|
|
|
|
?> ?=($c van)
|
|
|
|
=. kig (~(del in kig) +<-.$)
|
|
|
|
?~ rot
|
|
|
|
=^ dep deh.bay (daze ~ deh.bay) :: dependencies?
|
2017-11-02 01:44:05 +03:00
|
|
|
abut:(give [%made dep %| (smyt ren (en-beam bem)) ~])
|
2017-09-12 02:19:55 +03:00
|
|
|
=+ (cat 3 van ren)
|
|
|
|
exec(keg (~(put by keg) [- bem] r.u.rot))
|
|
|
|
::
|
|
|
|
::+|
|
|
|
|
::
|
|
|
|
::> Exec proper
|
|
|
|
::
|
2016-11-24 07:25:07 +03:00
|
|
|
++ clad :: hash dependencies
|
|
|
|
|* hoc/(bolt) ^+ [*@uvH hoc]
|
|
|
|
?: ?=($1 -.q.hoc) [*@uvH hoc]
|
|
|
|
=^ dep r.p.hoc (daze [p.q r.p]:hoc)
|
|
|
|
[dep hoc]
|
|
|
|
::
|
|
|
|
++ clef :: cache a result
|
|
|
|
|* sem/*
|
|
|
|
|* {hoc/(bolt) fun/(burg)}
|
|
|
|
?- -.q.hoc
|
|
|
|
$2 hoc
|
|
|
|
$1 hoc
|
|
|
|
$0
|
|
|
|
=^ cux p.hoc ((calk p.hoc) sem q.q.hoc)
|
|
|
|
?^ cux
|
|
|
|
[p=p.hoc q=[%0 p=dep.p.u.cux q=((calf sem) u.cux)]]
|
|
|
|
=+ nuf=(cope hoc fun)
|
|
|
|
?- -.q.nuf
|
|
|
|
$2 nuf
|
|
|
|
$1 nuf
|
|
|
|
$0
|
|
|
|
:: ~& :- %clef-new
|
|
|
|
:: ?+ sem `term`sem
|
2016-12-02 22:34:07 +03:00
|
|
|
:: $hood [%hood (en-beam &1.q.q.hoc)]
|
|
|
|
:: $bake [%bake `mark`&1.q.q.hoc (en-beam |2.q.q.hoc)]
|
2016-11-24 07:25:07 +03:00
|
|
|
:: ==
|
|
|
|
:- p=(came p.nuf `calx`[sem `calm`[now p.q.nuf] q.q.hoc q.q.nuf])
|
|
|
|
q=q.nuf
|
|
|
|
==
|
|
|
|
==
|
|
|
|
::
|
2017-09-13 22:58:24 +03:00
|
|
|
++ coax !. :: bolt together
|
2016-11-24 07:25:07 +03:00
|
|
|
|* {hoc/(bolt) fun/(burg)}
|
|
|
|
?- -.q.hoc
|
2017-09-13 22:58:24 +03:00
|
|
|
$0 =+ nuf=(fun p.hoc +<+.fun)
|
2016-11-24 07:25:07 +03:00
|
|
|
:- p=p.nuf
|
|
|
|
^= q
|
|
|
|
?- -.q.nuf
|
|
|
|
$0 [%0 p=(~(uni in p.q.hoc) p.q.nuf) q=[q.q.hoc q.q.nuf]]
|
|
|
|
$1 q.nuf
|
|
|
|
$2 q.nuf
|
|
|
|
==
|
2017-09-13 22:58:24 +03:00
|
|
|
$1 =+ nuf=(fun p.hoc +<+.fun)
|
2016-11-24 07:25:07 +03:00
|
|
|
:- p=p.nuf
|
|
|
|
^= q
|
|
|
|
?- -.q.nuf
|
|
|
|
$0 q.hoc
|
|
|
|
$1 [%1 p=(~(uni in p.q.nuf) p.q.hoc)]
|
|
|
|
$2 q.nuf
|
|
|
|
==
|
|
|
|
$2 hoc
|
|
|
|
==
|
|
|
|
::
|
|
|
|
++ cool :: error caption
|
|
|
|
|* {cyt/$@(term (trap tank)) hoc/(bolt)}
|
|
|
|
?. ?=($2 -.q.hoc) hoc
|
2017-09-13 22:58:24 +03:00
|
|
|
[p=p.hoc q=[%2 p=p.q.hoc q=[?^(cyt *cyt >`@tas`cyt<) q.q.hoc]]]
|
2016-11-24 07:25:07 +03:00
|
|
|
::
|
|
|
|
++ cope :: bolt along
|
|
|
|
|* {hoc/(bolt) fun/(burg)}
|
|
|
|
?- -.q.hoc
|
|
|
|
$1 hoc
|
|
|
|
$2 hoc
|
|
|
|
$0 =+ nuf=(fun p.hoc q.q.hoc)
|
|
|
|
:- p=p.nuf
|
|
|
|
^= q
|
|
|
|
?- -.q.nuf
|
|
|
|
$1 q.nuf
|
|
|
|
$2 [%2 p=(~(uni in `_p.q.nuf`p.q.hoc) p.q.nuf) q=q.q.nuf]
|
|
|
|
$0 [%0 p=(~(uni in `_p.q.nuf`p.q.hoc) p.q.nuf) q=q.q.nuf]
|
|
|
|
== ==
|
|
|
|
::
|
2017-09-13 22:58:24 +03:00
|
|
|
++ coop :: bolt fallback
|
2016-11-24 07:25:07 +03:00
|
|
|
|* {hoc/(bolt) fun/$-(cafe (bolt))}
|
|
|
|
?- -.q.hoc
|
|
|
|
$1 hoc
|
|
|
|
$0 hoc
|
|
|
|
$2 =+ nuf=(fun p.hoc)
|
|
|
|
:- p=p.nuf
|
|
|
|
^= q
|
|
|
|
?- -.q.nuf
|
|
|
|
$1 q.nuf
|
|
|
|
$0 [%0 p=(~(uni in `_p.q.nuf`p.q.hoc) p.q.nuf) q=q.q.nuf]
|
|
|
|
$2 =. q.q.nuf (welp q.q.nuf q.q.hoc)
|
|
|
|
[%2 p=(~(uni in `_p.q.nuf`p.q.hoc) p.q.nuf) q=q.q.nuf]
|
|
|
|
== ==
|
|
|
|
::
|
|
|
|
++ coup :: toon to bolt
|
|
|
|
|= cof/cafe
|
|
|
|
|* {ton/toon fun/gate}
|
|
|
|
:- p=cof
|
|
|
|
^= q
|
|
|
|
?- -.ton
|
|
|
|
$2 [%2 p=*(set beam) q=p.ton]
|
|
|
|
$0 [%0 p=*(set beam) q=(fun p.ton)]
|
|
|
|
$1 :: ~& [%coup-need ((list path) p.ton)]
|
|
|
|
=- ?- -.faw
|
|
|
|
$& :- %1
|
|
|
|
^= p
|
|
|
|
%- silt
|
|
|
|
%+ turn p.faw
|
2016-12-07 06:13:33 +03:00
|
|
|
|=(a/{vane care:clay beam} [-.a +<.a +>.a *tang])
|
2016-11-24 07:25:07 +03:00
|
|
|
$| [%2 p=*(set beam) q=p.faw]
|
|
|
|
==
|
|
|
|
^= faw
|
2016-12-07 06:13:33 +03:00
|
|
|
|- ^- (each (list (trel vane care:clay beam)) tang)
|
2016-11-24 07:25:07 +03:00
|
|
|
?~ p.ton [%& ~]
|
|
|
|
=+ nex=$(p.ton t.p.ton)
|
|
|
|
=+ err=|=(a/tape [%| leaf+a ?:(?=($& -.nex) ~ p.nex)])
|
|
|
|
=+ pax=(path i.p.ton)
|
|
|
|
?~ pax (err "blocking empty")
|
2016-12-07 06:13:33 +03:00
|
|
|
=+ ren=((soft care:clay) (rsh 3 1 i.pax))
|
2016-11-24 07:25:07 +03:00
|
|
|
?~ ren
|
|
|
|
(err "blocking not care: {<i.pax>}")
|
2016-12-02 22:34:07 +03:00
|
|
|
=+ zis=(de-beam t.pax)
|
2016-11-24 07:25:07 +03:00
|
|
|
?~ zis
|
|
|
|
(err "blocking not beam: {<t.pax>}")
|
|
|
|
?: ?=($g (end 3 1 i.pax))
|
|
|
|
?- -.nex
|
|
|
|
$& [%& [%g u.ren u.zis] p.nex]
|
|
|
|
$| nex
|
|
|
|
==
|
|
|
|
?: ?=($c (end 3 1 i.pax))
|
|
|
|
?- -.nex
|
|
|
|
$& [%& [%c u.ren u.zis] p.nex]
|
|
|
|
$| nex
|
|
|
|
==
|
|
|
|
(err "blocking bad vane")
|
|
|
|
==
|
|
|
|
::
|
|
|
|
++ cowl :: each to bolt
|
|
|
|
|= cof/cafe
|
|
|
|
|* {tod/(each * tang) fun/gate}
|
|
|
|
%+ (coup cof)
|
|
|
|
?- -.tod
|
|
|
|
$& [%0 p=p.tod]
|
|
|
|
$| [%2 p=p.tod]
|
|
|
|
==
|
|
|
|
fun
|
|
|
|
::
|
|
|
|
++ tabl-run :: apply to all elems
|
|
|
|
|= fun/(burg cage gage)
|
|
|
|
|= {cof/cafe gag/gage}
|
|
|
|
^- (bolt gage)
|
|
|
|
?. ?=($tabl -.gag)
|
2016-12-09 01:16:57 +03:00
|
|
|
(cope (flay cof gag) fun)
|
2016-12-16 09:34:01 +03:00
|
|
|
%+ cope
|
2016-11-24 07:25:07 +03:00
|
|
|
|- ^- (bolt (list (pair gage gage)))
|
|
|
|
?~ p.gag (fine cof ~)
|
|
|
|
%. [cof p.gag]
|
|
|
|
;~ cope
|
|
|
|
;~ coax
|
|
|
|
|=({cof/cafe {^ q/gage} t/gagl} (fret ^^$(cof cof, gag q)))
|
|
|
|
|=({cof/cafe ^ t/gagl} ^$(cof cof, p.gag t))
|
|
|
|
==
|
|
|
|
(flux |=({v/gage t/gagl} [[p.i.p.gag v] t]))
|
|
|
|
==
|
|
|
|
(flux |=(rex/gagl [%tabl rex]))
|
|
|
|
::
|
|
|
|
++ some-in-map
|
|
|
|
|* fun/(burg knot (unit))
|
|
|
|
=+ res=_(need [?+(-.q !! $0 q.q)]:*fun)
|
|
|
|
=+ marv=(map knot res)
|
|
|
|
|= {cof/cafe sud/(map knot $~)} ^- (bolt marv)
|
|
|
|
?~ sud (flue cof)
|
|
|
|
%. [cof sud]
|
|
|
|
;~ cope
|
|
|
|
;~ coax
|
|
|
|
|=({cof/cafe _sud} ^$(cof cof, sud l))
|
|
|
|
|=({cof/cafe _sud} ^$(cof cof, sud r))
|
|
|
|
|= {cof/cafe {dir/@ta $~} ^}
|
|
|
|
%+ cope (fun cof dir)
|
|
|
|
(flux (lift |*(* [dir +<])))
|
|
|
|
==
|
|
|
|
%- flux
|
|
|
|
|= {lam/marv ram/marv nod/(unit {knot res})}
|
|
|
|
?^(nod [u.nod lam ram] (~(uni by lam) ram))
|
|
|
|
==
|
2017-09-12 02:19:55 +03:00
|
|
|
++ dash :: process cache
|
2016-11-24 07:25:07 +03:00
|
|
|
|= cof/cafe
|
|
|
|
^+ +>
|
|
|
|
%_(+> jav.bay q.cof, deh.bay r.cof)
|
|
|
|
::
|
|
|
|
++ diff :: diff
|
|
|
|
|= {cof/cafe kas/silk kos/silk}
|
|
|
|
^- (bolt gage)
|
|
|
|
%. [cof kas kos]
|
|
|
|
;~ cope
|
|
|
|
;~ coax
|
2016-12-09 01:16:57 +03:00
|
|
|
|=({cof/cafe p/silk q/silk} (cope (make cof p) flay))
|
|
|
|
|=({cof/cafe p/silk q/silk} (cope (make cof q) flay))
|
2016-11-24 07:25:07 +03:00
|
|
|
==
|
|
|
|
|= {cof/cafe cay/cage coy/cage} ^- (bolt gage)
|
|
|
|
?. =(p.cay p.coy)
|
|
|
|
%+ flaw cof :_ ~
|
|
|
|
leaf+"diff on data of different marks: {(trip p.cay)} {(trip p.coy)}"
|
|
|
|
?: =(q.q.cay q.q.coy)
|
|
|
|
(fine cof [%& %null [%atom %n ~] ~])
|
|
|
|
::
|
|
|
|
%+ cope (fang cof p.cay)
|
|
|
|
|= {cof/cafe pro/vase}
|
|
|
|
?. (slab %grad p.pro)
|
|
|
|
(flaw cof leaf+"no ++grad" ~)
|
|
|
|
=+ gar=(slap pro [%limb %grad])
|
|
|
|
?@ q.gar
|
|
|
|
=+ for=((sand %tas) q.gar)
|
|
|
|
?~ for (flaw cof leaf+"bad mark ++grad" ~)
|
|
|
|
%+ make cof ^- silk
|
|
|
|
:+ %diff
|
2017-09-20 03:35:45 +03:00
|
|
|
[%cast u.for [%$ cay]]
|
|
|
|
[%cast u.for [%$ coy]]
|
2016-11-24 07:25:07 +03:00
|
|
|
?. (slab %form p.gar)
|
|
|
|
(flaw cof leaf+"no ++form:grad" ~)
|
|
|
|
?. (slab %diff p.gar)
|
|
|
|
(flaw cof leaf+"no ++diff:grad" ~)
|
|
|
|
%+ cope (keel cof pro [[%& 6]~ q.cay]~)
|
|
|
|
|= {cof/cafe pox/vase}
|
|
|
|
%+ cope
|
|
|
|
%^ maul cof
|
|
|
|
(slap (slap pox [%limb %grad]) [%limb %diff])
|
|
|
|
q.coy
|
|
|
|
|= {cof/cafe dif/vase}
|
|
|
|
=+ for=((soft @tas) q:(slap gar [%limb %form]))
|
|
|
|
?~ for
|
|
|
|
(flaw cof leaf+"bad ++form:grad" ~)
|
|
|
|
(fine cof [%& u.for dif])
|
|
|
|
==
|
|
|
|
::
|
|
|
|
++ daze :: remember depends
|
2017-10-14 01:57:15 +03:00
|
|
|
|= {dep/(set beam) deh/deps}
|
|
|
|
^+ [*@uvH deh]
|
2016-11-24 07:25:07 +03:00
|
|
|
=. dep
|
2017-02-13 22:58:49 +03:00
|
|
|
=< (silt (skip ~(tap in dep) .))
|
2016-11-24 07:25:07 +03:00
|
|
|
|= dap/beam ^- ?
|
|
|
|
?~ s.dap |
|
|
|
|
=>(.(s.dap t.s.dap) |((~(has in dep) dap) $))
|
2017-10-14 01:57:15 +03:00
|
|
|
?: =(~ dep) [0v0 deh]
|
2016-11-24 07:25:07 +03:00
|
|
|
=+ hap=(sham dep)
|
2017-10-14 01:57:15 +03:00
|
|
|
:+ hap
|
|
|
|
(~(put by def.deh) hap dep)
|
|
|
|
(~(gas ju bak.deh) (turn ~(tap in dep) |=(a/beam [a hap])))
|
2016-11-24 07:25:07 +03:00
|
|
|
::
|
2017-09-12 02:19:55 +03:00
|
|
|
++ exec :: execute task
|
2016-11-24 07:25:07 +03:00
|
|
|
^+ ..zo
|
|
|
|
?: !=(~ kig) ..zo
|
2017-09-13 22:54:55 +03:00
|
|
|
=+ bot=(make-with-normalized-beak [~ jav.bay deh.bay] kas)
|
2016-11-24 07:25:07 +03:00
|
|
|
=^ dep bot (clad bot)
|
|
|
|
=. ..exec (dash p.bot)
|
|
|
|
?- -.q.bot
|
2017-09-13 22:54:55 +03:00
|
|
|
$0 abut:(give [%made dep q.q.bot])
|
|
|
|
$2 abut:(give [%made dep %| q.q.bot])
|
2017-02-13 23:43:18 +03:00
|
|
|
$1 =+ zuk=~(tap by p.q.bot)
|
2016-11-24 07:25:07 +03:00
|
|
|
=< abet
|
|
|
|
|- ^+ ..exec
|
|
|
|
?~ zuk ..exec
|
2017-09-08 02:47:49 +03:00
|
|
|
%= $
|
|
|
|
zuk t.zuk
|
|
|
|
..exec `_..exec`(camp van.p.i.zuk ren.q.i.zuk bem.q.i.zuk)
|
|
|
|
== ==
|
2016-11-24 07:25:07 +03:00
|
|
|
::
|
2017-11-02 01:44:05 +03:00
|
|
|
++ give :: return gift
|
2016-11-24 07:25:07 +03:00
|
|
|
|= gef/gift:able
|
|
|
|
%_(+> mow :_(mow [hen %give gef]))
|
|
|
|
::
|
2017-09-13 22:54:55 +03:00
|
|
|
++ compile-to-hood
|
|
|
|
~/ %compile-to-hood
|
2016-11-24 07:25:07 +03:00
|
|
|
|= {cof/cafe bem/beam}
|
2017-11-02 01:44:05 +03:00
|
|
|
:: ~& compile-to-hood+(en-beam bem)
|
2016-11-24 07:25:07 +03:00
|
|
|
^- (bolt hood)
|
2017-11-02 01:44:05 +03:00
|
|
|
%+ cool |.(leaf+"ford: compile-to-hood {<[(en-beam bem)]>}")
|
2017-09-13 22:54:55 +03:00
|
|
|
%+ cope (load-file cof %*(. bem s [%hoon s.bem]))
|
2016-11-24 07:25:07 +03:00
|
|
|
|= {cof/cafe cay/cage}
|
|
|
|
%+ (clef %hood) (fine cof bem(r [%ud 0]) cay)
|
|
|
|
^- (burg (pair beam cage) hood)
|
|
|
|
~% %hood-miss ..abet ~
|
|
|
|
|= {cof/cafe bem/beam cay/cage}
|
|
|
|
?. ?=(@ q.q.cay)
|
|
|
|
(flaw cof ~)
|
|
|
|
=+ vex=((full (fair bem)) [[1 1] (trip q.q.cay)])
|
|
|
|
?~ q.vex
|
|
|
|
(flaw cof [%leaf "syntax error: {<p.p.vex>} {<q.p.vex>}"] ~)
|
|
|
|
(fine cof p.u.q.vex)
|
|
|
|
::
|
|
|
|
++ fame :: beam with - as /
|
|
|
|
~/ %fame
|
|
|
|
|= {cof/cafe bem/beam}
|
|
|
|
^- (bolt beam)
|
|
|
|
=; une/(bolt (unit beam))
|
|
|
|
%+ cope une
|
|
|
|
|= {cof/cafe bom/(unit beam)} ^- (bolt beam)
|
|
|
|
?^ bom (fine cof u.bom)
|
2016-12-02 22:34:07 +03:00
|
|
|
(flaw cof leaf+"fame: no {<(en-beam bem)>}" ~)
|
2016-11-24 07:25:07 +03:00
|
|
|
%+ (clef %path) (fine cof bem)
|
|
|
|
|= {cof/cafe bem/beam}
|
|
|
|
=^ pax bem [(flop s.bem) bem(s ~)]
|
|
|
|
|^ opts
|
|
|
|
++ opts :: search unless done
|
|
|
|
^- (bolt (unit beam))
|
|
|
|
?^ pax (wide(pax t.pax) (tear i.pax))
|
2017-09-13 22:54:55 +03:00
|
|
|
%+ cope (load-to-mark cof %hoon bem)
|
2016-11-24 07:25:07 +03:00
|
|
|
(flux |=(a/(unit vase) ?~(a ~ `bem)))
|
|
|
|
::
|
|
|
|
++ wide :: match segments
|
|
|
|
|= sub/(list term) ^- (bolt (unit beam))
|
|
|
|
?~ sub opts
|
|
|
|
?~ t.sub opts(s.bem [i.sub s.bem])
|
|
|
|
=> .(sub `(list term)`sub) :: TMI
|
|
|
|
=- (cope - flat)
|
2017-09-13 22:54:55 +03:00
|
|
|
%^ filter-at-beam cof bem
|
2016-11-24 07:25:07 +03:00
|
|
|
|= {cof/cafe dir/knot} ^- (bolt (unit beam))
|
|
|
|
=+ sus=(tear dir)
|
|
|
|
?. =(sus (scag (lent sus) sub))
|
|
|
|
(flue cof)
|
|
|
|
%_ ^$
|
|
|
|
cof cof
|
|
|
|
sub (slag (lent sus) sub)
|
|
|
|
s.bem [dir s.bem]
|
|
|
|
==
|
|
|
|
::
|
|
|
|
++ flat :: at most one
|
|
|
|
|= {cof/cafe opt/(map term beam)} ^- (bolt (unit beam))
|
|
|
|
?~ opt (flue cof)
|
|
|
|
?: ?=({^ $~ $~} opt) (fine cof `q.n.opt)
|
2016-12-02 22:34:07 +03:00
|
|
|
=+ all=(~(run by `(map term beam)`opt) en-beam)
|
2016-11-24 07:25:07 +03:00
|
|
|
(flaw cof leaf+"fame: fork {<all>}" ~)
|
|
|
|
--
|
|
|
|
::
|
|
|
|
++ fang :: protocol door
|
|
|
|
|= {cof/cafe for/mark} ^- (bolt vase)
|
|
|
|
:: ~& fang+for
|
2017-09-13 22:54:55 +03:00
|
|
|
(load-core cof bek /[for]/mar)
|
2016-11-24 07:25:07 +03:00
|
|
|
::
|
|
|
|
++ fair :: hood parsing rule
|
|
|
|
|= bem/beam
|
|
|
|
?> ?=({$ud $0} r.bem) :: XX sentinel
|
2016-12-02 22:34:07 +03:00
|
|
|
=+ vez=(vang & (en-beam bem))
|
2016-11-24 07:25:07 +03:00
|
|
|
=< hood
|
2016-12-16 09:34:01 +03:00
|
|
|
|%
|
2016-11-24 07:25:07 +03:00
|
|
|
++ case
|
2016-12-16 09:34:01 +03:00
|
|
|
%+ sear
|
2016-11-24 07:25:07 +03:00
|
|
|
|= a/coin
|
|
|
|
?. ?=({$$ ?($da $ud $tas) *} a) ~
|
|
|
|
[~ u=(^case a)]
|
|
|
|
nuck:so
|
|
|
|
::
|
|
|
|
++ mota ;~(pfix pat mota:vez) :: atom odor
|
2017-09-18 21:50:10 +03:00
|
|
|
++ hath (sear plex (stag %clsg poor)):vez :: hood path
|
2016-12-02 22:34:07 +03:00
|
|
|
++ have (sear de-beam ;~(pfix fas hath)) :: hood beam
|
2016-11-24 07:25:07 +03:00
|
|
|
++ hith :: static path
|
|
|
|
=> vez
|
2017-09-18 21:50:10 +03:00
|
|
|
(sear plex (stag %clsg (more fas hasp)))
|
2016-11-24 07:25:07 +03:00
|
|
|
::
|
|
|
|
++ hive :: late-bound path
|
|
|
|
;~ pfix fas
|
|
|
|
%+ cook |=(a/hops a)
|
|
|
|
=> vez
|
|
|
|
;~ plug
|
|
|
|
(stag ~ gash)
|
|
|
|
;~(pose (stag ~ ;~(pfix cen porc)) (easy ~))
|
|
|
|
==
|
|
|
|
==
|
|
|
|
::
|
|
|
|
++ hood
|
|
|
|
%+ ifix [gay gay]
|
|
|
|
;~ plug
|
|
|
|
;~ pose
|
|
|
|
(ifix [;~(plug fas wut gap) gap] dem)
|
|
|
|
(easy zuse)
|
|
|
|
==
|
|
|
|
::
|
|
|
|
;~ pose
|
|
|
|
(ifix [;~(plug fas hep gap) gap] (most ;~(plug com gaw) hoof))
|
|
|
|
(easy ~)
|
|
|
|
==
|
|
|
|
::
|
|
|
|
;~ pose
|
|
|
|
(ifix [;~(plug fas lus gap) gap] (most ;~(plug com gaw) hoof))
|
|
|
|
(easy ~)
|
|
|
|
==
|
|
|
|
::
|
|
|
|
(star ;~(sfix horn gap))
|
|
|
|
(most gap hoop)
|
|
|
|
==
|
|
|
|
::
|
2016-12-02 22:34:07 +03:00
|
|
|
++ hoot
|
2016-11-24 07:25:07 +03:00
|
|
|
;~ plug
|
|
|
|
sym
|
|
|
|
;~ pose
|
|
|
|
%+ stag ~
|
|
|
|
;~(plug ;~(pfix fas case) ;~(pfix ;~(plug fas sig) fed:ag))
|
|
|
|
(easy ~)
|
|
|
|
==
|
|
|
|
==
|
|
|
|
::
|
2016-12-02 22:34:07 +03:00
|
|
|
++ hoof
|
|
|
|
%+ cook |=(a/^hoof a)
|
|
|
|
;~ pose
|
|
|
|
(stag %| ;~(pfix tar hoot))
|
|
|
|
(stag %& hoot)
|
|
|
|
==
|
|
|
|
::
|
2016-11-24 07:25:07 +03:00
|
|
|
++ hoop
|
|
|
|
;~ pose
|
|
|
|
(stag %| ;~(pfix ;~(plug fas fas gap) have))
|
|
|
|
(stag %& tall:vez)
|
|
|
|
==
|
|
|
|
::
|
2017-09-13 22:58:24 +03:00
|
|
|
++ horn :: horn parser
|
2016-11-24 07:25:07 +03:00
|
|
|
=< apex
|
2017-09-13 22:58:24 +03:00
|
|
|
=| tol/? :: allow tall form
|
2016-11-24 07:25:07 +03:00
|
|
|
|%
|
|
|
|
++ apex
|
|
|
|
%+ knee *^horn |. ~+
|
|
|
|
;~ pfix fas
|
|
|
|
;~ pose
|
2017-09-13 22:58:24 +03:00
|
|
|
(stag %fssg ;~(pfix sig twig:read)) :: /~ twig by hand
|
2017-09-09 02:08:52 +03:00
|
|
|
(stag %fsbc ;~(pfix buc twig:read)) :: /$ extra arguments
|
2017-09-13 22:58:24 +03:00
|
|
|
(stag %fsbr ;~(pfix bar alts:read)) :: /| or (options)
|
|
|
|
(stag %fshx ;~(pfix hax horn:read)) :: /# insert dephash
|
|
|
|
(stag %fsts ;~(pfix tis name:read)) :: /= apply face
|
|
|
|
(stag %fsdt ;~(pfix dot list:read)) :: /. list
|
|
|
|
(stag %fscm ;~(pfix com case:read)) :: /, switch by path
|
|
|
|
(stag %fscn ;~(pfix cen horn:read)) :: /% propagate args
|
|
|
|
(stag %fspm ;~(pfix pam pipe:read)) :: /& translates
|
|
|
|
(stag %fscb ;~(pfix cab horn:read)) :: /_ homo map
|
2017-09-09 02:08:52 +03:00
|
|
|
(stag %fssm ;~(pfix sem gate:read)) :: /; operate on
|
2017-09-13 22:58:24 +03:00
|
|
|
(stag %fscl ;~(pfix col path:read)) :: /: relative to
|
|
|
|
(stag %fskt ;~(pfix ket cast:read)) :: /^ cast
|
2017-09-09 02:08:52 +03:00
|
|
|
(stag %fszp ;~(pfix zap ;~(sfix sym fas))):: /!mark/ run to mark
|
|
|
|
(stag %fszy ;~(sfix sym fas)) :: /mark/ render file
|
2016-11-24 07:25:07 +03:00
|
|
|
==
|
|
|
|
==
|
|
|
|
::
|
2017-09-13 22:58:24 +03:00
|
|
|
++ rail :: wide or tall
|
2016-11-24 07:25:07 +03:00
|
|
|
|* {wid/rule tal/rule}
|
2017-09-09 02:08:52 +03:00
|
|
|
?. tol wid :: !tol -> only wide
|
2016-11-24 07:25:07 +03:00
|
|
|
;~(pose wid tal)
|
|
|
|
::
|
|
|
|
++ read
|
2017-09-09 02:08:52 +03:00
|
|
|
|% ++ twig
|
2016-11-24 07:25:07 +03:00
|
|
|
%+ rail
|
2017-09-18 21:50:10 +03:00
|
|
|
(ifix [sel ser] (stag %cltr (most ace wide:vez)))
|
2016-11-24 07:25:07 +03:00
|
|
|
;~(pfix gap tall:vez)
|
|
|
|
::
|
2017-09-09 02:08:52 +03:00
|
|
|
++ alts
|
2017-09-13 22:58:24 +03:00
|
|
|
%+ rail
|
2017-09-09 02:08:52 +03:00
|
|
|
(ifix [pel per] (most ace horn))
|
|
|
|
;~(sfix (star horn) gap duz)
|
2016-11-24 07:25:07 +03:00
|
|
|
::
|
2017-09-09 02:08:52 +03:00
|
|
|
++ horn
|
2016-11-24 07:25:07 +03:00
|
|
|
%+ rail
|
2016-12-16 09:34:01 +03:00
|
|
|
apex(tol |)
|
2016-11-24 07:25:07 +03:00
|
|
|
;~(pfix gap apex)
|
|
|
|
::
|
2017-09-09 02:08:52 +03:00
|
|
|
++ name
|
2016-12-16 09:34:01 +03:00
|
|
|
%+ rail
|
2017-09-09 02:08:52 +03:00
|
|
|
;~(plug sym ;~(pfix tis horn))
|
|
|
|
;~(pfix gap ;~(plug sym horn))
|
2016-11-24 07:25:07 +03:00
|
|
|
::
|
2017-09-09 02:08:52 +03:00
|
|
|
++ list
|
2016-12-16 09:34:01 +03:00
|
|
|
%+ rail fail
|
2017-09-09 02:08:52 +03:00
|
|
|
;~(sfix (star horn) gap duz)
|
2016-11-24 07:25:07 +03:00
|
|
|
::
|
2017-09-09 02:08:52 +03:00
|
|
|
++ case
|
2016-11-24 07:25:07 +03:00
|
|
|
%+ rail fail
|
|
|
|
=- ;~(sfix (star -) gap duz)
|
2017-09-09 02:08:52 +03:00
|
|
|
;~(pfix gap fas ;~(plug hith horn))
|
2016-11-24 07:25:07 +03:00
|
|
|
::
|
2017-09-09 02:08:52 +03:00
|
|
|
++ pipe
|
2016-11-24 07:25:07 +03:00
|
|
|
%+ rail
|
2017-09-09 02:08:52 +03:00
|
|
|
;~(plug (plus ;~(sfix sym pam)) horn)
|
2016-11-24 07:25:07 +03:00
|
|
|
=+ (cook |=(a/term [a ~]) sym)
|
2017-09-09 02:08:52 +03:00
|
|
|
;~(pfix gap ;~(plug - horn))
|
2016-11-24 07:25:07 +03:00
|
|
|
::
|
2017-09-09 02:08:52 +03:00
|
|
|
++ gate
|
2016-11-24 07:25:07 +03:00
|
|
|
%+ rail
|
2017-09-09 02:08:52 +03:00
|
|
|
;~(plug ;~(sfix wide:vez sem) horn)
|
|
|
|
;~(pfix gap ;~(plug tall:vez horn))
|
2016-11-24 07:25:07 +03:00
|
|
|
::
|
2017-09-09 02:08:52 +03:00
|
|
|
++ path
|
2016-12-16 09:34:01 +03:00
|
|
|
%+ rail
|
2017-09-09 02:08:52 +03:00
|
|
|
;~(plug ;~(sfix hive col) horn)
|
|
|
|
;~(pfix gap ;~(plug hive horn))
|
2016-11-24 07:25:07 +03:00
|
|
|
::
|
2017-09-09 02:08:52 +03:00
|
|
|
++ cast
|
2016-12-16 09:34:01 +03:00
|
|
|
%+ rail
|
2017-09-09 02:08:52 +03:00
|
|
|
;~(plug ;~(sfix wide:vez ket) horn)
|
|
|
|
;~(pfix gap ;~(plug tall:vez horn))
|
2016-11-24 07:25:07 +03:00
|
|
|
--
|
|
|
|
--
|
|
|
|
--
|
|
|
|
::
|
|
|
|
++ join
|
|
|
|
|= {cof/cafe for/mark kas/silk kos/silk}
|
|
|
|
^- (bolt gage)
|
|
|
|
%. [cof kas kos]
|
|
|
|
;~ cope
|
|
|
|
;~ coax
|
2016-12-09 01:16:57 +03:00
|
|
|
|=({cof/cafe p/silk q/silk} (cope (make cof p) flay))
|
|
|
|
|=({cof/cafe p/silk q/silk} (cope (make cof q) flay))
|
2016-11-24 07:25:07 +03:00
|
|
|
==
|
|
|
|
|= {cof/cafe cay/cage coy/cage} ^- (bolt gage)
|
|
|
|
::
|
|
|
|
%+ cope (fang cof for)
|
|
|
|
|= {cof/cafe pro/vase}
|
|
|
|
?. (slab %grad p.pro)
|
|
|
|
(flaw cof leaf+"no ++grad" ~)
|
|
|
|
=+ gar=(slap pro [%limb %grad])
|
|
|
|
?@ q.gar
|
|
|
|
=+ too=((sand %tas) q.gar)
|
|
|
|
?~ too (flaw cof leaf+"bad mark ++grad" ~)
|
|
|
|
(make cof %join u.too [%$ cay] [%$ coy])
|
|
|
|
?. (slab %form p.gar)
|
|
|
|
(flaw cof leaf+"no ++form:grad" ~)
|
|
|
|
=+ fom=((soft @tas) q:(slap gar [%limb %form]))
|
|
|
|
?~ fom
|
|
|
|
(flaw cof leaf+"bad ++form:grad" ~)
|
|
|
|
?. &(=(u.fom p.cay) =(u.fom p.coy))
|
|
|
|
%+ flaw cof :_ :_ ~
|
|
|
|
leaf+"join on data of bad marks: {(trip p.cay)} {(trip p.coy)}"
|
|
|
|
leaf+"expected mark {(trip u.fom)}"
|
|
|
|
?: =(q.q.cay q.q.coy)
|
|
|
|
(fine cof [%& cay])
|
|
|
|
?. (slab %join p.gar)
|
|
|
|
(flaw cof leaf+"no ++join:grad" ~)
|
|
|
|
%+ cope
|
|
|
|
%^ maul cof
|
|
|
|
(slap (slap pro [%limb %grad]) [%limb %join])
|
|
|
|
(slop q.cay q.coy)
|
|
|
|
|= {cof/cafe dif/vase}
|
|
|
|
?@ q.dif
|
|
|
|
(fine cof [%& %null dif])
|
|
|
|
(fine cof [%& u.fom (slot 3 dif)])
|
|
|
|
==
|
|
|
|
::
|
|
|
|
++ mash
|
|
|
|
|= {cof/cafe for/mark mas/milk mos/milk}
|
|
|
|
^- (bolt gage)
|
|
|
|
%. [cof r.mas r.mos]
|
|
|
|
;~ cope
|
|
|
|
;~ coax
|
2016-12-09 01:16:57 +03:00
|
|
|
|=({cof/cafe p/silk q/silk} (cope (make cof p) flay))
|
|
|
|
|=({cof/cafe p/silk q/silk} (cope (make cof q) flay))
|
2016-11-24 07:25:07 +03:00
|
|
|
==
|
|
|
|
|= {cof/cafe cay/cage coy/cage} ^- (bolt gage)
|
|
|
|
%+ cope (fang cof for)
|
|
|
|
|= {cof/cafe pro/vase}
|
|
|
|
?. (slab %grad p.pro)
|
|
|
|
(flaw cof leaf+"no ++grad" ~)
|
|
|
|
=+ gar=(slap pro [%limb %grad])
|
|
|
|
?@ q.gar
|
|
|
|
=+ too=((sand %tas) q.gar)
|
|
|
|
?~ too (flaw cof leaf+"bad mark ++grad" ~)
|
|
|
|
%+ make cof
|
|
|
|
`silk`[%mash u.too [p.mas q.mas [%$ cay]] [p.mos q.mos [%$ coy]]]
|
|
|
|
?. (slab %form p.gar)
|
2016-12-16 09:34:01 +03:00
|
|
|
(flaw cof leaf+"no ++form:grad" ~)
|
2016-11-24 07:25:07 +03:00
|
|
|
=+ fom=((soft @tas) q:(slap gar [%limb %form]))
|
|
|
|
?~ fom
|
|
|
|
(flaw cof leaf+"bad ++form:grad" ~)
|
|
|
|
?. &(=(u.fom p.cay) =(u.fom p.coy))
|
|
|
|
%+ flaw cof :_ :_ ~
|
|
|
|
leaf+"mash on data of bad marks: {(trip p.cay)} {(trip p.coy)}"
|
|
|
|
leaf+"expected mark {(trip u.fom)}"
|
|
|
|
?: =(q.q.cay q.q.coy)
|
|
|
|
(fine cof %& cay)
|
|
|
|
?. (slab %mash p.gar)
|
|
|
|
(fine cof %& %null [%atom %n ~] ~)
|
|
|
|
%+ cope
|
|
|
|
%^ maul cof
|
|
|
|
(slap (slap pro [%limb %grad]) [%limb %mash])
|
|
|
|
%+ slop
|
|
|
|
:(slop [[%atom %p ~] p.mas] [[%atom %tas ~] q.mas] q.cay)
|
|
|
|
:(slop [[%atom %p ~] p.mos] [[%atom %tas ~] q.mos] q.coy)
|
|
|
|
(flux |=(dif/vase [%& u.fom dif]))
|
|
|
|
==
|
|
|
|
::
|
|
|
|
++ kale :: mutate
|
|
|
|
|= {cof/cafe kas/silk muy/(list (pair wing silk))}
|
|
|
|
^- (bolt gage)
|
|
|
|
%+ cope
|
|
|
|
|- ^- (bolt (list (pair wing vase)))
|
|
|
|
?~ muy (flue cof)
|
2016-12-09 01:16:57 +03:00
|
|
|
%+ cope (cope (make cof q.i.muy) flay)
|
2016-11-24 07:25:07 +03:00
|
|
|
|= {cof/cafe cay/cage}
|
|
|
|
%+ cope ^$(muy t.muy)
|
|
|
|
|= {cof/cafe rex/(list (pair wing vase))}
|
|
|
|
(fine cof [[p.i.muy q.cay] rex])
|
|
|
|
|= {cof/cafe yom/(list (pair wing vase))}
|
|
|
|
%+ cope (make cof kas)
|
|
|
|
%- tabl-run
|
|
|
|
|= {cof/cafe cay/cage}
|
|
|
|
%+ cope (keel cof q.cay yom)
|
|
|
|
(flux |=(vax/vase [%& p.cay vax]))
|
|
|
|
::
|
|
|
|
++ keel :: apply mutations
|
|
|
|
|= {cof/cafe suh/vase yom/(list (pair wing vase))}
|
|
|
|
^- (bolt vase)
|
|
|
|
%+ cool
|
|
|
|
=< |. ^- tank
|
|
|
|
:+ %palm [" " ~ ~ ~]
|
|
|
|
~[leaf+"ford: keel" rose+[" " ~ ~]^(murn yom +)]
|
|
|
|
|= {a/wing b/span *} ^- (unit tank)
|
|
|
|
=+ typ=(mule |.(p:(slap suh wing+a)))
|
|
|
|
?: ?=($| -.typ)
|
|
|
|
(some (show [%c %pull] %l a))
|
|
|
|
?: (~(nest ut p.typ) | b) ~
|
|
|
|
%^ some %palm ["." ~ ~ ~]
|
|
|
|
~[(show [%c %mute] %l a) >[p.typ b]<]
|
2017-09-13 22:58:24 +03:00
|
|
|
%^ wrapped-slap cof
|
2016-11-24 07:25:07 +03:00
|
|
|
%+ slop suh
|
|
|
|
|- ^- vase
|
|
|
|
?~ yom [[%atom %n ~] ~]
|
|
|
|
(slop q.i.yom $(yom t.yom))
|
|
|
|
^- twig
|
2017-09-19 03:55:32 +03:00
|
|
|
:+ %cncb [%& 2]~
|
2016-11-24 07:25:07 +03:00
|
|
|
=+ axe=3
|
|
|
|
|- ^- (list (pair wing twig))
|
|
|
|
?~ yom ~
|
|
|
|
:- [p.i.yom [%$ (peg axe 2)]]
|
|
|
|
$(yom t.yom, axe (peg axe 3))
|
|
|
|
::
|
|
|
|
++ lads :: possible children
|
|
|
|
|= {cof/cafe bem/beam}
|
|
|
|
^- (bolt (map knot $~))
|
2017-09-13 22:54:55 +03:00
|
|
|
%^ filter-at-beam cof bem
|
2016-11-24 07:25:07 +03:00
|
|
|
|= {cof/cafe dir/knot}
|
2017-09-13 22:54:55 +03:00
|
|
|
%+ cope (load-arch cof bem(s [dir s.bem]))
|
2016-11-24 07:25:07 +03:00
|
|
|
(flux |=(a/arch ?~(dir.a ~ (some ~))))
|
|
|
|
::
|
|
|
|
++ laze :: find real or virtual
|
|
|
|
|= {cof/cafe bem/beam}
|
2017-09-13 22:54:55 +03:00
|
|
|
%^ filter-at-beam cof bem
|
2016-11-24 07:25:07 +03:00
|
|
|
|= {cof/cafe for/mark}
|
|
|
|
^- (bolt (unit $~))
|
|
|
|
?. ((sane %tas) for) (flue cof)
|
|
|
|
=. s.bem [for s.bem]
|
2017-09-13 22:54:55 +03:00
|
|
|
%+ cope (load-arch cof bem)
|
2016-11-24 07:25:07 +03:00
|
|
|
|= {cof/cafe arc/arch}
|
|
|
|
(fine cof (bind fil.arc $~))
|
|
|
|
::
|
|
|
|
++ lace :: load file
|
|
|
|
|= {cof/cafe for/mark bem/beam}
|
|
|
|
^- (bolt vase)
|
2016-12-02 22:34:07 +03:00
|
|
|
%+ cool |.(leaf+"ford: load {<for>} {<(en-beam bem)>}")
|
2016-11-24 07:25:07 +03:00
|
|
|
=. s.bem [for s.bem]
|
2017-09-13 22:54:55 +03:00
|
|
|
%+ cope (load-file cof bem)
|
2016-11-24 07:25:07 +03:00
|
|
|
|= {cof/cafe cay/cage} ^- (bolt vase)
|
|
|
|
?. =(for p.cay)
|
|
|
|
(flaw cof leaf+"unexpected mark {<p.cay>}" ~)
|
|
|
|
(fine cof q.cay)
|
|
|
|
::
|
|
|
|
++ lake :: check+coerce
|
|
|
|
|= {fit/? for/mark}
|
|
|
|
|= {cof/cafe sam/vase}
|
|
|
|
^- (bolt vase)
|
|
|
|
%+ cool |.(leaf+"ford: check {<[for bek `@p`(mug q.sam)]>}")
|
|
|
|
%+ cope (fang cof for)
|
|
|
|
|= {cof/cafe tux/vase}
|
|
|
|
=+ typ=p:(slot 6 tux)
|
|
|
|
=. typ ?+(-.typ typ $face q.typ)
|
|
|
|
?: (~(nest ut typ) | p.sam)
|
|
|
|
(fine cof typ q.sam)
|
|
|
|
?. fit (flaw cof [%leaf "ford: invalid type: {<p.sam>}"]~)
|
|
|
|
?. (slob %grab p.tux)
|
|
|
|
(flaw cof [%leaf "ford: no grab: {<[for bek]>}"]~)
|
|
|
|
=+ gab=(slap tux [%limb %grab])
|
|
|
|
?. (slob %noun p.gab)
|
|
|
|
(flaw cof [%leaf "ford: no noun: {<[for bek]>}"]~)
|
|
|
|
%+ cope (maul cof (slap gab [%limb %noun]) [%noun q.sam])
|
|
|
|
|= {cof/cafe pro/vase}
|
|
|
|
?> (~(nest ut typ) | p.pro)
|
2016-12-16 09:34:01 +03:00
|
|
|
?: =(q.pro q.sam)
|
2016-11-24 07:25:07 +03:00
|
|
|
(fine cof typ q.pro)
|
|
|
|
(flaw cof [%leaf "ford: invalid content: {<[for bek]>}"]~)
|
|
|
|
::
|
2017-09-13 22:54:55 +03:00
|
|
|
++ normalize-beak
|
2016-11-24 07:25:07 +03:00
|
|
|
|= {cof/cafe bem/beam}
|
|
|
|
^- (bolt beam)
|
|
|
|
?: ?=($ud -.r.bem) (fine cof bem)
|
|
|
|
=+ von=(syve [151 %noun] ~ %cw bem(s ~))
|
|
|
|
?~ von [p=cof q=[%1 [%c %w bem ~] ~ ~]]
|
|
|
|
(fine cof bem(r [%ud ((hard @) +.+:(need u.von))]))
|
|
|
|
::
|
2017-09-13 22:54:55 +03:00
|
|
|
++ infer-product-span
|
2016-11-24 07:25:07 +03:00
|
|
|
|= {cof/cafe typ/span gen/twig}
|
|
|
|
%+ (cowl cof) (mule |.((~(play ut typ) gen)))
|
|
|
|
|=(ref/span ref)
|
|
|
|
::
|
2017-09-13 22:54:55 +03:00
|
|
|
++ filter-at-beam
|
2016-11-24 07:25:07 +03:00
|
|
|
|* {cof/cafe bem/beam fun/(burg knot (unit))}
|
2017-09-13 22:54:55 +03:00
|
|
|
%+ cope (load-arch cof bem)
|
2016-11-24 07:25:07 +03:00
|
|
|
|=({cof/cafe arc/arch} ((some-in-map fun) cof dir.arc))
|
|
|
|
::
|
2017-09-13 22:54:55 +03:00
|
|
|
++ load-core
|
2016-11-24 07:25:07 +03:00
|
|
|
|= {cof/cafe bem/beam} ^- (bolt vase)
|
2017-09-13 22:54:55 +03:00
|
|
|
%+ cope (normalize-beak cof bem)
|
2016-11-24 07:25:07 +03:00
|
|
|
|= {cof/cafe bem/beam}
|
2017-09-13 22:54:55 +03:00
|
|
|
(load-with-path cof many+~ bem bem)
|
2016-11-24 07:25:07 +03:00
|
|
|
::
|
2017-09-13 22:54:55 +03:00
|
|
|
++ load-with-path
|
|
|
|
~/ %load-with-path
|
2016-11-24 07:25:07 +03:00
|
|
|
|= {cof/cafe arg/coin bem/beam bom/beam}
|
2017-09-13 22:54:55 +03:00
|
|
|
%+ cope (normalize-beak cof bem)
|
2016-11-24 07:25:07 +03:00
|
|
|
|= {cof/cafe bem/beam}
|
|
|
|
%+ (clef %boil) (fine cof arg bem bom)
|
|
|
|
|= {cof/cafe arg/coin bem/beam bom/beam}
|
|
|
|
%+ cope (fame cof bem)
|
|
|
|
|= {cof/cafe bem/beam}
|
2017-09-13 22:54:55 +03:00
|
|
|
(cope (compile-to-hood cof bem) abut:(meow bom arg))
|
2016-11-24 07:25:07 +03:00
|
|
|
::
|
2017-09-13 22:54:55 +03:00
|
|
|
++ load-arch
|
2016-11-24 07:25:07 +03:00
|
|
|
|= {cof/cafe bem/beam}
|
|
|
|
^- (bolt arch)
|
|
|
|
=+ von=(syve [151 %noun] ~ %cy bem)
|
|
|
|
?~ von [p=cof q=[%1 [%c %y bem ~] ~ ~]]
|
|
|
|
?> ?=({$~ $arch ^} u.von)
|
|
|
|
=+ arc=((hard arch) q.q.u.u.von)
|
2017-09-13 22:54:55 +03:00
|
|
|
%+ cope (normalize-beak cof bem)
|
2016-11-24 07:25:07 +03:00
|
|
|
|= {cof/cafe bem/beam}
|
|
|
|
(flag bem (fine cof arc))
|
|
|
|
::
|
2017-09-13 22:54:55 +03:00
|
|
|
++ load-file
|
|
|
|
~/ %load-file
|
2016-11-24 07:25:07 +03:00
|
|
|
|= {cof/cafe bem/beam}
|
|
|
|
^- (bolt cage)
|
|
|
|
?: =([%ud 0] r.bem)
|
2016-12-02 22:34:07 +03:00
|
|
|
(flaw cof [leaf+"ford: no data: {<(en-beam bem(s ~))>}"]~)
|
2016-11-24 07:25:07 +03:00
|
|
|
=+ von=(syve [151 %noun] ~ %cx bem)
|
|
|
|
?~ von
|
|
|
|
[p=cof q=[%1 [[%c %x bem ~] ~ ~]]]
|
|
|
|
?~ u.von
|
2016-12-02 22:34:07 +03:00
|
|
|
(flaw cof leaf+"file not found" (smyt (en-beam bem)) ~)
|
2016-11-24 07:25:07 +03:00
|
|
|
(fine cof u.u.von)
|
|
|
|
::
|
2017-09-13 22:54:55 +03:00
|
|
|
++ load-to-mark
|
|
|
|
~/ %load-to-mark
|
2016-11-24 07:25:07 +03:00
|
|
|
|= {cof/cafe for/mark bem/beam}
|
|
|
|
%+ (clef %bake) (flag bem (fine cof for bem))
|
|
|
|
|= {cof/cafe for/mark bem/beam}
|
|
|
|
^- (bolt (unit vase))
|
|
|
|
%+ cope (laze cof bem)
|
|
|
|
|= {cof/cafe mal/(map mark $~)}
|
|
|
|
?: (~(has by mal) for)
|
|
|
|
(cope (lace cof for bem) (flux some))
|
2017-11-02 01:44:05 +03:00
|
|
|
=+ opt=(silt (turn ~(tap by mal) head)) :: XX asymptotics
|
2017-09-13 22:54:55 +03:00
|
|
|
%+ cope (find-translation-path cof for opt)
|
2016-11-24 07:25:07 +03:00
|
|
|
|= {cof/cafe wuy/(list @tas)}
|
|
|
|
?~ wuy (flue cof)
|
2016-12-16 09:34:01 +03:00
|
|
|
%+ cope
|
2016-11-24 07:25:07 +03:00
|
|
|
(lace cof i.wuy bem)
|
|
|
|
|= {cof/cafe hoc/vase}
|
2017-09-13 22:54:55 +03:00
|
|
|
(cope (run-marks cof i.wuy t.wuy hoc) (flux some))
|
2016-11-24 07:25:07 +03:00
|
|
|
::
|
2017-09-13 22:54:55 +03:00
|
|
|
++ render-or-load
|
2016-11-24 07:25:07 +03:00
|
|
|
|= {cof/cafe for/mark arg/coin bem/beam}
|
|
|
|
^- (bolt vase)
|
2017-09-13 22:54:55 +03:00
|
|
|
%+ coop
|
|
|
|
%+ cool |.(leaf+"load: attempt renderer")
|
|
|
|
(load-with-path cof arg [-.bem /[for]/ren] bem)
|
2016-11-24 07:25:07 +03:00
|
|
|
|= cof/cafe ^- (bolt vase)
|
2017-09-13 22:54:55 +03:00
|
|
|
%+ cool |.(leaf+"load: attempt mark")
|
|
|
|
%+ cope (load-to-mark cof for bem)
|
2016-11-24 07:25:07 +03:00
|
|
|
|= {cof/cafe vux/(unit vase)}
|
|
|
|
?^ vux (fine cof u.vux)
|
2016-12-02 22:34:07 +03:00
|
|
|
(flaw cof leaf+"ford: no {<for>} at {<(en-beam bem)>}" ~)
|
2016-11-24 07:25:07 +03:00
|
|
|
::
|
2017-09-13 22:54:55 +03:00
|
|
|
++ translate-mark
|
|
|
|
~/ %translate-mark
|
2016-11-24 07:25:07 +03:00
|
|
|
|= {cof/cafe too/mark for/mark vax/vase}
|
2017-09-13 22:54:55 +03:00
|
|
|
=* translate-mark-jet .
|
|
|
|
:: ~$ translate-mark
|
2016-11-24 07:25:07 +03:00
|
|
|
^- (bolt vase)
|
2017-09-13 22:54:55 +03:00
|
|
|
:: %+ cool |.(leaf+"ford: translate-mark {<too>} {<for>} {<p.vax>}")
|
2016-11-24 07:25:07 +03:00
|
|
|
?: =(too for) (fine cof vax)
|
|
|
|
?: |(=(%noun for) =(%$ for))
|
|
|
|
((lake & too) cof vax)
|
|
|
|
%+ cope (fang cof for)
|
|
|
|
|= {cof/cafe pro/vase} ^- (bolt vase)
|
2017-09-13 22:54:55 +03:00
|
|
|
?: :: =< $ ~% %limb-grow translate-mark-jet ~ |.
|
2016-11-24 07:25:07 +03:00
|
|
|
&((slob %grow p.pro) (slob too p:(slap pro [%limb %grow])))
|
2017-09-13 22:54:55 +03:00
|
|
|
:: ~$ translate-mark-grow
|
|
|
|
:: =< $ ~% %grow translate-mark-jet ~ |.
|
2016-11-11 01:45:50 +03:00
|
|
|
%+ cool |.(leaf+"ford: grow {<for>} to {<too>}")
|
2016-11-24 07:25:07 +03:00
|
|
|
%+ cope (keel cof pro [[%& 6]~ vax]~)
|
|
|
|
|= {cof/cafe pox/vase}
|
2017-11-02 01:44:05 +03:00
|
|
|
(wrapped-slap cof pox [%tsgr [%limb %grow] [%limb too]])
|
2016-11-24 07:25:07 +03:00
|
|
|
%+ cope (fang cof too)
|
2017-09-13 22:54:55 +03:00
|
|
|
~% %grab translate-mark-jet ~
|
2016-11-24 07:25:07 +03:00
|
|
|
|= {cof/cafe pro/vase}
|
|
|
|
=+ :: =< $ ~% %limb-grab + ~ |.
|
|
|
|
^= zat ^- (unit vase)
|
|
|
|
?. (slob %grab p.pro) ~
|
|
|
|
=+ gab=(slap pro [%limb %grab])
|
|
|
|
?. (slob for p.gab) ~
|
|
|
|
`(slap gab [%limb for])
|
|
|
|
?~ zat
|
2017-09-13 22:54:55 +03:00
|
|
|
:: ~$ translate-mark-miss
|
|
|
|
(flaw cof [%leaf "ford: no translate-mark: {<[for too]>}"]~)
|
|
|
|
:: ~$ translate-mark-grab
|
2017-09-13 22:58:24 +03:00
|
|
|
~| [%translate-mark-maul for too]
|
2016-11-24 07:25:07 +03:00
|
|
|
(maul cof u.zat vax)
|
|
|
|
::
|
2017-09-13 22:54:55 +03:00
|
|
|
++ translation-targets
|
|
|
|
~/ %translation-targets
|
|
|
|
|= {cof/cafe for/mark} ^- (bolt (set @tas))
|
|
|
|
%+ cope (coop (fang cof for) |=(cof/cafe (fine cof %void ~)))
|
|
|
|
%- flux
|
|
|
|
|= vax/vase ^- (set mark)
|
|
|
|
%- =- ~(gas in `(set mark)`-)
|
|
|
|
?. (slob %grow p.vax) ~
|
|
|
|
(silt (sloe p:(slap vax [%limb %grow])))
|
|
|
|
?. (slob %garb p.vax) ~
|
|
|
|
=+ (slap vax [%limb %garb])
|
|
|
|
(fall ((soft (list mark)) q) ~)
|
|
|
|
::
|
|
|
|
++ find-translation-path
|
|
|
|
~/ %find-translation-path
|
2016-11-24 07:25:07 +03:00
|
|
|
|= {cof/cafe too/mark fro/(set mark)}
|
2017-09-13 22:54:55 +03:00
|
|
|
=* find-translation-path-jet .
|
|
|
|
:: ~& find-translation-path+[too=too fro=fro]
|
|
|
|
:: =- =+ (cope - (flux |=(a/(list mark) ~&(find-translation-pathed+a ~))))
|
2016-11-24 07:25:07 +03:00
|
|
|
:: +<
|
|
|
|
^- (bolt (list mark))
|
2017-09-13 22:54:55 +03:00
|
|
|
=; gro/(burg (set mark) (list mark))
|
|
|
|
%+ coop (gro cof too ~ ~) :: XX better grab layer
|
|
|
|
~% %grab find-translation-path-jet ~
|
|
|
|
|= cof/cafe
|
|
|
|
%+ cool |.(leaf+"cast: finding grabbable grow destinations")
|
|
|
|
%+ cope (fang cof too)
|
|
|
|
|= {cof/cafe vax/vase} ^- (bolt (list mark))
|
|
|
|
?. (slob %grab p.vax) (flue cof)
|
|
|
|
%+ cope
|
|
|
|
(gro cof (silt (sloe p:(slap vax [%limb %grab]))))
|
|
|
|
(flux |=(a/path (welp a /[too])))
|
2016-11-24 07:25:07 +03:00
|
|
|
|= {cof/cafe tag/(set mark)}
|
|
|
|
=| $: war/(map mark (list mark))
|
2016-12-16 09:34:01 +03:00
|
|
|
pax/(list mark)
|
2016-11-24 07:25:07 +03:00
|
|
|
won/{p/mark q/(qeu mark)}
|
|
|
|
==
|
|
|
|
%. [cof fro]
|
|
|
|
|= {cof/cafe fro/(set mark)} ^- (bolt (list mark))
|
|
|
|
?: (~(has in tag) p.won)
|
|
|
|
(fine cof (flop pax))
|
2017-09-22 04:45:27 +03:00
|
|
|
=+ for=(skip ~(tap in fro) ~(has by war))
|
2016-11-24 07:25:07 +03:00
|
|
|
=. for (sort for aor) :: XX useful?
|
|
|
|
=: q.won (~(gas to q.won) for)
|
|
|
|
war (~(gas by war) (turn for |=(mark [+< pax])))
|
|
|
|
==
|
|
|
|
?: =(~ q.won)
|
|
|
|
(flue cof)
|
|
|
|
=. won ~(get to q.won)
|
2017-09-13 22:54:55 +03:00
|
|
|
%+ cope (translation-targets cof p.won)
|
|
|
|
|= {cof/cafe fro/(set mark)}
|
|
|
|
=. pax [p.won (~(got by war) p.won)]
|
|
|
|
^$(cof cof, fro fro)
|
2016-11-24 07:25:07 +03:00
|
|
|
::
|
2017-09-13 22:54:55 +03:00
|
|
|
++ run-marks
|
2016-11-24 07:25:07 +03:00
|
|
|
|= {cof/cafe for/mark yaw/(list mark) vax/vase}
|
|
|
|
^- (bolt vase)
|
|
|
|
?~ yaw (fine cof vax)
|
2017-09-13 22:54:55 +03:00
|
|
|
%+ cope (translate-mark cof i.yaw for vax)
|
2016-11-24 07:25:07 +03:00
|
|
|
|= {cof/cafe yed/vase}
|
|
|
|
^$(cof cof, for i.yaw, yaw t.yaw, vax yed)
|
|
|
|
::
|
2017-09-13 22:54:55 +03:00
|
|
|
++ mint-cached
|
|
|
|
~/ %mint-cached
|
2016-11-24 07:25:07 +03:00
|
|
|
|= {cof/cafe sut/span gen/twig}
|
|
|
|
^- (bolt (pair span nock))
|
|
|
|
%+ (clef %slim) (fine cof sut gen)
|
|
|
|
|= {cof/cafe sut/span gen/twig}
|
|
|
|
=+ puz=(mule |.((~(mint ut sut) [%noun gen])))
|
|
|
|
?- -.puz
|
|
|
|
$| (flaw cof p.puz)
|
|
|
|
$& (fine cof p.puz)
|
|
|
|
==
|
|
|
|
::
|
2017-09-13 22:54:55 +03:00
|
|
|
++ wrapped-slap :: slap
|
|
|
|
~/ %wrapped-slap
|
2016-11-24 07:25:07 +03:00
|
|
|
|= {cof/cafe vax/vase gen/twig}
|
|
|
|
^- (bolt vase)
|
2017-09-13 22:54:55 +03:00
|
|
|
%+ cope (mint-cached cof p.vax gen)
|
2016-11-24 07:25:07 +03:00
|
|
|
|= {cof/cafe typ/span fol/nock}
|
|
|
|
%+ (coup cof) (mock [q.vax fol] (sloy syve))
|
|
|
|
|=(val/* `vase`[typ val])
|
|
|
|
::
|
2017-09-13 22:54:55 +03:00
|
|
|
++ make-with-normalized-beak :: normalize root beak
|
2016-11-24 07:25:07 +03:00
|
|
|
|= {cof/cafe kas/silk}
|
2017-09-13 22:54:55 +03:00
|
|
|
%+ cope (normalize-beak cof bek ~)
|
2016-11-24 07:25:07 +03:00
|
|
|
|=({cof/cafe byk/beak *} (make(bek byk) cof kas))
|
|
|
|
::
|
|
|
|
++ abbrev :: shorten coin
|
|
|
|
|=(a/coin ?-(-.a $$ a, $blob a(p (mug p.a)), $many a(p (turn p.a ..$))))
|
|
|
|
::
|
|
|
|
++ make :: reduce silk
|
|
|
|
|= {cof/cafe kas/silk}
|
|
|
|
:: =+ ^= pre
|
|
|
|
:: ?+ -.kas `term`-.kas
|
|
|
|
:: ^ %cell
|
2016-12-02 22:34:07 +03:00
|
|
|
:: $bake [-.kas p.kas (en-beam r.kas) ~(rent co (abbrev q.kas))]
|
|
|
|
:: $core [-.kas (en-beam p.kas)]
|
2016-11-24 07:25:07 +03:00
|
|
|
:: ==
|
|
|
|
:: ~? !=(%$ pre) [dyv `term`(cat 3 %make (fil 3 dyv ' ')) pre]
|
|
|
|
:: =- ~? !=(%$ pre) [dyv `term`(cat 3 %made (fil 3 dyv ' ')) pre] -
|
2017-09-12 02:19:55 +03:00
|
|
|
::
|
|
|
|
=. dyv +(dyv) :: go deeper
|
2016-11-24 07:25:07 +03:00
|
|
|
^- (bolt gage)
|
|
|
|
?- -.kas
|
|
|
|
^
|
|
|
|
%. [cof p.kas q.kas]
|
|
|
|
;~ cope
|
|
|
|
;~ coax
|
2016-12-09 01:16:57 +03:00
|
|
|
|=({cof/cafe p/silk q/silk} (cope ^$(cof cof, kas p.kas) flay))
|
2017-11-02 01:44:05 +03:00
|
|
|
|=({cof/cafe p/silk q/silk} (cope ^$(cof cof, kas q.kas) flay))
|
2016-11-24 07:25:07 +03:00
|
|
|
== :: XX merge %tabl
|
|
|
|
::
|
|
|
|
|= {cof/cafe bor/cage heg/cage} ^- (bolt gage)
|
|
|
|
(faun cof (slop q.bor q.heg))
|
|
|
|
==
|
|
|
|
::
|
|
|
|
$$ (fine cof %& p.kas)
|
|
|
|
$alts
|
2017-09-13 22:54:55 +03:00
|
|
|
|- ^- (bolt gage)
|
2016-11-24 07:25:07 +03:00
|
|
|
?~ p.kas (flaw cof leaf+"ford: out of options" ~)
|
2017-09-13 22:54:55 +03:00
|
|
|
%+ coop (cool %option ^$(cof cof, kas i.p.kas))
|
|
|
|
|= cof/cafe ^- (bolt gage)
|
|
|
|
^$(cof cof, p.kas t.p.kas)
|
2016-11-24 07:25:07 +03:00
|
|
|
::
|
|
|
|
$bake
|
|
|
|
^- (bolt gage)
|
2016-12-16 09:34:01 +03:00
|
|
|
%+ cool
|
2016-12-02 22:34:07 +03:00
|
|
|
|.(leaf+"ford: bake {<p.kas>} {<(en-beam r.kas)>} {~(rend co q.kas)}")
|
2017-09-13 22:54:55 +03:00
|
|
|
%+ cope (normalize-beak cof r.kas)
|
2016-11-24 07:25:07 +03:00
|
|
|
|= {cof/cafe bem/beam}
|
2017-09-13 22:54:55 +03:00
|
|
|
%+ cope (render-or-load cof p.kas q.kas bem)
|
2016-11-24 07:25:07 +03:00
|
|
|
|= {cof/cafe vax/vase}
|
|
|
|
(fine cof `gage`[%& p.kas vax])
|
|
|
|
::
|
|
|
|
$bunt
|
|
|
|
%+ cool |.(leaf+"ford: bunt {<p.kas>}")
|
|
|
|
%+ cope (fang cof p.kas)
|
|
|
|
|= {cof/cafe tux/vase}
|
|
|
|
=+ [typ=p val=q]:(slot 6 tux)
|
|
|
|
=. typ ?+(-.typ typ $face q.typ)
|
|
|
|
(fine cof [%& p.kas [typ val]])
|
|
|
|
::
|
|
|
|
$call
|
|
|
|
:: %+ cool |.(leaf+"ford: call {<`@p`(mug kas)>}")
|
|
|
|
%. [cof p.kas q.kas]
|
|
|
|
;~ cope
|
|
|
|
;~ coax
|
2016-12-09 01:16:57 +03:00
|
|
|
|=({cof/cafe p/silk q/silk} (cope ^$(cof cof, kas p) flay))
|
2016-11-24 07:25:07 +03:00
|
|
|
|=({cof/cafe p/silk q/silk} ^$(cof cof, kas q))
|
|
|
|
==
|
|
|
|
::
|
|
|
|
|= {cof/cafe gat/cage sam/gage}
|
|
|
|
%. [cof sam]
|
|
|
|
%- tabl-run
|
|
|
|
|= {cof/cafe sam/cage}
|
|
|
|
(cope (maul cof q.gat q.sam) faun)
|
|
|
|
==
|
|
|
|
::
|
2017-09-20 03:35:45 +03:00
|
|
|
$cast
|
2016-11-24 07:25:07 +03:00
|
|
|
%+ cool |.(leaf+"ford: cast {<p.kas>}")
|
|
|
|
%+ cope $(kas q.kas)
|
|
|
|
%- tabl-run
|
|
|
|
|= {cof/cafe cay/cage}
|
|
|
|
:: ~$ make-cast
|
|
|
|
:: ~> %live. :: ~$(make-cast-{to}--{from} ~)
|
|
|
|
:: (rap 3 %make-cast- p.kas '--' p.cay ~)
|
|
|
|
^- (bolt gage)
|
|
|
|
%+ cool |.(leaf+"ford: casting {<p.cay>} to {<p.kas>}")
|
2017-09-13 22:54:55 +03:00
|
|
|
%+ cope (find-translation-path cof p.kas p.cay `~)
|
2016-11-24 07:25:07 +03:00
|
|
|
|= {cof/cafe wuy/(list @tas)}
|
|
|
|
%+ cope
|
|
|
|
?~ wuy
|
2017-09-13 22:54:55 +03:00
|
|
|
(translate-mark cof p.kas p.cay q.cay)
|
|
|
|
(run-marks cof i.wuy t.wuy q.cay)
|
2016-11-24 07:25:07 +03:00
|
|
|
(flux |=(vax/vase [%& p.kas vax]))
|
|
|
|
::
|
|
|
|
$core
|
2016-12-02 22:34:07 +03:00
|
|
|
%+ cool |.(leaf+"ford: core {<(en-beam p.kas)>}")
|
2016-11-08 21:28:33 +03:00
|
|
|
:: code runtime behaviour is frequently affected by marks
|
|
|
|
:: TODO: track this more formally
|
2016-11-08 20:58:14 +03:00
|
|
|
%+ flag [bek /mar]
|
2016-11-08 21:28:33 +03:00
|
|
|
:: until /? is in use, any hoon may implicitly depend on arvo types
|
|
|
|
%+ flag [bek /arvo/hoon]
|
|
|
|
%+ flag [bek /arvo/zuse]
|
2017-09-13 22:54:55 +03:00
|
|
|
(cope (load-core cof p.kas) (flux |=(a/vase [%& %core a])))
|
2016-11-24 07:25:07 +03:00
|
|
|
::
|
|
|
|
$diff
|
|
|
|
%+ cool |.(leaf+"ford: diff {<`@p`(mug p.kas)>} {<`@p`(mug q.kas)>}")
|
|
|
|
(diff cof p.kas q.kas)
|
|
|
|
::
|
|
|
|
$dude (cool p.kas $(kas q.kas))
|
|
|
|
$file
|
|
|
|
%+ cool |.(leaf+"ford: file {<p.kas>}")
|
2017-09-13 22:54:55 +03:00
|
|
|
%+ cope (load-file cof p.kas)
|
2016-11-24 07:25:07 +03:00
|
|
|
(flux |=(cay/cage [%& cay]))
|
|
|
|
::
|
|
|
|
$flag
|
|
|
|
=+ rez=$(kas q.kas)
|
|
|
|
?: ?=($1 -.q.rez) rez
|
|
|
|
=- rez(p.q -)
|
|
|
|
|- ^- (set beam)
|
|
|
|
?~ p.kas p.q.rez
|
|
|
|
=. p.q.rez $(p.kas l.p.kas)
|
|
|
|
=. p.q.rez $(p.kas r.p.kas)
|
|
|
|
?^ n.p.kas
|
|
|
|
(~(put in p.q.rez) n.p.kas)
|
2017-10-14 01:57:15 +03:00
|
|
|
=+ dap=(~(get by def.deh.bay) n.p.kas)
|
2016-11-24 07:25:07 +03:00
|
|
|
?~ dap ~&(flag-missed+n.p.kas p.q.rez)
|
2017-10-14 01:57:15 +03:00
|
|
|
(~(uni in p.q.rez) u.dap)
|
2016-11-24 07:25:07 +03:00
|
|
|
:: XX revisit ^ during dependency review
|
|
|
|
$join
|
|
|
|
%+ cool
|
|
|
|
|.
|
|
|
|
leaf+"ford: join {<p.kas>} {<`@p`(mug q.kas)>} {<`@p`(mug r.kas)>}"
|
|
|
|
(join cof p.kas q.kas r.kas)
|
|
|
|
::
|
|
|
|
$mash
|
|
|
|
%+ cool
|
|
|
|
|.
|
|
|
|
leaf+"ford: mash {<p.kas>} {<`@p`(mug q.kas)>} {<`@p`(mug r.kas)>}"
|
|
|
|
(mash cof p.kas q.kas r.kas)
|
|
|
|
::
|
|
|
|
$mute (kale cof p.kas q.kas)
|
|
|
|
$pact
|
|
|
|
%+ cool |.(leaf+"ford: pact {<`@p`(mug p.kas)>} {<`@p`(mug q.kas)>}")
|
|
|
|
(pact cof p.kas q.kas)
|
|
|
|
::
|
|
|
|
$plan (cope (abut:(meow p.kas q.kas) cof r.kas) faun)
|
|
|
|
$reef (faun cof pit)
|
|
|
|
$ride
|
|
|
|
%+ cool |.(leaf+"ford: build failed {<hen>}")
|
|
|
|
%+ cope $(kas q.kas)
|
|
|
|
%- tabl-run
|
|
|
|
|= {cof/cafe cay/cage}
|
2017-09-13 22:54:55 +03:00
|
|
|
%+ cope (wrapped-slap cof q.cay p.kas)
|
2016-11-24 07:25:07 +03:00
|
|
|
|= {cof/cafe vax/vase}
|
|
|
|
(faun cof vax)
|
|
|
|
::
|
|
|
|
$tabl
|
|
|
|
%+ cope
|
|
|
|
|- ^- (bolt (list (pair gage gage)))
|
|
|
|
?~ p.kas (fine cof ~)
|
|
|
|
%. [cof p.kas]
|
|
|
|
;~ cope
|
|
|
|
;~ coax
|
|
|
|
|=({cof/cafe _p.kas} (fret ^^$(cof cof, kas p.i)))
|
|
|
|
|=({cof/cafe _p.kas} (fret ^^$(cof cof, kas q.i)))
|
|
|
|
|=({cof/cafe _p.kas} ^$(cof cof, p.kas t))
|
|
|
|
==
|
|
|
|
(flux |=({k/gage v/gage t/(list {gage gage})} [[k v] t]))
|
|
|
|
==
|
|
|
|
(flux |=(rex/(list (pair gage gage)) [%tabl rex]))
|
|
|
|
::
|
2016-12-16 09:34:01 +03:00
|
|
|
$vale
|
2016-11-24 07:25:07 +03:00
|
|
|
%+ cool |.(leaf+"ford: vale {<p.kas>} {<`@p`(mug q.kas)>}")
|
|
|
|
%+ cope ((lake & p.kas) cof [%noun q.kas])
|
|
|
|
(flux |=(vax/vase `gage`[%& p.kas vax]))
|
|
|
|
::
|
|
|
|
$volt
|
|
|
|
%+ cool |.(leaf+"ford: volt {<p.p.kas>}")
|
|
|
|
%+ cope $(kas [%bunt p.p.kas])
|
|
|
|
%- tabl-run
|
|
|
|
|= {cof/cafe cay/cage}
|
|
|
|
^- (bolt gage)
|
|
|
|
(fine cof [%& p.p.kas p.q.cay q.p.kas])
|
|
|
|
==
|
|
|
|
::
|
|
|
|
++ malt :: cached slit
|
|
|
|
~/ %slit
|
|
|
|
|= {cof/cafe gat/span sam/span}
|
|
|
|
^- (bolt span)
|
|
|
|
%+ (clef %slit) (fine cof gat sam)
|
|
|
|
|= {cof/cafe gat/span sam/span}
|
|
|
|
%+ cool |.(%.(%have ~(dunk ut sam)))
|
|
|
|
%+ cool |.(%.(%want ~(dunk ut (~(peek ut gat) %free 6))))
|
|
|
|
=+ top=(mule |.((slit gat sam)))
|
|
|
|
?- -.top
|
|
|
|
$| (flaw cof p.top)
|
|
|
|
$& (fine cof p.top)
|
|
|
|
==
|
|
|
|
::
|
|
|
|
++ maul :: slam
|
|
|
|
~/ %maul
|
|
|
|
|= {cof/cafe gat/vase sam/vase}
|
|
|
|
^- (bolt vase)
|
|
|
|
%+ cope (malt cof p.gat p.sam)
|
|
|
|
|= {cof/cafe typ/span}
|
|
|
|
%+ (coup cof) (mong [q.gat q.sam] (sloy syve))
|
|
|
|
|=(val/* `vase`[typ val])
|
|
|
|
::
|
|
|
|
++ meow :: assemble
|
|
|
|
:: =+ dyv=0
|
|
|
|
|= {how/beam arg/coin}
|
|
|
|
=| $: rop/(map term (pair hoof twig)) :: structures
|
|
|
|
bil/(map term (pair hoof twig)) :: libraries
|
|
|
|
boy/(list twig) :: body stack
|
|
|
|
lit/? :: drop arguments
|
|
|
|
==
|
|
|
|
~% %meow ..meow ~
|
|
|
|
|%
|
|
|
|
++ able :: assemble preamble
|
|
|
|
^- twig
|
2017-09-20 23:15:30 +03:00
|
|
|
:+ %tsgr
|
2017-03-26 07:25:04 +03:00
|
|
|
?: =(~ rop)
|
|
|
|
[%$ 1]
|
2017-09-18 04:32:20 +03:00
|
|
|
:+ %brcn [~ ~]
|
2017-03-31 23:42:51 +03:00
|
|
|
=- [[0 [~ ~] -] ~ ~]
|
2017-03-26 07:25:04 +03:00
|
|
|
(~(run by rop) |=({^ a/twig} [~ %ash a]))
|
|
|
|
?: =(~ bil)
|
|
|
|
[%$ 1]
|
2017-09-18 04:32:20 +03:00
|
|
|
:+ %brcn [~ ~]
|
2017-03-31 23:42:51 +03:00
|
|
|
=- [[0 [~ ~] -] ~ ~]
|
2017-03-26 07:25:04 +03:00
|
|
|
(~(run by bil) |=({^ a/twig} [~ %ash a]))
|
2016-11-24 07:25:07 +03:00
|
|
|
::
|
|
|
|
++ abut :: generate
|
|
|
|
|= {cof/cafe hyd/hood}
|
|
|
|
^- (bolt vase)
|
|
|
|
%+ cope (apex cof hyd)
|
|
|
|
|= {cof/cafe sel/_..abut}
|
|
|
|
=. ..abut sel
|
2017-09-13 22:54:55 +03:00
|
|
|
%+ cope (wrapped-slap cof pit able)
|
2016-11-24 07:25:07 +03:00
|
|
|
|= {cof/cafe bax/vase}
|
2017-09-09 02:08:52 +03:00
|
|
|
%+ cope (chap cof bax [%fsdt fan.hyd])
|
2016-11-24 07:25:07 +03:00
|
|
|
|= {cof/cafe mar/mark gox/vase}
|
2017-11-02 01:44:05 +03:00
|
|
|
%+ cope (wrapped-slap cof (slop gox bax) [%tssg (flop boy)])
|
2016-11-24 07:25:07 +03:00
|
|
|
|= {cof/cafe fin/vase}
|
2016-12-16 09:34:01 +03:00
|
|
|
(fine cof fin)
|
2016-11-24 07:25:07 +03:00
|
|
|
:: ~> %slog.[0 ~(duck ut p.q.cay)]
|
|
|
|
::
|
2017-11-02 01:44:05 +03:00
|
|
|
:: ++ libs `(set term)`(silt (turn ~(tap by bil) head.is))
|
2016-11-24 07:25:07 +03:00
|
|
|
++ apex :: build to body
|
|
|
|
|= {cof/cafe hyd/hood}
|
|
|
|
^- (bolt _..apex)
|
|
|
|
%+ cope (body cof src.hyd)
|
|
|
|
::=. dyv +(dyv)
|
|
|
|
::~& [`term`(cat 3 %apex (fil 4 dyv ' ')) `path`(flop s.how) libs]
|
|
|
|
::=- ~& [`term`(cat 3 %xepa (fil 4 dyv ' ')) `path`(flop s.how)] -
|
|
|
|
|= {cof/cafe sel/_..apex}
|
|
|
|
=. ..apex sel
|
|
|
|
%+ cope (neck cof lib.hyd)
|
|
|
|
|= {cof/cafe sel/_..apex}
|
|
|
|
=. ..apex sel(boy boy)
|
|
|
|
%+ cope (head cof sur.hyd)
|
|
|
|
|= {cof/cafe sel/_..apex}
|
|
|
|
(fine cof sel)
|
|
|
|
::
|
|
|
|
++ body :: produce functions
|
|
|
|
|= {cof/cafe src/(list hoop)}
|
|
|
|
^- (bolt _..body)
|
|
|
|
?~ src (fine cof ..body)
|
|
|
|
%+ cope (wilt cof i.src)
|
|
|
|
|= {cof/cafe sel/_..body}
|
|
|
|
^$(src t.src, ..body sel, cof cof)
|
|
|
|
::
|
|
|
|
++ chai :: atomic map
|
|
|
|
|= {cof/cafe bax/vase hon/horn}
|
|
|
|
^- (bolt vase)
|
|
|
|
%+ cope
|
|
|
|
%+ cope (lads cof how)
|
|
|
|
%- some-in-map
|
|
|
|
|= {cof/cafe dir/knot}
|
|
|
|
=+ nod=(chap(s.how [dir s.how]) cof bax hon)
|
|
|
|
?: ?=($2 -.q.nod)
|
|
|
|
(flue cof)
|
|
|
|
(cope nod (flux some))
|
|
|
|
%- flux
|
|
|
|
|= doy/(map @ cage) ^- vase
|
|
|
|
?~ doy [[%atom %n `0] 0]
|
|
|
|
%+ slop
|
|
|
|
(slop [[%atom %ta ~] p.n.doy] q.q.n.doy)
|
|
|
|
(slop $(doy l.doy) $(doy r.doy))
|
|
|
|
::
|
|
|
|
++ chap :: produce resources
|
|
|
|
|= {cof/cafe bax/vase hon/horn}
|
|
|
|
^- (bolt cage)
|
|
|
|
?- -.hon
|
2017-09-13 22:54:55 +03:00
|
|
|
$fssg
|
|
|
|
(cope (wrapped-slap cof bax p.hon) (flux |=(a/vase [%noun a])))
|
|
|
|
::
|
2017-09-09 02:08:52 +03:00
|
|
|
$fsbc
|
2017-09-13 22:54:55 +03:00
|
|
|
%+ cope (wrapped-slap cof bax p.hon)
|
2016-11-24 07:25:07 +03:00
|
|
|
|= {cof/cafe gat/vase}
|
2017-09-13 22:54:55 +03:00
|
|
|
%+ cope (wrapped-slap cof !>(~) ((jock |) arg))
|
2016-11-24 07:25:07 +03:00
|
|
|
|= {cof/cafe val/vase}
|
|
|
|
%+ cope (maul cof gat (slop !>(how) val))
|
|
|
|
(flux |=(a/vase noun+a))
|
|
|
|
::
|
2017-09-09 02:08:52 +03:00
|
|
|
$fsbr
|
2017-09-13 22:54:55 +03:00
|
|
|
|- ^- (bolt cage)
|
2016-11-24 07:25:07 +03:00
|
|
|
?~ p.hon (flaw cof leaf+"ford: out of options" ~)
|
2017-09-13 22:54:55 +03:00
|
|
|
%+ coop (cool %option ^$(cof cof, hon i.p.hon))
|
|
|
|
|= cof/cafe ^- (bolt cage)
|
|
|
|
^$(cof cof, p.hon t.p.hon)
|
2016-11-24 07:25:07 +03:00
|
|
|
::
|
2017-09-09 02:08:52 +03:00
|
|
|
$fshx
|
2016-11-24 07:25:07 +03:00
|
|
|
=+ [dep bot]=(clad $(hon p.hon)) :: XX review
|
|
|
|
%+ cope bot
|
|
|
|
%- flux
|
|
|
|
|= {mark vax/vase}
|
|
|
|
[%noun (slop [atom+['uvH' ~] dep] vax)]
|
|
|
|
::
|
2017-09-09 02:08:52 +03:00
|
|
|
$fsts
|
2016-11-24 07:25:07 +03:00
|
|
|
%+ cope $(hon q.hon)
|
|
|
|
%- flux
|
|
|
|
|= {mar/mark vax/vase}
|
2017-03-22 03:56:51 +03:00
|
|
|
[mar [%face [~ p.hon] p.vax] q.vax]
|
2016-11-24 07:25:07 +03:00
|
|
|
::
|
2017-09-09 02:08:52 +03:00
|
|
|
$fsdt
|
2016-12-16 09:34:01 +03:00
|
|
|
%+ cope
|
2016-11-24 07:25:07 +03:00
|
|
|
%+ cope
|
|
|
|
|- ^- (bolt (list vase))
|
|
|
|
?~ p.hon (flue cof)
|
|
|
|
%+ cope ^$(cof cof, hon i.p.hon)
|
|
|
|
|= {cof/cafe mar/mark vax/vase}
|
|
|
|
%+ cope ^$(cof cof, p.hon t.p.hon)
|
|
|
|
(flux |=(tev/(list vase) [vax tev]))
|
|
|
|
|= {cof/cafe tev/(list vase)}
|
|
|
|
%+ fine cof
|
|
|
|
|- ^- vase
|
|
|
|
?~ tev [[%atom %n `~] 0]
|
|
|
|
(slop i.tev $(tev t.tev))
|
|
|
|
(flux |=(a/vase noun+a))
|
|
|
|
::
|
2017-09-09 02:08:52 +03:00
|
|
|
$fscm
|
2016-11-24 07:25:07 +03:00
|
|
|
=+ opt=|.(>(turn p.hon |=({a/path ^} a))<)
|
|
|
|
|- ^- (bolt cage)
|
2016-12-02 22:34:07 +03:00
|
|
|
?~ p.hon (flaw cof leaf+"ford: no match" >(en-beam how)< *opt ~)
|
2016-11-24 07:25:07 +03:00
|
|
|
?: =(p.i.p.hon (scag (lent p.i.p.hon) (flop s.how)))
|
|
|
|
^$(hon q.i.p.hon)
|
2017-09-09 02:08:52 +03:00
|
|
|
$(p.hon t.p.hon)
|
2016-11-24 07:25:07 +03:00
|
|
|
::
|
2017-09-09 02:08:52 +03:00
|
|
|
$fscn $(hon p.hon, lit |)
|
|
|
|
$fspm
|
2016-11-24 07:25:07 +03:00
|
|
|
%+ cope $(hon q.hon)
|
|
|
|
|= {cof/cafe cay/cage} ^- (bolt cage)
|
|
|
|
?~ p.hon (fine cof cay)
|
|
|
|
%+ cope $(p.hon t.p.hon)
|
|
|
|
|= {cof/cafe cay/cage}
|
2017-09-20 03:35:45 +03:00
|
|
|
(cope (make cof %cast i.p.hon $+cay) flay)
|
2016-11-24 07:25:07 +03:00
|
|
|
::
|
2017-09-09 02:08:52 +03:00
|
|
|
$fscb
|
2016-11-24 07:25:07 +03:00
|
|
|
%+ cope (chai cof bax p.hon)
|
|
|
|
(flux |=(a/vase noun+a))
|
|
|
|
::
|
2017-09-09 02:08:52 +03:00
|
|
|
$fssm
|
2016-11-24 07:25:07 +03:00
|
|
|
%+ cope $(hon q.hon)
|
|
|
|
|= {cof/cafe mar/mark sam/vase}
|
2017-09-13 22:54:55 +03:00
|
|
|
%+ cope (wrapped-slap cof bax p.hon)
|
2016-11-24 07:25:07 +03:00
|
|
|
|= {cof/cafe gat/vase}
|
|
|
|
%+ cope (maul cof gat sam)
|
|
|
|
(flux |=(a/vase noun+a))
|
|
|
|
::
|
2017-09-09 02:08:52 +03:00
|
|
|
$fscl
|
2016-12-02 22:34:07 +03:00
|
|
|
=+ vez=(vang & (en-beam how))
|
2016-11-24 07:25:07 +03:00
|
|
|
=+ tuz=(posh:vez p.hon)
|
|
|
|
?~ tuz (flaw cof leaf+"bad tusk: {<p.hon>}" ~)
|
2017-09-18 21:50:10 +03:00
|
|
|
=+ pax=(plex:vez %clsg u.tuz)
|
2016-11-24 07:25:07 +03:00
|
|
|
?~ pax (flaw cof leaf+"bad path: {<u.tuz>}" ~)
|
2016-12-02 22:34:07 +03:00
|
|
|
=+ bem=(de-beam u.pax)
|
2016-11-24 07:25:07 +03:00
|
|
|
?~ bem (flaw cof leaf+"bad beam: {<u.pax>}" ~)
|
|
|
|
$(hon q.hon, how u.bem)
|
|
|
|
::
|
2017-09-09 02:08:52 +03:00
|
|
|
$fskt
|
2016-11-24 07:25:07 +03:00
|
|
|
%+ cope $(hon q.hon)
|
|
|
|
|= {cof/cafe mar/mark vax/vase}
|
2017-09-13 22:54:55 +03:00
|
|
|
%+ cope (wrapped-slap cof bax [%bunt p.hon])
|
2016-11-24 07:25:07 +03:00
|
|
|
|= {cof/cafe tug/vase}
|
|
|
|
?. (~(nest ut p.tug) | p.vax)
|
|
|
|
(flaw cof [%leaf "type error: {<p.hon>} {<q.hon>}"]~)
|
|
|
|
(fine cof [mar p.tug q.vax])
|
|
|
|
::
|
2017-09-09 02:08:52 +03:00
|
|
|
$fszp
|
2016-12-02 22:34:07 +03:00
|
|
|
%+ cool |.(leaf+"ford: hook {<q.hon>} {<(en-beam how)>}")
|
2017-09-09 02:08:52 +03:00
|
|
|
%. [cof how]
|
|
|
|
;~ cope
|
2017-09-13 22:54:55 +03:00
|
|
|
compile-to-hood
|
2017-09-09 02:08:52 +03:00
|
|
|
abut:(meow how arg)
|
|
|
|
(lake | q.hon)
|
|
|
|
(flux |=(a/vase [q.hon a]))
|
|
|
|
==
|
|
|
|
::
|
|
|
|
$fszy
|
2017-11-02 01:44:05 +03:00
|
|
|
=? arg lit many+~
|
|
|
|
(cope (make cof %bake q.hon arg how) flay)
|
2016-11-24 07:25:07 +03:00
|
|
|
==
|
|
|
|
::
|
|
|
|
++ head :: consume structures
|
|
|
|
|= {cof/cafe bir/(list hoof)}
|
|
|
|
^- (bolt _..head)
|
|
|
|
?~ bir
|
|
|
|
(fine cof ..head)
|
2016-12-02 22:34:07 +03:00
|
|
|
=. boy
|
|
|
|
?: p.i.bir boy
|
2017-09-20 23:15:30 +03:00
|
|
|
(welp boy [[%tscm [%limb q.i.bir] [%$ 1]] ~])
|
2016-12-02 22:34:07 +03:00
|
|
|
=+ byf=(~(get by rop) q.i.bir)
|
2016-11-24 07:25:07 +03:00
|
|
|
?^ byf
|
2016-12-02 22:34:07 +03:00
|
|
|
?. =(+:`hoof`i.bir +:`hoof`p.u.byf)
|
|
|
|
(flaw cof [%leaf "structure mismatch: {<~[p.u.byf q.i.bir]>}"]~)
|
2016-11-24 07:25:07 +03:00
|
|
|
$(bir t.bir)
|
|
|
|
%+ cope (fame cof (hone %sur i.bir))
|
|
|
|
|= {cof/cafe bem/beam}
|
2017-09-13 22:54:55 +03:00
|
|
|
%+ cope (compile-to-hood cof bem)
|
2016-11-24 07:25:07 +03:00
|
|
|
|= {cof/cafe hyd/hood}
|
|
|
|
%+ cope (apex(how bem, boy ~) cof hyd)
|
|
|
|
|= {cof/cafe sel/_..head}
|
|
|
|
=. ..head
|
|
|
|
%= sel
|
|
|
|
boy boy
|
|
|
|
how how
|
|
|
|
rop %+ ~(put by (~(uni by rop) rop.sel))
|
2016-12-16 09:34:01 +03:00
|
|
|
q.i.bir
|
2017-09-20 23:15:30 +03:00
|
|
|
[i.bir [%tssg (flop boy.sel)]]
|
2016-11-24 07:25:07 +03:00
|
|
|
==
|
|
|
|
^^^$(cof cof, bir t.bir)
|
|
|
|
::
|
|
|
|
++ hone :: plant hoof
|
|
|
|
|= {way/@tas huf/hoof}
|
|
|
|
^- beam
|
2016-12-02 22:34:07 +03:00
|
|
|
?~ r.huf
|
|
|
|
how(s ~[q.huf way])
|
|
|
|
[[q.u.r.huf q.how p.u.r.huf] ~[q.huf way]]
|
2016-11-24 07:25:07 +03:00
|
|
|
::
|
|
|
|
++ neck :: consume libraries
|
|
|
|
|= {cof/cafe bir/(list hoof)}
|
|
|
|
^- (bolt _..neck)
|
|
|
|
?~ bir (fine cof ..neck)
|
2016-12-02 22:34:07 +03:00
|
|
|
=. boy
|
|
|
|
?: p.i.bir boy
|
2017-02-14 03:02:25 +03:00
|
|
|
:: ~& ford+tscm+[q.i.bir boy]
|
2017-09-20 23:15:30 +03:00
|
|
|
(welp boy [[%tscm [%limb q.i.bir] [%$ 1]] ~])
|
2016-12-02 22:34:07 +03:00
|
|
|
=+ byf=(~(get by bil) q.i.bir)
|
2016-11-24 07:25:07 +03:00
|
|
|
?^ byf
|
2016-12-02 22:34:07 +03:00
|
|
|
?. =(+:`hoof`i.bir +:`hoof`p.u.byf)
|
2016-11-24 07:25:07 +03:00
|
|
|
(flaw cof [%leaf "library mismatch: {<~[p.u.byf i.bir]>}"]~)
|
|
|
|
$(bir t.bir)
|
|
|
|
%+ cope (fame cof (hone %lib i.bir))
|
|
|
|
|= {cof/cafe bem/beam}
|
2017-09-13 22:54:55 +03:00
|
|
|
%+ cope (compile-to-hood cof bem)
|
2016-11-24 07:25:07 +03:00
|
|
|
|= {cof/cafe hyd/hood}
|
|
|
|
%+ cope (apex(how bem, boy ~) cof hyd)
|
|
|
|
|= {cof/cafe sel/_..neck}
|
2016-12-16 09:34:01 +03:00
|
|
|
=. ..neck
|
2016-11-24 07:25:07 +03:00
|
|
|
%= sel
|
|
|
|
how how
|
|
|
|
bil %+ ~(put by (~(uni by bil) bil.sel))
|
2016-12-02 22:34:07 +03:00
|
|
|
q.i.bir
|
2017-09-20 23:15:30 +03:00
|
|
|
[i.bir [%tssg (flop boy.sel)]]
|
2016-11-24 07:25:07 +03:00
|
|
|
==
|
|
|
|
^^^$(cof cof, bir t.bir)
|
|
|
|
::
|
|
|
|
++ wilt :: process body entry
|
|
|
|
|= {cof/cafe hop/hoop}
|
|
|
|
^- (bolt _..wilt)
|
|
|
|
?- -.hop
|
|
|
|
$& (fine cof ..wilt(boy [p.hop boy]))
|
|
|
|
$|
|
|
|
|
=. r.p.hop ?:(?=({$ud $0} r.p.hop) r.how r.p.hop)
|
2016-12-02 22:34:07 +03:00
|
|
|
%+ cool |.(leaf+"ford: wilt {<[(en-beam p.hop)]>}")
|
2017-09-13 22:54:55 +03:00
|
|
|
%+ cope (load-arch cof p.hop)
|
2016-11-24 07:25:07 +03:00
|
|
|
|= {cof/cafe arc/arch}
|
|
|
|
?: (~(has by dir.arc) %hoon)
|
2017-09-13 22:54:55 +03:00
|
|
|
%+ cope (compile-to-hood cof p.hop)
|
2016-11-24 07:25:07 +03:00
|
|
|
|= {cof/cafe hyd/hood}
|
|
|
|
%+ cope (apex(boy ~) cof hyd)
|
2017-09-20 23:15:30 +03:00
|
|
|
(flux |=(sel/_..wilt sel(boy [[%tssg boy.sel] boy])))
|
2016-11-24 07:25:07 +03:00
|
|
|
=+ [all=(lark (slat %tas) arc) sel=..wilt]
|
|
|
|
%+ cope
|
2017-03-31 23:42:51 +03:00
|
|
|
|- ^- (bolt (pair (map term (pair what foot)) _..wilt))
|
2016-11-24 07:25:07 +03:00
|
|
|
?~ all (fine cof ~ ..wilt)
|
|
|
|
%+ cope $(all l.all)
|
2017-03-31 23:42:51 +03:00
|
|
|
|= {cof/cafe lef/(map term (pair what foot)) sel/_..wilt}
|
2016-11-24 07:25:07 +03:00
|
|
|
%+ cope ^$(all r.all, cof cof, sel sel)
|
2017-03-31 23:42:51 +03:00
|
|
|
|= {cof/cafe rig/(map term (pair what foot)) sel/_..wilt}
|
2016-12-16 09:34:01 +03:00
|
|
|
%+ cope
|
2016-11-24 07:25:07 +03:00
|
|
|
%= ^^^^$
|
|
|
|
cof cof
|
|
|
|
..wilt sel(boy ~)
|
|
|
|
s.p.hop [p.n.all s.p.hop]
|
|
|
|
==
|
|
|
|
|= {cof/cafe sel/_..wilt}
|
|
|
|
%+ fine cof
|
2017-03-22 03:56:51 +03:00
|
|
|
:_ sel
|
2017-03-31 23:42:51 +03:00
|
|
|
^- (map term (pair what foot))
|
2017-09-20 23:15:30 +03:00
|
|
|
[[p.n.all [~ %ash [%tssg boy.sel]]] lef rig]
|
2017-03-31 23:42:51 +03:00
|
|
|
|= {cof/cafe mav/(map term (pair what foot)) sel/_..wilt}
|
2016-11-24 07:25:07 +03:00
|
|
|
?~ mav
|
2016-12-02 22:34:07 +03:00
|
|
|
(flaw cof [%leaf "source missing: {<(en-beam p.hop)>}"]~)
|
2017-09-18 04:32:20 +03:00
|
|
|
(fine cof sel(boy [[%brcn [~ ~] [[0 [~ ~] mav] ~ ~]] boy]))
|
2016-11-24 07:25:07 +03:00
|
|
|
==
|
|
|
|
--
|
|
|
|
::
|
|
|
|
++ pact-hoon :: .hoon special case
|
2016-12-07 06:13:33 +03:00
|
|
|
|= {a/@t b/(urge:clay cord)} ^- @t
|
2016-11-24 07:25:07 +03:00
|
|
|
~| %lurk-hoon
|
2016-12-03 01:14:39 +03:00
|
|
|
=, format =, differ
|
|
|
|
(of-wain (lurk (to-wain a) b))
|
2016-11-24 07:25:07 +03:00
|
|
|
::
|
|
|
|
++ pact :: patch
|
|
|
|
|= {cof/cafe kas/silk kos/silk}
|
|
|
|
^- (bolt gage)
|
|
|
|
%. [cof kas kos]
|
|
|
|
;~ cope
|
|
|
|
;~ coax
|
2016-12-09 01:16:57 +03:00
|
|
|
|=({cof/cafe p/silk q/silk} (cope (make cof p) flay))
|
|
|
|
|=({cof/cafe p/silk q/silk} (cope (make cof q) flay))
|
2016-11-24 07:25:07 +03:00
|
|
|
==
|
|
|
|
|= {cof/cafe cay/cage coy/cage} ^- (bolt gage)
|
|
|
|
%+ cope (fang cof p.cay)
|
|
|
|
|= {cof/cafe pro/vase}
|
|
|
|
?. (slab %grad p.pro)
|
|
|
|
(flaw cof leaf+"no ++grad" ~)
|
|
|
|
=+ gar=(slap pro [%limb %grad])
|
|
|
|
?@ q.gar
|
|
|
|
=+ for=((sand %tas) q.gar)
|
|
|
|
?~ for (flaw cof leaf+"bad mark ++grad" ~)
|
2017-09-20 03:35:45 +03:00
|
|
|
(make cof `silk`[%cast p.cay %pact [%cast u.for %$ cay] %$ coy])
|
2016-11-24 07:25:07 +03:00
|
|
|
?. (slab %form p.gar)
|
|
|
|
(flaw cof leaf+"no ++form:grad" ~)
|
|
|
|
=+ for=((soft @tas) q:(slap gar [%limb %form]))
|
|
|
|
?~ for
|
|
|
|
(flaw cof leaf+"bad ++form:grad" ~)
|
|
|
|
?. =(u.for p.coy)
|
|
|
|
%+ flaw cof :_ ~
|
|
|
|
=< leaf+"pact on data with wrong form: {-} {+<} {+>}"
|
|
|
|
[(trip p.cay) (trip u.for) (trip p.coy)]
|
|
|
|
?. (slab %pact p.gar)
|
|
|
|
(flaw cof leaf+"no ++pact:grad" ~)
|
|
|
|
%+ cope (keel cof pro [[%& 6]~ q.cay]~)
|
|
|
|
|= {cof/cafe pox/vase}
|
|
|
|
%+ cope
|
|
|
|
%^ maul cof
|
|
|
|
(slap (slap pox [%limb %grad]) [%limb %pact])
|
|
|
|
q.coy
|
|
|
|
(flux |=(pat/vase [%& p.cay pat]))
|
|
|
|
==
|
|
|
|
::
|
|
|
|
++ syve
|
|
|
|
^- sley
|
|
|
|
|= {ref/* sec/(unit (set monk)) tem/term bem/beam}
|
|
|
|
^- (unit (unit cage))
|
|
|
|
?> =(%151 -.ref)
|
|
|
|
%- %- lift |= (unit cage) :: ignore block
|
|
|
|
%+ biff +<
|
2016-12-16 09:34:01 +03:00
|
|
|
|= cay/cage ^- (unit cage)
|
2016-11-24 07:25:07 +03:00
|
|
|
?. -:(nets:wa +.ref `span`p.q.cay) :: error if bad type
|
2016-12-02 22:34:07 +03:00
|
|
|
~& :^ %ford-syve-lost `path`[tem (en-beam bem)]
|
2016-11-24 07:25:07 +03:00
|
|
|
want=;;(span +.ref)
|
|
|
|
have=p.q.cay
|
|
|
|
~
|
|
|
|
`cay
|
|
|
|
^- (unit (unit cage))
|
|
|
|
=+ (~(get by keg) tem bem)
|
|
|
|
?^ -
|
|
|
|
(some -)
|
|
|
|
(ska +<.$)
|
|
|
|
--
|
|
|
|
--
|
|
|
|
::
|
|
|
|
--
|
|
|
|
. ==
|
|
|
|
=| axle
|
|
|
|
=* lex -
|
|
|
|
|= {now/@da eny/@ ski/sley} :: activate
|
|
|
|
^? :: opaque core
|
|
|
|
~% %ford-d ..is ~
|
|
|
|
|% ::
|
|
|
|
++ call :: request
|
2017-11-02 01:44:05 +03:00
|
|
|
|= {hen/duct typ/* kyz/(hobo task:able)}
|
2016-11-24 07:25:07 +03:00
|
|
|
^+ [p=*(list move) q=..^$]
|
2017-11-02 01:44:05 +03:00
|
|
|
=/ kis/task:able ?.(?=($soft -.kyz) kyz ((hard task:able) p.kyz))
|
2017-09-12 02:19:55 +03:00
|
|
|
?: ?=($wegh -.kis)
|
2016-11-24 07:25:07 +03:00
|
|
|
:_ ..^$ :_ ~
|
|
|
|
:^ hen %give %mass
|
|
|
|
:- %ford
|
|
|
|
:- %|
|
|
|
|
%- |= a/(list (list mass)) ^- (list mass) :: XX single-home
|
|
|
|
=+ a2=a
|
|
|
|
?~ a !!
|
|
|
|
?~ i.a ~
|
|
|
|
:_ $(a (turn a2 tail))
|
|
|
|
:- p.i.i.a
|
2016-12-16 09:34:01 +03:00
|
|
|
?~ -.q.i.i.a
|
2016-11-24 07:25:07 +03:00
|
|
|
[%& (turn (turn a2 head) |=(b/mass ?~(-.q.b p.q.b !!)))]
|
|
|
|
[%| $(a (turn (turn a2 head) |=(b/mass ?~(-.q.b !! p.q.b))))]
|
2017-02-13 23:43:18 +03:00
|
|
|
%+ turn ~(tap by pol)
|
2016-11-24 07:25:07 +03:00
|
|
|
|= {@ baby}
|
2017-09-13 22:58:24 +03:00
|
|
|
:~ =/ caches/(jar term *)
|
|
|
|
%- ~(rep by jav)
|
|
|
|
|=({{* a/{term *}} b/(jar term *)} (~(add ja b) -.a +.a))
|
|
|
|
=/ cache-for |=(a/term [a %& (~(get ja caches) a)])
|
|
|
|
cache+[%| (turn `(list term)`/hood/bake/slit/slim/slap/slam cache-for)]
|
2016-11-24 07:25:07 +03:00
|
|
|
::
|
2017-10-14 01:57:15 +03:00
|
|
|
:+ %depends %| :~
|
2017-11-10 00:08:54 +03:00
|
|
|
definitions+[%& deh]
|
2017-10-14 01:57:15 +03:00
|
|
|
listeners+[%& sup]
|
|
|
|
waiting+[%& out]
|
|
|
|
==
|
2016-11-24 07:25:07 +03:00
|
|
|
::
|
|
|
|
tasks+[%& dym tad]
|
|
|
|
==
|
2017-09-12 02:19:55 +03:00
|
|
|
=+ our=p.kis
|
2016-11-24 07:25:07 +03:00
|
|
|
=+ ^= bay ^- baby
|
|
|
|
=+ buy=(~(get by pol.lex) our)
|
|
|
|
?~(buy *baby u.buy)
|
|
|
|
=^ mos bay
|
2017-09-12 02:19:55 +03:00
|
|
|
?- -.kis
|
2016-11-24 07:25:07 +03:00
|
|
|
$wipe ~&(%ford-cache-wiped [~ bay(jav ~)])
|
|
|
|
$wasp
|
2017-09-12 02:19:55 +03:00
|
|
|
(~(wasp za [our hen [now eny ski] ~] bay) q.kis)
|
2016-11-24 07:25:07 +03:00
|
|
|
$exec
|
2017-09-12 02:19:55 +03:00
|
|
|
?~ q.kis
|
|
|
|
~(exec-cancel za [our hen [now eny ski] ~] bay)
|
|
|
|
(~(exec-start za [our hen [now eny ski] ~] bay) u.q.kis)
|
2016-11-24 07:25:07 +03:00
|
|
|
==
|
|
|
|
[mos ..^$(pol (~(put by pol) our bay))]
|
|
|
|
::
|
|
|
|
++ doze
|
|
|
|
|= {now/@da hen/duct}
|
|
|
|
^- (unit @da)
|
|
|
|
~
|
|
|
|
::
|
|
|
|
++ load :: highly forgiving
|
|
|
|
:: |=(old/axle ..^$(+>- old))
|
2016-12-16 09:34:01 +03:00
|
|
|
::=. old
|
2016-11-24 07:25:07 +03:00
|
|
|
:: ?. ?=([%0 *] old) old :: remove at 1
|
2016-12-16 09:34:01 +03:00
|
|
|
:: :- %1
|
2016-11-24 07:25:07 +03:00
|
|
|
:: |- ^- *
|
|
|
|
:: ?~ +.old ~
|
|
|
|
:: ?> ?=([n=[p=* q=[tad=* dym=* deh=* jav=*]] l=* r=*] +.old)
|
|
|
|
:: :- [p.n.+.old [tad.q.n.+.old dym.q.n.+.old deh.q.n.+.old ~]]
|
|
|
|
:: [$(+.old l.+.old) $(+.old r.+.old)]
|
|
|
|
|= old/*
|
|
|
|
=+ lox=((soft axle) old)
|
|
|
|
^+ ..^$
|
|
|
|
?~ lox
|
|
|
|
~& %ford-reset
|
|
|
|
..^$
|
|
|
|
..^$(+>- u.lox)
|
|
|
|
::
|
|
|
|
++ scry
|
|
|
|
|= {fur/(unit (set monk)) ren/@tas why/shop syd/desk lot/coin tyl/path}
|
|
|
|
^- (unit (unit cage))
|
|
|
|
[~ ~]
|
|
|
|
::
|
|
|
|
++ stay :: save w+o cache
|
2017-10-14 01:57:15 +03:00
|
|
|
`axle`+>-.$(pol (~(run by pol) |=(a/baby a(jav ~))))
|
2016-11-24 07:25:07 +03:00
|
|
|
::
|
|
|
|
++ take :: response
|
|
|
|
|= {tea/wire hen/duct hin/(hypo sign)}
|
|
|
|
^+ [p=*(list move) q=..^$]
|
|
|
|
?> ?=({@ @ *} tea)
|
|
|
|
=+ our=(slav %p i.tea)
|
|
|
|
=+ bay=(~(got by pol.lex) our)
|
|
|
|
=^ mos bay
|
2017-10-14 01:57:15 +03:00
|
|
|
~| tea
|
|
|
|
=+ dep=((soft care:clay) i.t.tea)
|
2016-11-24 07:25:07 +03:00
|
|
|
?^ dep
|
2016-12-02 22:34:07 +03:00
|
|
|
=+ bem=(need (de-beam t.t.tea))
|
2017-10-14 01:57:15 +03:00
|
|
|
(~(deps-take za [our hen [now eny ski] ~] bay) u.dep bem q.hin)
|
2017-09-12 02:19:55 +03:00
|
|
|
::
|
2017-10-14 01:57:15 +03:00
|
|
|
?^ (slaw %uv i.t.tea)
|
|
|
|
~& old-dephash+i.t.tea
|
|
|
|
[~ bay]
|
2016-11-24 07:25:07 +03:00
|
|
|
?> ?=({@ @ ^} t.t.tea)
|
|
|
|
=+ :* num=(slav %ud i.t.tea)
|
|
|
|
van=((hard vane) i.t.t.tea)
|
2016-12-07 06:13:33 +03:00
|
|
|
ren=((hard care:clay) i.t.t.t.tea)
|
2016-12-02 22:34:07 +03:00
|
|
|
bem=(need (de-beam t.t.t.t.tea))
|
2016-11-24 07:25:07 +03:00
|
|
|
==
|
2017-09-12 02:19:55 +03:00
|
|
|
(~(task-take za [our hen [now eny ski] ~] bay) num [van ren bem] q.hin)
|
2016-11-24 07:25:07 +03:00
|
|
|
[mos ..^$(pol (~(put by pol) our bay))]
|
|
|
|
--
|