on master help sign in
Merge pull request #172 from cxk280/master
f92794fFang
docs.md+1−3
@@ -19,9 +19,7 @@ sort: 4
19Check out the [technical overview](about/overview) for a high-level
19Check out the [technical overview](about/overview) for a high-level
20architecture description. To install and run Urbit, head to the Using section, starting with the [installation guide](using/install) and continuing forward.
20architecture description. To install and run Urbit, head to the Using section, starting with the [installation guide](using/install) and continuing forward.
21
21
22−To begin developing for Urbit, start by learning Hoon [syntax](hoon/syntax),
23−then walk through the [Arvo tutorials](arvo). The examples and exercises
24−in Arvo will teach you to build high-level programs and interact with the network.
22+To begin developing for Urbit, start by walking through [Urbytes](https://urbit.org/docs/byte/0). After that, delve into Hoon [syntax](hoon/syntax) directly, then walk through the [Arvo tutorials](arvo). The examples and exercises in Arvo will teach you to build high-level programs and interact with the network.
25
23
26Dig into the mechanics of Urbit with [Core Hoon](hoon). Refer back
24Dig into the mechanics of Urbit with [Core Hoon](hoon). Refer back
27there for pure-code exercises and functions in the [standard library](hoon/library).
25there for pure-code exercises and functions in the [standard library](hoon/library).
docs/about/glossary.md+3−3
@@ -5,7 +5,7 @@ sort: 3
5title: Urbit glossary
5title: Urbit glossary
6---
6---
7
7
8−# Urbit glossary
8+# Urbit Glossary
9
9
10Urbit is renowned for its exotic terminology. Here's a simple overview
10Urbit is renowned for its exotic terminology. Here's a simple overview
11from the strange words in.
11from the strange words in.
@@ -116,7 +116,7 @@ context.
116
116
117*See [advanced types](/hoon/advanced)*.
117*See [advanced types](/hoon/advanced)*.
118
118
119−###### metal a variance model
119+###### metal: a variance model
120
120
121Every core has a *metal* which defines its variance model (ie, the
121Every core has a *metal* which defines its variance model (ie, the
122properties of the span of a compatible core). The default is `gold`
122properties of the span of a compatible core). The default is `gold`
@@ -169,7 +169,7 @@ An atom span is *warm* or *cold* based on whether the constant exists.
169
169
170*See [basic types](../../hoon/basic/#-atom-p-term-q-unit-atom)*
170*See [basic types](../../hoon/basic/#-atom-p-term-q-unit-atom)*
171
171
172−###### *aura*: a soft atom type
172+###### aura: a soft atom type
173
173
174*aura* is a name for an atom type. It represents the structure of an
174*aura* is a name for an atom type. It represents the structure of an
175atom in a string beginning with `@`. An aura may represent units,
175atom in a string beginning with `@`. An aura may represent units,
docs/arvo/network.md+8−8
@@ -15,7 +15,7 @@ All we've written up until now are just shell commands that produce a
15value and then disappear. To listen for and receive messages from other
15value and then disappear. To listen for and receive messages from other
16planets, we'll need an app. Let's look at a very simple one:
16planets, we'll need an app. Let's look at a very simple one:
17
17
18− :: There is no love that is not an echo
18+ :: Accepts any noun from dojo and prints it out
19 ::
19 ::
20 :::: /hoon/echo/examples/app
20 :::: /hoon/echo/examples/app
21 ::
21 ::
@@ -71,7 +71,7 @@ type `{(list) _+>.$}`. But what does this mean?
71The phrase to remember is "a list of moves and our state". Urbit is a
71The phrase to remember is "a list of moves and our state". Urbit is a
72message passing system, so whenever we want to do something that
72message passing system, so whenever we want to do something that
73interacts with the rest of the system, we send a message. Thus, a move
73interacts with the rest of the system, we send a message. Thus, a move
74−is arvo's equivalent of a syscall. The first thing that `++poke-noun`
74+is Arvo's equivalent of a syscall. The first thing that `++poke-noun`
75produces is a list of messages, called "moves". In this case, we don't
75produces is a list of messages, called "moves". In this case, we don't
76actually want the system to do anything, so we produce the empty list,
76actually want the system to do anything, so we produce the empty list,
77`~` (in the `[~ +>.$]` line).
77`~` (in the `[~ +>.$]` line).
@@ -106,7 +106,7 @@ Intro to marks
106
106
107Are there other `++poke`s? Yes. In fact, `noun` and `atom` are just two
107Are there other `++poke`s? Yes. In fact, `noun` and `atom` are just two
108of arbitrarily many "marks". A mark is fundamentally a type definition,
108of arbitrarily many "marks". A mark is fundamentally a type definition,
109−but accessible at the arvo level. Each mark is defined in the `/mar`
109+but accessible at the Arvo level. Each mark is defined in the `/mar`
110directory. Some marks have conversion routines to other marks, and some
110directory. Some marks have conversion routines to other marks, and some
111have diff, patch, and merge algorithms. None of these are required for a
111have diff, patch, and merge algorithms. None of these are required for a
112mark to exist, however.
112mark to exist, however.
@@ -201,7 +201,7 @@ stands for "phonetic base").
201
201
202Recall that in a `++poke` arm we produce "a list of moves and our
202Recall that in a `++poke` arm we produce "a list of moves and our
203state". Until now, we've left the list of moves empty, since we haven't
203state". Until now, we've left the list of moves empty, since we haven't
204−wanted to tell arvo to do anything in particular. Now we want to send a
204+wanted to tell Arvo to do anything in particular. Now we want to send a
205message to another urbit. Thus, we produce a list with one element:
205message to another urbit. Thus, we produce a list with one element:
206
206
207 [ost %poke /sending [to-urbit-address %pong] %atom 'howdy']
207 [ost %poke /sending [to-urbit-address %pong] %atom 'howdy']
@@ -228,7 +228,7 @@ Thus, to truly understand bones, we must understand ducts.
228
228
229A duct is stack of causes, again, represented as paths, which are called
229A duct is stack of causes, again, represented as paths, which are called
230wires. At the bottom of every duct is a unix event, such as a keystroke,
230wires. At the bottom of every duct is a unix event, such as a keystroke,
231−network packet, file change, or timer event. When arvo is given this
231+network packet, file change, or timer event. When Arvo is given this
232event, it routes the event to appropriate kernel module for handling.
232event, it routes the event to appropriate kernel module for handling.
233
233
234Sometimes, the module can immediately handle the event and produce any
234Sometimes, the module can immediately handle the event and produce any
@@ -247,9 +247,9 @@ continue indefinitely, adding more and more layers onto the duct. When
247an entity finally produces a result, a layer is popped off the duct, and
247an entity finally produces a result, a layer is popped off the duct, and
248the result is passed all the way back down.
248the result is passed all the way back down.
249
249
250−In effect, a duct is an arvo-level call stack. It's worth noting that
250+In effect, a duct is an Arvo-level call stack. It's worth noting that
251while in traditional call stacks a function call happens synchronously
251while in traditional call stacks a function call happens synchronously
252−and returns exactly once. In arvo, multiple moves can be sent at once,
252+and returns exactly once. In Arvo, multiple moves can be sent at once,
253are evaluated asynchronously, and each one may be responded to zero or
253are evaluated asynchronously, and each one may be responded to zero or
254more times.
254more times.
255
255
@@ -286,7 +286,7 @@ app) and marked data, then pokes the arm of the corresponding mark on
286that app on that urbit with that data. `[to-urbit-address %pong]` is the
286that app on that urbit with that data. `[to-urbit-address %pong]` is the
287target urbit and app, `%atom` is the `mark`, and`'howdy'` is the data.
287target urbit and app, `%atom` is the `mark`, and`'howdy'` is the data.
288
288
289−When arvo receives a `%poke` move, it calls the appropriate `++poke`.
289+When Arvo receives a `%poke` move, it calls the appropriate `++poke`.
290The same mechanism is used for sending messages between apps on the same
290The same mechanism is used for sending messages between apps on the same
291urbit as for sending messages between apps on different urbits.
291urbit as for sending messages between apps on different urbits.
292
292
docs/arvo/subject.md+1−1
@@ -85,7 +85,7 @@ accessible.
85 command line.
85 command line.
86
86
87- Comment out all of the arms of the `|%`. Now add another arm and
87- Comment out all of the arms of the `|%`. Now add another arm and
88− call it `++add`, have it accept two arguments and procduce 42
88+ call it `++add`, have it accept two arguments and produce 42
89 (regardless of input). Change the `=<` line to
89 (regardless of input). Change the `=<` line to
90 `[(add 5 7) (^add 5 7)]`. Can you recognize what's happening?
90 `[(add 5 7) (^add 5 7)]`. Can you recognize what's happening?
91
91