urbit/arvo/gall.hoon
2014-05-07 10:42:31 -07:00

130 lines
5.7 KiB
Plaintext

!: :: %gall, user-level extension
!? 164
::::
|= pit=vase
^- vane
=> =~
|% :: structures
++ axle :: all %gall state
$: ven=%0 ::
own=(map ship yawl) :: apps by ship
tad=(map duct task) :: tasks by duct
== ::
++ bone ,@ud :: opaque duct
++ moan
++ seat :: living app
$: hiv=vase :: the hive
eny=@ :: entropy
now=@da :: hive time
tik=@ud :: pokes computed
zud=bone :: opaque duct
zos=(map bone hen) :: duct table
wok=(unit ,@ud) :: awaiting / next
vey=(qeu ,[p=@da q=move]) :: blocked queue
== ::
++ yawl :: apps by ship
$: bus=(map term seat) :: apps by name
== ::
++ hawk ::
$% [%call p=bone q=wire r=card] :: advance card
[%give p=bone q=card] :: produce card
[%play p=bone q=card] :: revisit card
[%lose p=bone] :: tear down duct
== ::
++ hide :: engine state
$: own=[p=ship q=@tas] :: static identity
^= seq :: dynamic sequence
$: num=@ud :: change number
eny=@ :: entropy
now=@da :: date
== == ::
++ hive :: typed engine
$_ ^? ::
|_ hide ::
++ pack vase :: save as bag
++ poke :: apply
|+ $: kyz=(unit (set keel)) :: authorizers
tea=wire :: internal position
fav=card :: present event
== ::
[*(list hawk) +>] :: effects
++ peek :: view
|+ $: kyz=(unit (set keel)) :: inspectors
asp=? :: desired aspect
tea=wire :: internal position
== ::
[*?(%view %diff) *vase] ::
++ prep :: restore from bag
|+ bux=vase ::
+> ::
== ::
--
|%
++ ye :: per event
=| $: $: $: wru=(unit writ) :: event authority
tea=wire :: event place
hen=duct :: event floor
fav=card :: event data
== ::
$: now=@da :: event date
eny=@ :: unique entropy
ska=$+(* (unit (unit))) :: system namespace
== ::
mow=(list move) :: pending actions
== ::
axle :: all vane state
== ::
=* lex ->
|%
++ abet
^- [(list move) axle]
[(flop mow) lex]
. ==
=| axle
=* lex -
|= [now=@da eny=@ sky=$+(* (unit))] :: activate
^? :: opaque core
|% ::
++ beat :: process move
|= [wru=(unit writ) tea=wire hen=duct fav=curd]
=> .(fav ((hard card) fav))
^- [p=(list move) q=vane]
?> ?=(
=+ ^= kul ^- (unit keel)
?: |(?=(%
=^ mos lex
abet:apex:~(adit ye [[wru tea hen fav] [now eny sky] ~] lex)
[mos ..^$]
::
++ come
|= [sam=? old=vase]
^- vane
(load old)
::
++ doze
|= [now=@da hen=duct]
^- (unit ,@da)
~
::
++ load
|= old=vase
^- vane
?. (~(nest ut -:!>(`axle`+>-.^$)) | p.old)
~& %eyre-reset
..^$
..^$(+>- (axle q.old))
::
++ raze
^- vane
..$(+>- *axle)
::
++ scry
|= [our=ship ren=@tas who=ship syd=disc lot=coin tyl=path]
^- (unit)
~
::
++ stay
`vase`!>((colt `axle`+>-.$))
++ vern [164 0]
--