Merge branch 'master' into mar-umd

This commit is contained in:
Anton Dyudin 2017-11-22 12:20:35 -08:00
commit 2efd948bd9
11 changed files with 758 additions and 744 deletions

View File

@ -21,7 +21,7 @@
$: say/sole-share :: command-line state $: say/sole-share :: command-line state
dir/beam :: active path dir/beam :: active path
poy/(unit dojo-project) :: working poy/(unit dojo-project) :: working
{lib/(list hoof:ford) sur/(list hoof:ford)} :: lib+sur {lib/(list hoof:ford) sur/(list hoof:ford)} :: lib+sur
var/(map term cage) :: variable state var/(map term cage) :: variable state
old/(set term) :: used TLVs old/(set term) :: used TLVs
buf/tape :: multiline buffer buf/tape :: multiline buffer
@ -41,7 +41,7 @@
r/purl:eyre r/purl:eyre
== ==
{$poke p/goal} :: poke app {$poke p/goal} :: poke app
{$show p/?($0 $1 $2 $3)} :: print val+span+twig {$show p/?($0 $1 $2 $3)} :: print val+type+hoon
{$verb p/term} :: store variable {$verb p/term} :: store variable
{$help p/(list term)} :: look up help {$help p/(list term)} :: look up help
== :: == ::
@ -53,10 +53,10 @@
$% {$ur p/(unit knot) q/purl:eyre} :: http GET request $% {$ur p/(unit knot) q/purl:eyre} :: http GET request
{$ge p/dojo-model} :: generator {$ge p/dojo-model} :: generator
{$dv p/path} :: core from source {$dv p/path} :: core from source
{$ex p/twig} :: hoon expression {$ex p/hoon} :: hoon expression
{$sa p/mark} :: example mark value {$sa p/mark} :: example mark value
{$as p/mark q/dojo-source} :: simple transmute {$as p/mark q/dojo-source} :: simple transmute
{$do p/twig q/dojo-source} :: gate apply {$do p/hoon q/dojo-source} :: gate apply
{$tu p/(list dojo-source)} :: tuple {$tu p/(list dojo-source)} :: tuple
== :: == ::
++ dojo-model :: data construction ++ dojo-model :: data construction
@ -201,22 +201,22 @@
++ dp-hooves :: hoof list ++ dp-hooves :: hoof list
:(stag 0 %ex %clsg (most ;~(plug com gaw) dp-hoof)) :(stag 0 %ex %clsg (most ;~(plug com gaw) dp-hoof))
:: ::
++ dp-hoof :: ++ford-hoof twig ++ dp-hoof :: ++ford-hoof hoon
;~ plug ;~ plug
:(stag %sand %f ;~(pose (cold %| tar) (easy %&))) :(stag %sand %f ;~(pose (cold %| tar) (easy %&)))
:(stag %sand %tas sym) :(stag %sand %tas sym)
%- dp-twig-punt %- dp-hoon-punt
;~ (glue fas) ;~ (glue fas)
;~(pfix fas (sear dp-case-twig nuck:so)) ;~(pfix fas (sear dp-case-hoon nuck:so))
(stag %sand ;~(plug (cold %p sig) fed:ag)) (stag %sand ;~(plug (cold %p sig) fed:ag))
== ==
== ==
:: ::
++ dp-twig-punt :: twig of unit ++ dp-hoon-punt :: hoon of unit
|*(a/rule ;~(pose (stag [%bust %null] a) (easy [%bust %null]))) |*(a/rule ;~(pose (stag [%bust %null] a) (easy [%bust %null])))
:: ::
++ dp-case-twig ++ dp-case-hoon
|= a/coin ^- (unit twig) |= a/coin ^- (unit hoon)
?. ?=({$~ case} a) ~ ?. ?=({$~ case} a) ~
%+ some %+ some
[%rock %tas p.p.a] [%rock %tas p.p.a]
@ -229,7 +229,7 @@
;~(plug (cold %ur lus) dp-iden-url) ;~(plug (cold %ur lus) dp-iden-url)
;~(plug (cold %ge lus) dp-model) ;~(plug (cold %ge lus) dp-model)
;~(plug (cold %as pam) sym ;~(pfix ace dp-source)) ;~(plug (cold %as pam) sym ;~(pfix ace dp-source))
;~(plug (cold %do cab) dp-twig ;~(pfix ace dp-source)) ;~(plug (cold %do cab) dp-hoon ;~(pfix ace dp-source))
dp-value dp-value
== ==
:: ::
@ -256,8 +256,8 @@
++ dp-model ;~(plug dp-server dp-config) :: ++dojo-model ++ dp-model ;~(plug dp-server dp-config) :: ++dojo-model
++ dp-path (en-beam he-beam) :: ++path ++ dp-path (en-beam he-beam) :: ++path
++ dp-server (stag 0 (most fas sym)) :: ++dojo-server ++ dp-server (stag 0 (most fas sym)) :: ++dojo-server
++ dp-twig tall:(vang | dp-path) :: ++twig ++ dp-hoon tall:(vang | dp-path) :: ++hoon
++ dp-rood :: 'dir' twig ++ dp-rood :: 'dir' hoon
=> (vang | (en-beam dir)) => (vang | (en-beam dir))
;~ pose ;~ pose
rood rood
@ -271,9 +271,9 @@
== ==
++ dp-value :: ++dojo-source ++ dp-value :: ++dojo-source
;~ pose ;~ pose
(stag %ex dp-twig)
(stag %tu (ifix [sel ser] (most ace dp-source)))
(stag %sa ;~(pfix tar pam sym)) (stag %sa ;~(pfix tar pam sym))
(stag %ex dp-hoon)
(stag %tu (ifix [sel ser] (most ace dp-source)))
== ==
:: ::
++ dp-config :: ++dojo-config ++ dp-config :: ++dojo-config
@ -536,7 +536,7 @@
?- p.p.mad ?- p.p.mad
$0 ~ $0 ~
$1 [[%rose [~ " " ~] (skol p.q.cay) ~] (mar)] $1 [[%rose [~ " " ~] (skol p.q.cay) ~] (mar)]
$2 [[%rose [~ " " ~] (dy-show-span-noun p.q.cay) ~] (mar)] $2 [[%rose [~ " " ~] (dy-show-type-noun p.q.cay) ~] (mar)]
== ==
== ==
:: ::
@ -558,17 +558,17 @@
== ==
:: ::
++ dy-inspect ++ dy-inspect
|= {topic/(list term) sut/span} |= {topic/(list term) sut/type}
%+ dy-rash %tan %+ dy-rash %tan
|^ ^- tang |^ ^- tang
=+ to-display=(find-item-in-span (flop topic) sut) =+ to-display=(find-item-in-type (flop topic) sut)
?~ to-display ?~ to-display
[%leaf "Could not find help"]~ [%leaf "Could not find help"]~
(flop (print-item u.to-display)) (flop (print-item u.to-display))
:> # %models :> # %models
+| +|
:: ::
:> an overview of all named things in the span. :> an overview of all named things in the type.
:> :>
:> each item in the overview list is either a documentation for a sublist :> each item in the overview list is either a documentation for a sublist
:> or an association between a term and documentation for it. :> or an association between a term and documentation for it.
@ -582,15 +582,15 @@
{$item name/tape doc/what} {$item name/tape doc/what}
== ==
:: ::
:> the part of a {span} being inspected. :> the part of a {type} being inspected.
++ item ++ item
$% :> overview of span $% :> overview of type
{$view items/overview} {$view items/overview}
:> inspecting a full core. :> inspecting a full core.
$: $core $: $core
name/tape name/tape
docs/what docs/what
sut/span sut/type
con/coil con/coil
children/(unit item) children/(unit item)
== ==
@ -599,13 +599,13 @@
name/tape name/tape
docs/what docs/what
f/foot f/foot
sut/span sut/type
== ==
:> inspecting a single chapter on a core. :> inspecting a single chapter on a core.
$: $chapter $: $chapter
name/tape name/tape
docs/what docs/what
sut/span sut/type
con/coil con/coil
chapter-id/@ chapter-id/@
== ==
@ -623,11 +623,11 @@
+| +|
:> returns the item to print while searching through {topic}. :> returns the item to print while searching through {topic}.
:> :>
:> this gate is called recursively to find the path {topic} in the span :> this gate is called recursively to find the path {topic} in the type
:> {sut}. once it finds the correct part of the span, it switches to :> {sut}. once it finds the correct part of the type, it switches to
:> ++build-inspectable-recursively to describe that part of the span. :> ++build-inspectable-recursively to describe that part of the type.
++ find-item-in-span ++ find-item-in-type
|= {topics/(list term) sut/span} |= {topics/(list term) sut/type}
^- (unit item) ^- (unit item)
?~ topics ?~ topics
:: we have no more search path. return the rest as an overview :: we have no more search path. return the rest as an overview
@ -682,31 +682,31 @@
~ ~
?~ t.topics ?~ t.topics
`[%face (trip q.p.sut) p.p.sut (build-inspectable-recursively q.sut)] `[%face (trip q.p.sut) p.p.sut (build-inspectable-recursively q.sut)]
(find-item-in-span t.topics q.sut) (find-item-in-type t.topics q.sut)
:: ::
{$fork *} {$fork *}
=/ spans/(list span) ~(tap in p.sut) =/ types/(list type) ~(tap in p.sut)
|- |-
?~ spans ?~ types
~ ~
=+ res=(find-item-in-span topics i.spans) =+ res=(find-item-in-type topics i.types)
?~ res ?~ res
$(spans t.spans) $(types t.types)
res res
:: ::
{$help *} {$help *}
:: while we found a raw help, it's associated on the wrong side of a :: while we found a raw help, it's associated on the wrong side of a
:: set of topics. Walk through it instead of showing it. :: set of topics. Walk through it instead of showing it.
(find-item-in-span t.topics q.sut) (find-item-in-type t.topics q.sut)
:: ::
{$hold *} $(sut (~(play ut p.sut) q.sut)) {$hold *} $(sut (~(play ut p.sut) q.sut))
$noun ~ $noun ~
$void ~ $void ~
== ==
:: ::
:> changes a {span} into an {item}. :> changes a {type} into an {item}.
++ build-inspectable-recursively ++ build-inspectable-recursively
|= sut/span |= sut/type
^- (unit item) ^- (unit item)
?- sut ?- sut
:: ::
@ -730,13 +730,13 @@
`[%face (trip q.p.sut) p.p.sut compiled-against] `[%face (trip q.p.sut) p.p.sut compiled-against]
:: ::
{$fork *} {$fork *}
=* spans ~(tap in p.sut) =* types ~(tap in p.sut)
=* items (turn spans build-inspectable-recursively) =* items (turn types build-inspectable-recursively)
(roll items join-items) (roll items join-items)
:: ::
{$help *} {$help *}
=* rest-span (build-inspectable-recursively q.sut) =* rest-type (build-inspectable-recursively q.sut)
`[%view [%header p.sut (item-as-overview rest-span)]~] `[%view [%header p.sut (item-as-overview rest-type)]~]
:: ::
{$hold *} $(sut (~(play ut p.sut) q.sut)) {$hold *} $(sut (~(play ut p.sut) q.sut))
$noun ~ $noun ~
@ -782,7 +782,7 @@
:: ::
:> translate the internals of a core's {tomb} into an {overview}. :> translate the internals of a core's {tomb} into an {overview}.
++ arms-as-overview ++ arms-as-overview
|= {a/(map term (pair what foot)) sut/span} |= {a/(map term (pair what foot)) sut/type}
^- overview ^- overview
%+ turn ~(tap by a) %+ turn ~(tap by a)
|= (pair term (pair what foot)) |= (pair term (pair what foot))
@ -807,7 +807,7 @@
:> returns an overview for arms which are part of unnamed chapters, :> returns an overview for arms which are part of unnamed chapters,
:> and an overview of the named chapters. :> and an overview of the named chapters.
++ arm-and-chapter-overviews ++ arm-and-chapter-overviews
|= {sut/span con/coil core-name/tape} |= {sut/type con/coil core-name/tape}
^- {overview overview} ^- {overview overview}
=| arm-docs/overview :< documented arms =| arm-docs/overview :< documented arms
=| chapter-docs/overview :< documented chapters =| chapter-docs/overview :< documented chapters
@ -830,7 +830,7 @@
:: ::
:> returns an overview of the arms in a specific chapter. :> returns an overview of the arms in a specific chapter.
++ arms-in-chapter ++ arms-in-chapter
|= {sut/span con/coil chapter-id/@} |= {sut/type con/coil chapter-id/@}
^- overview ^- overview
=* chapter-tomb (~(got by q.s.con) chapter-id) =* chapter-tomb (~(got by q.s.con) chapter-id)
(sort-overview (arms-as-overview q.chapter-tomb sut)) (sort-overview (arms-as-overview q.chapter-tomb sut))
@ -850,8 +850,8 @@
{$item *} name.ovr {$item *} name.ovr
== ==
:: ::
++ what-from-span ++ what-from-type
|= sut/span |= sut/type
?+ sut ~ ?+ sut ~
{$core *} q.r.q.sut {$core *} q.r.q.sut
{$help *} p.sut {$help *} p.sut
@ -876,7 +876,7 @@
:: ::
:> renders the documentation for a full core. :> renders the documentation for a full core.
++ print-core ++ print-core
|= {core-name/tape docs/what sut/span con/coil uit/(unit item)} |= {core-name/tape docs/what sut/type con/coil uit/(unit item)}
^- tang ^- tang
=+ [arms chapters]=(arm-and-chapter-overviews sut con core-name) =+ [arms chapters]=(arm-and-chapter-overviews sut con core-name)
;: weld ;: weld
@ -902,19 +902,19 @@
:> figures out which {what}s to use. :> figures out which {what}s to use.
:> :>
:> there are three places with a relevant {what}: the {arm-doc} on the :> there are three places with a relevant {what}: the {arm-doc} on the
:> arm, the {what} in the computed span of the foot, and the {what} on :> arm, the {what} in the computed type of the foot, and the {what} on
:> the product of the default arm when the computed span is a core. :> the product of the default arm when the computed type is a core.
++ select-arm-docs ++ select-arm-docs
|= {arm-doc/what f/foot sut/span} |= {arm-doc/what f/foot sut/type}
:> the computed arm documentation and the product documentation. :> the computed arm documentation and the product documentation.
^- {what what} ^- {what what}
=+ foot-span=(~(play ut sut) p.f) =+ foot-type=(~(play ut sut) p.f)
=+ raw-product=(what-from-span foot-span) =+ raw-product=(what-from-type foot-type)
=/ product-product/what =/ product-product/what
?. ?=({$core *} foot-span) ?. ?=({$core *} foot-type)
~ ~
=* inner-span (~(play ut foot-span) [%limb %$]) =* inner-type (~(play ut foot-type) [%limb %$])
(what-from-span inner-span) (what-from-type inner-type)
:- :-
?~ arm-doc ?~ arm-doc
raw-product raw-product
@ -925,7 +925,7 @@
:: ::
:> renders the documentation for a single arm in a core. :> renders the documentation for a single arm in a core.
++ print-arm ++ print-arm
|= {arm-name/tape arm-doc/what f/foot sut/span} |= {arm-name/tape arm-doc/what f/foot sut/type}
:: todo: need to get the sample here. also hoist this to the general :: todo: need to get the sample here. also hoist this to the general
:: core printing machinery, too. :: core printing machinery, too.
=+ [main-doc product-doc]=(select-arm-docs arm-doc f sut) =+ [main-doc product-doc]=(select-arm-docs arm-doc f sut)
@ -939,7 +939,7 @@
:: ::
:> renders the documentation for a chapter in a core. :> renders the documentation for a chapter in a core.
++ print-chapter ++ print-chapter
|= {name/tape doc/what sut/span con/coil chapter-id/@} |= {name/tape doc/what sut/type con/coil chapter-id/@}
;: weld ;: weld
(print-header name doc) (print-header name doc)
:: ::
@ -1114,15 +1114,15 @@
$(ret l, c t.c) $(ret l, c t.c)
$(c t.c) $(c t.c)
:: ::
++ dy-show-span-noun ++ dy-show-type-noun
|= a/span ^- tank |= a/type ^- tank
=- >[-]< =- >[-]<
|- ^- $? $% {$atom @tas (unit @)} |- ^- $? $% {$atom @tas (unit @)}
{$cell _$ _$} {$cell _$ _$}
{$cube * _$} {$cube * _$}
{$face {what $@(term tune)} _$} {$face {what $@(term tune)} _$}
{$fork (set _$)} {$fork (set _$)}
{$hold _$ twig} {$hold _$ hoon}
== ==
wain :: "<|core|>" wain :: "<|core|>"
$?($noun $void) $?($noun $void)
@ -1130,20 +1130,20 @@
?+ a a ?+ a a
{?($cube $face) ^} a(q $(a q.a)) {?($cube $face) ^} a(q $(a q.a))
{$cell ^} a(p $(a p.a), q $(a q.a)) {$cell ^} a(p $(a p.a), q $(a q.a))
{$fork *} a(p (silt (turn ~(tap in p.a) |=(b/span ^$(a b))))) {$fork *} a(p (silt (turn ~(tap in p.a) |=(b/type ^$(a b)))))
{$help *} !! {$help *} !!
{$core ^} `wain`/core {$core ^} `wain`/core
{$hold *} a(p $(a p.a)) {$hold *} a(p $(a p.a))
== ==
:: ::
++ dy-shown ++ dy-shown
$? twig $? hoon
$^ {dy-shown dy-shown} $^ {dy-shown dy-shown}
$% {$ur (unit knot) purl:eyre} $% {$ur (unit knot) purl:eyre}
{$dv path} {$dv path}
{$sa mark} {$sa mark}
{$as mark dy-shown} {$as mark dy-shown}
{$do twig dy-shown} {$do hoon dy-shown}
{$ge path (list dy-shown) (map term (unit dy-shown))} {$ge path (list dy-shown) (map term (unit dy-shown))}
== ==
== ==
@ -1156,7 +1156,7 @@
?- -.bil ?- -.bil
$?($ur $dv $sa) bil $?($ur $dv $sa) bil
$ex ?. ?=({$cltr *} p.bil) p.bil $ex ?. ?=({$cltr *} p.bil) p.bil
|- ^- twig |- ^- hoon
?~ p.p.bil !! ?~ p.p.bil !!
?~ t.p.p.bil i.p.p.bil ?~ t.p.p.bil i.p.p.bil
[i.p.p.bil $(p.p.bil t.p.p.bil)] [i.p.p.bil $(p.p.bil t.p.p.bil)]
@ -1180,7 +1180,7 @@
(dy-diff %mor [%det lic] [%bel ~] ~) (dy-diff %mor [%det lic] [%bel ~] ~)
(dy-slam(per `dat) /edit u.pro !>((tufa buf.say))) (dy-slam(per `dat) /edit u.pro !>((tufa buf.say)))
:: ::
++ dy-span :: sole action ++ dy-type :: sole action
|= act/sole-action |= act/sole-action
?- -.act ?- -.act
$det (dy-edit +.act) $det (dy-edit +.act)
@ -1230,7 +1230,7 @@
%- dy-silk-vase %- dy-silk-vase
?~(b !>([~ ~]) (dy-vase p.u.b)) ?~(b !>([~ ~]) (dy-vase p.u.b))
:: ::
++ dy-twig-head :: dynamic state ++ dy-hoon-head :: dynamic state
:: todo: how do i separate the toplevel 'dojo state' comment? :: todo: how do i separate the toplevel 'dojo state' comment?
:> dojo state :> dojo state
:> :>
@ -1286,7 +1286,7 @@
(dy-meal (slot 7 vax)) (dy-meal (slot 7 vax))
:: ::
$| $|
=> .(vax (slap vax !,(*twig ?>(?=($| -) .)))) :: XX working spec #72 => .(vax (slap vax !,(*hoon ?>(?=($| -) .)))) :: XX working spec #72
=+ typ={$| (unit knot) hiss:eyre *} =+ typ={$| (unit knot) hiss:eyre *}
=+ [~ usr hiz ~]=((dy-cast typ !>(*typ)) vax) =+ [~ usr hiz ~]=((dy-cast typ !>(*typ)) vax)
=. ..dy (he-diff %tan leaf+"< {(en-purl:html p.hiz)}" ~) =. ..dy (he-diff %tan leaf+"< {(en-purl:html p.hiz)}" ~)
@ -1333,14 +1333,14 @@
(slop hed $(p.bil t.p.bil)) (slop hed $(p.bil t.p.bil))
== ==
:: ::
++ dy-twig-mark :: XX architect ++ dy-hoon-mark :: XX architect
=+ ^= ope =+ ^= ope
|= gen/twig ^- twig |= gen/hoon ^- hoon
?: ?=(?($sggl $sggr) -.gen) ?: ?=(?($sggl $sggr) -.gen)
$(gen q.gen) $(gen q.gen)
=+ ~(open ap gen) =+ ~(open ap gen)
?.(=(gen -) $(gen -) gen) ?.(=(gen -) $(gen -) gen)
|= gen/twig ^- (unit mark) |= gen/hoon ^- (unit mark)
=. gen (ope gen) =. gen (ope gen)
?: ?=({$cnts {@ $~} $~} gen) ?: ?=({$cnts {@ $~} $~} gen)
(bind (~(get by var) i.p.gen) head) (bind (~(get by var) i.p.gen) head)
@ -1361,12 +1361,12 @@
== ==
:: ::
++ dy-mare :: build expression ++ dy-mare :: build expression
|= gen/twig |= gen/hoon
^- silk:ford ^- silk:ford
=+ too=(dy-twig-mark gen) =+ too=(dy-hoon-mark gen)
=- ?~(too - [%cast u.too -]) =- ?~(too - [%cast u.too -])
:+ %ride gen :+ %ride gen
:- [%$ dy-twig-head] :- [%$ dy-hoon-head]
[%plan he-beam blob+** [zuse sur lib ~ ~]] [%plan he-beam blob+** [zuse sur lib ~ ~]]
:: ::
++ dy-step :: advance project ++ dy-step :: advance project
@ -1574,11 +1574,11 @@
== ==
== ==
:: ::
++ he-span :: apply input ++ he-type :: apply input
|= act/sole-action |= act/sole-action
^+ +> ^+ +>
?^ poy ?^ poy
he-pine:(~(dy-span dy u.poy) act) he-pine:(~(dy-type dy u.poy) act)
?- -.act ?- -.act
$det (he-stir +.act) $det (he-stir +.act)
$ret (he-done (tufa buf.say)) $ret (he-done (tufa buf.say))
@ -1704,7 +1704,7 @@
|= {moz/(list move) ses/session} |= {moz/(list move) ses/session}
=> ~(. he moz ses) => ~(. he moz ses)
=- [wrap=- +] =- [wrap=- +]
|* he-arm/_he-span |* he-arm/_he-type
|= _+<.he-arm |= _+<.he-arm
^- (quip move _..he) ^- (quip move _..he)
he-abet:(he-arm +<) he-abet:(he-arm +<)
@ -1721,7 +1721,7 @@
:: ::
++ poke-sole-action ++ poke-sole-action
|= act/sole-action ~| poke+act %. act |= act/sole-action ~| poke+act %. act
(wrap he-span):arm (wrap he-type):arm
:: ::
++ poke-lens-command ++ poke-lens-command
|= com/command:lens ~| poke-lens+com %. com |= com/command:lens ~| poke-lens+com %. com

