This commit is contained in:
Galen Wolfe-Pauly 2014-07-21 11:42:07 -07:00
commit 0ddba5cf1b
10 changed files with 1234 additions and 1193 deletions

View File

@ -492,7 +492,7 @@
+>.$(hoc.saf (~(put by hoc.saf) her [[~31337.1.1 ~ wil] ~ *clot]))
::
++ lax :: lax:as:go
|_ [her=ship dur=door] :: per client
|_ [her=ship dur=dore] :: per client
++ cluy :: cluy:lax:as:go
^- [p=life q=gens r=acru] :: client crypto
?~ lew.wod.dur !!
@ -683,19 +683,19 @@
-- :: --zuul:lax:as:go
-- :: --lax:as:go
::
++ gur :: default door
++ gur :: default dore
|= her=ship
^- door
^- dore
=+ def=?.((lth her 256) ~ [~ %if ~2000.1.1 0 (mix her .0.0.1.0)])
[[~2100.1.1 def ~] ~ *clot]
::
++ myx :: door by ship
++ myx :: dore by ship
|= her=ship
^+ lax
=+ fod=(~(get by hoc.saf) her)
~(. lax [her ?~(fod (gur her) u.fod)])
::
++ nux :: install door
++ nux :: install dore
|= new=_lax
^+ +>
+>(hoc.saf (~(put by hoc.saf) her.new dur.new))

View File

