@@ -1,14 +1,18 @@
2−title = "Glossary"
2+title = "Arvo Glossary"
4template = "doc.html"
4template = "doc.html"
6Urbit is renowned for its exotic terminology. Here's a simple overview
7Urbit is renowned for its exotic terminology. Here's a simple overview
7from the strange words within.
8from the strange words within.
9As Dijkstra put it: "The purpose of abstraction is not to be vague, but
10As Dijkstra put it: "The purpose of abstraction is not to be vague, but
10to create a new semantic level in which one can be absolutely precise."
11to create a new semantic level in which one can be absolutely precise."
13+This glossary only covers terms the Arvo side of the project. You can find the
14+Azimuth glossary [here](../azimuth-glossary)
12### application
16### application
14Also known as an “app,” an _application_ is a Hoon program that can hold state.
18Also known as an “app,” an _application_ is a Hoon program that can hold state.
@@ -23,14 +27,14 @@ enclosing [core](#core) itself as the subject.
23There are two kinds of arms: _dry_ and _wet_. Most arms are
27There are two kinds of arms: _dry_ and _wet_. Most arms are
28 normal, `++`, polymorphic by means of _variance_
32 normal, `++`, polymorphic by means of _variance_
30 For a dry arm, we ask: is the new payload compatible with the old
34 For a dry arm, we ask: is the new payload compatible with the old
31 payload (against which the core was compiled)?
35 payload (against which the core was compiled)?
35 unusual, `+-`, polymorphic by means of _genericity_
39 unusual, `+-`, polymorphic by means of _genericity_
@@ -67,7 +71,7 @@ More in-depth information on Arvo can be found
68Below are Arvo modules, which are called "vanes".
72Below are Arvo modules, which are called "vanes".
70−##### Ames
74+#### Ames
72 The networking vane. Ames handles all things UDP. Here live the protocols for
76 The networking vane. Ames handles all things UDP. Here live the protocols for
73 discovering and interacting with other urbits. It’s also the name for the Urbit
77 discovering and interacting with other urbits. It’s also the name for the Urbit
@@ -78,7 +82,7 @@ Below are Arvo modules, which are called "vanes".
78 More in-depth information on Ames can be found
82 More in-depth information on Ames can be found
79 [`here`](@/docs/learn/arvo/ames.md).
83 [`here`](@/docs/learn/arvo/ames.md).
81−##### Behn
85+#### Behn
83 The timing vane. Behn allows for applications to schedule events, which are
87 The timing vane. Behn allows for applications to schedule events, which are
84 managed in a simple priority queue. For example, Clay, the Urbit filesystem,
88 managed in a simple priority queue. For example, Clay, the Urbit filesystem,
@@ -87,7 +91,7 @@ Below are Arvo modules, which are called "vanes".
88 Behn is located in `/home/sys/vane/behn.hoon` within your urbit.
92 Behn is located in `/home/sys/vane/behn.hoon` within your urbit.
90−##### Clay
94+#### Clay
92 The filesystem and typed revision-control vane. Think of Clay as a
96 The filesystem and typed revision-control vane. Think of Clay as a
93 continuously synced git. It handles file-change events and maps them from Urbit
97 continuously synced git. It handles file-change events and maps them from Urbit
@@ -103,7 +107,7 @@ Below are Arvo modules, which are called "vanes".
103 of the architecture can be found
107 of the architecture can be found
104 [`here`](@/docs/learn/arvo/clay.md).
108 [`here`](@/docs/learn/arvo/clay.md).
106−##### Dill
110+#### Dill
108 The terminal-driver vane. You run your urbit in your Unix terminal, and
112 The terminal-driver vane. You run your urbit in your Unix terminal, and
109 Unix sends every event -- such as a keystroke or a change in the dimensions of
113 Unix sends every event -- such as a keystroke or a change in the dimensions of
@@ -122,7 +126,7 @@ Below are Arvo modules, which are called "vanes".
122 More in-depth information on Dill can be found
126 More in-depth information on Dill can be found
123 [`here`](@/docs/learn/arvo/dill.md).
127 [`here`](@/docs/learn/arvo/dill.md).
125−##### Eyre
129+#### Eyre
127 The web-server vane. Anything HTTP-related lives here. Unix sends HTTP messages
131 The web-server vane. Anything HTTP-related lives here. Unix sends HTTP messages
128 though to Eyre, and Eyre produces HTTP messages in response.
132 though to Eyre, and Eyre produces HTTP messages in response.
@@ -136,7 +140,7 @@ Below are Arvo modules, which are called "vanes".
136 More in-depth information on Eyre can be found
140 More in-depth information on Eyre can be found
137 [`here`](@/docs/learn/arvo/eyre.md).
141 [`here`](@/docs/learn/arvo/eyre.md).
139−##### Ford
143+#### Ford
141 The build-system vane. Ford is capable of sequencing generic asynchronous
145 The build-system vane. Ford is capable of sequencing generic asynchronous
142 computations. Its uses include linking source files into programs, assembling
146 computations. Its uses include linking source files into programs, assembling
@@ -151,7 +155,7 @@ Below are Arvo modules, which are called "vanes".
151 More in-depth information on Ford can be found
155 More in-depth information on Ford can be found
152 [`here`](@/docs/learn/arvo/ford.md).
156 [`here`](@/docs/learn/arvo/ford.md).
154−##### Gall
158+#### Gall
156 The application-management vane. Userspace apps -- daemons, really -- are
160 The application-management vane. Userspace apps -- daemons, really -- are
157 started, stopped, and sandboxed by Gall. Gall provides developers with a
161 started, stopped, and sandboxed by Gall. Gall provides developers with a
@@ -176,11 +180,12 @@ optional constant.
177An atom type is _warm_ or _cold_ based on whether the constant exists.
181An atom type is _warm_ or _cold_ based on whether the constant exists.
179−##### warm
184+#### warm
181 If the constant is `~` (null), any atom is in the type.
186 If the constant is `~` (null), any atom is in the type.
183−##### cold
188+#### cold
185 If the constant is `[~ atom]`, its only legal value is `atom`.
190 If the constant is `[~ atom]`, its only legal value is `atom`.
@@ -296,11 +301,11 @@ code head the _battery_ and the data tail the _payload_. All code-data
296structures in normal languages (functions, objects, modules, etc.)
301structures in normal languages (functions, objects, modules, etc.)
297translate to cores in Hoon.
302translate to cores in Hoon.
299−##### battery
304+#### battery
301 The code-containing head of a core.
306 The code-containing head of a core.
303−##### payload
308+#### payload
305 The data-containing tail of a core.
310 The data-containing tail of a core.
@@ -362,11 +367,11 @@ in the core) with the argument, and then compute the arm.
363The payload of a gate has a shape of `[sample context]`.
368The payload of a gate has a shape of `[sample context]`.
365−##### sample
370+#### sample
367 The argument tuple.
372 The argument tuple.
369−##### context
374+#### context
371 The subject in which the gate was defined.
376 The subject in which the gate was defined.
@@ -424,7 +429,7 @@ such app that uses Hall.
425_More information on Hall can be found [here](@/docs/learn/arvo/hall.md)._
430_More information on Hall can be found [here](@/docs/learn/arvo/hall.md)._
427−##### circle
432+#### circle
429 A circle is the “audience” of your messages -- who can receive them. It can be
434 A circle is the “audience” of your messages -- who can receive them. It can be
430 thought of as a chat channel, but this is a little too narrow. More
435 thought of as a chat channel, but this is a little too narrow. More
@@ -447,7 +452,7 @@ The Hoon source file is located in `/home/sys/hoon.hoon` within your urbit.
448_More information can be found in the [hoon](@/docs/learn/hoon/_index.md) section._
453_More information can be found in the [hoon](@/docs/learn/hoon/_index.md) section._
450−##### Mint
455+#### Mint
452 _Mint_ is the Hoon compiler function. Mint takes the subject type and the
457 _Mint_ is the Hoon compiler function. Mint takes the subject type and the
453 expression source (a [hoon](#a-hoon), for example) and produces the product
458 expression source (a [hoon](#a-hoon), for example) and produces the product
@@ -549,12 +554,12 @@ head-first for either a face named "foo" or a core with an arm of
549"foo". If a face is found, the result is a leg, if a core is
554"foo". If a face is found, the result is a leg, if a core is
550found, the result is the product of the arm.
555found, the result is the product of the arm.
552−##### leg
557+#### leg
554 a subexpression, or subtree of the
559 a subexpression, or subtree of the
555 [subject](#nock-subject).
560 [subject](#nock-subject).
557−##### wing
562+#### wing
559 a search path into the subject, composed of
564 a search path into the subject, composed of
560 limbs. Search occurs from right to left (`a.b` means `b` within `a`).
565 limbs. Search occurs from right to left (`a.b` means `b` within `a`).
@@ -574,28 +579,28 @@ In [Nock](#nock) and [Hoon](#hoon), a _noun_ is an atom or a cell.
574Nock is a Turing-complete, non-lambda combinator interpreter. It's
579Nock is a Turing-complete, non-lambda combinator interpreter. It's
575Urbit's low-level programming language. Nock is functional and typeless.
580Urbit's low-level programming language. Nock is functional and typeless.
577−##### noun
582+#### noun
579 an _atom_ or a _cell_.
584 an _atom_ or a _cell_.
581−##### atom
586+#### atom
583 any natural number, including zero.
588 any natural number, including zero.
585−##### cell
590+#### cell
587 any ordered pair of nouns.
592 any ordered pair of nouns.
590−##### subject
595+#### subject
592 a noun - the data against which a _formula_ is evaluated.
597 a noun - the data against which a _formula_ is evaluated.
594−##### formula
599+#### formula
596 a noun - a function at the nock level.
601 a noun - a function at the nock level.
598−##### product
603+#### product
600 a noun - the result of evaluating a formula against a subject.
605 a noun - the result of evaluating a formula against a subject.
@@ -676,7 +681,7 @@ whose number is its bottom half. So the planet `~firbyr-napbes`,
676`48.879`, whose parent is `~mun`, `0xef`, `239`. The galaxy at the address of
681`48.879`, whose parent is `~mun`, `0xef`, `239`. The galaxy at the address of
677`0` is `~zod`.
682`0` is `~zod`.
679−##### pier
684+#### pier
681 A ship's _pier_ is its Unix directory. For planets, the name of the pier is
686 A ship's _pier_ is its Unix directory. For planets, the name of the pier is
682 usually the planet name.
687 usually the planet name.
@@ -691,7 +696,7 @@ validate untrusted network data.
692Here's some common structure terminology:
697Here's some common structure terminology:
694−##### bunt
699+#### bunt
696 A bunt is the default value of a [structure](#structure). It's also a verb;
701 A bunt is the default value of a [structure](#structure). It's also a verb;
697 to _bunt_ a structure is to produce the bunt of that structure. For example,
702 to _bunt_ a structure is to produce the bunt of that structure. For example,
@@ -705,7 +710,7 @@ Here's some common structure terminology:
708−##### icon: The type of the mold's range
713+#### icon: The type of the mold's range
710_See [mold hoons](/docs/reference/hoon-expressions/rune/buc/)._
715_See [mold hoons](/docs/reference/hoon-expressions/rune/buc/)._
@@ -725,7 +730,7 @@ a [`hoon`](#a-hoon).
726Runes have two syntactic forms, _tall_ and _flat_:
731Runes have two syntactic forms, _tall_ and _flat_:
728−##### tall
733+#### tall
730 multiple lines, no parentheses, two or more spaces between tokens
735 multiple lines, no parentheses, two or more spaces between tokens
@@ -736,7 +741,7 @@ Runes have two syntactic forms, _tall_ and _flat_:
739−##### flat
744+#### flat
741 one line, parentheses, one space between tokens
746 one line, parentheses, one space between tokens
@@ -797,7 +802,7 @@ All types are assembled out of base types defined in `++type`.
797does type-inference on a program, it assembles complex types out
802does type-inference on a program, it assembles complex types out
798of the simpler built-in types.
803of the simpler built-in types.
800−##### nest
805+#### nest
802 `nest` is an internal Hoon function on two types which performs a type
807 `nest` is an internal Hoon function on two types which performs a type
803 compatibility test. `nest` produces yes if the
808 compatibility test. `nest` produces yes if the