View File

@ -110,7 +110,7 @@
{$join p/where} :: {$join p/where} ::
{$leave p/where} :: {$leave p/where} ::
{$say p/(list speech)} :: {$say p/(list speech)} ::
{$eval p/cord q/twig} :: {$eval p/cord q/hoon} ::
{$invite p/knot q/(list partner)} :: whitelist add {$invite p/knot q/(list partner)} :: whitelist add
{$banish p/knot q/(list partner)} :: blacklist add {$banish p/knot q/(list partner)} :: blacklist add
{$block p/knot q/(list partner)} :: blacklist add {$block p/knot q/(list partner)} :: blacklist add
@ -203,7 +203,7 @@
++ sh-scad :: command parser ++ sh-scad :: command parser
=< work =< work
|% |%
++ expr :: [cord twig] ++ expr :: [cord hoon]
|= tub/nail %. tub |= tub/nail %. tub
%+ stag (crip q.tub) %+ stag (crip q.tub)
wide:(vang & [&1:% &2:% (scot %da now.hid) |3:%]) wide:(vang & [&1:% &2:% (scot %da now.hid) |3:%])
@ -968,7 +968,7 @@
|= cod/command |= cod/command
%_(+> coz [cod coz]) %_(+> coz [cod coz])
:: ::
++ sh-twig-head ^- vase :: eval data ++ sh-hoon-head ^- vase :: eval data
!>(`{our/@p now/@da eny/@uvI}`[our.hid now.hid (shas %eny eny.hid)]) !>(`{our/@p now/@da eny/@uvI}`[our.hid now.hid (shas %eny eny.hid)])
:: ::
++ sh-work :: do work ++ sh-work :: do work
@ -1211,8 +1211,8 @@
..sh-work ..sh-work
:: ::
++ eval :: run ++ eval :: run
|= {txt/cord exe/twig} |= {txt/cord exe/hoon}
=> |.([(sell (slap (slop sh-twig-head seed) exe))]~) => |.([(sell (slap (slop sh-hoon-head seed) exe))]~)
=+ tan=p:(mule .) =+ tan=p:(mule .)
(say [%fat tank+tan exp+txt] ~) (say [%fat tank+tan exp+txt] ~)
:: ::