@ -10,21 +10,40 @@
++ gift :: out result <-$
$% [%made p=(each bead (list tank))] :: computed result
== ::
++ heel path :: functional ending
++ hock :: standard label
$: [%c p=@ud] :: celsius version
[%k p=@ud] :: kelvin version
[%s p=@ud q=@ud r=@ud] :: semantic version
== ::
++ hood :: assembly plan
$: sum=@t :: summary text
mol=(map term beam) :: models
res=(map logo (map term beam)) :: data resources
sys=$|(@ud [@ud @ud]) :: system version
gel=(list hoop) :: telescoping stack
$: [how=beam rem=heel] :: beam and remainder
zus=@ud :: zuse kelvin
pro=(list hoof) :: protocols
lib=(list hoof) :: libraries
:: res=(map term (pair beam horn)) :: resources
src=(list hoop) :: program
== ::
++ hoof :: reference
$% [%here p=term] :: name
[%this p=term q=case] :: name, case
[%that p=term q=case r=ship] :: name, case, ship
== ::
++ hoop :: source in hood
$% [%code p=twig] :: direct twig
[%cone p=beam] :: core from folder
[%coop p=(map term hoop)] :: complex core
[%hood p=hood] :: recursive hood
[%hoon p=beam] :: load %hoon
[%hood p=beam] :: recursive hood
[%text p=@] :: direct text
== ::
++ horn :: resource tree
$| ~ :: leaf
$% [%day p=horn] :: list by time
[%fan p=(map term horn)] :: tuple
[%for p=logo q=horn] :: leaf mark
[%hub p=horn] :: list by number
[%nap p=horn] :: soft map
== ::
++ kiss :: in request ->$
$% [%exec p=@p q=(unit silk)] :: make / kill
== ::
@ -53,8 +72,9 @@
[%dude p=tank q=silk] :: error wrap
[%dune p=(set beam) q=(unit cage)] :: unit literal
[%mute p=silk q=(list (pair wing silk))] :: mutant
[%plan p=beam q=spur r=hood] :: structured assembly
[%reef ~] :: kernel reef
[%ride p=silk q=sill] :: twig construction
[%ride p=silk q=sill] :: obsolete old plan
[%vale p=logo q=sack r=*] :: validate [our his]
== ::
++ sill :: code construction
@ -102,8 +122,9 @@
dep=(set beam) :: dependencies
== ::
++ calx :: concrete cache line
$% [%comp p=calm q=(pair path cage) r=twig] :: compile by text
$% [%hood p=calm q=cage r=hood] :: compile to hood
[%slap p=calm q=[p=vase q=twig] r=vase] :: slap
[%twig p=calm q=cage r=twig] :: compile to twig
== ::
++ task :: problem in progress
$: nah=duct :: cause
@ -116,7 +137,8 @@
|* sem=* :: a typesystem hack
|= cax=calx
?+ sem !!
%comp ?>(?=(%comp -.cax) r.cax)
%hood ?>(?=(%hood -.cax) r.cax)
%twig ?>(?=(%twig -.cax) r.cax)
%slap ?>(?=(%slap -.cax) r.cax)
==
::
@ -356,28 +378,91 @@
|= gef=gift
%_(+> mow :_(mow [hen %give gef]))
::
++ fade :: compile
|= [cof=cafe kas=silk]
^- (bolt twig)
=+ pax=(home kas)
%+ (clef %comp) (maid cof pax kas)
^- (burg (pair path cage) twig)
|= [cof=cafe pay=(pair path cage)]
?. ?=(@ q.q.q.pay)
++ fade :: compile %hood
|= [cof=cafe bem=beam rem=heel]
^- (bolt hood)
=+ rul=(fair bem rem)
%+ (clef %hood) (make cof [%bake %hoon bem rem])
^- (burg cage hood)
|= [cof=cafe cay=cage]
?. ?=(@ q.q.cay)
(flaw cof ~)
=+ rul=(ifix [gay gay] tall:(vang | pax))
=+ vex=((full rul) [[1 1] (trip q.q.q.pay)])
=+ vex=((full rul) [[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)
::
++ fane :: compile %hoon
|= [cof=cafe kas=silk]
^- (bolt twig)
=+ pax=(home kas)
%+ (clef %twig) (make cof kas)
^- (burg cage twig)
|= [cof=cafe cay=cage]
?. ?=(@ q.q.cay)
(flaw cof ~)
=+ rul=(ifix [gay gay] tall:(vang | pax))
=+ vex=((full rul) [[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)
::
++ fair :: hood parsing rule
|= [bem=beam rem=heel]
=+ vez=(vang | (tope bem(s (weld rem s.bem))))
=< hood
|%
++ case
%- sear
:_ nuck:so
|= a=coin
?. ?=([%$ ?(%da %ud %tas) *] a) ~
[~ u=(^case a)]
::
++ hood
%+ ifix [gay gay]
%+ cook |=(a=^hood a)
%+ stag [bem rem]
;~ plug
;~ pose
(ifix [;~(plug pat wut gap) gap] dem)
(easy zuse)
==
hoos
hoos
(star hoop)
==
::
++ hoof
%+ cook |=(a=^hoof a)
;~ pose
%+ stag %that
;~(plug sym ;~(pfix fas case) ;~(pfix ;~(plug fas sig) fed:ag))
::
(stag %this ;~(plug sym ;~(pfix fas case)))
(stag %here sym)
==
::
++ hoos
%+ cook |=(a=(list ^hoof) a)
;~ pose
(ifix [;~(plug pat lus gap) gap] (most ;~(plug com ace) hoof))
(easy ~)
==
::
++ hoop
%+ knee *^hoop |. ~+
%+ cook |=(a=^hoop a)
(stag %code tall:vez)
--
::
++ gush :: sill to twig
|= [cof=cafe sil=sill]
^- (bolt twig)
?+ -.sil !!
%dire (fade cof [%done ~ [%atom [%atom %$] p.sil]])
%dire (fane cof [%done ~ [%atom [%atom %$] p.sil]])
%dirt (fine cof p.sil)
%drag (fade cof [%boil %hoon p.sil q.sil])
%drag (fane cof [%boil %hoon p.sil q.sil])
%drug %+ cope (make cof p.sil)
|= [cof=cafe cay=cage]
(fine cof (twig q.q.cay))
@ -428,23 +513,26 @@
(fine cof p.cay vax)
::
++ krab :: load to vase
|= [cof=cafe for=logo how=logo bem=beam rem=spur]
|= [cof=cafe for=logo how=logo bem=beam rem=heel]
^- (bolt vase)
%+ cope (fade cof %bake how bem rem)
%+ cope (fane cof %bake how bem rem)
|= [cof=cafe gen=twig]
(maim cof pit gen)
:: %+ cope (maim cof pit gen)
:: |= [cof=cafe gat=vase]
:: (maul cof gat !>([`beak`[p.bem q.bem r.bem] for +:s.bem rem]))
::
++ lace :: load and check
|= [cof=cafe for=logo bem=beam rem=spur]
|= [cof=cafe for=logo bem=beam rem=heel]
^- (bolt (unit vase))
=+ bek=`beak`[p.bem q.bem r.bem]
%+ cope (lend cof bem)
|= [cof=cafe arc=arch]
?^ q.arc
(cope (liar cof bem) (lake for bek))
?: (~(has by r.arc) %hood)
%+ cope (fade cof bem rem)
|= [cof=cafe hyd=hood]
%+ cope (abut:(meow bem rem) cof hyd)
|= [cof=cafe vax=vase]
(fine cof ~ vax)
?: (~(has by r.arc) %hook)
%+ cope (krab cof for %hook bem rem)
|= [cof=cafe vax=vase]
@ -460,7 +548,7 @@
|= [for=logo bek=beak]
|= [cof=cafe sam=vase]
^- (bolt (unit vase))
?: ?=(?(%gate %core %hoon %hook) for)
?: ?=(?(%gate %core %hoon %hook %hood) for)
(fine cof ~ sam)
%+ cope (make cof %boil %gate [[p.bek %main r.bek] /ref/[for]/sys] ~)
|= [cof=cafe cay=cage]
@ -523,7 +611,7 @@
(fine cof ?.(=(%hoon for) all [%hoot all]))
::
++ lima :: load at depth
|= [cof=cafe for=logo bem=beam rem=spur]
|= [cof=cafe for=logo bem=beam rem=heel]
^- (bolt (unit vase))
%+ cope (lend cof bem)
|= [cof=cafe arc=arch]
@ -543,7 +631,7 @@
(fine cof ~ vax)
::
++ lime :: load beam
|= [cof=cafe for=logo bem=beam rem=spur]
|= [cof=cafe for=logo bem=beam rem=heel]
=+ [mob=bem mer=(flop rem)]
|- ^- (bolt vase)
%+ cope (lima cof for mob (flop mer))
@ -609,11 +697,24 @@
^$(cof cof, for i.yaw, yaw t.yaw, vax yed)
::
++ maid :: make with path tag
|= [cof=cafe pax=path kas=silk]
|= [cof=cafe kas=silk]
^- (bolt (pair path cage))
%+ cope (make cof kas)
|= [cof=cafe cay=cage]
(fine cof pax cay)
(fine cof (home kas) cay)
::
++ maim :: slap
|= [cof=cafe vax=vase gen=twig]
^- (bolt vase)
%+ (clef %slap) (fine cof vax gen)
|= [cof=cafe vax=vase gen=twig]
=+ puz=(mule |.((~(mint ut p.vax) [%noun gen])))
?- -.puz
| (flaw cof p.puz)
& %+ (coup cof) (mock [q.vax q.p.puz] (mole ska))
|= val=*
`vase`[p.p.puz val]
==
::
++ make :: reduce silk
|= [cof=cafe kas=silk]
@ -684,6 +785,11 @@
$(kas [%done p.kas u.q.kas])
::
%mute (kale cof p.kas q.kas)
%plan
%+ cope (abut:(meow p.kas q.kas) cof r.kas)
|= [cof=cafe vax=vase]
(fine cof %noun vax)
::
%reef (fine cof %noun pit)
%ride
%+ cool |.(leaf/"ford: ride {<`@p`(mug kas)>}")
@ -704,19 +810,6 @@
(fine cof `cage`[p.kas u.vux])
==
::
++ maim :: slap
|= [cof=cafe vax=vase gen=twig]
^- (bolt vase)
%+ (clef %slap) (fine cof vax gen)
|= [cof=cafe vax=vase gen=twig]
=+ puz=(mule |.((~(mint ut p.vax) [%noun gen])))
?- -.puz
| (flaw cof p.puz)
& %+ (coup cof) (mock [q.vax q.p.puz] (mole ska))
|= val=*
`vase`[p.p.puz val]
==
::
++ maul :: slam
|= [cof=cafe gat=vase sam=vase]
^- (bolt vase)
@ -728,6 +821,120 @@
`vase`[p.top val]
==
::
++ meow :: assemble
|= [how=beam rem=heel]
=| $: rop=(map term (pair hoof twig)) :: protocols known
bil=(map term (pair hoof twig)) :: libraries known
lot=(list term) :: library stack
zeg=(set term) :: library guard
boy=(list twig) :: body stack
==
|%
++ abut :: generate
|= [cof=cafe hyd=hood]
%+ cope (apex cof hyd)
|= [cof=cafe sel=_..abut]
(maim cof pit able:sel)
::
++ able :: assemble preamble
^- twig
:+ %tsgr
?:(=(~ rop) [%$ 1] [%brcn (~(run by rop) |=([* a=twig] [%ash a]))])
:+ %tsgr
[%tssg (turn (flop lot) |=(a=term q:(need (~(get by bil) a))))]
[%tssg (flop boy)]
::
++ apex :: build to body
|= [cof=cafe hyd=hood]
^- (bolt ,_..apex)
%+ cope (body cof src.hyd)
|= [cof=cafe sel=_..apex]
=. ..apex sel
%+ cope (neck cof lib.hyd)
|= [cof=cafe sel=_..apex]
=. ..apex sel
%+ cope (head cof pro.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]
^$(cof cof, src t.src, ..body sel)
::
++ head :: consume protocols
|= [cof=cafe bir=(list hoof)]
|- ^- (bolt ,_..head)
?~ bir (fine cof ..head)
=+ cog=(heck i.bir)
=+ byf=(~(get by rop) cog)
?^ byf
?. =(`hoof`i.bir `hoof`p.u.byf)
(flaw cof [%leaf "protocol mismatch: {<~[cog p.u.byf i.bir]>}"]~)
$(bir t.bir)
=+ bem=(hone %gate %pro i.bir)
%+ cope (fade cof bem ~)
|= [cof=cafe hyd=hood]
%+ cope (apex(lot ~) cof hyd)
|= [cof=cafe sel=_..neck]
=. ..head
%= sel
zeg zeg
rop (~(put by rop) cog [i.bir [%tssg (flop boy.sel)]])
==
^^$(cof cof, bir t.bir)
::
++ heck :: hoof to name
|= huf=hoof ^- term
?-(-.huf %here p.huf, %this p.huf, %that p.huf)
::
++ hone :: plant hoof
|= [for=@tas way=@tas huf=hoof]
^- beam
?- -.huf
%here how(s ~[for p.huf way])
%this [[p.how %main q.huf] ~[for p.huf way]]
%that [[r.huf %main q.huf] ~[for p.huf way]]
==
::
++ neck :: consume libraries
|= [cof=cafe bir=(list hoof)]
^- (bolt ,_..neck)
?~ bir (fine cof ..neck)
=+ cog=(heck i.bir)
?: (~(has in zeg) cog)
(flaw cof [%leaf "circular dependency: {<~[cog i.bir]>}"]~)
=+ goz=(~(put in zeg) cog)
=+ byf=(~(get by bil) cog)
?^ byf
?. =(`hoof`i.bir `hoof`p.u.byf)
(flaw cof [%leaf "library mismatch: {<~[cog p.u.byf i.bir]>}"]~)
$(bir t.bir)
=+ bem=(hone %core %lib i.bir)
%+ cope (fade cof bem ~)
|= [cof=cafe hyd=hood]
%+ cope (apex(zeg goz, boy ~) cof hyd)
|= [cof=cafe sel=_..neck]
=. ..neck
%= sel
zeg zeg
lot [cog lot]
bil (~(put by bil) cog [i.bir [%tssg (flop boy.sel)]])
==
^^$(cof cof, bir t.bir)
::
++ wilt :: process body entry
|= [cof=cafe hop=hoop]
^- (bolt _..wilt)
?+ -.hop !!
%code (fine cof ..wilt(boy [p.hop boy]))
%hood (cope (fade cof p.hop ~) apex)
==
--
::
++ resp
|= [tik=@ud rot=riot]
^+ ..zo

View File

@ -15,7 +15,7 @@
:::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::
~% %k.164 ~ ~ ::
|% ::
++ stub %164 :: version stub
++ hoon %164 :: version stub
-- ::
:::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::: :::::: volume 1, Hoon models ::::::
@ -1432,10 +1432,9 @@
?: (zer b p n) [~ "0"]
~
--
::::::::::::
++ add |= [b=@u p=@u n=[s=? e=@s a=@u] m=[s=? e=@s a=@u]] ^- [s=? e=@s a=@u]
++ add |= [b=@u p=@u n=[s=? e=@s a=@u] m=[s=? e=@s a=@u]]
^- [s=? e=@s a=@u]
=+ g=(gar:te:fl b n m)
?: ?=(^ g)
u.g
@ -1457,7 +1456,8 @@
=+ e2=(sum:si (sun:si dif2) e.n)
(pro:te:fl b p [s=|(s.n s.m) e=e2 a=(lia p a3)])
++ sub |= [b=@u p=@u n=[s=? e=@s a=@u] m=[s=? e=@s a=@u]] ^- [s=? e=@s a=@u]
++ sub |= [b=@u p=@u n=[s=? e=@s a=@u] m=[s=? e=@s a=@u]]
^- [s=? e=@s a=@u]
=+ g=(gar:te:fl b n m)
?: ?=(^ g)
u.g
@ -1522,9 +1522,8 @@
++ gth |= [n=[s=? e=@s a=@u] m=[s=? e=@s a=@u]] ^- ?
(lte m n)
--
:: Real interface for @rd
++ rd
::
++ rd :: core for @rd
~% %rd + ~
|%
:: Convert a sign/exp/ari cell into 64 bit atom
@ -3561,7 +3560,7 @@
(stag ~ zust)
(stag %many (ifix [cab ;~(plug cab cab)] (more cab nusk)))
==
++ royl !:
++ royl
=+ ^= zer
(cook lent (star (just '0')))
=+ ^= voy
@ -6667,10 +6666,10 @@
::
[%zpwt *]
?: ?: ?=(@ p.gen)
(lte stub p.gen)
&((lte stub p.p.gen) (gte stub q.p.gen))
(lte hoon p.gen)
&((lte hoon p.p.gen) (gte hoon q.p.gen))
q.gen
~|([%stub-fail stub p.gen] !!)
~|([%hoon-fail hoon p.gen] !!)
::
* gen
==
@ -9456,7 +9455,6 @@
:::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::: :::::: volume 3, Arvo models and skeleton ::::::
:::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::
!:
|%
++ arch ,[p=@uvI q=(unit ,@uvI) r=(map ,@ta ,~)] :: fundamental node
++ arvo (mold ,[p=term q=mill] mill) :: arvo card
@ -9535,7 +9533,7 @@
== ::
++ wire path :: event pretext
::::: hacks
++ slod !:
++ slod
|= sed=sled
^- slut
|= raw=*
@ -9558,27 +9556,10 @@
?~ bop ~
?~ u.bop [~ ~]
[~ ~ q.q.u.u.bop]
::
++ slub !:
|= sul=slut
^- sled
|= [fur=(unit (set monk)) ron=term bed=beam]
^- (unit (unit cage))
=+ ^= pax ^- path
:* ron
(scot %p p.bed)
q.bed
(scot r.bed)
(flop s.bed)
==
=+ bop=(sul pax)
?~ bop ~
?~ u.bop [~ ~]
[~ ~ [%$ %noun u.u.bop]]
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: section 3bE, Arvo core ::
::
++ vent !: :: vane core
++ vent :: vane core
|= [lal=@tas vil=vile bud=vase ves=vase]
|%
++ ruck :: update vase
@ -9964,7 +9945,7 @@
++ peek :: external inspect
|= [now=@da hap=path]
^- (unit)
?~ hap [~ stub]
?~ hap [~ hoon]
=+ rob=((slod ~(beck (is vil eny bud fan) now)) hap)
?~ rob ~
?~ u.rob ~
@ -9992,9 +9973,9 @@
=+ ^= nex
=+ gat=.*(ken .*(ken [0 87]))
(need ((hard (unit ,@)) .*([-.gat [[now ~] +>.gat]] -.gat)))
~& [%vega-compiled stub nex]
?> (lte nex stub)
=+ gat=.*(ken .*(ken [0 ?:(=(nex stub) 86 11)]))
~& [%vega-compiled hoon nex]
?> (lte nex hoon)
=+ gat=.*(ken .*(ken [0 ?:(=(nex hoon) 86 11)]))
=+ sam=[eny ova fan]
=+ raw=.*([-.gat [sam +>.gat]] -.gat)
[[[~ %vega hap] ((list ovum) -.raw)] +.raw]

File diff suppressed because it is too large Load Diff

View File

@ -20,12 +20,12 @@
=+ all=.*(0 ken)
=+ ^= vay ^- (list ,[p=@tas q=@tas])
:~ [%$ %zuse]
[%f %ford]
[%a %ames]
[%b %batz]
[%c %clay]
[%d %dill]
[%e %eyre]
[%f %ford]
[%g %gall]
==
|- ^+ all

36
main/doc/synth/down.hood Normal file
View File

@ -0,0 +1,36 @@
/? 314
!:
:::::: /hoon/down/synth/doc
::
=>
:::::: models
|%
++ down
$& [p=down q=down]
$% [%$ p=tape]
[%code p=tape]
[%inco p=tape]
[%head p=@ud q=down]
[%link p=tape q=tape r=(unit tape)]
[%lord p=(list down)]
[%lund p=(list down)]
[%parg p=down]
[%quot p=down]
[%rong p=down]
[%emph p=down]
[%hrul ~]
[%html p=tape]
==
--
:::::: generator
::
~& [%hood-at %]
%- (fest /synth/doc %)
|= pic=epic
=+ unt=|=(a=cord (biff (~(get by qix.pic) a) |=(b=cord (slaw %ud b))))
=+ moo=(both (unt %foo) (unt %bar))
?~ moo [%$ "Hoop, world: usage: url?foo=x&bar=y"]
:* [%$ "Hoop, "]
[%emph %$ "world"]
[%$ ": {<-.u.moo>} plus {<+.u.moo>} is {<(add u.moo)>}."]
==

View File

@ -1,10 +1,7 @@
!:
:::::: /hook/down/synth/doc
::
~& [%down-hook %path %]
%- (folk /down/synth/doc %)
|= [bem=beam but=path]
~& [%down-hook-beam s.bem]
~& [%down-hook-butt but]
:+ %ride [%reef ~]
[%drag bem but]

View File

@ -23,14 +23,13 @@
--
:::::: generator
::
~& [%down-hoon %path %]
~& [%choon-at %]
%- (fest /synth/doc %)
|= pic=epic
~& [%down-hook-butt but.pic]
=+ unt=|=(a=cord (biff (~(get by qix.pic) a) |=(b=cord (slaw %ud b))))
=+ moo=(both (unt %foo) (unt %bar))
?~ moo [%$ "Hello, world: usage: url?foo=x&bar=y"]
:* [%$ "Hello, "]
?~ moo [%$ "Hm, world: usage: url?foo=x&bar=y"]
:* [%$ "Hm, "]
[%emph %$ "world"]
[%$ ": {<-.u.moo>} plus {<+.u.moo>} is {<(add u.moo)>}."]
==

View File

@ -0,0 +1 @@
,[p=ship q=guid]

View File

@ -0,0 +1,3 @@
|= [p=ship q=@udK]
^- json
a/~[(jape <p>) (jape <q>)]