Fix %eyre bugs, performance problems, etc.

This commit is contained in:
C. Guy Yarvin 2014-03-20 23:24:22 -07:00
parent 3cf9dc3ba2
commit faf34392d8
6 changed files with 282 additions and 252 deletions

View File

@ -38,10 +38,15 @@
++ serf :: servant per ship
$: pef=@t :: server prefix
wup=(map hole cyst) :: secure sessions
cah=(map cash vase) :: compilation cache
:: wez=(map duct root) :: all routes
== ::
-- ::
|%
++ colt :: prune to save
|= bol=bolo
%_(bol own (~(run by own.bol) |=(a=serf a(cah ~))))
::
++ coss :: cookie search
|= [nam=@t mah=math]
^- (unit hole)
@ -197,7 +202,7 @@
sef(pef (cat 3 gub (rsh 3 1 (scot %p u.oar))))
=+ ^= saw ^- [p=hole q=cyst]
=+ lig=(coss pef.sef q.moh)
?^ lig
?^ lig
=+ cyz=(need (~(get by wup.sef) u.lig))
[u.lig cyz(cug ~)]
=+ ses=(rsh 3 1 (scot %p (end 6 1 ney)))
@ -223,249 +228,6 @@
==
abet:work:(~(into ya [u.oar p.saw] sef q.saw) pul moh)
::
++ lace :: load and execute
|= [pax=path sam=vase]
^- gank
(musk pax (lick pax) sam)
::
++ lank :: probe/load
|= pax=path
^- (unit gank)
=+ dir=(lend pax)
?. (~(has by r.dir) %hoon) ~
=+ pox=(weld pax `path`/hoon)
[~ (much pox (lick pox))]
::
++ lend :: load directory node
|= pax=path
((hard arch) (need (sky %cy pax)))
::
++ liar :: load file as vase
|= pax=path
^- vase
=+ fil=(lick pax)
:_(fil ?^(fil [%cell %noun %noun] [%atom %$]))
::
++ lich :: simple directory
|= pax=path
^- (list ,@tas)
(turn (~(tap by r:(lend pax)) ~) |=([a=@tas b=~] a))
::
++ lick :: load file
|= pax=path
(need (sky %cx pax))
::
++ lily :: translation targets
|= [pre=path for=@tas]
^- (list ,@tas)
(lich :(weld pre `path`/tan `path`/[for]))
::
++ lion :: translation graph
|= [too=@tas pre=path fro=(list ,@tas)]
^- (unit (list ,@tas))
=| war=(set ,@tas)
=< -:(apex fro)
|%
++ apex
|= rof=(list ,@tas)
^- [(unit (list ,@tas)) _+>]
?~ rof
[~ +>]
=^ orf +> (apse i.rof)
?^(orf [orf +>.$] $(rof t.rof))
::
++ apse
|= for=@tas
^- [(unit (list ,@tas)) _+>]
?: =(for too) [[~ [too ~]] +>]
?: (~(has in war) for) [~ +>]
=. war (~(put in war) for)
=^ orf +>.$ (apex (lily pre for))
:_ +>.$
?~(orf ~ [~ [for u.orf]])
--
::
++ link :: translate
|= [too=@tas pre=path for=@tas vax=vase]
^- (unit gank)
?: =(for too) [~ %& vax]
=+ wuy=(lion too pre [for ~])
?~ wuy ~
:- ~
?> ?=(^ u.wuy)
?> =(for i.u.wuy)
|- ^- gank
?~ t.u.wuy [%& vax]
=+ mud=(lite i.t.u.wuy pre for vax)
?: ?=(| -.mud) mud
$(t.u.wuy t.t.u.wuy, for i.t.u.wuy, vax p.mud)
::
++ lino :: translate
|= [too=@tas pre=path for=@tas vax=vase]
^- gank
=+ gun=(link too pre for vax)
?^ gun u.gun
[%| [[%leaf "can't make {<too>} from {<for>}"] ~]]
::
++ lite :: step translate
|= [too=@tas pre=path for=@tas vax=vase]
^- gank
(lace :(weld pre `path`/tan `path`/[for] `path`/[too] `path`/hoon) vax)
::
++ loan :: normalize vase
|= [for=@tas pre=path vax=vase]
^- gank
=+ mof=(lank :(weld pre `path`/nor `path`/[for] `path`/hoon))
?~ mof [%& vax]
?: ?=(| -.u.mof) u.mof
=+ pud=(mule |.((~(play ut `type`p.p.u.mof) [%cnzy %$])))
?: ?=(| -.pud) pud
?: (~(nest ut `type`p.pud) | p.vax)
[%& vax]
(mule |.((slam `vase`p.u.mof vax)))
::
++ lobo :: vase to love
|= [for=logo pre=path vax=vase]
^- (each love (list tank))
=+ mud=(lino %mime pre for vax)
?: ?=(| -.mud) mud
[%& %mid (mite -.q.p.mud) (octs +.q.p.mud)]
::
++ loch :: validate vase
|= [for=@tas pre=path vax=vase]
^- gank
=+ wav=(lank :(weld pre `path`/val `path`/[for] `path`/hoon))
?~ wav [%& vax]
?: ?=(| -.u.wav) u.wav
(mule |.((slam `vase`p.u.wav vax)))
::
++ loot :: load extension tree
|= pax=path
=| [tex=path all=(list path)]
|- ^- (list path)
=+ arc=(lend pax)
=+ ryx=(~(tap by r.arc) ~)
=- ?~(q.arc orx [tex orx])
^= orx
|- ^- (list path)
?~ ryx all
%= ^$
pax (weld pax `path`[p.i.ryx ~])
tex [p.i.ryx tex]
all $(ryx t.ryx)
==
::
++ lope :: normalize/validate
|= [for=@tas pre=path vax=vase]
^- gank
=+ mud=(loan for pre vax)
?: ?=(| -.mud) mud
(loch for pre p.mud)
::
++ loth :: direct hard
|= [for=logo pre=path pax=path]
^- gank
(lope for pre (liar pax))
::
++ loti :: translated soft
|= [too=logo for=logo pre=path pax=path sam=vase]
^- gank
=+ mud=(loto for pre pax sam)
?: ?=(| -.mud) mud
(lino too pre for p.mud)
::
++ loto :: direct soft
|= [for=logo pre=path pax=path sam=vase]
=+ mud=(lace pax sam)
?: ?=(| -.mud) mud
(lope for pre p.mud)
::
++ lots :: translated hard
|= [too=logo for=logo pre=path pax=path]
^- gank
=+ mud=(lope for pre (liar pax))
?: ?=(| -.mud) mud
(lino too pre for p.mud)
::
++ loud :: synthesis search
|= [syn=? for=logo pre=path mid=path]
^- (list ,[p=path q=path r=loco])
=| suf=path
|- ^- (list ,[p=path q=path r=loco])
=+ pax=(weld pre (flop mid))
=+ lot=(loot pax)
=- ?^ tol tol
?~ mid ~
$(mid t.mid, suf [i.mid suf])
^= tol
|- ^- (list ,[p=path q=path r=loco])
?~ lot ~
=+ mor=$(lot t.lot)
?~ i.lot mor
=+ axp=(weld pax `path`(flop i.lot))
?: &(syn ?=([%hoon @ ~] i.lot))
:_(mor [mid suf | ?:(=(for i.t.i.lot) ~ [~ i.t.i.lot]) axp])
?: ?=([@ ~] i.lot)
:_(mor [mid suf & ?:(=(for i.i.lot) ~ [~ i.i.lot]) axp])
mor
::
++ loup :: weak synthesis
|= [for=logo pre=path mid=path]
^- (unit gank)
=+ syt=(weld pre `path`[%syn ~])
=+ ^= luc ^- (list ,[p=path q=path r=loco])
=+ luc=(loud | for pre mid)
?. ?=(~ luc) luc
(loud & for syt mid)
?: =(~ luc) ~
=+ ^= waz
|- ^- $: p=(list ,[p=path q=path r=path])
q=(list ,[p=path q=path r=path])
r=(list ,[p=path q=path r=[p=@tas q=path]])
s=(list ,[p=path q=path r=[p=@tas q=path]])
==
?~ luc [~ ~ ~ ~]
=+ mor=$(luc t.luc)
?- -.r.i.luc
& ?~ q.r.i.luc
[[[p.i.luc q.i.luc r.r.i.luc] p.mor] q.mor r.mor s.mor]
[p.mor q.mor [[p.i.luc q.i.luc u.q.r.i.luc r.r.i.luc] r.mor] s.mor]
| ?~ q.r.i.luc
[p.mor [[p.i.luc q.i.luc r.r.i.luc] q.mor] r.mor s.mor]
[p.mor q.mor r.mor [[p.i.luc q.i.luc u.q.r.i.luc r.r.i.luc] s.mor]]
==
:- ~
?^ p.waz :: direct hard
(loth for pre r.i.p.waz)
?^ q.waz :: direct soft
%- loto
:* for
pre
r.i.q.waz
!>([for pre p.i.q.waz q.i.q.waz])
==
?^ r.waz :: translated hard
(lots for p.r.i.r.waz pre q.r.i.r.waz)
?^ s.waz :: translated soft
%- loti
:* for
p.r.i.s.waz
pre
q.r.i.s.waz
!>([for pre p.i.s.waz q.i.s.waz])
==
!!
::
++ lude :: functional synth
|= [for=logo toe=tube]
^- (unit (each love (list tank)))
=+ [pre mid]=[`path`[p.toe q.toe r.toe ~] `path`(flop s.toe)]
=+ gun=(loup for pre mid)
?~ gun ~
:- ~
?: ?=(| -.u.gun) [%| p.u.gun]
(lobo for pre p.u.gun)
::
++ muff :: return card
|= fav=card
+>(mow :_(mow [wru hen fav]))
@ -558,6 +320,274 @@
?(%a %c %l) !!
==
::
++ lace :: load and execute
|= [pax=path sam=vase]
^- [gank _+>]
=^ hum +>.$ (lack pax)
:_ +>.$
=+ mud=(need hum)
?: ?=(| -.mud) mud
(mule |.((slam p.mud sam)))
::
++ lack :: probe/load
|= pax=path
^- [(unit gank) _+>]
=+ ans=(sky %cz pax)
?~ ans [~ +>.$]
=+ ank=((hard ankh) u.ans)
?~ q.ank [~ +>.$]
=+ huc=(~(get by cah.sef) p.u.q.ank)
?^ huc
[[~ %& u.huc] +>.$]
=+ mud=(much pax q.u.q.ank)
:- [~ mud]
?: ?=(| -.mud) +>.$
+>.$(cah.sef (~(put by cah.sef) p.u.q.ank p.mud))
::
++ lend :: load directory node
|= pax=path
^- arch
((hard arch) (need (sky %cy pax)))
::
++ liar :: load file as vase
|= pax=path
^- vase
=+ fil=(lick pax)
:_(fil ?^(fil [%cell %noun %noun] [%atom %$]))
::
++ lich :: simple directory
|= pax=path
^- (list ,@tas)
(turn (~(tap by r:(lend pax)) ~) |=([a=@tas b=~] a))
::
++ lick :: load file
|= pax=path
(need (sky %cx pax))
::
++ lily :: translation targets
|= [pre=path for=@tas]
^- (list ,@tas)
(lich :(weld pre `path`/tan `path`/[for]))
::
++ lion :: translation graph
|= [too=@tas pre=path fro=(list ,@tas)]
^- (unit (list ,@tas))
=| war=(set ,@tas)
=< -:(apex fro)
|%
++ apex
|= rof=(list ,@tas)
^- [(unit (list ,@tas)) _+>]
?~ rof
[~ +>]
=^ orf +> (apse i.rof)
?^(orf [orf +>.$] $(rof t.rof))
::
++ apse
|= for=@tas
^- [(unit (list ,@tas)) _+>]
?: =(for too) [[~ [too ~]] +>]
?: (~(has in war) for) [~ +>]
=. war (~(put in war) for)
=^ orf +>.$ (apex (lily pre for))
:_ +>.$
?~(orf ~ [~ [for u.orf]])
--
::
++ link :: translate
|= [too=@tas pre=path for=@tas vax=vase]
^- [(unit gank) _+>]
?: =(for too) [[~ %& vax] +>.$]
=+ wuy=(lion too pre [for ~])
?~ wuy [~ +>.$]
?> ?=(^ u.wuy)
?> =(for i.u.wuy)
|- ^- [(unit gank) _+>.^$]
?~ t.u.wuy [[~ %& vax] +>.^$]
=^ mud +>.^$ (lite i.t.u.wuy pre for vax)
?: ?=(| -.mud) [[~ mud] +>.^$]
$(t.u.wuy t.t.u.wuy, for i.t.u.wuy, vax p.mud)
::
++ lino :: translate
|= [too=@tas pre=path for=@tas vax=vase]
^- [gank _+>]
=^ gun +>.$ (link too pre for vax)
:_ +>.$
?^ gun u.gun
[%| [[%leaf "can't make {<too>} from {<for>}"] ~]]
::
++ lite :: step translate
|= [too=@tas pre=path for=@tas vax=vase]
^- [gank _+>]
(lace :(weld pre `path`/tan `path`/[for] `path`/[too] `path`/hoon) vax)
::
++ loan :: normalize vase
|= [for=@tas pre=path vax=vase]
^- [gank _+>]
=^ mof +>.$ (lack :(weld pre `path`/nor `path`/[for] `path`/hoon))
:_ +>.$
?~ mof [%& vax]
?: ?=(| -.u.mof) u.mof
=+ pud=(mule |.((~(play ut `type`p.p.u.mof) [%cnzy %$])))
?: ?=(| -.pud) pud
?: (~(nest ut `type`p.pud) | p.vax)
[%& vax]
(mule |.((slam `vase`p.u.mof vax)))
::
++ lobo :: vase to love
|= [for=logo pre=path vax=vase]
^- [(each love (list tank)) _+>]
=^ mud +>.$ (lino %mime pre for vax)
:_ +>.$
?: ?=(| -.mud) mud
[%& %mid (mite -.q.p.mud) (octs +.q.p.mud)]
::
++ loch :: validate vase
|= [for=@tas pre=path vax=vase]
^- [gank _+>]
=^ wav +>.$ (lack :(weld pre `path`/val `path`/[for] `path`/hoon))
:_ +>.$
?~ wav [%& vax]
?: ?=(| -.u.wav) u.wav
(mule |.((slam `vase`p.u.wav vax)))
::
++ loot :: load extension tree
|= [pax=path one=(unit logo)]
^- (list path)
=| [tex=path all=(list path)]
|- ^- (list path)
?^ one
=+ don=`path`[u.one ~]
=+ arc=(lend (weld pax don))
?~(q.arc ~ [[u.one tex] ~])
=+ arc=(lend pax)
=+ ryx=(~(tap by r.arc) ~)
=- ?~(q.arc orx [tex orx])
^= orx
|- ^- (list path)
?~ ryx all
%= ^$
one [~ %hoon]
pax (weld pax `path`[p.i.ryx ~])
tex [p.i.ryx tex]
all $(ryx t.ryx)
==
::
++ lope :: normalize/validate
|= [for=@tas pre=path vax=vase]
^- [gank _+>]
=^ mud +>.$ (loan for pre vax)
?: ?=(| -.mud) [mud +>.$]
(loch for pre p.mud)
::
++ loth :: direct hard
|= [for=logo pre=path pax=path]
^- [gank _+>]
(lope for pre (liar pax))
::
++ loti :: translated soft
|= [too=logo for=logo pre=path pax=path sam=vase]
^- [gank _+>]
=^ mud +>.$ (loto for pre pax sam)
?: ?=(| -.mud) [mud +>.$]
(lino too pre for p.mud)
::
++ loto :: direct soft
|= [for=logo pre=path pax=path sam=vase]
^- [gank _+>]
=^ mud +>.$ (lace pax sam)
?: ?=(| -.mud) [mud +>.$]
(lope for pre p.mud)
::
++ lots :: translated hard
|= [too=logo for=logo pre=path pax=path]
^- [gank _+>]
=^ mud +>.$ (lope for pre (liar pax))
?: ?=(| -.mud) [mud +>.$]
(lino too pre for p.mud)
::
++ loud :: synthesis search
|= [syn=? for=logo pre=path mid=path]
^- (list ,[p=path q=path r=loco])
=| suf=path
|- ^- (list ,[p=path q=path r=loco])
=+ pax=(weld pre (flop mid))
=+ lot=(loot pax ?:(syn ~ [~ for]))
=- ?^ tol tol
?~ mid ~
$(mid t.mid, suf [i.mid suf])
^= tol
|- ^- (list ,[p=path q=path r=loco])
?~ lot ~
=+ mor=$(lot t.lot)
?~ i.lot mor
=+ axp=(weld pax `path`(flop i.lot))
?: &(syn ?=([%hoon @ ~] i.lot))
:_(mor [mid suf | ?:(=(for i.t.i.lot) ~ [~ i.t.i.lot]) axp])
?: ?=([@ ~] i.lot)
:_(mor [mid suf & ?:(=(for i.i.lot) ~ [~ i.i.lot]) axp])
mor
::
++ loup :: weak synthesis
|= [for=logo pre=path mid=path]
^- [(unit gank) _+>]
=+ syt=(weld pre `path`[%syn ~])
=+ ^= luc ^- (list ,[p=path q=path r=loco])
=+ luc=(loud | for pre mid)
?. ?=(~ luc) luc
(loud & for syt mid)
?: =(~ luc) [~ +>.$]
=+ ^= waz
|- ^- $: p=(list ,[p=path q=path r=path])
q=(list ,[p=path q=path r=path])
r=(list ,[p=path q=path r=[p=@tas q=path]])
s=(list ,[p=path q=path r=[p=@tas q=path]])
==
?~ luc [~ ~ ~ ~]
=+ mor=$(luc t.luc)
?- -.r.i.luc
& ?~ q.r.i.luc
[[[p.i.luc q.i.luc r.r.i.luc] p.mor] q.mor r.mor s.mor]
:+ p.mor q.mor
[[[p.i.luc q.i.luc u.q.r.i.luc r.r.i.luc] r.mor] s.mor]
| ?~ q.r.i.luc
[p.mor [[p.i.luc q.i.luc r.r.i.luc] q.mor] r.mor s.mor]
:+ p.mor q.mor
[r.mor [[p.i.luc q.i.luc u.q.r.i.luc r.r.i.luc] s.mor]]
==
=^ mud +>.$
?^ p.waz :: direct hard
(loth for pre r.i.p.waz)
?^ q.waz :: direct soft
%- loto
:* for
pre
r.i.q.waz
!>([for pre p.i.q.waz q.i.q.waz])
==
?^ r.waz :: translated hard
(lots for p.r.i.r.waz pre q.r.i.r.waz)
?^ s.waz :: translated soft
%- loti
:* for
p.r.i.s.waz
pre
q.r.i.s.waz
!>([for pre p.i.s.waz q.i.s.waz])
==
!!
[[~ mud] +>.$]
::
++ lude :: functional synth
|= [for=logo toe=tube]
^- [(unit (each love (list tank))) _+>]
=+ [pre mid]=[`path`[p.toe q.toe r.toe ~] `path`(flop s.toe)]
=^ gun +>.$ (loup for pre mid)
?~ gun [~ +>.$]
?: ?=(| -.u.gun) :_(+>.$ [~ %| p.u.gun])
=^ mun +>.$ (lobo for pre p.u.gun)
[[~ mun] +>.$]
::
++ step :: step in work
|- ^+ +
=^ zib +.$
@ -578,12 +608,12 @@
%new
?- -.sam.pip
%fun
:_ +>.$
=^ syt +>.$ (lude p.sam.pip q.sam.pip)
:_ +>.$
:- ~
%= pip
pez
^- pest
=+ syt=(lude p.sam.pip q.sam.pip)
?~ syt
[%err 404 [[%leaf "{<+.sam.pip>} not found"] ~]]
?- -.u.syt
@ -679,6 +709,7 @@
^- (unit)
~
::
++ stay `vase`!>(`bolo`+>-.$)
++ stay
`vase`!>((colt `bolo`+>-.$))
++ vern [164 0]
--