View File

@ -78,9 +78,8 @@
:- %say :- %say
|= * |= *
=< [%noun (say-hello %world)] =< [%noun (say-hello %world)]
=> :> # => :> # %arch
:> # %arch :>
:> #
:> structures for our imaginary hello, world generator. :> structures for our imaginary hello, world generator.
:> :>
:> nothing forces us to put structures in a separate core. :> nothing forces us to put structures in a separate core.
@ -95,24 +94,25 @@
:> in a separate chapter (separated by {+|}). :> in a separate chapter (separated by {+|}).
|% |%
:> # %model :> # %model
:>
:> models (molds) are functions that normalize nouns. :> models (molds) are functions that normalize nouns.
:> :>
:> arms producing molds are introduced with {+=}. for molds, :> arms producing molds are introduced with {+=}. for molds,
:> we decorate the mold rather than the arm. the compiler :> we decorate the mold rather than the arm. the compiler
:> will copy the mold decoration onto the arm. :> will copy the mold decoration onto the arm.
+| +|
+= spot {p/@ q/@} :< a coordinate += spot [p=@ q=@] :< a coordinate
+= tops :> also a coordinate += tops :> also a coordinate
{p/@ q/@} [p=@ q=@]
+= goof :> a simple tuple += goof :> a simple tuple
$: foo/@ :< something mysterious $: foo=@ :< something mysterious
bar/@ :< go here for drink bar=@ :< go here for drink
moo/(binary-tree juice) :< cows do this moo=(binary-tree juice) :< cows do this
== ==
+= juice :> fruity beverage += juice :> fruity beverage
$% {$plum p/@} :< fresh prune $% [%plum p=@] :< fresh prune
{$pear p/@ q/@} :< good for cider [%pear p=@ q=@] :< good for cider
{$acai p/@} :< aztec superfood [%acai p=@] :< aztec superfood
== ==
:> # :> #
:> # %pattern :> # %pattern
@ -124,8 +124,8 @@
:> or "higher-kinded types". :> or "higher-kinded types".
+| +|
++ binary-tree :< tree pattern ++ binary-tree :< tree pattern
|* a/$-(* *) |* a=$-(* *)
$@($~ {n/a l/(binary-tree a) r/(binary-tree a)}) $@($~ [n=a l=(binary-tree a) r=(binary-tree a)])
:> # :> #
:> # %constant :> # %constant
:> # :> #
@ -134,8 +134,9 @@
++ answer :< answer to everything ++ answer :< answer to everything
42 42
-- --
:> #
:> # %work :> # %work
:> :> #
:> engines for our imaginary hello, world app. :> engines for our imaginary hello, world app.
:> :>
:> note that ++say-goodbye is the correct notation, even though :> note that ++say-goodbye is the correct notation, even though
@ -147,7 +148,7 @@
:> :>
|= :> txt: friend to say hi to |= :> txt: friend to say hi to
:> :>
txt/term txt=term
^- tape ^- tape
"hello, {(rip 3 txt)}" "hello, {(rip 3 txt)}"
:> ++say-goodbye: say a really proper goodbye :> ++say-goodbye: say a really proper goodbye
@ -164,8 +165,8 @@
:> :>
|= :> txt: departing friend |= :> txt: departing friend
:> num: number of friends :> num: number of friends
$: txt/term $: txt=term
num/@ num=@
== ==
^- tape ^- tape
:> foo: four :> foo: four
@ -176,6 +177,6 @@
"goodbye and {(scot %ud moo)}, {(rip 3 txt)}" "goodbye and {(scot %ud moo)}, {(rip 3 txt)}"
:> :> ++say-minimum :> :> ++say-minimum
++ say-minimum :> minimal decoration ++ say-minimum :> minimal decoration
|= txt/term |= txt=term
"nothing to say to {(rip 3 txt)}" "nothing to say to {(rip 3 txt)}"
-- --

