urbit/arvo/gall.hoon

725 lines
27 KiB
Plaintext
Raw Normal View History

2014-06-22 02:06:42 +04:00
:: :: %gall, user-level applications
2014-04-30 21:04:07 +04:00
!? 164
::::
|= pit=vase
2014-05-28 12:57:00 +04:00
=> =~
2014-06-02 01:07:13 +04:00
|% :::::::::::::::::::::::::::::::::::::::::::::::::::::: structures
2014-04-30 21:04:07 +04:00
++ axle :: all %gall state
2014-05-31 02:10:39 +04:00
$: %0 :: state version
2014-05-28 12:57:00 +04:00
pol=(map ship mast) :: apps by ship
== ::
2014-06-17 05:33:31 +04:00
++ bead ,[p=(set beam) q=cage] :: computed result
2014-05-07 21:42:31 +04:00
++ bone ,@ud :: opaque duct
++ gift :: out result <-$
2014-05-28 12:57:00 +04:00
$% [%back p=?] :: %mess ack good/bad
2014-06-17 05:33:31 +04:00
[%crud p=@tas q=(list tank)] :: physical error
2014-06-19 22:53:16 +04:00
[%dumb ~] :: close duct
[%rasp ~] :: message failure
2014-06-02 01:07:13 +04:00
[%meta p=vase] :: meta-gift
2014-05-28 12:57:00 +04:00
== ::
2014-06-08 06:45:00 +04:00
++ hasp ,[p=ship q=term] :: app identity
++ kiss :: in request ->$
2014-06-14 01:47:08 +04:00
$% [%init p=ship] :: initialize owner
[%show p=hasp q=ship r=path] :: subscribe
:: [%cuff p=(unit cuff) q=kiss] :: controlled kiss
2014-06-10 11:07:56 +04:00
[%mess p=hasp q=ship r=cage] :: message
2014-06-14 01:47:08 +04:00
[%nuke p=hasp] :: clear duct
2014-05-28 12:57:00 +04:00
== ::
2014-05-28 09:44:18 +04:00
++ knob :: pending action
2014-06-17 05:33:31 +04:00
$% [%boot ~] :: begin boot
2014-06-03 09:07:32 +04:00
[%crud p=@tas q=(list tank)] :: error
2014-06-17 05:33:31 +04:00
[%load p=cage] :: continue boot
2014-06-10 11:07:56 +04:00
[%mess p=ship q=cage] :: message
[%show p=ship q=path] :: subscribe
2014-06-12 21:19:36 +04:00
[%nuke ~] :: clear duct
2014-05-28 12:57:00 +04:00
[%take p=path q=vase] :: user result
== ::
++ mast :: apps by ship
2014-06-14 01:47:08 +04:00
$: hun=duct :: control duct
bum=(map ,@ta seat) :: apps by name
2014-05-28 12:57:00 +04:00
== ::
++ move ,[p=duct q=(mold note gift)] :: typed move
2014-06-04 14:40:09 +04:00
++ note :: out request $->
2014-06-11 18:06:36 +04:00
$% [%exec p=@p q=(unit silk)] :: see %ford
2014-06-04 14:40:09 +04:00
[%meta p=vase] :: meta-note
2014-06-11 18:06:36 +04:00
[%warp p=sock q=riff] :: see %clay
2014-06-04 14:40:09 +04:00
== ::
2014-05-28 12:57:00 +04:00
++ rapt |*(a=$+(* *) (qual path path ,@da a)) :: versioned result
2014-06-11 18:06:36 +04:00
++ rave :: see %clay
$% [& p=mood] :: single request
[| p=moat] :: change range
== ::
++ riff ,[p=desk q=(unit rave)] :: see %clay
2014-05-28 12:57:00 +04:00
++ scar :: opaque duct system
$: p=@ud :: bone sequence
2014-06-02 01:07:13 +04:00
q=(map duct ,[p=bone q=(unit cuff)]) :: by duct
2014-05-28 12:57:00 +04:00
r=(map bone duct) :: by bone
== ::
++ seat :: the living app
2014-05-28 12:57:00 +04:00
$: huv=(unit vase) :: application vase
2014-06-07 22:36:31 +04:00
qic=(unit toil) :: current project
2014-06-17 05:33:31 +04:00
onz=(unit (pair duct path)) :: live fords
2014-06-07 22:36:31 +04:00
vey=(qeu toil) :: pending projects
2014-06-14 01:47:08 +04:00
nuc=(set duct) :: nuked ducts
2014-06-07 22:36:31 +04:00
tik=@ud :: build number
2014-06-17 05:33:31 +04:00
act=@ud :: action number
lat=@da :: last change
2014-06-07 22:36:31 +04:00
orm=(unit ,@da) :: build date
2014-06-14 04:38:51 +04:00
sup=(map bone (pair ship path)) :: subscribers
peq=(map bone ,@uvI) :: peekers
2014-06-11 18:06:36 +04:00
ped=(set (pair ship desk)) :: active depends
2014-05-28 12:57:00 +04:00
zam=scar :: opaque ducts
== ::
++ sigh ,[@tas p=sign] :: new sign
2014-05-28 09:44:18 +04:00
++ sign :: in result $-<
2014-06-07 22:36:31 +04:00
$% [%made p=(each bead (list tank))] :: by %ford
2014-05-29 02:06:52 +04:00
[%ruse p=curd] :: user wrapper
2014-06-04 14:40:09 +04:00
[%writ p=riot] :: by %clay
2014-05-28 12:57:00 +04:00
== ::
2014-05-28 09:44:18 +04:00
++ toil (pair duct knob) :: work in progress
2014-05-28 12:57:00 +04:00
-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::
|% :::::::::::::::::::::::::::::::::::::::::::::::::::::: functions
2014-05-27 13:47:19 +04:00
++ byby :: double bind
|* [a=(unit (unit)) b=$+(* *)]
?~ a ~
?~ u.a [~ u=~]
[~ u=[~ u=(b u.u.a)]]
:: ::
++ colt :: reduce to save
|= all=axle ::
all
::
++ read :: read permission
2014-06-02 01:07:13 +04:00
|= law=(unit cuff)
2014-05-27 13:47:19 +04:00
^- (unit (set monk))
?~(law [~ ~] p.u.law)
::
2014-05-28 09:44:18 +04:00
++ ride :: all permission
|= [use=(unit (set monk)) say=(unit (set monk))]
2014-06-02 01:07:13 +04:00
^- (unit cuff)
2014-05-28 09:44:18 +04:00
?~(say ~ `[use u.say])
::
2014-05-27 13:47:19 +04:00
++ rite :: write permission
2014-06-02 01:07:13 +04:00
|= law=(unit cuff)
2014-05-27 13:47:19 +04:00
^- (unit (set monk))
?~(law ~ `q.u.law)
::
++ grom :: merge sets
|* [one=(set) two=(set)]
^+ one
(~(gas in one) (~(tap in two) ~)) :: XX ugh
::
++ grum :: merge maps
|* [one=(map) two=(map)]
^+ one
(~(gas by one) (~(tap by two) ~)) :: XX ugh
::
2014-06-02 01:07:13 +04:00
++ limp :: merge cuffs
|= [a=(unit cuff) b=(unit cuff)]
^- (unit cuff)
2014-05-27 13:47:19 +04:00
?~ a b
?~ b a
:- ~
:- ?~(p.u.a ~ ?~(p.u.b ~ `(grom u.p.u.b u.p.u.a)))
(grom q.u.b q.u.a)
::
++ lump :: position
|= pax=path
^- [p=[p=ship q=term] q=path]
?> ?=([@ @ *] pax)
:- :- (need (slaw %p i.pax))
(need ((sand %tas) i.t.pax))
t.t.pax
--
. == :: end preface
=| all=axle :: all vane state
|= $: now=@da :: urban time
eny=@ :: entropy
2014-05-31 23:40:02 +04:00
ska=sled :: activate
== :: opaque core
2014-05-27 13:47:19 +04:00
=< ^?
|% :: vane interface
++ call :: handle request
2014-06-06 03:00:19 +04:00
|= [hen=duct hic=(hypo (hobo kiss))]
2014-06-11 18:06:36 +04:00
=> .(q.hic ?.(?=(%soft -.q.hic) q.hic ((hard kiss) p.q.hic)))
2014-06-14 01:47:08 +04:00
?: ?=(%init -.q.hic)
[p=~ q=..^$(pol.all (~(put by pol.all) p.q.hic hen ~))]
2014-05-27 13:47:19 +04:00
|- ^- [p=(list move) q=_..^^$]
2014-06-02 01:07:13 +04:00
=+ =| law=(unit cuff)
|- ^- $: law=(unit cuff)
2014-05-29 02:06:52 +04:00
hap=hasp
kon=knob
==
2014-06-03 09:07:32 +04:00
?- -.q.hic
2014-06-14 01:47:08 +04:00
:: %cuff $(q.hic q.q.hic, law (limp p.q.hic law))
2014-06-10 11:07:56 +04:00
%mess [law p.q.hic %mess q.q.hic r.q.hic]
%show [law p.q.hic %show q.q.hic r.q.hic]
2014-06-12 21:19:36 +04:00
%nuke [law p.q.hic %nuke ~]
2014-05-29 02:06:52 +04:00
==
abet:work:(quem:(boar:(goat hap) hen law) kon)
2014-05-27 13:47:19 +04:00
::
++ take :: accept response
|= [pax=path hen=duct hin=(hypo sigh)] ::
2014-06-02 03:28:49 +04:00
^- [p=(list move) q=_..^$]
2014-05-27 13:47:19 +04:00
=+ lum=(lump pax)
2014-05-28 09:44:18 +04:00
=< abet =< work
2014-06-03 09:07:32 +04:00
(more:(bear:(gaur p.lum) hen) q.lum hin)
2014-05-27 13:47:19 +04:00
::
++ scry
|= $: use=(unit (set monk))
ren=@tas
who=ship
syd=desk
lot=coin
tyl=path
==
2014-06-19 22:53:16 +04:00
^- (unit (unit (pair logo ,*)))
2014-05-29 02:06:52 +04:00
=+ ^= vew ^- lens :: XX future scry
2014-05-27 13:47:19 +04:00
%. :- use
:- [who syd ((hard case) p.lot)]
(flop tyl)
|= $: use=(unit (set monk)) :: observers
2014-06-07 22:36:31 +04:00
bid=beam :: position
2014-05-27 13:47:19 +04:00
== ::
(beef:(gaur p.bid q.bid) use r.bid s.bid)
2014-06-01 00:22:49 +04:00
%+ bind
?+ ren ~
%u u.vew
%v v.vew
%w w.vew
%x x.vew
%y y.vew
%z z.vew
==
|=(a=(unit) (bind a |=(b=* [%noun b])))
2014-05-27 13:47:19 +04:00
::
2014-05-31 02:51:31 +04:00
++ doze
|= [now=@da hen=duct]
^- (unit ,@da)
~
2014-05-27 13:47:19 +04:00
::
2014-05-31 02:51:31 +04:00
++ load
2014-05-31 23:40:02 +04:00
|= old=axle
2014-05-31 02:51:31 +04:00
^+ ..^$
2014-05-31 23:40:02 +04:00
..^$(all old)
2014-05-31 02:51:31 +04:00
::
2014-05-31 23:40:02 +04:00
++ stay `axle`+>-.$
2014-05-27 13:47:19 +04:00
--
|% :: inner core
++ gaur :: take and go
|= [our=@p app=@tas]
=+ mat=(need (~(get by pol.all) our))
=+ sat=(need (~(get by bum.mat) app))
~(. go [our app] mat sat)
::
++ goat :: call and go
|= [our=@p app=@tas]
2014-06-14 01:47:08 +04:00
=+ mat=(need (~(get by pol.all) our))
2014-05-27 13:47:19 +04:00
=+ ^= sat ^- seat
2014-06-14 01:47:08 +04:00
=+ syt=(~(get by bum.mat) app)
?^ syt u.syt
%* . *seat
zam
^- scar
:+ 1
[[hun.mat 0 ~] ~ ~]
[[0 hun.mat] ~ ~]
==
2014-05-27 13:47:19 +04:00
~(. go [our app] mat sat)
::
++ go :: application core
|_ $: $: our=@p :: application owner
app=@tas :: application name
== ::
mat=mast :: per owner
sat=seat :: per application
2014-04-30 21:04:07 +04:00
== ::
2014-05-27 13:47:19 +04:00
++ abet :: resolve
%_ ..$
all
%_ all
pol %+ ~(put by pol.all) our
mat(bum (~(put by bum.mat) app sat))
==
==
2014-05-28 09:44:18 +04:00
++ away :: application path
|= pax=path ^- path
[(scot %p our) app pax]
::
++ bear :: write backward
|= hen=duct
2014-05-27 13:47:19 +04:00
=+ orf=(need (~(get by q.zam.sat) hen))
2014-05-28 09:44:18 +04:00
~(apex bo:~(. au (read q.orf)) hen p.orf (rite q.orf) ~)
::
++ beef :: read in
2014-05-27 13:47:19 +04:00
|= [use=(unit (set monk)) lok=case pax=path]
2014-05-28 12:57:00 +04:00
^- lens
?. =([%da now] lok) *lens
(~(show au use) pax)
::
++ boar :: write forward
|= $: hen=duct :: cause
2014-06-02 01:07:13 +04:00
law=(unit cuff) :: permissions
==
2014-05-27 13:47:19 +04:00
=^ orf zam.sat
=+ orf=(~(get by q.zam.sat) hen)
?^ orf
2014-05-27 13:47:19 +04:00
[[p=p.u.orf q=(limp law q.u.orf)] zam.sat]
:^ [p=p.zam.sat q=law] +(p.zam.sat)
(~(put by q.zam.sat) hen [p.zam.sat law])
(~(put by r.zam.sat) p.zam.sat hen)
2014-05-28 09:44:18 +04:00
~(apex bo:~(. au (read q.orf)) hen p.orf (rite q.orf) ~)
::
++ au :: read
2014-05-27 13:47:19 +04:00
|_ use=(unit (set monk)) :: read permission
++ abet ^abet :: resolve
2014-05-28 12:57:00 +04:00
++ show :: view
2014-05-27 13:47:19 +04:00
|= pax=path
2014-05-28 12:57:00 +04:00
^- lens
2014-05-29 03:43:30 +04:00
?~ huv.sat *lens
=+ gat=(slap u.huv.sat [%cnzy %peek])
=+ cor=(slam gat !>(pax))
=+ ^= dek
|* fun=$+(vase *)
|= nam=@tas
=+ vax=(slap cor [%cnzy nam])
^- (unit (unit fun))
?: =(~ q.vax) ~
?: =([~ ~] q.vax) [~ ~]
[~ ~ (fun (slot 7 vax))]
=+ ^= nib
|= vax=vase
((hard null) q.vax)
=+ ^= yob
|= vax=vase ^- cage
2014-06-19 22:53:16 +04:00
[((hard logo) -.q.vax) (slot 3 vax)]
2014-05-29 03:43:30 +04:00
=+ ^= yar
|= vax=vase ^- arch
((hard arch) q.vax)
=+ ^= dif
|= vax=vase ^- (unit cage)
?: =(~ q.vax) ~
[~ (yob (slot 3 vax))]
|%
++ u ((dek nib) %u)
++ v ((dek yob) %v)
++ w ((dek dif) %w)
++ x ((dek yob) %x)
++ y ((dek yar) %y)
++ z ((dek yob) %z)
--
2014-05-27 13:47:19 +04:00
::
++ bo
2014-05-27 13:47:19 +04:00
|_ $: hen=duct :: system cause
ost=bone :: opaque cause
2014-05-28 09:44:18 +04:00
say=(unit (set monk)) :: write permission
2014-05-27 13:47:19 +04:00
mow=(list move) :: actions
==
2014-05-27 13:47:19 +04:00
++ abet [(flop mow) ^abet] :: resolve
2014-06-14 01:47:08 +04:00
++ apex :: enter
2014-05-28 09:44:18 +04:00
^+ .
2014-06-11 18:06:36 +04:00
?. &(=(~ huv.sat) =(~ qic.sat) =(~ vey.sat) =(~ ped.sat)) .
2014-05-28 09:44:18 +04:00
%_(. vey.sat (~(put to vey.sat) hen [%boot ~]))
::
++ bing :: reset to duct
|= neh=duct
2014-06-12 21:19:36 +04:00
=+ orf=(need (~(get by q.zam.sat) neh))
2014-05-28 09:44:18 +04:00
%_ +>.$
hen neh
ost p.orf
use (read q.orf)
say (rite q.orf)
==
::
2014-05-29 02:06:52 +04:00
++ cave :: vase as silk
|= vax=vase
[%done ~ %$ vax]
::
2014-05-28 12:57:00 +04:00
++ conf :: configured core
|= kas=silk
2014-05-29 02:06:52 +04:00
^- silk
:+ %mute kas
2014-06-14 04:38:51 +04:00
:~ [[%$ 12]~ (cave !>([[our app] sup.sat [0 0 eny now]]))]
2014-05-28 12:57:00 +04:00
==
2014-05-28 09:44:18 +04:00
++ core |=(vax=vase (cove %core vax)) :: core as silk
++ cove :: cage as silk
|= cay=cage
^- silk
[%done ~ cay]
::
2014-06-17 05:33:31 +04:00
++ deal :: reboot
2014-06-08 06:45:00 +04:00
^+ .
=. tik.sat +(tik.sat)
2014-06-10 10:20:41 +04:00
=+ pys=(~(tap by sup.sat) ~)
2014-06-12 21:19:36 +04:00
:: ~& [%gall-deal tik.sat pys]
2014-06-08 06:45:00 +04:00
|- ^+ +>.$
2014-06-10 10:20:41 +04:00
?~ pys +>.$
=. +>.$ $(pys t.pys)
%= +>.$
vey.sat
2014-06-14 04:38:51 +04:00
%- ~(put to vey.sat)
:- (need (~(get by r.zam.sat) p.i.pys))
[%show q.i.pys]
2014-06-10 10:20:41 +04:00
==
2014-06-08 06:45:00 +04:00
::
2014-05-29 02:06:52 +04:00
++ drug :: set dependencies
|= pen=(set (pair ship desk))
2014-06-11 18:06:36 +04:00
:: ~& [%drug %pen pen]
:: ~& [%drug %ped ped.sat]
2014-05-29 02:06:52 +04:00
^+ +>
=+ ^= new ^- (list move)
%+ turn
%+ skip (~(tap in pen) ~)
|=(a=(pair ship desk) (~(has in ped.sat) a))
|= a=(pair ship desk)
2014-06-14 01:47:08 +04:00
:- hun.mat
2014-06-21 22:42:34 +04:00
:^ %toss (away %w %drug (scot %p p.a) q.a ~) %c
2014-06-04 14:40:09 +04:00
[%warp [our p.a] q.a ~ %| [%da now] [%da (add now ~d1000)]]
2014-05-29 02:06:52 +04:00
=+ ^= old ^- (list move)
%+ turn
%+ skip (~(tap in ped.sat) ~)
|=(a=(pair ship desk) (~(has in pen) a))
|= a=(pair ship desk)
2014-06-14 01:47:08 +04:00
:- hun.mat
2014-06-21 22:42:34 +04:00
:^ %toss (away %w %drug (scot %p p.a) q.a ~) %c
2014-06-04 14:40:09 +04:00
[%warp [our p.a] q.a ~]
2014-05-29 02:06:52 +04:00
%_(+>.$ ped.sat pen, mow :(weld new old mow))
::
++ drum :: raw dependencies
2014-06-07 22:36:31 +04:00
|= dep=(set beam)
2014-05-29 02:06:52 +04:00
^+ +>
?> ?=(^ orm.sat)
%- drug
=+ ped=`(set (pair ship desk))`[[our %main] ~ ~]
=+ mav=(~(tap by dep) ~)
|- ^+ ped
?~ mav ped
?: =(r.i.mav [%da u.orm.sat])
$(mav t.mav, ped (~(put in ped) p.i.mav q.i.mav))
$(mav t.mav)
::
2014-05-28 09:44:18 +04:00
++ ford :: exec to ford
2014-06-12 07:47:57 +04:00
|= [pax=path kas=silk]
2014-06-14 01:47:08 +04:00
^+ +>
%_ +>
2014-06-21 22:42:34 +04:00
mow :_(mow [hen %toss (away pax) %f [%exec our `kas]])
2014-06-17 05:33:31 +04:00
onz.sat `[hen pax]
2014-05-28 09:44:18 +04:00
==
::
2014-06-14 01:47:08 +04:00
++ give :: give a gift
2014-05-28 09:44:18 +04:00
|= gip=gift
%_(+> mow [[hen %give gip] mow])
::
2014-06-04 14:40:09 +04:00
++ harm :: arm as silk
|= [arm=term kas=silk]
^- silk
[%pass kas [%1 [%cnzy arm]]]
2014-05-28 12:57:00 +04:00
::
2014-05-28 09:44:18 +04:00
++ home :: load application
^- silk
:+ %boil %core
2014-06-04 14:40:09 +04:00
[[our %main [%da now]] app %app ~]
2014-05-27 13:47:19 +04:00
::
++ mack :: apply standard
2014-06-17 05:33:31 +04:00
|= qin=sign
?> ?=(%made -.qin)
^- [(unit (list tank)) _+>]
?- -.p.qin
& :- ~
%- obey:(morn (slot 3 q.q.p.p.qin))
(slot 2 q.q.p.p.qin)
| [`p.p.qin (give %crud %made p.p.qin)]
==
::
++ meek :: apply peek
|= qin=sign
^- [(unit cage) _+>]
?> ?=(%made -.qin)
?- -.p.qin
& =+ vax=`vase`q.q.p.p.qin
?. &(?=(^ q.vax) ?=(@ -.q.vax))
[~ (give %crud %peek-lame *(list tank))]
:: ~> %slog.[0 (skol p:(slot 3 vax))]
:- `[((hard logo) -.q.vax) (slot 3 vax)]
+>.$
| [~ (give %crud %made p.p.qin)]
==
::
++ mick :: apply w/depends
2014-06-17 05:33:31 +04:00
|= qin=sign
?> ?=(%made -.qin)
^- [(unit (set beam)) _+>]
?- -.p.qin
& :- `p.p.p.qin
%- obey:(morn (slot 3 q.q.p.p.qin))
(slot 2 q.q.p.p.qin)
| [~ (give %crud %made p.p.qin)]
==
::
++ murk :: apply park
2014-06-17 05:33:31 +04:00
|= qin=sign
^- [(unit cage) _+>]
?> ?=(%made -.qin)
?- -.p.qin
& [`q.p.p.qin +>.$]
2014-06-17 05:33:31 +04:00
| [~ (give %crud %made p.p.qin)]
==
::
2014-05-28 09:44:18 +04:00
++ more :: accept result
2014-05-27 13:47:19 +04:00
|= $: pax=path :: internal position
hin=(hypo sigh) :: typed event
==
2014-05-28 09:44:18 +04:00
^+ +>
2014-06-17 05:33:31 +04:00
?+ -.pax !!
%s :: core operation
?> ?& ?=([@ *] t.pax)
2014-06-17 05:33:31 +04:00
!=(~ qic.sat)
=(`[hen pax] onz.sat)
==
=: onz.sat ~
qic.sat ~
==
?+ i.t.pax !!
%park
=^ gyd +>.$ (murk p.q.hin)
2014-06-17 05:33:31 +04:00
?~ gyd
+>.$
(quen %load u.gyd)
2014-06-17 05:33:31 +04:00
::
%peek
?> ?=([@ *] t.t.pax)
=+ you=(need (slaw %p i.t.t.pax))
=^ gyd +>.$ (meek p.q.hin)
2014-06-17 05:33:31 +04:00
?~ gyd
2014-06-19 22:53:16 +04:00
(give [%dumb ~])
2014-06-17 05:33:31 +04:00
=+ kee=[you t.t.t.pax]
=+ ash=(sham q.q.u.gyd)
?: =(`ash (~(get by peq.sat) ost))
2014-06-17 05:33:31 +04:00
+>.$
%- %= give
peq.sat (~(put by peq.sat) ost ash)
2014-06-17 05:33:31 +04:00
sup.sat (~(put by sup.sat) ost kee)
==
:- %meta
^- vase
:- :+ %cell [%cube %rust %atom %tas]
[%cell [%atom %tas] p.q.u.gyd]
[%rust p.u.gyd q.q.u.gyd]
2014-06-17 05:33:31 +04:00
::
%peer
?> ?=([@ *] t.t.pax)
=+ you=(need (slaw %p i.t.t.pax))
=^ gud +>.$ (mack p.q.hin)
2014-06-17 05:33:31 +04:00
?^ gud
2014-06-19 22:53:16 +04:00
(give [%dumb ~])
2014-06-17 05:33:31 +04:00
+>.$(sup.sat (~(put by sup.sat) ost [you t.t.t.pax]))
::
%poke
=^ gud +>.$ (mack p.q.hin)
2014-06-19 22:53:16 +04:00
?^ gud (give %rasp ~)
2014-06-17 05:33:31 +04:00
+>.$
::
%prep
=^ gad +>.$ (mick p.q.hin)
2014-06-17 05:33:31 +04:00
?~ gad (drum ~)
deal:(drum u.gad)
::
%pull
=^ gud +>.$ (mack p.q.hin)
2014-06-17 05:33:31 +04:00
?^ gud +>.$
+>.$(sup.sat (~(del by sup.sat) ost))
==
::
%u :: user request
?. ?=(%ruse -.p.q.hin)
~& [%more-card -.p.q.hin pax] !!
2014-05-28 09:44:18 +04:00
%_ +>.$
vey.sat
%- ~(put to vey.sat)
2014-06-03 09:07:32 +04:00
[hen [%take t.pax (spec (slot 3 hin))]]
2014-05-28 09:44:18 +04:00
==
2014-05-28 12:57:00 +04:00
::
2014-06-17 05:33:31 +04:00
%w :: autoboot
?> ?& ?=([%drug @ @ ~] t.pax)
?=(%writ -.p.q.hin)
2014-06-17 05:33:31 +04:00
==
2014-06-11 18:06:36 +04:00
=+ :* our=(need (slaw %p i.t.t.pax))
syd=(need ((sand %tas) i.t.t.t.pax))
==
=. ped.sat (~(del by ped.sat) [our syd])
?~ p.p.q.hin
2014-06-11 18:06:36 +04:00
+>.$
2014-05-29 02:06:52 +04:00
+>.$(vey.sat (~(put to vey.sat) hen %boot ~))
2014-05-28 09:44:18 +04:00
==
::
2014-06-17 05:33:31 +04:00
++ morn :: install core
2014-05-29 02:06:52 +04:00
|= vax=vase
2014-06-07 22:36:31 +04:00
^+ +>
2014-06-17 05:33:31 +04:00
=+ new=?~(huv.sat & !=(+>+.q.vax +>+.q.u.huv.sat))
=. huv.sat `vax
?. new +>.$
=: act.sat +(act.sat)
lat.sat now
==
=+ pex=(~(tap by peq.sat) ~)
|- ^+ +>.^$
?~ pex +>.^$
2014-06-18 04:34:20 +04:00
~& [%morn-peek p.i.pex (need (~(get by sup.sat) p.i.pex))]
%= $
pex t.pex
+>.^$ %- quem(hen (need (~(get by r.zam.sat) p.i.pex)))
[%show (need (~(get by sup.sat) p.i.pex))]
==
2014-05-27 13:47:19 +04:00
::
2014-05-28 09:44:18 +04:00
++ mort :: failed boot
|= tan=(list tank)
2014-06-03 09:07:32 +04:00
(give %crud %boot-lost tan)
2014-05-28 09:44:18 +04:00
::
2014-06-11 18:06:36 +04:00
++ nile [%done ~ [%$ [%cube 0 [%atom %n]] ~]] :: null silk
2014-06-17 05:33:31 +04:00
++ obey :: process app moves
2014-05-29 02:06:52 +04:00
|= vax=vase
%_(+> mow (weld (flop (said vax)) mow))
::
++ quem :: queue action
|= kon=knob :: content
2014-06-08 06:45:00 +04:00
^+ +>
2014-06-17 05:33:31 +04:00
=. +> ?. ?=(%nuke -.kon) +>
?. &(?=(^ onz.sat) =(hen p.u.onz.sat)) +>
%= +>
onz.sat ~
mow
2014-06-21 22:42:34 +04:00
:_(mow [hen %toss (away q.u.onz.sat) %f [%exec our ~]])
2014-06-17 05:33:31 +04:00
==
+>.$(vey.sat (~(put to vey.sat) hen kon))
2014-05-29 02:06:52 +04:00
::
++ quen :: push on front
|= kon=knob
^+ +>
=+ yov=(~(tap by vey.sat) ~) :: XX ++pun
+>.$(vey.sat (~(gas to *(qeu toil)) `_yov`[[hen kon] yov]))
::
2014-05-29 02:06:52 +04:00
++ said
|= vud=vase
|- ^- (list move)
?: =(~ q.vud) ~
[(sump (slot 2 vud)) $(vud (slot 3 vud))]
2014-05-27 13:47:19 +04:00
::
++ show :: subscribe
2014-06-10 11:07:56 +04:00
|= [you=ship pax=path] :: subscription
%_(+> vey.sat (~(put to vey.sat) hen %show you pax))
2014-06-10 10:20:41 +04:00
::
2014-06-12 21:19:36 +04:00
++ nuke :: end
%_(. vey.sat (~(put to vey.sat) hen %nuke ~))
2014-05-29 02:06:52 +04:00
::
2014-06-04 14:40:09 +04:00
++ sumo :: standard gift
|= vig=vase
^- gift
[%meta vig]
2014-06-04 14:40:09 +04:00
::
2014-05-29 02:06:52 +04:00
++ sump
|= wec=vase
^- move
2014-06-04 14:40:09 +04:00
:- (need (~(get by r.zam.sat) ((hard bone) -.q.wec)))
2014-05-29 02:06:52 +04:00
=+ caq=(spec (slot 3 wec))
?+ q.caq ~&(%sump-bad !!)
::
2014-06-21 22:42:34 +04:00
[%toss p=* q=@tas r=[p=@tas q=*]]
:^ %toss ((hard path) p.q.caq)
(need ((sand %tas) ((hard ,@) q.q.caq)))
2014-05-29 02:06:52 +04:00
[%meta (spec (slot 15 caq))]
::
[%give p=[p=@tas q=*]]
2014-06-04 14:40:09 +04:00
[%give (sumo (spec (slot 3 caq)))]
2014-05-29 02:06:52 +04:00
==
2014-05-28 09:44:18 +04:00
::
2014-06-17 05:33:31 +04:00
++ warm :: vase has arm
|= cog=@tas
^- ?
?~ huv.sat |
!=(~ q:(~(fino ut p.u.huv.sat) 0 %free cog))
::
2014-05-28 09:44:18 +04:00
++ work :: eat queue
2014-06-14 01:47:08 +04:00
|- ^+ +
?: |(?=(^ qic.sat) =(~ vey.sat)) +.$ :: nothing to do
2014-05-28 09:44:18 +04:00
=^ yev vey.sat [p q]:~(get to vey.sat)
2014-06-14 01:47:08 +04:00
?: (~(has in nuc.sat) p.yev) $
2014-05-28 09:44:18 +04:00
work:(yawn:(bing p.yev) q.yev)
::
2014-06-17 05:33:31 +04:00
++ yawl :: invoke core
|= [[arm=term pax=path] vax=vase sam=vase]
^+ +>
%+ ford [%s arm pax]
[%call (harm arm (conf (core vax))) (cove %$ sam)]
::
2014-05-28 09:44:18 +04:00
++ yawn :: start event
|= kon=knob
^+ +>
:: ~& [%gall-yawn ost -.kon]
2014-05-28 09:44:18 +04:00
=. qic.sat `[hen kon]
?- -.kon
%boot
2014-05-29 02:06:52 +04:00
=. orm.sat `now
2014-06-17 05:33:31 +04:00
%+ ford /s/park
2014-05-28 09:44:18 +04:00
^- silk
2014-06-17 05:33:31 +04:00
:- home
?~ huv.sat nile
?: =(~ q.u.huv.sat) nile
:- nile
?. (warm %park)
[%done ~ %$ (slot 13 u.huv.sat)]
(harm %park (conf (core u.huv.sat)))
::
%load
=+ [hom=(slot 2 q.p.kon) old=(slot 3 q.p.kon)]
%+ ford /s/prep
?. (warm(huv.sat `hom) %prep)
:- nile
?: =(~ q.old)
(core hom)
2014-06-17 05:33:31 +04:00
:+ %mute `silk`(core hom)
:~ [[%$ 13]~ (cave (slot 3 old))]
2014-06-17 05:33:31 +04:00
==
[%call (harm %prep (conf (core hom))) [nile (cave old)]]
2014-05-28 20:20:07 +04:00
::
%crud
2014-06-17 05:33:31 +04:00
(give(qic.sat ~) %crud p.kon q.kon)
2014-06-12 21:19:36 +04:00
::
%nuke
2014-06-17 05:33:31 +04:00
?. (warm %pull)
+>.$(qic.sat ~)
?> ?=(^ huv.sat)
(yawl [%pull ~] u.huv.sat [[%atom %ud] ost])
2014-05-28 09:44:18 +04:00
::
%mess
2014-06-18 04:34:20 +04:00
=+ ^= cog ^- term
2014-06-19 22:53:16 +04:00
?: =(%$ p.q.kon)
2014-06-18 04:34:20 +04:00
%poke
(cat 3 'poke-' p.q.kon)
?. (warm cog)
2014-06-19 22:53:16 +04:00
(give(qic.sat ~) %rasp ~)
2014-06-17 05:33:31 +04:00
?> ?=(^ huv.sat)
2014-06-18 04:34:20 +04:00
=+ sam=:(slop [[%atom %ud] ost] [[%atom %p] p.kon] q.q.kon)
~& [%mess-poke cog]
%+ ford /s/poke
[%call (harm cog (conf (core u.huv.sat))) (cove %$ sam)]
2014-05-28 12:57:00 +04:00
::
%show
2014-06-17 05:33:31 +04:00
?: (warm %peer)
=+ sam=!>([ost p.kon q.kon])
2014-06-17 05:33:31 +04:00
?> ?=(^ huv.sat)
=. peq.sat (~(del by peq.sat) ost)
2014-06-17 05:33:31 +04:00
(yawl [%peer (scot %p p.kon) q.kon] u.huv.sat sam)
?: (warm %peek)
=+ sam=!>([p.kon q.kon])
2014-06-17 05:33:31 +04:00
?> ?=(^ huv.sat)
(yawl [%peek (scot %p p.kon) q.kon] u.huv.sat sam)
2014-06-19 22:53:16 +04:00
(give(qic.sat ~) %dumb ~)
2014-05-28 09:44:18 +04:00
::
2014-05-28 20:20:07 +04:00
%take
2014-06-17 05:33:31 +04:00
!!
2014-05-28 09:44:18 +04:00
==
--
--
--
2014-04-30 21:04:07 +04:00
--