urbit/arvo/gall.hoon

1268 lines
46 KiB
Plaintext
Raw Normal View History

2014-10-30 02:07:13 +03:00
!: :: %gall, user-level applications
2014-04-30 21:04:07 +04:00
!? 164
::::
|= pit=vase
2014-07-08 03:36:35 +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
2014-09-17 04:04:58 +04:00
[%gone p=hapt] :: app death
2014-07-24 06:02:50 +04:00
[%mean p=ares] :: message failure
2014-06-02 01:07:13 +04:00
[%meta p=vase] :: meta-gift
2014-07-08 03:36:35 +04:00
[%nice ~] :: message success
2014-05-28 12:57:00 +04:00
== ::
2014-09-11 03:35:03 +04:00
++ hapt ,[p=ship q=path] :: app instance
++ hath ,[p=ship q=term] :: app identity
++ kiss :: in request ->$
2014-06-14 01:47:08 +04:00
$% [%init p=ship] :: initialize owner
2014-09-11 03:35:03 +04:00
[%show p=hapt q=ship r=path] :: subscribe
2014-09-17 04:04:58 +04:00
[%sire p=term q=hapt] :: create subapp
2014-06-14 01:47:08 +04:00
:: [%cuff p=(unit cuff) q=kiss] :: controlled kiss
2014-09-11 03:35:03 +04:00
[%mess p=hapt q=ship r=cage] :: typed message
[%nuke p=hapt q=ship] :: clear duct
[%rote p=sack q=path r=*] :: remote request
[%roth p=sack q=path r=*] :: remote response
2015-01-19 07:52:43 +03:00
[%took p=hapt q=ship] :: remote acknowledge
2014-09-11 03:35:03 +04:00
[%wipe p=hapt] :: forget app
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-09-16 06:56:44 +04:00
[%cede ~] :: selficide
2014-09-12 06:11:03 +04:00
[%cide p=span] :: subprocessicide
2014-06-03 09:07:32 +04:00
[%crud p=@tas q=(list tank)] :: error
2014-09-18 01:23:48 +04:00
[%feel ~] :: touch
2014-06-17 05:33:31 +04:00
[%load p=cage] :: continue boot
2014-06-26 16:18:30 +04:00
[%mess p=ship q=cage] :: typed message
2014-06-10 11:07:56 +04:00
[%show p=ship q=path] :: subscribe
2014-09-11 04:55:44 +04:00
[%sire p=term q=span] :: spawn subprocess
2014-06-30 03:58:17 +04:00
[%nuke p=ship] :: clear duct
2014-05-28 12:57:00 +04:00
[%take p=path q=vase] :: user result
2015-01-19 07:52:43 +03:00
[%took p=ship] :: rush queue drained
[%told p=ship] :: rush queue filled
2014-05-28 12:57:00 +04:00
== ::
++ mast :: apps by ship
2014-06-14 01:47:08 +04:00
$: hun=duct :: control duct
2014-06-30 03:58:17 +04:00
sap=(map ship scad) :: foreign contacts
2014-09-11 03:35:03 +04:00
bum=(map path seat) :: instances by path
2014-05-28 12:57:00 +04:00
== ::
2014-06-22 09:49:10 +04:00
++ move ,[p=duct q=(mold note gift)] :: typed move
2014-06-04 14:40:09 +04:00
++ note :: out request $->
2014-06-30 03:58:17 +04:00
$? $: %a :: to %ames
2014-07-26 06:10:24 +04:00
$% [%wont p=sock q=path r=*] ::
2014-06-30 03:58:17 +04:00
== == ::
$: %c :: to %clay
2014-06-22 06:51:12 +04:00
$% [%warp p=sock q=riff] ::
== == ::
$: %f :: to %ford
$% [%exec p=@p q=(unit silk)] ::
2014-06-30 03:58:17 +04:00
== == ::
$: %g :: to %gall
2014-09-11 03:35:03 +04:00
$% [%show p=hapt q=ship r=path] ::
2014-09-17 04:04:58 +04:00
[%sire p=term q=hapt] ::
2014-09-11 03:35:03 +04:00
[%mess p=hapt q=ship r=cage] ::
[%nuke p=hapt q=ship] ::
2015-01-19 07:52:43 +03:00
[%took p=hapt q=ship] ::
2014-06-22 06:51:12 +04:00
== == ::
2014-07-08 03:36:35 +04:00
$: @tas :: to any
2014-06-22 06:51:12 +04:00
$% [%meta p=vase] ::
== == == ::
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-06-30 03:58:17 +04:00
++ scad :: opaque for foreign
$: p=@ud :: index
q=(map duct ,@ud) :: by duct
r=(map ,@ud duct) :: by index
== ::
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
2014-07-08 03:36:35 +04:00
== ::
2014-06-30 03:58:17 +04:00
++ roon :: foreign response
$% [%d p=mark q=*] :: diff (rush)
2014-07-26 06:10:24 +04:00
[%e p=ares] :: error
[%f p=mark q=*] :: full refresh (rust)
2014-07-08 03:36:35 +04:00
[%k ~] :: message response
2014-06-30 03:58:17 +04:00
== ::
++ rook :: foreign request
$% [%m p=mark q=*] :: message
2014-06-30 04:07:47 +04:00
[%s p=path] :: subscribe
[%u ~] :: cancel/unsubscribe
2014-06-30 03:58:17 +04:00
== ::
++ seat :: the living app
2014-09-11 03:35:03 +04:00
$: app=term :: app name
2015-01-21 02:26:40 +03:00
$: huv=(unit vase) :: application vase
qic=(unit toil) :: current project
onz=(unit (pair duct path)) :: live fords
vey=(qeu toil) :: pending projects
== ::
2014-06-14 01:47:08 +04:00
nuc=(set duct) :: nuked ducts
2015-01-21 02:26:40 +03:00
$: tik=@ud :: build number
act=@ud :: action number
lat=@da :: last change
orm=(unit ,@da) :: build date
== ::
2014-09-17 04:04:58 +04:00
mom=(unit duct) :: parent duct
2014-09-12 06:11:03 +04:00
cub=(map span term) :: offspring
2015-01-21 02:26:40 +03:00
$: sup=(map bone (pair ship path)) :: subscribers
pus=(jug path bone) :: srebircsbus
peq=(map bone ,@uvI) :: peekers
qel=(map bone ,@ud) :: rush queue length
== ::
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
== ::
2014-07-12 22:24:52 +04:00
++ silk :: see %ford
$& [p=silk q=silk] ::
$% [%boil p=mark q=beam r=path] ::
2014-07-12 22:24:52 +04:00
[%call p=silk q=silk] ::
[%done p=(set beam) q=cage] ::
2014-09-27 02:08:57 +04:00
[%dude p=tank q=silk] ::
2014-07-12 22:24:52 +04:00
[%mute p=silk q=(list (pair wing silk))] ::
2014-07-29 02:46:03 +04:00
[%ride p=twig q=silk] ::
2014-07-27 14:26:17 +04:00
[%vale p=mark q=ship r=*] ::
2014-07-12 22:24:52 +04:00
== ::
++ sill :: see %ford
$% [%dirt p=twig] ::
== ::
2014-07-02 02:51:42 +04:00
++ sign :: in result $<-
2014-10-30 02:07:13 +03:00
$? [?(%c %d %e %t) @tas *] ::
2014-07-09 07:20:38 +04:00
$: %a :: by %ames
2014-10-30 02:07:13 +03:00
$% [%init p=@p] :: only for :begin
[%woot p=ship q=coop] ::
[%went p=ship q=cape] :: only for apps
2014-07-09 07:20:38 +04:00
== == ::
2014-06-30 03:58:17 +04:00
$: %g :: by %gall
$% [%init p=@p] ::
[%crud p=@tas q=(list tank)] ::
[%dumb ~] ::
2014-09-17 04:04:58 +04:00
[%gone p=hapt] ::
2014-11-20 01:18:37 +03:00
[%logo p=@] ::
2014-07-24 06:02:50 +04:00
[%mean p=ares] ::
2014-07-11 00:10:41 +04:00
[%nice ~] ::
[%rush p=mark q=*] ::
[%rust p=mark q=*] ::
2014-10-22 06:59:05 +04:00
[%sage p=path q=*] ::
2014-10-24 02:56:06 +04:00
[%verb ~] ::
2014-10-04 02:32:10 +04:00
[%veer p=@ta q=path r=@t] ::
[%vega p=path] ::
2014-06-30 03:58:17 +04:00
== == ::
$: %f :: by %ford
2015-02-19 00:35:22 +03:00
$% [%made p=@uvH q=(each cage tang)] ::
2014-06-30 03:58:17 +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
-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::
2014-07-08 03:36:35 +04:00
|% :::::::::::::::::::::::::::::::::::::::::::::::::::::: functions
2014-05-27 13:47:19 +04:00
++ 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
2014-09-11 03:35:03 +04:00
^- [p=hapt q=path]
?. ?=([@ @ *] pax)
~& [%lump-path-bad pax]
!!
2014-09-11 03:35:03 +04:00
:- :- (slav %p i.pax)
2015-01-14 08:38:39 +03:00
(need (pick i.t.pax))
2014-05-27 13:47:19 +04:00
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-09-17 04:04:58 +04:00
?- -.q.hic
%init
2014-06-30 03:58:17 +04:00
[p=~ q=..^$(pol.all (~(put by pol.all) p.q.hic hen ~ ~))]
::
2014-09-17 04:04:58 +04:00
%rote
2014-06-30 03:58:17 +04:00
(gawk hen p.q.hic q.q.hic ((hard ,[@ud rook]) r.q.hic))
::
2014-09-17 04:04:58 +04:00
%roth
2014-06-30 03:58:17 +04:00
(gawd hen p.q.hic q.q.hic ((hard ,[@ud roon]) r.q.hic))
::
2014-09-17 04:04:58 +04:00
%wipe
2014-07-30 02:44:41 +04:00
=+ mat=(~(got by pol.all) p.p.q.hic)
2014-09-12 00:44:46 +04:00
~? !(~(has by bum.mat) q.p.q.hic) [%wipe-lost q.p.q.hic]
2014-07-30 02:44:41 +04:00
=. bum.mat (~(del by bum.mat) q.p.q.hic)
=. pol.all (~(put by pol.all) p.p.q.hic mat)
[p=~ q=..^$]
2015-01-19 07:52:43 +03:00
::
?(%mess %show %nuke %took %sire)
2014-09-17 04:04:58 +04:00
|- ^- [p=(list move) q=_..^^$]
=+ =| law=(unit cuff)
|- ^- $: law=(unit cuff)
hap=hapt
kon=knob
==
:- law
?- -.q.hic
:: %cuff $(q.hic q.q.hic, law (limp p.q.hic law))
%mess [p %mess q r]:q.hic
%show [p %show q r]:q.hic
%nuke [p %nuke q]:q.hic
2015-01-19 07:52:43 +03:00
%took [p %took q]:q.hic
2014-09-17 04:04:58 +04:00
%sire [[p.q +.q.q] %sire p -.q.q]:q.hic
==
((goad hen law) p.hap q.hap kon)
==
2014-07-08 03:36:35 +04:00
::
2014-05-27 13:47:19 +04:00
++ take :: accept response
2014-06-22 09:49:10 +04:00
|= [pax=path hen=duct hin=(hypo sign)] ::
2014-06-02 03:28:49 +04:00
^- [p=(list move) q=_..^$]
?: ?=(%crud +<.q.hin)
2015-03-23 15:30:00 +03:00
~& [%gall-crud-error pax hen]
~& [%gall-crud-data (,[@tas (list tank)] +>.q.hin)]
2014-10-15 06:23:07 +04:00
?> ?=(%g -.q.hin)
?~ pax ~& %strange-path [~ ..^$]
=+ lum=(lump t.pax)
=+ mat=(~(get by pol.all) p.p.lum)
?~ mat ~& %no-ship [~ ..^$]
=+ sat=(~(get by bum.u.mat) q.p.lum)
?~ sat ~& %no-app [~ ..^$]
:- `(list move)`[hen %give %crud p.q.hin q.q.hin]~
%= ..^$ :: XX maybe call work?
pol.all
%+ ~(put by pol.all) p.p.lum
%= u.mat
bum
%+ ~(put by bum.u.mat) q.p.lum
u.sat(qic ~)
==
==
2014-06-30 03:58:17 +04:00
?: ?=([%r *] pax)
(gave hen t.pax q.hin)
?: ?=([%x *] pax)
(gasp hen t.pax q.hin)
?> ?=([%a *] pax)
=+ lum=(lump t.pax)
2014-09-18 01:23:48 +04:00
=+ mat=(~(get by pol.all) p.p.lum)
?~ mat [~ ..^$]
2014-10-02 23:46:00 +04:00
=+ sat=(~(get by bum.u.mat) q.p.lum)
2014-11-23 03:22:46 +03:00
?~ sat [~ ..^$]
2014-12-11 18:49:01 +03:00
:: ?. (~(has by q.zam.u.sat) hen)
:: ~& [%app-lost pax hen p.lum q.lum]
:: [~ ..^$]
2014-05-28 09:44:18 +04:00
=< abet =< work
2014-06-30 03:58:17 +04:00
(more:(bear:(gaff p.lum) hen) q.lum hin)
2014-05-27 13:47:19 +04:00
::
++ scry
|= $: use=(unit (set monk))
ren=@tas
2014-07-08 03:36:35 +04:00
who=ship
syd=desk
lot=coin
2014-05-27 13:47:19 +04:00
tyl=path
==
^- (unit (unit (pair mark ,*)))
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
== ::
2014-09-11 03:35:03 +04:00
(beef:(gaff 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-10-15 06:23:07 +04:00
~& %nighty-night
[~ (add now ~s4)]
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-07-08 03:36:35 +04:00
--
2014-05-27 13:47:19 +04:00
|% :: inner core
2014-06-30 03:58:17 +04:00
::
++ best :: cage to gift
|= [sem=?(%rush %rust) cay=cage]
^- gift
:- %meta
^- vase
2014-07-08 03:36:35 +04:00
:- :+ %cell [%cube sem %atom %tas]
2014-11-07 04:22:23 +03:00
[%cell [%cube p.cay %atom %tas] p.q.cay]
2014-06-30 03:58:17 +04:00
[sem p.cay q.q.cay]
::
++ gaff :: take and go
2014-09-11 03:35:03 +04:00
|= [our=@p imp=path]
=+ mat=(~(got by pol.all) our)
=+ sat=(~(got by bum.mat) imp)
~(. go [our imp] mat sat)
2014-05-27 13:47:19 +04:00
::
2014-06-30 03:58:17 +04:00
++ gape :: %r send query
|= [hen=duct law=(unit cuff)]
2014-09-11 03:35:03 +04:00
|= [our=@p imp=path kon=knob]
2014-06-30 03:58:17 +04:00
^- [(list move) _..^^$]
2015-01-21 02:00:54 +03:00
?> ?=(?(%mess %show %nuke %took) -.kon)
?: ?=(%took -.kon)
2015-01-21 02:53:44 +03:00
:: ~& [%gape-took our imp hen]
2015-01-21 02:00:54 +03:00
[~ ..^^$]
2014-06-30 03:58:17 +04:00
=+ you=`ship`?-(-.kon %mess p.kon, %nuke p.kon, %show p.kon)
=+ mut=(~(get by pol.all) you)
?~ mut
~& [%gape-lost you hen]
!!
=+ mat=u.mut
2014-10-30 02:07:13 +03:00
=+ sad==+(sad=(~(get by sap.mat) our) ?^(sad u.sad [.(p 1)]:*scad))
2014-06-30 03:58:17 +04:00
=^ num sad
=+ nym=(~(get by q.sad) hen)
?^ nym [u.nym sad]
:- p.sad
:+ +(p.sad)
2014-07-08 03:36:35 +04:00
(~(put by q.sad) hen p.sad)
2014-06-30 03:58:17 +04:00
(~(put by r.sad) p.sad hen)
:- =+ ^= roc ^- rook
?- -.kon
2014-06-30 04:07:47 +04:00
%mess [%m p.q.kon q.q.q.kon]
%nuke [%u ~]
%show [%s q.kon]
2014-06-30 03:58:17 +04:00
==
^- (list move)
:~ :- hen
2014-07-08 03:36:35 +04:00
:+ %pass
2014-09-11 03:35:03 +04:00
[%x -.roc (scot %p you) (scot %p our) (scot %ud num) imp]
`note`[%a %wont [you our] [%q %ge imp] [num roc]]
2014-06-30 03:58:17 +04:00
==
%= ..^^$
2014-07-08 03:36:35 +04:00
pol.all
2014-06-30 03:58:17 +04:00
%+ ~(put by pol.all)
you
mat(sap (~(put by sap.mat) our sad))
==
::
++ gasp :: %x take
|= [hen=duct pax=path sih=sign]
^- [(list move) _..^$]
2014-08-29 21:05:00 +04:00
?+ -.sih !!
%a
2014-12-02 09:31:34 +03:00
?. ?=(%woot +<.sih)
~& [%gall-bad-gasp-a pax=pax lgsih=+<.sih]
2014-12-06 00:09:46 +03:00
~& [%gall-bad-gasp-b pax=pax sih=sih] `..^$
2014-08-29 21:05:00 +04:00
:_ ..^$ :_ ~
?~ q.sih
[hen %give %nice ~]
[hen %give %mean u.q.sih]
2015-01-19 07:52:43 +03:00
::
2014-08-29 21:05:00 +04:00
%f
:_ ..^$
:_ ~
:- hen
2015-02-12 00:10:07 +03:00
?- -.q.+.sih
2014-08-29 21:05:00 +04:00
%|
2015-02-12 00:10:07 +03:00
[%give %crud %gasp-crud p.q.+.sih]
2014-08-29 21:05:00 +04:00
::
%&
2015-02-12 00:10:07 +03:00
=+ cay=`cage`p.q.+.sih
2014-08-29 21:05:00 +04:00
?+ -.pax !!
%d [%give (best %rush cay)]
%f [%give (best %rust cay)]
== ==
2014-06-30 03:58:17 +04:00
==
::
++ gave :: %r take
|= [hen=duct pax=path sih=sign]
^- [(list move) _..^$]
2014-09-11 03:35:03 +04:00
?> ?=([@ @ @ @ *] pax)
2014-06-30 03:58:17 +04:00
=+ :* our=`ship`(slav %p i.t.pax)
2014-09-11 03:35:03 +04:00
you=`ship`(slav %p i.t.t.pax)
num=(slav %ud i.t.t.t.pax)
imp=`path`t.t.t.t.pax
2014-06-30 03:58:17 +04:00
==
2015-01-19 07:52:43 +03:00
:: ~& [%gall-gave hen -.pax [our you num imp]]
2014-07-03 03:24:03 +04:00
:_ ..^$
2014-09-11 03:35:03 +04:00
=+ rod=|=(ron=roon `note`[%a %wont [our you] [%q %gh imp] num ron])
2014-06-30 03:58:17 +04:00
?+ -.pax !!
2015-03-23 15:30:00 +03:00
%z ?+ -.sih !!
%a :_ ~ :- hen
[%pass [%r pax] %g %took [our imp] you]
::
2014-06-30 03:58:17 +04:00
%f
2014-10-30 02:07:13 +03:00
:_ ~ :- hen
2015-02-12 00:10:07 +03:00
?- -.q.+.sih
%| [%give %mean ~ %ford-fail p.q.+.sih]
%& [%pass [%r pax] %g %mess [our imp] you `cage`p.q.+.sih]
2014-06-30 03:58:17 +04:00
==
::
%g
2014-10-30 02:07:13 +03:00
:_ ~ :- hen
2014-07-08 03:36:35 +04:00
?- -.+.sih
%crud !!
2014-06-30 03:58:17 +04:00
%dumb !!
2014-09-17 04:04:58 +04:00
%gone !!
%init !!
%logo !!
2014-11-26 04:02:48 +03:00
%mean [%pass [%r pax] (rod %e p.+.sih)]
2014-07-26 06:10:24 +04:00
%nice [%give %nice ~]
%rush [%pass [%r pax] (rod %d p.+.sih q.+.sih)]
%rust :: ~& [%gave-rust [our you num imp] hen]
2015-01-19 07:52:43 +03:00
[%pass [%r pax] (rod %f p.+.sih q.+.sih)]
2014-10-22 06:59:05 +04:00
%sage !!
2014-10-24 02:56:06 +04:00
%verb !!
2014-10-04 02:32:10 +04:00
%veer !!
%vega !!
2014-06-30 03:58:17 +04:00
==
2014-07-08 03:36:35 +04:00
==
2014-06-30 03:58:17 +04:00
%u !!
==
::
++ gawd :: %r handle response
2014-09-11 03:35:03 +04:00
|= [hen=duct saq=sack imp=path num=@ud ron=roon]
2014-06-30 03:58:17 +04:00
^- [p=(list move) q=_..^$]
2014-10-30 02:07:13 +03:00
?: =(0 num) ~& %shouldnt-get-zero `..^$
2014-10-02 23:46:00 +04:00
=+ mat=(~(got by pol.all) p.saq)
=+ sad=(~(got by sap.mat) q.saq)
=+ neh=(~(got by r.sad) num)
2014-07-26 06:10:24 +04:00
:_ ..^$
:- [hen %give %nice ~] :_ ~
2014-06-30 03:58:17 +04:00
^- move :- neh
?- -.ron
2014-07-27 14:26:17 +04:00
%d [%pass /x/d `note`[%f %exec p.saq ~ %vale p.ron q.saq q.ron]]
2014-07-08 04:32:58 +04:00
%e [%give %mean p.ron]
2014-07-27 14:26:17 +04:00
%f [%pass /x/f `note`[%f %exec p.saq ~ %vale p.ron q.saq q.ron]]
2014-07-08 04:32:58 +04:00
%k [%give %nice ~]
2014-06-30 03:58:17 +04:00
==
::
++ gawk :: %r call/request
2014-09-11 03:35:03 +04:00
|= [hen=duct saq=sack imp=path num=@ud rok=rook]
2014-06-30 03:58:17 +04:00
^- [p=(list move) q=_..^$]
:_ ..^$ :_ ~
^- move :- hen
:+ %pass
2014-09-11 03:35:03 +04:00
:* %r
2015-03-23 15:30:00 +03:00
:: ?-(-.rok %m %m, %s %s, %u %s)
%z
2014-06-30 03:58:17 +04:00
(scot %p p.saq)
(scot %p q.saq)
(scot %ud num)
2014-09-11 03:35:03 +04:00
imp
2014-06-30 03:58:17 +04:00
==
^- note
?- -.rok
2014-07-27 14:26:17 +04:00
%m [%f %exec p.saq ~ %vale p.rok q.saq q.rok]
2014-09-11 03:35:03 +04:00
%s [%g %show [p.saq imp] q.saq p.rok]
%u [%g %nuke [p.saq imp] q.saq]
2014-06-30 03:58:17 +04:00
==
::
++ gent :: seat in mast
2014-09-11 03:35:03 +04:00
|= [our=@p imp=path mat=mast]
2014-06-30 03:58:17 +04:00
=+ ^= sat ^- seat
2014-09-11 03:35:03 +04:00
=+ syt=(~(get by bum.mat) imp)
2014-06-30 03:58:17 +04:00
?^ syt u.syt
?. ?=([@ ~] imp) ~& [%app-not-found imp] !!
2014-06-30 03:58:17 +04:00
%* . *seat
2014-09-11 03:35:03 +04:00
app i.imp
2014-06-30 03:58:17 +04:00
zam
^- scar
:+ 1
[[hun.mat 0 ~] ~ ~]
[[0 hun.mat] ~ ~]
==
2014-09-16 06:56:44 +04:00
=. bum.mat (~(put by bum.mat) imp sat)
2014-09-11 03:35:03 +04:00
~(. go [our imp] mat sat)
2014-06-30 03:58:17 +04:00
::
++ goad :: handle request
|= [hen=duct law=(unit cuff)]
2014-09-11 03:35:03 +04:00
|= [our=@p imp=path kon=knob]
2014-06-30 03:58:17 +04:00
^- [(list move) _..^^$]
=+ mut=(~(get by pol.all) our)
2014-07-08 03:36:35 +04:00
?^ mut
2015-01-20 01:02:00 +03:00
?: &(?=([@ @ *] imp) !(~(has by bum.u.mut) imp)) :: %took for dead imps
[~ ..^^$]
2014-09-11 03:35:03 +04:00
abet:work:(quem:(boar:(gent our imp u.mut) hen law) kon)
((gape hen law) our imp kon)
2014-05-27 13:47:19 +04:00
::
++ go :: application core
|_ $: $: our=@p :: application owner
2014-09-11 03:35:03 +04:00
imp=path :: application name
2014-05-27 13:47:19 +04:00
== ::
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
2014-07-08 03:36:35 +04:00
pol %+ ~(put by pol.all) our
2014-09-16 06:56:44 +04:00
?. (~(has by bum.mat) imp)
2014-09-18 02:25:58 +04:00
:: ~& [%abet-gone imp]
2014-09-16 06:56:44 +04:00
mat
2014-10-15 06:23:07 +04:00
:: ~& [%onzes imp=imp onz=onz.sat]
2014-09-11 03:35:03 +04:00
mat(bum (~(put by bum.mat) imp sat))
2014-05-27 13:47:19 +04:00
==
==
2014-06-30 03:58:17 +04:00
::
2014-12-11 08:42:02 +03:00
++ able :: bone to duct
|= ost=bone ^- duct
:: ?: =(0 ost)
:: hun.mat
2014-12-11 08:42:02 +03:00
(~(got by r.zam.sat) ost)
::
2014-05-28 09:44:18 +04:00
++ away :: application path
|= pax=path ^- path
2015-01-14 08:38:39 +03:00
[%a (scot %p our) ?~(imp %$ (pack imp)) pax]
::
++ bear :: write backward
|= hen=duct
2014-12-11 18:49:01 +03:00
=+ orf=(fall (~(get by q.zam.sat) hen) [p=0 q=*(unit cuff)])
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
2014-12-11 18:49:01 +03:00
=+ 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])
2014-09-14 04:56:36 +04:00
=+ cor=(slam gat !>([our pax]))
2014-05-29 03:43:30 +04:00
=+ ^= 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
[((hard mark) -.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-12-11 18:49:01 +03:00
=+ orf=(fall (~(get by q.zam.sat) neh) [p=0 q=*(unit cuff)])
2014-05-28 09:44:18 +04:00
%_ +>.$
hen neh
ost p.orf
use (read q.orf)
say (rite q.orf)
==
::
2014-09-11 04:55:44 +04:00
++ birf
|= [wir=wire hon=duct caq=vase]
2014-09-17 04:04:58 +04:00
^- move
2014-09-11 04:55:44 +04:00
?> ?=([%pass p=* q=%g r=[p=%sire q=term r=span]] q.caq)
2014-09-17 04:04:58 +04:00
[hon %pass wir %g %sire q.r.q.caq our r.r.q.caq imp]
2014-09-11 04:55:44 +04:00
::
2014-08-01 06:44:49 +04:00
++ blow
^+ .
:: ~& [%gall-blow ost]
2015-01-26 23:54:45 +03:00
=> (give %mean ~)
2014-08-01 06:44:49 +04:00
=+ pax=+:(fall (~(get by sup.sat) ost) *[ship path])
%= +
qic.sat ~
sup.sat (~(del by sup.sat) ost)
pus.sat (~(del ju pus.sat) pax ost)
peq.sat (~(del by peq.sat) ost)
==
::
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-09-11 03:35:03 +04:00
:_ ~
:- [%$ 12]~
2014-09-12 06:11:03 +04:00
(cave !>([[our app.sat imp] cub.sat sup.sat pus.sat [act.sat eny now]]))
2015-01-19 18:24:25 +03: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
2015-01-21 02:00:54 +03:00
.(tik.sat +(tik.sat))
2014-06-08 06:45:00 +04:00
::
2014-09-12 06:11:03 +04:00
++ deff
|= [wir=wire hon=duct caq=vase]
^- toil
?> ?=([%pass p=* q=%g r=[p=%cide q=span]] q.caq)
2014-09-18 02:25:58 +04:00
:: ~& [%deff imp cub.sat]
2014-09-12 06:11:03 +04:00
[hon r.q.caq]
::
2014-05-29 02:06:52 +04:00
++ drug :: set dependencies
|= pen=(set (pair ship desk))
2015-01-21 02:26:40 +03:00
:: ~& [%drug ped=ped.sat]
:: ~& [%drug pen=pen]
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-24 21:32:59 +04:00
:^ %pass (away %w %drug (scot %p p.a) q.a ~) %c
2015-01-21 02:26:40 +03:00
:: ~& [%sync-subscribe our p.a q.a]
[%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-24 21:32:59 +04:00
:^ %pass (away %w %drug (scot %p p.a) q.a ~) %c
~& [%sync-unsubscribe our p.a q.a]
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
2015-02-19 00:35:22 +03:00
|= dep=@uvH
2014-05-29 02:06:52 +04:00
^+ +>
?> ?=(^ orm.sat)
%- drug
=+ ped=`(set (pair ship desk))`[[our %main] ~ ~]
2015-02-19 00:35:22 +03:00
ped
::=+ 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-29 02:06:52 +04:00
::
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-09-27 02:08:57 +04:00
=. kas
:+ %dude
leaf/"error in app {<app.sat>} on {<our>} at instance {<imp>}"
kas
2014-06-14 01:47:08 +04:00
%_ +>
2014-06-24 21:32:59 +04:00
mow :_(mow [hen %pass (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
2014-07-29 02:46:03 +04:00
[%ride [%cnzy arm] kas]
2014-05-28 12:57:00 +04:00
::
2014-05-28 09:44:18 +04:00
++ home :: load application
^- silk
2014-09-11 03:35:03 +04:00
[%boil %core [[our %main [%da now]] app.sat %app ~] ~]
2014-05-27 13:47:19 +04:00
::
2014-09-16 06:56:44 +04:00
++ leav
%_ .
bum.mat (~(del by bum.mat) imp)
qic.sat ~
2014-09-17 04:04:58 +04:00
mow
?~ mom.sat mow
:_(mow [u.mom.sat %give %gone our imp])
2014-09-16 06:56:44 +04:00
vey.sat
%- ~(gas by vey.sat)
%+ turn (~(tap by cub.sat))
2014-09-18 02:25:58 +04:00
|=([a=span @] [hen %cide a])
2014-09-16 06:56:44 +04:00
==
::
++ mack :: apply standard
2014-06-22 09:49:10 +04:00
|= sih=sign
2014-07-08 03:36:35 +04:00
?> ?=(%f -.sih)
2014-06-17 05:33:31 +04:00
^- [(unit (list tank)) _+>]
2015-02-12 00:10:07 +03:00
?- -.q.+.sih
2014-06-17 05:33:31 +04:00
& :- ~
2015-02-12 00:10:07 +03:00
%- obey:(morn (slot 3 q.p.q.+.sih))
(slot 2 q.p.q.+.sih)
| [`p.q.+.sih (give %crud %mack-made p.q.+.sih)]
2014-06-17 05:33:31 +04:00
==
::
++ meek :: apply peek
2014-06-22 09:49:10 +04:00
|= sih=sign
^- [(unit cage) _+>]
2014-07-08 03:36:35 +04:00
?> ?=(%f -.sih)
2015-02-12 00:10:07 +03:00
?- -.q.+.sih
& =+ vax=`vase`q.p.q.+.sih
?. &(?=(^ q.vax) ?=(@ -.q.vax))
[~ (give %crud %peek-lame *(list tank))]
:: ~> %slog.[0 (skol p:(slot 3 vax))]
:- `[((hard mark) -.q.vax) (slot 3 vax)]
+>.$
2015-02-12 00:10:07 +03:00
| [~ (give %crud %meek-made p.q.+.sih)]
==
::
++ mick :: apply w/depends
2014-06-22 09:49:10 +04:00
|= sih=sign
2014-06-26 05:20:49 +04:00
?> ?=(%f -.sih)
2015-02-19 00:35:22 +03:00
^- [[p=? q=@uvH] _+>]
2015-02-12 00:10:07 +03:00
:- [-.q.+.sih p.+.sih]
?- -.q.+.sih
& %- obey:(morn (slot 3 q.p.q.+.sih))
(slot 2 q.p.q.+.sih)
| (give %crud %mick-made p.q.+.sih)
2014-06-17 05:33:31 +04:00
==
::
2014-09-16 06:56:44 +04:00
++ muck :: apply part
|= sih=sign
^- [(unit (list tank)) _+>]
?> ?=(%f -.sih)
2015-02-12 00:10:07 +03:00
?- -.q.+.sih
& [~ (obey q.p.q.+.sih)]
| [`p.q.+.sih (give %crud %muck-made p.q.+.sih)]
2014-09-16 06:56:44 +04:00
==
::
++ murk :: apply park
2014-06-22 09:49:10 +04:00
|= sih=sign
2014-06-17 05:33:31 +04:00
^- [(unit cage) _+>]
2014-07-08 03:36:35 +04:00
?> ?=(%f -.sih)
2015-02-12 00:10:07 +03:00
?- -.q.+.sih
& [`p.q.+.sih +>.$]
| [~ (give %crud %murk-made p.q.+.sih)]
2014-06-17 05:33:31 +04:00
==
::
2014-06-30 03:58:17 +04:00
++ more :: domestic take
2014-05-27 13:47:19 +04:00
|= $: pax=path :: internal position
2014-06-22 09:49:10 +04:00
hin=(hypo sign) :: typed event
==
2014-05-28 09:44:18 +04:00
^+ +>
2014-06-17 05:33:31 +04:00
?+ -.pax !!
%s :: core operation
2014-08-07 01:03:33 +04:00
?. ?& ?=([@ *] t.pax)
2014-06-17 05:33:31 +04:00
!=(~ qic.sat)
=(`[hen pax] onz.sat)
2014-07-08 03:36:35 +04:00
==
2014-09-23 02:20:47 +04:00
~& :* %gall-mystery
imp pax
?~(qic.sat ~ [p -.q]:u.qic.sat)
onz.sat
==
2014-08-07 01:03:33 +04:00
+>.$
2014-06-17 05:33:31 +04:00
=: onz.sat ~
qic.sat ~
==
?+ i.t.pax !!
2014-06-26 16:18:30 +04:00
::
2014-06-17 05:33:31 +04:00
%park
2014-06-22 06:51:12 +04:00
=^ gyd +>.$ (murk q.hin)
2014-06-17 05:33:31 +04:00
?~ gyd
+>.$
(quen %load u.gyd)
2014-09-16 06:56:44 +04:00
::
%part
=^ gud +>.$ (muck q.hin)
?^ gud +>.$
leav
2014-06-17 05:33:31 +04:00
::
2014-07-08 03:36:35 +04:00
%peek
?> ?=([@ *] t.t.pax)
=+ you=(need (slaw %p i.t.t.pax))
2014-06-22 06:51:12 +04:00
=^ gyd +>.$ (meek q.hin)
2014-06-17 05:33:31 +04:00
?~ gyd
2014-07-26 06:10:24 +04:00
=. +>.$ (give %mean ~ %peer-fail ~)
2014-07-08 03:36:35 +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
+>.$
2014-07-26 06:10:24 +04:00
=. +>.$
?: (~(has by sup.sat) ost) +>.$ (give %nice ~)
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)
pus.sat (~(put ju pus.sat) +.kee ost)
2014-06-17 05:33:31 +04:00
==
2014-06-30 03:58:17 +04:00
(best %rust u.gyd)
2014-06-17 05:33:31 +04:00
::
2014-07-08 03:36:35 +04:00
%peer
2014-10-15 06:23:07 +04:00
:: ~& [%peer-goning onz=onz.sat]
?> ?=([@ *] t.t.pax)
=+ you=(need (slaw %p i.t.t.pax))
2014-06-22 06:51:12 +04:00
=^ gud +>.$ (mack q.hin)
2014-07-08 03:36:35 +04:00
?^ gud
2014-07-26 06:10:24 +04:00
=. +>.$ (give %mean ~ %peer-fail ~)
2014-06-19 22:53:16 +04:00
(give [%dumb ~])
2014-07-26 06:10:24 +04:00
=. +>.$ (give %nice ~)
%= +>.$
sup.sat (~(put by sup.sat) ost [you t.t.t.pax])
pus.sat (~(put ju pus.sat) t.t.t.pax ost)
==
2014-06-17 05:33:31 +04:00
::
%poke
2014-06-22 06:51:12 +04:00
=^ gud +>.$ (mack q.hin)
2014-09-25 04:37:29 +04:00
?^ gud (give %mean ~ %poke-mack-fail u.gud)
2014-06-17 05:33:31 +04:00
+>.$
2014-06-26 05:20:49 +04:00
::
%pour
=^ gud +>.$ (mack q.hin)
?^ gud ~& -.gud +>.$
+>.$
2014-06-17 05:33:31 +04:00
::
%prep
2014-06-22 06:51:12 +04:00
=^ gad +>.$ (mick q.hin)
2015-02-12 00:10:07 +03:00
?. p.gad (drum q.gad)
deal:(drum q.gad)
2014-06-17 05:33:31 +04:00
::
%pull
2014-06-22 06:51:12 +04:00
=^ gud +>.$ (mack q.hin)
2014-06-17 05:33:31 +04:00
?^ gud +>.$
2014-08-01 06:44:49 +04:00
blow
2014-06-17 05:33:31 +04:00
==
2014-07-08 03:36:35 +04:00
::
%u :: user request
%_ +>.$
2014-07-08 03:36:35 +04:00
vey.sat
(~(put to vey.sat) [hen [%take t.pax hin]])
==
2014-05-28 12:57:00 +04:00
::
2014-06-17 05:33:31 +04:00
%w :: autoboot
2014-07-08 03:36:35 +04:00
?> ?=([%drug @ @ ~] t.pax)
2014-06-26 05:20:49 +04:00
=+ :* sin=((hard ,[%c %writ p=riot]) q.hin)
our=(need (slaw %p i.t.t.pax))
2014-07-08 03:36:35 +04:00
syd=(need ((sand %tas) i.t.t.t.pax))
2014-06-11 18:06:36 +04:00
==
::~& [%sync-notified `@p`our `@ta`syd]
2014-06-11 18:06:36 +04:00
=. ped.sat (~(del by ped.sat) [our syd])
2014-07-08 03:36:35 +04:00
?~ p.+.sin
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-25 02:00:07 +04:00
=+ new=?~(huv.sat & !=(+<+.q.vax +<+.q.u.huv.sat))
2015-01-22 06:31:17 +03:00
:: ?. ?=(%core -.p.vax)
:: ~| [%morn-not-core -.p.vax app.sat imp]
:: ~> %mean.|.((skol p.vax))
:: !!
2014-06-17 05:33:31 +04:00
=. huv.sat `vax
?. new +>.$
=: act.sat +(act.sat)
lat.sat now
==
=+ pex=(~(tap by peq.sat) ~)
|- ^+ +>.^$
?~ pex +>.^$
2014-12-11 08:42:02 +03:00
%= $
pex t.pex
+>.^$ (quem(hen (able p.i.pex)) [%show (~(got by sup.sat) p.i.pex)])
==
2014-05-27 13:47:19 +04:00
::
2014-07-08 03:36:35 +04:00
++ mort :: failed boot
2014-05-28 09:44:18 +04:00
|= 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
2014-09-18 02:25:58 +04:00
=^ sax mow (said vax)
+>.$(vey.sat (~(gas to vey.sat) sax))
2014-05-29 02:06:52 +04:00
::
++ quem :: queue action
|= kon=knob :: content
2014-06-08 06:45:00 +04:00
^+ +>
2014-07-08 03:36:35 +04:00
=. +> ?. ?=(%nuke -.kon) +>
2014-06-17 05:33:31 +04:00
?. &(?=(^ onz.sat) =(hen p.u.onz.sat)) +>
2014-10-15 06:23:07 +04:00
~& [%nukeando imp=imp onz=onz.sat]
2014-06-17 05:33:31 +04:00
%= +>
onz.sat ~
2014-07-08 03:36:35 +04:00
mow
2014-06-24 21:32:59 +04:00
:_(mow [hen %pass (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]))
::
++ said :: sayz, done wrong
2014-05-29 02:06:52 +04:00
|= vud=vase
2015-01-20 00:54:49 +03:00
=- [p.fob (weld (flop q.fob) mow)]
^= fob
|- ^- (pair (list toil) (list move))
?: =(~ q.vud) [~ ~]
2014-09-11 04:55:44 +04:00
=+ sud=(sump (slot 2 vud))
=+ res=$(vud (slot 3 vud))
2015-01-16 22:08:26 +03:00
:- ?~ -.sud
-.res
[u.-.sud -.res]
?~ +.sud
+.res
[u.+.sud +.res]
2014-05-27 13:47:19 +04:00
::
++ sayz :: dissect app moves
|= vud=vase
=| toy=(list toil)
|- ^- [(list toil) (list move)]
?: =(~ q.vud) [toy mow]
=+ sud=(sump (slot 2 vud))
%= $
vud (slot 3 vud)
toy ?~(-.sud toy [u.-.sud toy])
mow ?~(+.sud mow [u.+.sud mow])
==
::
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-07-08 03:36:35 +04:00
++ sumo :: standard gift
2014-06-04 14:40:09 +04:00
|= vig=vase
^- gift
[%meta vig]
2014-06-04 14:40:09 +04:00
::
2014-05-29 02:06:52 +04:00
++ sump
|= wec=vase
2014-11-26 04:02:48 +03:00
^- [(unit toil) (unit move)]
=+ ost=((hard bone) -.q.wec)
2014-12-11 08:42:02 +03:00
=+ hon=(able ost)
2014-05-29 02:06:52 +04:00
=+ caq=(spec (slot 3 wec))
?+ q.caq ~&(%sump-bad !!)
::
2014-06-24 21:32:59 +04:00
[%pass p=* q=@tas r=[p=@tas q=*]]
2014-09-11 04:55:44 +04:00
=+ wir=(away %u ((hard path) p.q.caq))
2014-11-26 04:02:48 +03:00
?: ?=(%cide p.r.q.caq) [`(deff wir hon caq) ~]
?: ?=(%sire p.r.q.caq) [~ `(birf wir hon caq)]
:^ ~ ~ hon
2014-09-11 04:55:44 +04:00
:^ %pass wir
2014-06-21 22:42:34 +04:00
(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-11-26 04:02:48 +03:00
?: ?=(%mean p.p.q.caq)
:- `[hon %nuke our]
`[hon %give %mean (ares q.p.q.caq)]
2015-01-27 01:41:24 +03:00
:- ?. ?| ?=(?(%rush %rust) p.p.q.caq)
2015-01-19 17:25:52 +03:00
?& ?=(%meta p.p.q.caq)
?=([* ?(%rush %rust) *] q.p.q.caq)
== ==
~
2015-01-19 07:52:43 +03:00
`[hon %told our]
:+ ~ hon
2014-07-24 06:02:50 +04:00
:- %give
?: ?=(%nice p.p.q.caq) [%nice ~]
(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
2014-07-08 03:36:35 +04:00
|= cog=@tas
2014-06-17 05:33:31 +04:00
^- ?
2014-07-29 02:46:03 +04:00
?~(huv.sat | (slab cog p.u.huv.sat))
2014-06-17 05:33:31 +04:00
::
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-09-18 01:23:48 +04:00
++ xeno
|= [pim=path kon=knob]
=^ mew ..$.go
((goad($.go +:abet) hen ~) our pim kon)
=. mat (~(got by pol.all) our)
=. sat (fall (~(get by bum.mat) imp) sat)
+>.$(mow (weld (flop mew) mow))
::
2014-06-17 05:33:31 +04:00
++ yawl :: invoke core
2014-09-27 02:08:57 +04:00
|= [[arm=term pax=path] tac=tank vax=vase sam=vase]
2014-06-17 05:33:31 +04:00
^+ +>
%+ ford [%s arm pax]
2014-09-27 02:08:57 +04:00
:+ %dude tac
2014-06-17 05:33:31 +04:00
[%call (harm arm (conf (core vax))) (cove %$ sam)]
::
2014-05-28 09:44:18 +04:00
++ yawn :: start event
|= kon=knob
^+ +>
2015-01-19 18:25:22 +03:00
:: ~& [%gall-yawn ost imp -.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
2015-01-11 11:00:36 +03:00
:: :+ %dude leaf/"booting"
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)))
2014-09-16 06:56:44 +04:00
::
%cede
?: (warm %part)
=+ sam=!>(ost)
?> ?=(^ huv.sat)
2014-09-27 02:08:57 +04:00
(yawl /part leaf/"parting" u.huv.sat sam)
2014-09-16 06:56:44 +04:00
leav
2014-09-12 06:11:03 +04:00
::
%cide
2014-09-16 06:56:44 +04:00
?~ p.kon
?~ imp +>.$(qic.sat ~)
?~ t.imp
$(kon [%cede ~])
=. qic.sat ~
2014-09-18 01:23:48 +04:00
(xeno t.imp %cide i.imp)
2014-09-12 06:11:03 +04:00
?. (~(has by bum.mat) [p.kon imp])
2014-09-18 02:25:58 +04:00
~& > [%cide-missed p.kon imp] +>.$(qic.sat ~)
2014-10-02 23:46:00 +04:00
::~& [%cide-found p.kon imp]
2014-09-18 01:23:48 +04:00
=. +>.$ (xeno [p.kon imp] %cede ~)
2014-09-12 06:11:03 +04:00
%_ +>.$
cub.sat (~(del by cub.sat) p.kon)
qic.sat ~
==
2014-09-18 01:23:48 +04:00
::
%feel
+>.$(qic.sat ~)
2015-01-19 07:52:43 +03:00
::
%took
2015-01-19 17:25:52 +03:00
=+ qol=(~(get by qel.sat) ost)
2015-01-26 23:54:45 +03:00
:: ~& [%yawn-took-has ost qol [our hen]]
2015-01-19 17:25:52 +03:00
%= +>.$
qic.sat ~
qel.sat
?~ qol
2015-01-27 01:41:24 +03:00
:: ~& [%took-underflow our hen]
2015-01-19 17:25:52 +03:00
qel.sat
?: =(`1 qol)
(~(del by qel.sat) ost)
(~(put by qel.sat) ost (dec u.qol))
==
2015-01-19 07:52:43 +03:00
::
%told
=+ qol=(~(get by qel.sat) ost)
2015-01-26 23:54:45 +03:00
:: ~& [%yawn-told-has ost qol [our hen]]
2015-01-19 07:52:43 +03:00
=+ qul=?~(qol 1 +(u.qol))
2015-01-26 23:54:45 +03:00
=. qel.sat (~(put by qel.sat) ost qul)
?: =(10 qul)
~& [%yawn-told-full ost our hen]
2015-03-23 01:46:42 +03:00
+>.$(qic.sat ~, vey.sat (~(put to vey.sat) hen %nuke p.kon))
+>.$(qic.sat ~)
2014-06-17 05:33:31 +04:00
::
%load
=+ [hom=(slot 2 q.p.kon) old=(slot 3 q.p.kon)]
%+ ford /s/prep
2014-09-27 02:08:57 +04:00
:+ %dude leaf/"prepping"
2014-06-17 05:33:31 +04:00
?. (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-08-01 06:44:49 +04:00
?. (warm %pull)
blow
?> ?=(^ huv.sat)
2014-09-27 02:08:57 +04:00
(yawl [%pull ~] leaf/"pulling" u.huv.sat [[%atom %ud] ost])
2014-05-28 09:44:18 +04:00
::
%mess
2015-01-11 11:00:36 +03:00
=+ ^- cog=term
2015-01-23 00:06:03 +03:00
=- |- ?~ goz ?:((warm %pock) %pock %poke)
2015-01-11 11:00:36 +03:00
?: (warm i.goz) i.goz
$(goz t.goz)
^- goz=(list term)
?: =(%$ p.q.kon)
2015-01-11 11:00:36 +03:00
/pock
=+ ^= goc
|= [a=term b=(list term)]
[(cat 3 'pock-' a) (cat 3 'poke-' a) b]
=+ ofs=(met 3 app.sat)
?. .= (cat 3 app.sat '-') :: XX temporary, until /=main=/bin
(end 3 +(ofs) p.q.kon)
(goc p.q.kon /pock)
:(goc p.q.kon (rsh 3 ofs p.q.kon) /pock)
=+ hyp=?=(%pock (end 3 4 cog))
2015-03-12 02:51:04 +03:00
=+ ^- err=tape
?.(?=(?(%poke %pock) cog) <cog> "{<cog>} with mark {<p.q.kon>}")
2014-06-18 04:34:20 +04:00
?. (warm cog)
2015-03-12 02:51:04 +03:00
(give(qic.sat ~) %mean ~ %poke-find-fail leaf/err ~)
2014-06-17 05:33:31 +04:00
?> ?=(^ huv.sat)
=+ ^= sam
;: slop
[[%atom %ud] ost]
[[%atom %p] p.kon]
?.(hyp q.q.kon (slop !>(p.q.q.kon) q.q.kon))
==
2014-06-25 02:00:07 +04:00
:: ~& [%mess-poke cog]
2014-06-18 04:34:20 +04:00
%+ ford /s/poke
2015-03-12 02:51:04 +03:00
:+ %dude leaf/err
2014-06-18 04:34:20 +04:00
[%call (harm cog (conf (core u.huv.sat))) (cove %$ sam)]
2014-05-28 12:57:00 +04:00
::
%show
2015-01-27 00:53:35 +03:00
:: ~& showing/[app.sat imp q.kon]
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-09-27 02:08:57 +04:00
(yawl [%peer (scot %p p.kon) q.kon] leaf/"peering" u.huv.sat sam)
2014-07-08 03:36:35 +04:00
?: (warm %peek)
=+ sam=!>([p.kon q.kon])
2014-06-17 05:33:31 +04:00
?> ?=(^ huv.sat)
2014-09-27 02:08:57 +04:00
(yawl [%peek (scot %p p.kon) q.kon] leaf/"peeking" u.huv.sat sam)
2015-03-19 01:01:47 +03:00
~& [%show-dumb app.sat imp q.kon]
2014-06-19 22:53:16 +04:00
(give(qic.sat ~) %dumb ~)
2014-09-11 04:55:44 +04:00
::
%sire
2014-09-12 00:44:46 +04:00
?: (~(has by bum.mat) [q.kon imp])
2014-09-18 02:25:58 +04:00
~& > %sire-redundant +>.$(qic.sat ~)
2014-10-02 23:46:00 +04:00
::~& [%sire-made p.kon imp]
2014-09-18 01:23:48 +04:00
=: cub.sat (~(put by cub.sat) q.kon p.kon)
qic.sat ~
bum.mat
%+ ~(put by bum.mat) [q.kon imp]
%* . *seat
app p.kon
mom `hen
zam
^- scar
:+ 1
[[hun.mat 0 ~] ~ ~]
[[0 hun.mat] ~ ~]
==
2014-09-12 00:44:46 +04:00
==
2014-09-18 01:23:48 +04:00
(xeno [q.kon imp] %feel ~)
2014-05-28 09:44:18 +04:00
::
2014-05-28 20:20:07 +04:00
%take
2015-01-23 00:06:03 +03:00
?: ?& ?=([%g %rush @ *] q.q.kon)
|((warm %posh) (warm (cat 3 'posh-' &3.q.q.kon)))
==
2015-01-21 02:26:40 +03:00
?> ?=(^ huv.sat)
2015-01-23 00:06:03 +03:00
=+ [goc gil]=[(cat 3 'posh-' &3.q.q.kon) (spec (slot 7 q.kon))]
=. - ?:((warm goc) [goc (slot 3 gil)] [%posh gil])
2015-01-21 05:33:01 +03:00
=+ sam=:(slop [[%atom %ud] ost] !>(p.kon) gil)
2015-01-21 02:26:40 +03:00
%+ ford /s/pour
:+ %dude leaf/"pouring"
2015-01-21 05:33:01 +03:00
:+ %dude (skol p.gil)
2015-01-23 00:06:03 +03:00
[%call (harm goc (conf (core u.huv.sat))) (cove %$ sam)]
2014-09-26 04:54:51 +04:00
?: (warm %purr)
?> ?=(^ huv.sat)
=+ sam=:(slop [[%atom %ud] ost] !>(p.kon) !>(p.q.kon) q.kon)
%+ ford /s/pour
2014-09-27 02:08:57 +04:00
:+ %dude leaf/"purring"
2014-09-26 04:54:51 +04:00
[%call (harm %purr (conf (core u.huv.sat))) (cove %$ sam)]
?. (warm %pour)
+>.$(qic.sat ~)
?> ?=(^ huv.sat)
2014-08-28 03:00:41 +04:00
=+ sam=:(slop [[%atom %ud] ost] !>(p.kon) q.kon)
2014-06-26 05:20:49 +04:00
%+ ford /s/pour
2014-09-27 02:08:57 +04:00
:+ %dude leaf/"pouring"
[%call (harm %pour (conf (core u.huv.sat))) (cove %$ sam)]
2014-05-28 09:44:18 +04:00
==
2014-09-18 02:25:58 +04:00
-- --
-- --