View File

@ -350,14 +350,11 @@
++ start-sync ++ start-sync
|= reset/? |= reset/?
=. +>.$ (spam (render "activated sync" sud her syd) ~) =. +>.$ (spam (render "activated sync" sud her syd) ~)
=. +>.$ %- blab
%- blab :~ :* ost %warp
:~ :* ost %warp [%kiln %sync syd (scot %p her) sud ?:(reset /reset /)]
[%kiln %sync syd (scot %p her) sud ?:(reset /reset /)] [our her] sud ~ %sing %w [%da now] /
[our her] sud ~ %sing %w [%da now] / == ==
== ==
?. =(%home syd) +>.$ :: XX less hard-coding
(blab [ost %mont /mount syd [our syd da+now] /]~)
:: ::
++ writ ++ writ
|= {reset/? rot/riot} |= {reset/? rot/riot}

View File

@ -20,8 +20,8 @@
++ yu yu:chrono:userlib :: UTC format constants ++ yu yu:chrono:userlib :: UTC format constants
++ moon en-mite:mimes:html :: mime type to text ++ moon en-mite:mimes:html :: mime type to text
++ perk perk.is :: parse cube fork ++ perk perk.is :: parse cube fork
++ poja en-json:html :: parse JSON ++ poja de-json:html :: parse JSON
++ pojo de-json:html :: print json ++ pojo en-json:html :: print json
++ poxo en-xml:html :: node to tape ++ poxo en-xml:html :: node to tape
++ poxa de-xml:html :: xml parser ++ poxa de-xml:html :: xml parser
++ jo dejs-soft:format :: json reparser ++ jo dejs-soft:format :: json reparser
@ -284,4 +284,7 @@
++ kiss-arvo task-arvo :: in request ->$ ++ kiss-arvo task-arvo :: in request ->$
++ note-arvo note-arvo :: out request $-> ++ note-arvo note-arvo :: out request $->
++ sign-arvo sign-arvo :: in result $<- ++ sign-arvo sign-arvo :: in result $<-
++ nule nule:unix:userlib :: lines to unix cord
++ lore to-wain:format :: atom to line list
++ role of-wain:format :: line list to atom
-- --

