on master help sign in
fixes broken links
d98f9b4Robert
getting-started.udon+13
@@ -349,6 +349,19 @@ urbit -F zod
349If you want to get on the Arvo network with your point, then continue to the
349If you want to get on the Arvo network with your point, then continue to the
350next section.
350next section.
351
351
352+;=
353+ ;h3
354+ ;div(id "swap"): Set Up Swap
355+ ==
356+==
357+
358+If you're running Urbit in the cloud on a small instance, you may need to additionally configure swap space. If you're not, skip this section.
359+
360+Urbit wants to map 2GB of memory when it boots up. We won’t necessarily use all this memory, we just want to see it. On a normal modern PC or Mac, or on a large cloud virtual machine, this is not an issue. On some small cloud virtual machines (Amazon or Digital Ocean), the default memory configuration is smaller than this, and you need to manually configure a swapfile.
361+
362+Digital Ocean has a post on adding swap [here](https://www.digitalocean.com/community/tutorials/how-to-add-swap-space-on-ubuntu-16-04). For Amazon there’s a StackOverflow thread [here](https://stackoverflow.com/questions/17173972/how-do-you-add-swap-to-an-ec2-instance).
363+
364+Don’t spend a lot of time tweaking these settings; the simplest thing is fine.
352
365
353;=
366;=
354 ;h2
367 ;h2
introduction.udon+3−3
@@ -17,12 +17,12 @@ If you're looking for a high-level introduction to the Urbit project and its com
17- [Arvo vs. Azimuth](/docs/introduction/arvo-vs-azimuth), a quick explanation of the two parallel systems that compose Urbit.
17- [Arvo vs. Azimuth](/docs/introduction/arvo-vs-azimuth), a quick explanation of the two parallel systems that compose Urbit.
18- [Technical Overview](/docs/introduction/technical-overview), a more in-depth description of the entire Urbit stack.
18- [Technical Overview](/docs/introduction/technical-overview), a more in-depth description of the entire Urbit stack.
19- [Contributing](/docs/introduction/contributing), a guide to getting involved with the Urbit project.
19- [Contributing](/docs/introduction/contributing), a guide to getting involved with the Urbit project.
20−- [Community Tutorials](/docs/introduction/community), a collection of unofficial but useful Urbit learning resources.
20+- [Community Tutorials](/docs/introduction/community-tutorials), a collection of unofficial but useful Urbit learning resources.
21−- [Source Code](/docs/introduction/source), an explanation of Urbit's constituent GitHub repos.
21+- [Source Code](/docs/introduction/source-code-overview), an explanation of Urbit's constituent GitHub repos.
22
22
23## [Getting Started](/docs/getting-started)
23## [Getting Started](/docs/getting-started)
24
24
25−If you'd like to install Arvo, get an Azimuth point, and/or get on the Urbit network, you'll find guides here. Dive in, and don't be afraid to [ask for help](support@urbit.org)!
25+If you'd like to install Arvo, get an Azimuth point, and/or get on the Urbit network, you'll find guides here. Dive in, and don't be afraid to [ask for help](mailto:support@urbit.org)!
26
26
27- [The Installation Guide](/docs/getting-started), a step-by-step walkthrough for getting Urbit running.
27- [The Installation Guide](/docs/getting-started), a step-by-step walkthrough for getting Urbit running.
28- [The Azimuth section](/docs/getting-started/azimuth), which contains information on managing your Azimuth identities.
28- [The Azimuth section](/docs/getting-started/azimuth), which contains information on managing your Azimuth identities.
introduction/community-tutorials.udon+2−4
@@ -5,16 +5,14 @@
5 ==
5 ==
6;>
6;>
7
7
8−# Community Docs
8+# Community Docs
9
9
10Here are some tutorials written by members of the Urbit community. Some are a little outdated, but they may still prove useful.
10Here are some tutorials written by members of the Urbit community. Some are a little outdated, but they may still prove useful.
11
11
12If you want to add something to this list, [shoot us an email](mailto:support@urbit.org).
12If you want to add something to this list, [shoot us an email](mailto:support@urbit.org).
13
13
14- `~master-morzod`
14- `~master-morzod`
15− - [Fora post](https://urbit.org/fora/posts/~2016.12.25..06.35.44..a1ec~/)
15+ - [Fora post](https://github.com/joemfb/mardev/tree/master/docs/gen)
16−- `~hidduc-posmeg`
17− - [Fora post](https://urbit.org/fora/posts/~2017.2.12..21.54.40..6fde~/)
18- `~palfun-foslup`
16- `~palfun-foslup`
19 - [Urbit by Doing](https://github.com/Fang-/Urbit-By-Doing)
17 - [Urbit by Doing](https://github.com/Fang-/Urbit-By-Doing)
20- `@knubie`
18- `@knubie`
learn/arvo/arvo-internals/admin.udon+2−2
@@ -143,7 +143,7 @@ To generate a random moon from your planet, run:
143```
143```
144
144
145You can use the resulting output in the same installation flow from
145You can use the resulting output in the same installation flow from
146−[install](/../install) and [setup](/../setup), following the same scheme as
146+[install](../install) and [setup](../setup), following the same scheme as
147for booting a planet. That scheme is:
147for booting a planet. That scheme is:
148
148
149```
149```
@@ -162,7 +162,7 @@ $ urbit -w faswep-navred-sampel-palnet -t habref-mebsem-parsym-batlus -c mymoon
162
162
163Moons are automatically synced to their parent `%kids` desk, and can control
163Moons are automatically synced to their parent `%kids` desk, and can control
164applications on their parent planet using `|link`. You can read more about
164applications on their parent planet using `|link`. You can read more about
165−those operations in the [filesystem](/../filesystem) and [console](/../shell)
165+those operations in the [filesystem](../filesystem) and [console](../shell)
166walkthroughs, respectively.
166walkthroughs, respectively.
167
167
168
168
learn/arvo/arvo-internals/ford.udon+2−2
@@ -127,7 +127,7 @@ library in urbit.
127
127
128To run this example, put this code in your desk at `gen/faslus.hoon` and run
128To run this example, put this code in your desk at `gen/faslus.hoon` and run
129`+faslus` in your dojo. This example is a generator. For more information on
129`+faslus` in your dojo. This example is a generator. For more information on
130−generators, see the [generator docs](https://urbit.org/docs/arvo/generators).
130+generators, see the [generator docs](/docs/arvo/arvo-internals/generators).
131
131
132```
132```
133/+ time-to-id
133/+ time-to-id
@@ -281,7 +281,7 @@ produces the text of the hoon file at "/path/to/hoon-file/hoon".
281passes the contents through unchanged. In general, rendering a file with a
281passes the contents through unchanged. In general, rendering a file with a
282mark will potentially run the contents through a series of conversion
282mark will potentially run the contents through a series of conversion
283operations. For details on marks, see the
283operations. For details on marks, see the
284−[marks docs](https://urbit.org/docs/arvo/marks).
284+[Gall docs](../gall).
285
285
286Here's an example that includes a mark conversion:
286Here's an example that includes a mark conversion:
287```
287```
learn/arvo/arvo-internals/gall.udon+4−6
@@ -535,7 +535,7 @@ when you run a command like `+ls` or `|merge`, there are no marks in
535sight.
535sight.
536
536
537We've used generators before, back in [Basic
537We've used generators before, back in [Basic
538−Operation](/docs/using/admin). At that point, we just used the
538+Operation](/docs/learn/arvo/arvo-internals/admin). At that point, we just used the
539generators to produce values -- we didn't pipe their results into apps.
539generators to produce values -- we didn't pipe their results into apps.
540In the dojo cast, the role of a generator is to take a list of arguments
540In the dojo cast, the role of a generator is to take a list of arguments
541and produce a value, which is often, though not always, piped into an
541and produce a value, which is often, though not always, piped into an
@@ -576,10 +576,8 @@ pattern is so common, this can be abbreviated to
576generators for the `:hood` app, `:hood|generator <args>` can be
576generators for the `:hood` app, `:hood|generator <args>` can be
577shortened to `|generator <args>`.
577shortened to `|generator <args>`.
578
578
579−Let's write a generator for a modified version of `:pong` from
580−the chapter on [Network Messages](/docs/arvo/system/network). Recall
581−that `:pong` takes an urbit address, which is of mark `urbit`,
579+Let's write a generator called `:pong` that takes an urbit address, which is of
582−and sends that urbit the message `'howdy'`. First--without a
580+mark `urbit`, and sends that urbit the message `'howdy'`. First--without a
583generator--let's make `:ping` that does the same, except that
581generator--let's make `:ping` that does the same, except that
584it lets the user optionally specify the message as well.
582it lets the user optionally specify the message as well.
585
583
@@ -785,7 +783,7 @@ purl:eyre)`. Thus, the result is null if and only if the url is malformed.
785When you send this request, you can expect a `%sigh` with the
783When you send this request, you can expect a `%sigh` with the
786response, which we handle later on in `++sigh-httr`.
784response, which we handle later on in `++sigh-httr`.
787
785
788−For `%wait`, you just pass a [`@da`]() (absolute date), and arvo will
786+For `%wait`, you just pass a `@da` (absolute date), and arvo will
789produce a `%wake` when the time comes.
787produce a `%wake` when the time comes.
790
788
791> A timer is guaranteed to not be triggered before the given time, but it's currently impossible to guarantee the timer will be triggered at exactly the requested time.
789> A timer is guaranteed to not be triggered before the given time, but it's currently impossible to guarantee the timer will be triggered at exactly the requested time.
learn/arvo/arvo-internals/generators.udon+1−1
@@ -29,7 +29,7 @@ a
29
29
30This generator takes one argument of any noun and produces it without any
30This generator takes one argument of any noun and produces it without any
31changes. If we put this into a file named `echo.hoon` in the `/gen` directory,
31changes. If we put this into a file named `echo.hoon` in the `/gen` directory,
32−we can run it from the [Dojo](/docs/using/shell):
32+we can run it from the [Dojo](/docs/learn/arvo/arvo-internals/shell):
33
33
34```
34```
35> +echo 42
35> +echo 42
learn/arvo/arvo-internals/layout.udon+4−4
@@ -47,7 +47,7 @@ This is where the Arvo kernel lives. `sys/` contains:
47
47
48##### `sys/hoon.hoon`
48##### `sys/hoon.hoon`
49
49
50−[Hoon](../../tutorials/hoon-ch1) is our programming language. Since Hoon
50+[Hoon](/docs/learn/arvo/hoon) is our programming language. Since Hoon
51compiles itself, the language is actually specified in this source file.
51compiles itself, the language is actually specified in this source file.
52
52
53##### `sys/zuse.hoon`
53##### `sys/zuse.hoon`
@@ -104,9 +104,9 @@ That's it. That's the whole system.
104
104
105## app/
105## app/
106
106
107−This is where [Gall](../../tutorials/gall) apps live. Gall apps are stateful
107+This is where [Gall](../gall) apps live. Gall apps are stateful
108servers, sort of like unix daemons. One familiar one is `app/hall.hoon` which is
108servers, sort of like unix daemons. One familiar one is `app/hall.hoon` which is
109−the source code for [Hall](../../tutorials/hall), the Urbit messaging transport
109+the source code for [Hall](../hall), the Urbit messaging transport
110layer. And there's also `app/dojo.hoon` — that's your shell.
110layer. And there's also `app/dojo.hoon` — that's your shell.
111
111
112---
112---
@@ -167,7 +167,7 @@ lib/test/*
167## web/
167## web/
168
168
169Here are files publicly accessible to the web, as made possible by
169Here are files publicly accessible to the web, as made possible by
170−[Eyre](../web).
170+[Eyre](../eyre).
171
171
172---
172---
173
173
learn/arvo/arvo-internals/messaging.udon+1−1
@@ -27,7 +27,7 @@ be used for that we haven't even thought of.
27
27
28Here we'll be discussing how to operate the default CLI frontend, Talk,
28Here we'll be discussing how to operate the default CLI frontend, Talk,
29to send and receive messages. For a more in-depth look at Hall's internals,
29to send and receive messages. For a more in-depth look at Hall's internals,
30−take a look at its [documentation](../../tutorials/hall).
30+take a look at its [documentation](../hall).
31
31
32## Quickstart
32## Quickstart
33
33
learn/arvo/arvo-internals/publishing.udon+2−2
@@ -43,7 +43,7 @@ Your urbit's web server can be accessed remotely at
43way, one that is generated by running the `+code` command in the Dojo.
43way, one that is generated by running the `+code` command in the Dojo.
44
44
45_(Make sure you have a desk mounted to unix, as covered in the
45_(Make sure you have a desk mounted to unix, as covered in the
46−[setup section](/../../using/setup))._
46+[setup section](../filesystem/))._
47
47
48##### Serving
48##### Serving
49
49
@@ -95,7 +95,7 @@ Let's continue our with our `test.udon` example. Create `/sandbox/web/test/` and
95add two more Udon files in `/sandbox/web/test/daughter.udon`
95add two more Udon files in `/sandbox/web/test/daughter.udon`
96`/sandbox/web/test/son.udon`, respectively. Make sure that they contain valid
96`/sandbox/web/test/son.udon`, respectively. Make sure that they contain valid
97Udon. Udon is our markup language, similar to Markdown; check out the guide
97Udon. Udon is our markup language, similar to Markdown; check out the guide
98−[here](../../tutorials/).
98+[here](../udon/).
99
99
100> NOTE: Due to a bug in Urbit, you may have to create the directory and the file
100> NOTE: Due to a bug in Urbit, you may have to create the directory and the file
101 in it in rapid succession using something like `mkdir sandbox/web/test && touch
101 in it in rapid succession using something like `mkdir sandbox/web/test && touch
learn/arvo/arvo-internals/sail.udon+2−2
@@ -497,8 +497,8 @@ see what its value is.
497
497
498The first line, `=+ wid=(met 3 p.bem.gas)`, combines a new noun with the
498The first line, `=+ wid=(met 3 p.bem.gas)`, combines a new noun with the
499subject and gives it the face `wid`. This noun is produced by the the
499subject and gives it the face `wid`. This noun is produced by the the
500−standard-library function [`met`](../reference/library/2c), which measures the number of
500+standard-library function [`met`](/docs/reference/library/2c), which measures the number of
501−[blocks](../reference/library/1c/) of size `a` within `b`. Blocks are units that have a
501+[blocks](/docs/reference/library/1c/) of size `a` within `b`. Blocks are units that have a
502bitwidth of `2^a`. So, in this case, it measures how many bytes (blocks of size
502bitwidth of `2^a`. So, in this case, it measures how many bytes (blocks of size
5033 are bitwidths of 8; `2^3 = 8`) are fully contained in your ship's address.
5033 are bitwidths of 8; `2^3 = 8`) are fully contained in your ship's address.
504
504
learn/arvo/arvo-internals/shell.udon+3−3
@@ -37,7 +37,7 @@ Tall-form Hoon may require multiple lines:
37~your-urbit:dojo< 2
37~your-urbit:dojo< 2
38```
38```
39
39
40−Hoon uses something called [the subject](../../tutorials/hoon-ch1/hoon-ch1-3).
40+Hoon uses something called [the subject](/docs/learn/arvo/hoon/the-subject-and-its-legs).
41The Dojo has its own subject, and that's where Hoon's equivalent of variables,
41The Dojo has its own subject, and that's where Hoon's equivalent of variables,
42called faces, are stored.
42called faces, are stored.
43
43
@@ -59,7 +59,7 @@ Use `=dir` to set the current working directory:
59```
59```
60
60
61(`%` represents your current directory. For a complete explanation on urbit
61(`%` represents your current directory. For a complete explanation on urbit
62−paths, see the [filesystem section](/docs/using/filesystem))
62+paths, see the [filesystem section](../filesystem))
63
63
64Generators (files in `/gen`) are run with `+`:
64Generators (files in `/gen`) are run with `+`:
65
65
@@ -264,7 +264,7 @@ Apps usually expect marked data, so `&` is often used here.
264
264
265##### `*` - Save in `%clay`
265##### `*` - Save in `%clay`
266
266
267−Save a new `.udon` ([Udon](/docs/tutorials/udon)) file in `web`:
267+Save a new `.udon` ([Udon](../udon)) file in `web`:
268
268
269```
269```
270~your-urbit:dojo> *%/web/foo/udon '# hello'
270~your-urbit:dojo> *%/web/foo/udon '# hello'
learn/arvo/vere/jetting.udon+1−1
@@ -502,7 +502,7 @@ First, you may need to massage your inputs a bit to get them into types that you
502
502
503You have received a bunch of `u3_nouns` or `u3_atoms`, but you presumably want to do things in a native C / non-Hoon manner: computing w raw integers, etc.
503You have received a bunch of `u3_nouns` or `u3_atoms`, but you presumably want to do things in a native C / non-Hoon manner: computing w raw integers, etc.
504
504
505−A `u3_noun` will want to be further diassembled into atoms.
505+A `u3_noun` will want to be further disassembled into atoms.
506
506
507A `u3_atom` represents a simple number, but the implementation may or
507A `u3_atom` represents a simple number, but the implementation may or
508may not be simple. If the value held in the atom is 31 bits or less,
508may not be simple. If the value held in the atom is 31 bits or less,
learn/azimuth/blockchain.udon+2−2
@@ -45,5 +45,5 @@ computation Landscape the latter is not. We need a computational blockchain to
45enforce the specific rules of the Urbit identity registry.
45enforce the specific rules of the Urbit identity registry.
46
46
47For more background on the decision to use the Ethereum blockchain, check out
47For more background on the decision to use the Ethereum blockchain, check out
48−[these](urbit.org/essays/urbit-and-the-blockchain)
48+[these](urbit.org/posts/essays/urbit-and-the-blockchain)
49−[two](urbit.org/updates/2017.9.20-bootstrapping-urbit-from-ethereum) posts.
49+[two](urbit.org/posts/updates/2017.9.20-bootstrapping-urbit-from-ethereum) posts.
reference/cheat-sheet.udon+1−1
@@ -20,7 +20,7 @@ hand. So above is a download link to a Hoon cheatsheet .pdf. It's missing a
20few of the literal syntaxes, but it covers the most common ones.
20few of the literal syntaxes, but it covers the most common ones.
21
21
22This doesn't list any of the Ford runes, although there is now at least
22This doesn't list any of the Ford runes, although there is now at least
23−some documentation for those [here](../../tutorials/internals/ford/runes).
23+some documentation for those [here](/docs/learn/arvo/arvo-internals/ford#runes).
24
24
25The following runes also exist, but are currently undocumented and not listed in
25The following runes also exist, but are currently undocumented and not listed in
26the cheat sheet:
26the cheat sheet:
reference/glossary.udon+2−3
@@ -712,8 +712,7 @@ number of bits in their address:
712Any ship can be called an _urbit_. The lowercase "u" distinguishes it from Urbit
712Any ship can be called an _urbit_. The lowercase "u" distinguishes it from Urbit
713the software stack and Urbit the network.
713the software stack and Urbit the network.
714
714
715−_You can find a longer-form summary here:
715+_You can find a longer-form summary [here.](https://urbit.org/posts/essays/the-urbit-address-space/)._
716−[`urbit.org/posts/address-space/`](https://urbit.org/posts/address-space/)._
717
716
718An Urbit identity is a string like `~firbyr-napbes`. It means nothing,
717An Urbit identity is a string like `~firbyr-napbes`. It means nothing,
719but it's easy to remember and say out loud. `~firbyr-napbes` is actually
718but it's easy to remember and say out loud. `~firbyr-napbes` is actually
@@ -880,7 +879,7 @@ of the simpler built-in types.
880 error. This is one of the most commons errors in Hoon programming.
879 error. This is one of the most commons errors in Hoon programming.
881
880
882 _See [advanced types](/docs/reference/hoon-expressions/advanced/)_.
881 _See [advanced types](/docs/reference/hoon-expressions/advanced/)_.
883− _See [troubleshooting](/docs/reference/hoon-expressions/troubleshooting)_.
882+ _See [troubleshooting](/docs/reference/troubleshooting)_.
884
883
885
884
886### Unit
885### Unit
reference/hoon-expressions/irregular.udon−2
@@ -8,8 +8,6 @@
8
8
9##### `~palfun-foslup`
9##### `~palfun-foslup`
10
10
11−*Original Fora post* [here](https://urbit.org/fora/posts/~2016.12.29..19.37.08..89d5~/).
12−
13##### Reading guide
11##### Reading guide
14
12
15Headings contain runes, phonetics and tokens. Description contains a link to the docs and a short description of the rune. Both regular (R) and irregular (I) forms are given.
13Headings contain runes, phonetics and tokens. Description contains a link to the docs and a short description of the rune. Both regular (R) and irregular (I) forms are given.
reference/library/2e.udon+1−1
@@ -12,7 +12,7 @@
12FNV scrambler
12FNV scrambler
13
13
14Hashes an atom with the 32-bit FNV non-cryptographic hash algorithm. Multiplies
14Hashes an atom with the 32-bit FNV non-cryptographic hash algorithm. Multiplies
15−`a` by the prime number 16,777,619 and then takes the [block](../2c.md) of size
15+`a` by the prime number 16,777,619 and then takes the [block](../2c) of size
165 off the product's end, producing an atom.
165 off the product's end, producing an atom.
17
17
18#### Accepts
18#### Accepts
reference/library/2o.udon+1−1
@@ -81,7 +81,7 @@ Mold generator. A `jug` is a `map` of `set`.
81
81
82#### Discussion
82#### Discussion
83
83
84−See also: [`ja`](../2j), [`by`](../2i), [`map`](../2i), [`set`](..2h)
84+See also: [`ja`](../2j), [`by`](../2i), [`set`](../2h)
85
85
86---
86---
87### `++map`
87### `++map`
reference/library/3g.udon+4−4
@@ -55,9 +55,9 @@ and printed using `++so` and `++co` cores.
55
55
56Aura-atom pair
56Aura-atom pair
57
57
58−Used in `++coin`. Convenience methods [`++scot`](../4m.md) and
58+Used in `++coin`. Convenience methods [`++scot`](../4m) and
59−[`++scow`](../4m.md) print dimes as `++cord` and `++tape`, respectively.
59+[`++scow`](../4m) print dimes as `++cord` and `++tape`, respectively.
60−[`++slat`](../4m.md), [`++slav`](../4m.md), and [`++slaw`](../4m.md) are used
60+[`++slat`](../4m), [`++slav`](../4m), and [`++slaw`](../4m) are used
61to parse atoms of specific auras.
61to parse atoms of specific auras.
62
62
63#### Source
63#### Source
@@ -98,7 +98,7 @@ Optional result `p` and parsing continuation `q`.
98
98
99#### Discussion
99#### Discussion
100
100
101−See also: [Section 2e](../2e.md), `++rule`
101+See also: [Section 2e](../2e), `++rule`
102
102
103
103
104---
104---
reference/troubleshooting.udon+1−1
@@ -132,7 +132,7 @@ function.
132
132
133These are errors caused by type inference in pattern matching.
133These are errors caused by type inference in pattern matching.
134`mint-vain` means this hoon is never executed. `mint-lost` means
134`mint-vain` means this hoon is never executed. `mint-lost` means
135−there's a case in a `?-` ([*wuthep*](./docs/reference/hoon-expressions/rune/wut#wuthep)) that isn't handled.
135+there's a case in a `?-` ([*wuthep*](/docs/reference/hoon-expressions/rune/wut#wuthep)) that isn't handled.
136
136
137## Runtime crashes
137## Runtime crashes
138
138