View File

@ -1,4 +1,4 @@
!:
::
:: zuse (3), standard library (tang)
::
|%
@ -1150,7 +1150,7 @@
;~(plug ;~(pose apat (easy *pork)) yque)
==
++ cock :: cookie
(most sem ;~(plug toke ;~(pfix tis tosk)))
(most ;~(plug sem ace) ;~(plug toke ;~(pfix tis tosk)))
++ dlab :: 2396 domainlabel
%+ sear
|= a=@ta

Binary file not shown.

View File

@ -4,7 +4,7 @@
^- manx
:~ %html
:~ %body
~[%h3 +"{(scow %p own)} hails you from afar"]
~[%h3 +"{(scow %p own)} loves you for more than your body"]
+"Hi, neighbor!{?:(=(~ quy) "" " You ask: {<quy>}")}?"
%br
+"You addressed the {?:(p.hut.ced "" "in")}secure, "
@ -26,8 +26,7 @@
+"You have no authenticated identities."
+"Authenticated identities: {<aut.ced>}."
%br
+"This synthesis was computed within {<`path`pos>}. "
+"It was found as {<for>}, under {<suf>}"
+"This {<for>} page was produced in {<`path`pos>}, under {<suf>}"
+"{?:(=(~ but) "." ", in {<but>}.")}"
==
==

Binary file not shown.

Binary file not shown.