View File

@ -7,7 +7,7 @@
|_ mud/@t |_ mud/@t
++ grow ++ grow
|% |%
++ mime [/text/x-markdown (as-octs:mimes:html mud)] ++ mime [/text/x-unmark (as-octs:mimes:html mud)]
++ txt ++ txt
(to-wain:format mud) (to-wain:format mud)
++ elem ++ elem

View File

@ -31,7 +31,7 @@
^- marl ^- marl
;= ;title: Urbit - A personal server ;= ;title: Urbit - A personal server
;meta(name "viewport", content "width=device-width, initial-scale=1"); ;meta(name "viewport", content "width=device-width, initial-scale=1");
:: ;link(type "text/css", rel "stylesheet", href "//cdnjs.cloudflare.com/ajax/libs/codemirror/4.3.0/codemirror.min.css"); ;link(type "text/css", rel "stylesheet", href "//cdnjs.cloudflare.com/ajax/libs/codemirror/4.3.0/codemirror.min.css");
;* ?. nopack.dbg ;* ?. nopack.dbg
:_ ~ :_ ~
;link(type "text/css", rel "stylesheet", href "/===/web/pack/css/codemirror-fonts-bootstrap-tree.css"); ;link(type "text/css", rel "stylesheet", href "/===/web/pack/css/codemirror-fonts-bootstrap-tree.css");
@ -49,9 +49,9 @@
;script(type "text/javascript", src "{(cdnjs "react/0.14.6/react-dom")}"); ;script(type "text/javascript", src "{(cdnjs "react/0.14.6/react-dom")}");
;script(type "text/javascript", src "{(cdnjs "flux/2.1.1/Flux")}"); ;script(type "text/javascript", src "{(cdnjs "flux/2.1.1/Flux")}");
;* (turn ~(tap by extras) |=({@ a/@t} ;script(type "text/javascript"):"{(trip a)}")) ;* (turn ~(tap by extras) |=({@ a/@t} ;script(type "text/javascript"):"{(trip a)}"))
:: ;script(type "text/javascript", src "//cdnjs.cloudflare.com/ajax/libs/codemirror/4.3.0/codemirror.js"); ;script(type "text/javascript", src "//cdnjs.cloudflare.com/ajax/libs/codemirror/4.3.0/codemirror.js");
:: ;script(type "text/javascript", src "//cdnjs.cloudflare.com/ajax/libs/". :: ;script(type "text/javascript", src "//cdnjs.cloudflare.com/ajax/libs/".
:: "codemirror/4.3.0/mode/markdown/markdown.min.js"); :: "codemirror/4.3.0/mode/markdown/markdown.min.js");
;* ?. nopack.dbg ;* ?. nopack.dbg
:_ ~ :_ ~
;script(type "text/javascript", src "{?.(aut "" "/~~/~/at")}". ;script(type "text/javascript", src "{?.(aut "" "/~~/~/at")}".

File diff suppressed because it is too large Load Diff

View File

@ -26,9 +26,9 @@
$: p/(unit (set monk)) :: can be read by $: p/(unit (set monk)) :: can be read by
q/(set monk) :: caused or created by q/(set monk) :: caused or created by
== :: == ::
++ curd {p/@tas q/*} :: spanless card ++ curd {p/@tas q/*} :: typeless card
++ duct (list wire) :: causal history ++ duct (list wire) :: causal history
++ hypo |*(a/mold (pair span a)) :: span associated ++ hypo |*(a/mold (pair type a)) :: type associated
++ hobo |* a/mold :: kiss wrapper ++ hobo |* a/mold :: kiss wrapper
$? $% {$soft p/*} :: $? $% {$soft p/*} ::
== :: == ::
@ -48,7 +48,7 @@
$@ mark :: plain mark $@ mark :: plain mark
$% {$tabl p/(list (pair marc marc))} :: map $% {$tabl p/(list (pair marc marc))} :: map
== :: == ::
++ mark @tas :: content span ++ mark @tas :: content type
++ mash |=(* (mass +<)) :: producing mass ++ mash |=(* (mass +<)) :: producing mass
++ mass (pair cord (each noun (list mash))) :: memory usage ++ mass (pair cord (each noun (list mash))) :: memory usage
++ mill (each vase milt) :: vase+metavase ++ mill (each vase milt) :: vase+metavase
@ -56,7 +56,7 @@
++ monk (each ship {p/@tas q/@ta}) :: general identity ++ monk (each ship {p/@tas q/@ta}) :: general identity
++ muse {p/@tas q/duct r/arvo} :: sourced move ++ muse {p/@tas q/duct r/arvo} :: sourced move
++ move {p/duct q/arvo} :: arvo move ++ move {p/duct q/arvo} :: arvo move
++ ovum {p/wire q/curd} :: spanless ovum ++ ovum {p/wire q/curd} :: typeless ovum
++ pane (list {p/@tas q/vase}) :: kernel modules ++ pane (list {p/@tas q/vase}) :: kernel modules
++ pone (list {p/@tas q/vise}) :: kernel modules old ++ pone (list {p/@tas q/vise}) :: kernel modules old
++ ship @p :: network identity ++ ship @p :: network identity
@ -67,10 +67,10 @@
(unit (unit (cask))) :: (unit (unit (cask))) ::
++ slyt $-({* *} (unit (unit))) :: old namespace ++ slyt $-({* *} (unit (unit))) :: old namespace
++ vile :: reflexive constants ++ vile :: reflexive constants
$: typ/span :: -:!>(*span) $: typ/type :: -:!>(*type)
duc/span :: -:!>(*duct) duc/type :: -:!>(*duct)
pah/span :: -:!>(*path) pah/type :: -:!>(*path)
mev/span :: -:!>([%meta *vase]) mev/type :: -:!>([%meta *vase])
== :: == ::
++ wind :: new kernel action ++ wind :: new kernel action
|* {a/mold b/mold} :: forward+reverse |* {a/mold b/mold} :: forward+reverse
@ -192,9 +192,9 @@
?. hip ~ :: a vase is a cell ?. hip ~ :: a vase is a cell
=^ vax p.sew (~(slot wa p.sew) 2 tiv) :: =^ vax p.sew (~(slot wa p.sew) 2 tiv) ::
=^ hip p.sew (~(nest wa p.sew) typ.vil p.vax) :: =^ hip p.sew (~(nest wa p.sew) typ.vil p.vax) ::
?. hip ~ :: vase head is span ?. hip ~ :: vase head is type
%+ biff :: %+ biff ::
=+ mut=(milt q.tiv) :: card span, value =+ mut=(milt q.tiv) :: card type, value
|- ^- (unit (pair milt worm)) :: |- ^- (unit (pair milt worm)) ::
?. ?=({$meta p/* q/milt} q.mut) `[mut p.sew] :: ordinary metacard ?. ?=({$meta p/* q/milt} q.mut) `[mut p.sew] :: ordinary metacard
=^ hip p.sew (~(nets wa p.sew) mev.vil p.mut):: =^ hip p.sew (~(nets wa p.sew) mev.vil p.mut)::
@ -328,10 +328,10 @@
(vent lal vil bud *worm (slym (slap bud (rain pax txt)) bud)) (vent lal vil bud *worm (slym (slap bud (rain pax txt)) bud))
:: ::
++ viol :: vane tools ++ viol :: vane tools
|= but/span |= but/type
^- vile ^- vile
=+ pal=|=(a/@t ^-(span (~(play ut but) (vice a)))) =+ pal=|=(a/@t ^-(type (~(play ut but) (vice a))))
:* typ=(pal '*span') :* typ=(pal '*type')
duc=(pal '*duct') duc=(pal '*duct')
pah=(pal '*path') pah=(pal '*path')
mev=(pal '*{$meta $vase}') mev=(pal '*{$meta $vase}')

View File

@ -71,9 +71,9 @@
{$bake p/calm q/(pair mark beam) r/(unit vase)} :: load {$bake p/calm q/(pair mark beam) r/(unit vase)} :: load
{$boil p/calm q/(trel coin beam beam) r/vase} :: execute {$boil p/calm q/(trel coin beam beam) r/vase} :: execute
{$path p/calm q/beam r/(unit beam)} :: -to/ transformation {$path p/calm q/beam r/(unit beam)} :: -to/ transformation
{$slit p/calm q/{p/span q/span} r/span} :: slam type {$slit p/calm q/{p/type q/type} r/type} :: slam type
{$slim p/calm q/{p/span q/twig} r/(pair span nock)}:: mint {$slim p/calm q/{p/type q/hoon} r/(pair type nock)}:: mint
{$slap p/calm q/{p/vase q/twig} r/vase} :: compute {$slap p/calm q/{p/vase q/hoon} r/vase} :: compute
{$slam p/calm q/{p/vase q/vase} r/vase} :: compute {$slam p/calm q/{p/vase q/vase} r/vase} :: compute
== :: == ::
++ deps :: depend state ++ deps :: depend state
@ -92,7 +92,7 @@
-- :: -- ::
|% :: |% ::
++ calf :: reduce calx ++ calf :: reduce calx
|* sem/* :: a spansystem hack |* sem/* :: a typesystem hack
|= cax/calx |= cax/calx
?+ sem !! ?+ sem !!
$hood ?>(?=($hood -.cax) r.cax) $hood ?>(?=($hood -.cax) r.cax)
@ -953,7 +953,7 @@
=< |. ^- tank =< |. ^- tank
:+ %palm [" " ~ ~ ~] :+ %palm [" " ~ ~ ~]
~[leaf+"ford: keel" rose+[" " ~ ~]^(murn yom +)] ~[leaf+"ford: keel" rose+[" " ~ ~]^(murn yom +)]
|= {a/wing b/span *} ^- (unit tank) |= {a/wing b/type *} ^- (unit tank)
=+ typ=(mule |.(p:(slap suh wing+a))) =+ typ=(mule |.(p:(slap suh wing+a)))
?: ?=($| -.typ) ?: ?=($| -.typ)
(some (show [%c %pull] %l a)) (some (show [%c %pull] %l a))
@ -965,10 +965,10 @@
|- ^- vase |- ^- vase
?~ yom [[%atom %n ~] ~] ?~ yom [[%atom %n ~] ~]
(slop q.i.yom $(yom t.yom)) (slop q.i.yom $(yom t.yom))
^- twig ^- hoon
:+ %cncb [%& 2]~ :+ %cncb [%& 2]~
=+ axe=3 =+ axe=3
|- ^- (list (pair wing twig)) |- ^- (list (pair wing hoon))
?~ yom ~ ?~ yom ~
:- [p.i.yom [%$ (peg axe 2)]] :- [p.i.yom [%$ (peg axe 2)]]
$(yom t.yom, axe (peg axe 3)) $(yom t.yom, axe (peg axe 3))
@ -1035,10 +1035,10 @@
?~ von [p=cof q=[%1 [%c %w bem ~] ~ ~]] ?~ von [p=cof q=[%1 [%c %w bem ~] ~ ~]]
(fine cof bem(r [%ud ((hard @) +.+:(need u.von))])) (fine cof bem(r [%ud ((hard @) +.+:(need u.von))]))
:: ::
++ lane :: span infer ++ lane :: type infer
|= {cof/cafe typ/span gen/twig} |= {cof/cafe typ/type gen/hoon}
%+ (cowl cof) (mule |.((~(play ut typ) gen))) %+ (cowl cof) (mule |.((~(play ut typ) gen)))
|=(ref/span ref) |=(ref/type ref)
:: ::
++ lash :: filter at beam ++ lash :: filter at beam
|* {cof/cafe bem/beam fun/(burg knot (unit))} |* {cof/cafe bem/beam fun/(burg knot (unit))}
@ -1211,10 +1211,10 @@
:: ::
++ mail :: cached mint ++ mail :: cached mint
~/ %mail ~/ %mail
|= {cof/cafe sut/span gen/twig} |= {cof/cafe sut/type gen/hoon}
^- (bolt (pair span nock)) ^- (bolt (pair type nock))
%+ (clef %slim) (fine cof sut gen) %+ (clef %slim) (fine cof sut gen)
|= {cof/cafe sut/span gen/twig} |= {cof/cafe sut/type gen/hoon}
=+ puz=(mule |.((~(mint ut sut) [%noun gen]))) =+ puz=(mule |.((~(mint ut sut) [%noun gen])))
?- -.puz ?- -.puz
$| (flaw cof p.puz) $| (flaw cof p.puz)
@ -1223,10 +1223,10 @@
:: ::
++ maim :: slap ++ maim :: slap
~/ %maim ~/ %maim
|= {cof/cafe vax/vase gen/twig} |= {cof/cafe vax/vase gen/hoon}
^- (bolt vase) ^- (bolt vase)
%+ cope (mail cof p.vax gen) %+ cope (mail cof p.vax gen)
|= {cof/cafe typ/span fol/nock} |= {cof/cafe typ/type fol/nock}
%+ (coup cof) (mock [q.vax fol] (sloy syve)) %+ (coup cof) (mock [q.vax fol] (sloy syve))
|=(val/* `vase`[typ val]) |=(val/* `vase`[typ val])
:: ::
@ -1416,10 +1416,10 @@
:: ::
++ malt :: cached slit ++ malt :: cached slit
~/ %slit ~/ %slit
|= {cof/cafe gat/span sam/span} |= {cof/cafe gat/type sam/type}
^- (bolt span) ^- (bolt type)
%+ (clef %slit) (fine cof gat sam) %+ (clef %slit) (fine cof gat sam)
|= {cof/cafe gat/span sam/span} |= {cof/cafe gat/type sam/type}
%+ cool |.(%.(%have ~(dunk ut sam))) %+ cool |.(%.(%have ~(dunk ut sam)))
%+ cool |.(%.(%want ~(dunk ut (~(peek ut gat) %free 6)))) %+ cool |.(%.(%want ~(dunk ut (~(peek ut gat) %free 6))))
=+ top=(mule |.((slit gat sam))) =+ top=(mule |.((slit gat sam)))
@ -1433,33 +1433,33 @@
|= {cof/cafe gat/vase sam/vase} |= {cof/cafe gat/vase sam/vase}
^- (bolt vase) ^- (bolt vase)
%+ cope (malt cof p.gat p.sam) %+ cope (malt cof p.gat p.sam)
|= {cof/cafe typ/span} |= {cof/cafe typ/type}
%+ (coup cof) (mong [q.gat q.sam] (sloy syve)) %+ (coup cof) (mong [q.gat q.sam] (sloy syve))
|=(val/* `vase`[typ val]) |=(val/* `vase`[typ val])
:: ::
++ meow :: assemble ++ meow :: assemble
:: =+ dyv=0 :: =+ dyv=0
|= {how/beam arg/coin} |= {how/beam arg/coin}
=| $: rop/(map term (pair hoof twig)) :: structures =| $: rop/(map term (pair hoof hoon)) :: structures
bil/(map term (pair hoof twig)) :: libraries bil/(map term (pair hoof hoon)) :: libraries
boy/(list twig) :: body stack boy/(list hoon) :: body stack
lit/? :: drop arguments lit/? :: drop arguments
== ==
~% %meow ..meow ~ ~% %meow ..meow ~
|% |%
++ able :: assemble preamble ++ able :: assemble preamble
^- twig ^- hoon
:+ %tsgr :+ %tsgr
?: =(~ rop) ?: =(~ rop)
[%$ 1] [%$ 1]
:+ %brcn [~ ~] :+ %brcn [~ ~]
=- [[0 [~ ~] -] ~ ~] =- [[0 [~ ~] -] ~ ~]
(~(run by rop) |=({^ a/twig} [~ %ash a])) (~(run by rop) |=({^ a/hoon} [~ %ash a]))
?: =(~ bil) ?: =(~ bil)
[%$ 1] [%$ 1]
:+ %brcn [~ ~] :+ %brcn [~ ~]
=- [[0 [~ ~] -] ~ ~] =- [[0 [~ ~] -] ~ ~]
(~(run by bil) |=({^ a/twig} [~ %ash a])) (~(run by bil) |=({^ a/hoon} [~ %ash a]))
:: ::
++ abut :: generate ++ abut :: generate
|= {cof/cafe hyd/hood} |= {cof/cafe hyd/hood}
@ -1867,9 +1867,9 @@
%- %- lift |= (unit cage) :: ignore block %- %- lift |= (unit cage) :: ignore block
%+ biff +< %+ biff +<
|= cay/cage ^- (unit cage) |= cay/cage ^- (unit cage)
?. -:(nets:wa +.ref `span`p.q.cay) :: error if bad type ?. -:(nets:wa +.ref `type`p.q.cay) :: error if bad type
~& :^ %ford-syve-lost `path`[tem (en-beam bem)] ~& :^ %ford-syve-lost `path`[tem (en-beam bem)]
want=;;(span +.ref) want=;;(type +.ref)
have=p.q.cay have=p.q.cay
~ ~
`cay `cay

View File

@ -39,7 +39,7 @@
++ roof (room vase) :: namespace ++ roof (room vase) :: namespace
++ room :: either namespace ++ room :: either namespace
|* vase/mold :: vase or maze |* vase/mold :: vase or maze
$- $: ref/* :: reference span $- $: ref/* :: reference type
lyc/(unit (set ship)) :: leakset lyc/(unit (set ship)) :: leakset
car/term :: perspective car/term :: perspective
bem/beam :: path bem/beam :: path
@ -774,7 +774,7 @@
== :: == ::
++ hoof (trel ? term (unit (pair case ship))) :: resource reference ++ hoof (trel ? term (unit (pair case ship))) :: resource reference
++ hoop :: source in hood ++ hoop :: source in hood
$% {$& p/twig} :: direct twig $% {$& p/hoon} :: direct hoon
{$| p/beam} :: resource location {$| p/beam} :: resource location
== :: == ::
++ hops :: XX late-bound path ++ hops :: XX late-bound path
@ -782,8 +782,8 @@
pof/(unit {p/@ud q/tyke}) :: pof/(unit {p/@ud q/tyke}) ::
== :: == ::
++ horn :: resource tree ++ horn :: resource tree
$% {$ape p/twig} :: /~ twig by hand $% {$ape p/hoon} :: /~ hoon by hand
{$arg p/twig} :: /$ argument {$arg p/hoon} :: /$ argument
{$alt p/(list horn)} :: /| options {$alt p/(list horn)} :: /| options
{$dep p/horn} :: /# insert dephash {$dep p/horn} :: /# insert dephash
{$dub p/term q/horn} :: /= apply face {$dub p/term q/horn} :: /= apply face
@ -795,9 +795,9 @@
{$nap p/horn} :: /_ homo map {$nap p/horn} :: /_ homo map
{$now p/horn} :: deprecated {$now p/horn} :: deprecated
{$nod p/term q/horn} :: /_ @ list by odor {$nod p/term q/horn} :: /_ @ list by odor
{$saw p/twig q/horn} :: /; operate on {$saw p/hoon q/horn} :: /; operate on
{$see p/hops q/horn} :: /: relative to {$see p/hops q/horn} :: /: relative to
{$sic p/twig q/horn} :: /^ cast {$sic p/hoon q/horn} :: /^ cast
{$toy p/? q/mark} :: /mark/ static/hook {$toy p/? q/mark} :: /mark/ static/hook
== :: == ::
++ milk (trel ship desk silk) :: sourced silk ++ milk (trel ship desk silk) :: sourced silk
@ -820,7 +820,7 @@
{$pact p/silk q/silk} :: patch {$pact p/silk q/silk} :: patch
{$plan p/beam q/coin r/hood} :: structured assembly {$plan p/beam q/coin r/hood} :: structured assembly
{$reef $~} :: kernel reef {$reef $~} :: kernel reef
{$ride p/twig q/silk} :: silk thru twig {$ride p/hoon q/silk} :: silk thru hoon
{$tabl p/(list (pair silk silk))} :: list {$tabl p/(list (pair silk silk))} :: list
{$vale p/mark q/*} :: validate {$vale p/mark q/*} :: validate
{$volt p/(cask *)} :: unsafe add type {$volt p/(cask *)} :: unsafe add type