on master help sign in
Merge pull request #1 from urbit/master
b274b49rmariani
docs/about/glossary.md+7−5
@@ -36,7 +36,9 @@ Any ship can be called an "urbit."
36An Urbit identity is a string like `~firbyr-napbes`. It means nothing,
36An Urbit identity is a string like `~firbyr-napbes`. It means nothing,
37but it's easy to remember and say out loud. `~firbyr-napbes` is actually
37but it's easy to remember and say out loud. `~firbyr-napbes` is actually
38just a 32-bit number (`3.237.967.392`, to be exact), like an IP address,
38just a 32-bit number (`3.237.967.392`, to be exact), like an IP address,
39−that we turn into a human-memorable string.
39+that we turn into a human-memorable string. The full name of this string
40+can be viewed by typing `our` in the Dojo, Urbit's shell. This is useful
41+when running a ship with a longer name, such as a *moon* or a *comet*.
40
42
41Technically, an urbit is a secure digital identity that you own and
43Technically, an urbit is a secure digital identity that you own and
42control with a cryptographic key, like a Bitcoin wallet. As in Bitcoin,
44control with a cryptographic key, like a Bitcoin wallet. As in Bitcoin,
@@ -182,7 +184,7 @@ The payload of a gate has a shape of `[sample context]`.
182- <h6 id="-gate-context">context:</h6> the subject in which the gate was defined
184- <h6 id="-gate-context">context:</h6> the subject in which the gate was defined
183
185
184*See [basic types](../../hoon/basic/#-core-p-type-q-map-term-type),
186*See [basic types](../../hoon/basic/#-core-p-type-q-map-term-type),
185−[`%-` ("cenhep")](../../hoon/rune/cen-call/hep-call/) (the
187+[`%-` ("cenhep")](../../hoon/rune/cen/hep/) (the
186[rune](#-rune) for calling a `gate`).*
188[rune](#-rune) for calling a `gate`).*
187
189
188#### <h4 id="-a-hoon">hoon</h4>
190#### <h4 id="-a-hoon">hoon</h4>
@@ -284,7 +286,7 @@ Here's some common mold terminology:
284 sample
286 sample
285- <h6 id="-mold-icon">icon:</h6> the type of the mold's range
287- <h6 id="-mold-icon">icon:</h6> the type of the mold's range
286
288
287−*See [mold hoons](../../hoon/rune/buc-mold/).*
289+*See [mold hoons](../../hoon/rune/buc/).*
288
290
289#### nest
291#### nest
290
292
@@ -302,10 +304,10 @@ error. This is one of the most commons errors in Hoon programming.
302A Hoon _rune_ is a pair of ASCII symbols used to begin a
304A Hoon _rune_ is a pair of ASCII symbols used to begin a
303[Hoon expression](#-a-hoon).
305[Hoon expression](#-a-hoon).
304
306
305−For example, the rune [`?:`](../../hoon/rune/wut-test/col-if/) is
307+For example, the rune [`?:`](../../hoon/rune/wut/col/) is
306Hoon's most common conditional, a branch on a boolean test. The first
308Hoon's most common conditional, a branch on a boolean test. The first
307symbol in a rune represents a family of related runes. For example, the
309symbol in a rune represents a family of related runes. For example, the
308−[`?` family](../../hoon/rune/wut-test/) are all conditionals.
310+[`?` family](../../hoon/rune/wut/) are all conditionals.
309
311
310The result of parsing a Hoon source expression&mdash;the rune, followed
312The result of parsing a Hoon source expression&mdash;the rune, followed
311by its respective children&mdash;into an AST node is simply called
313by its respective children&mdash;into an AST node is simply called
docs/arvo/basic.md+1−1
@@ -75,7 +75,7 @@ Your `%clay` filesystem should acknowledge the newly added files.
75
75
76Run an example to ensure it worked:
76Run an example to ensure it worked:
77
77
78− ~fintud-macrep:dojo> +project-euler/p1
78+ ~fintud-macrep:dojo/examples> +project-euler-p1
79 233.168
79 233.168
80
80
81Euler 1
81Euler 1
docs/arvo/network.md+3−3
@@ -39,12 +39,12 @@ a value, it prints that value out. To try this out, you have to start
39the app, then you can poke it from the command line with the following
39the app, then you can poke it from the command line with the following
40commands:
40commands:
41
41
42− ~fintud-macrep:dojo> |start %echo
42+ ~fintud-macrep:dojo> |start %examples %echo
43 >=
43 >=
44 ~fintud-macrep:dojo> :echo 5
44 ~fintud-macrep:dojo> :echo 5
45 [%echo %noun 5]
45 [%echo %noun 5]
46 >=
46 >=
47− ~fintud-macrep:dojo> :examples-echo [1 2]
47+ ~fintud-macrep:dojo> :echo [1 2]
48 [%echo %noun [1 2]]
48 [%echo %noun [1 2]]
49 >=
49 >=
50
50
@@ -61,7 +61,7 @@ from the command line, which we we did with `:echo 5`
61(`:[app-name] [argument(s)]`).
61(`:[app-name] [argument(s)]`).
62
62
63In this case, `++poke-noun` takes an argument (*sample*) `arg` and
63In this case, `++poke-noun` takes an argument (*sample*) `arg` and
64−prints it to dojo with `~&` ([sigpam](../../hoon/twig/sig-hint/pam-dump/)).
64+prints it to dojo with `~&` ([sigpam](../../hoon/rune/sig/pam/)).
65This is an unusual rune that formally "does nothing", but the interpreter
65This is an unusual rune that formally "does nothing", but the interpreter
66detects it and printfs the first child, before executing the second as if the
66detects it and printfs the first child, before executing the second as if the
67first didn't exist. This is a slightly hacky way of printing to the console,
67first didn't exist. This is a slightly hacky way of printing to the console,
docs/arvo/subject.md+3−3
@@ -15,7 +15,7 @@ Now we're going to cover the boiler plate that we skimmed over earlier.
15 =< (sum [1.000 2.000])
15 =< (sum [1.000 2.000])
16
16
17The first rune, `:-` (colhep, aka
17The first rune, `:-` (colhep, aka
18−[:cons](../../hoon/twig/col-cell/hep-cons/)), constructs the 2-element cell
18+[:cons](../../hoon/rune/col/hep/)), constructs the 2-element cell
19that will be our program. The first element, `%say`, tells the
19that will be our program. The first element, `%say`, tells the
20interpreter what to produce--in this case a value.
20interpreter what to produce--in this case a value.
21
21
@@ -28,7 +28,7 @@ Similarly, the rest of the program (which we construct with another
28producing a value of type `noun`, and the code that we run to actually
28producing a value of type `noun`, and the code that we run to actually
29produce our value of the type `noun`.
29produce our value of the type `noun`.
30
30
31−`=<` ([tisgal](../../hoon/twig/tis-flow/gal-rap/)) is a rune that takes two
31+`=<` ([tisgal](../../hoon/rune/tis/gal/)) is a rune that takes two
32children. The second child is the context against which we run the first
32children. The second child is the context against which we run the first
33child. So in this case, we are running the expression
33child. So in this case, we are running the expression
34`(sum [1.000 2.000])` against everything contained within the `|%`. In
34`(sum [1.000 2.000])` against everything contained within the `|%`. In
@@ -93,7 +93,7 @@ Cheatsheet:
93
93
94- To pass arguments from the command line to a program, you replace
94- To pass arguments from the command line to a program, you replace
95 the `*` in the first line of the boiler plate to
95 the `*` in the first line of the boiler plate to
96− `{^ {{arg/TYPE $~} $~}}` where `TYPE` is replaced with the type of
96+ `[^ [[arg=TYPE ~] ~]]` where `TYPE` is replaced with the type of
97 argument you're expecting. Then `+euler1 a` from the dojo sets `arg`
97 argument you're expecting. Then `+euler1 a` from the dojo sets `arg`
98 to `a`.
98 to `a`.
99- The empty list is `~`
99- The empty list is `~`
docs/using/admin.md+15−1
@@ -49,7 +49,21 @@ option in `tar`. With a pier `your-urbit/` something like this (from
49inside `urbit/`) should work:
49inside `urbit/`) should work:
50
50
51```
51```
52+tar -Scvzf ~/your-urbit.tar.gz ~/your-urbit/
53+scp your-old-server:~/your-urbit.tar.gz your-new-server:~
54+```
55+
56+Then to unzip it, on your other Unix server, run:
57+
58+```
59+tar xfvz your-urbit.tar.gz
60+```
61+
62+Delete the tar file, and, after installing Urbit on your new server,
63+start your urbit back up with:
64+
65+```
52−tar -Scvzf your-urbit.tar.gz ./your-urbit/
66+urbit your-urbit
53```
67```
54
68
55## Console
69## Console
docs/using/install.md+135−33
@@ -12,11 +12,11 @@ Installing Urbit is easy. It just takes a few minutes to get an
12instance up and running on the network.
12instance up and running on the network.
13
13
14Urbit is designed to run on any Unix box with an internet connection.
14Urbit is designed to run on any Unix box with an internet connection.
15−Debian (jessie), Mac OS X, FreeBSD and Fedora all work well.
15+macOS, Ubuntu/Debian, FreeBSD, and Fedora all work well.
16
16
17If you run into trouble installing Urbit, please let us know via
17If you run into trouble installing Urbit, please let us know via
18email, [questions@urbit.org](mailto:questions@urbit.org), or on the
18email, [questions@urbit.org](mailto:questions@urbit.org), or on the
19−forum: [urbit.org/fora](https://urbit.org/fora). You can also chat
19+forum: [fora.urbit.org](https://fora.urbit.org). You can also chat
20with us at [urbit.org/stream](https://urbit.org/stream).
20with us at [urbit.org/stream](https://urbit.org/stream).
21
21
22> Urbit is alpha software. It’s not yet completely stable, its crypto
22> Urbit is alpha software. It’s not yet completely stable, its crypto
@@ -41,56 +41,157 @@ gmp
41libcurl
41libcurl
42libsigsegv
42libsigsegv
43libtool
43libtool
44+libuv
45+meson
46+ninja
44openssl
47openssl
45python2
48python2
46ragel
49ragel
47re2c
50re2c
48```
51```
49
52
50−Which can usually be installed with the following one-liners:
53+### Instructions
54+
55+First, you'll install the required dependencies to build Urbit from source. Then, you'll clone the Urbit source code, hosted on Github. Next, you'll bootstrap the Git submodules needed for the build. Lastly, you'll run a [Meson](https://github.com/mesonbuild/meson) build on the Urbit source to create your Urbit binary for your host operating system. Then, finally, you'll be able to boot your urbit.
56+
57+For your host OS platform and relevant package installer, run the respective Bash shell commands listed below in a fresh terminal window to get Urbit installed:
58+
59+> For those new to the command line, see:
60+>
61+> - Mac: [Introduction to the Mac OS X Command Line](http://blog.teamtreehouse.com/introduction-to-the-mac-os-x-command-line)
62+> - Linux: [An Introduction to the Linux Terminal](https://www.digitalocean.com/community/tutorials/an-introduction-to-the-linux-terminal)
63+
64+#### macOS
65+
66+##### Homebrew
67+
68+> [Homebrew installation guide](https://treehouse.github.io/installation-guides/mac/homebrew)
51
69
52```
70```
53−# macOS (Homebrew) https://treehouse.github.io/installation-guides/mac/homebrew
71+# Bash
54−# Linuxbrew http://linuxbrew.sh/
72+
73+brew update
55−$ brew install autoconf automake cmake gcc git gmp libsigsegv libtool python2 openssl
74+brew install autoconf automake cmake gcc git gmp libsigsegv libtool meson ninja pkg-config python2 openssl re2c
75+git clone https://github.com/urbit/urbit
76+cd urbit
77+./scripts/bootstrap
78+./scripts/build
79+sudo install -m 0755 ./build/urbit /usr/local/bin
80+urbit
81+```
56
82
57−# macOS (Macports)
83+##### Macports
58−$ sudo port install autoconf automake cmake gmp libsigsegv openssl
59
84
60−# Ubuntu or Debian
85+```
86+# Bash
87+
88+sudo port selfupdate
61−$ sudo apt-get install autoconf automake cmake exuberant-ctags g++ git libcurl4-gnutls-dev libgmp3-dev libncurses5-dev libsigsegv-dev libssl-dev libtool make openssl python ragel re2c zlib1g-dev
89+sudo port install autoconf automake cmake gmp libsigsegv meson openssl
90+git clone https://github.com/urbit/urbit
91+cd urbit
92+./scripts/bootstrap
93+./scripts/build
94+sudo install -m 0755 ./build/urbit /usr/local/bin
95+urbit
96+```
62
97
63−# Fedora
98+#### Linux
64−$ sudo dnf install autoconf automake cmake ctags gcc gcc-c++ git gmp-devel libcurl-devel libsigsegv-devel libtool ncurses-devel openssl openssl-devel python2 ragel re2c
65
99
66−# FreeBSD
100+##### Linuxbrew
67−$ pkg install autoconf automake cmake curl gcc git gmake gmp libsigsegv libtool python ragel re2c
68
101
69−# Arch
102+> [Linuxbrew](http://linuxbrew.sh/)
70−$ pacman -S autoconf automake cmake curl gcc git gmp libsigsegv libtool ncurses openssl python ragel re2c
71
103
72−# AWS
104+```
105+# Bash
106+
107+brew update
73−$ sudo yum install --enablerepo epel autoconf automake cmake ctags gcc gcc-c++ git gmp-devel libcurl-devel libsigsegv-devel libtool ncurses-devel openssl-devel python re2c
108+brew install autoconf automake cmake gcc git gmp libsigsegv libtool meson ninja pkg-config python2 openssl re2c
109+git clone https://github.com/urbit/urbit
110+cd urbit
111+./scripts/bootstrap
112+./scripts/build
113+sudo install -m 0755 ./build/urbit /usr/local/bin
114+urbit
74```
115```
75
116
76−### Clone and make
117+##### Ubuntu or Debian
77
118
78−Once your dependencies are installed the rest is easy:
119+```
120+# Bash
121+
122+sudo apt-get update
123+sudo apt-get install autoconf automake cmake exuberant-ctags g++ git libcurl4-gnutls-dev libgmp3-dev libncurses5-dev libsigsegv-dev libssl-dev libtool make meson openssl python ragel re2c zlib1g-dev
124+git clone https://github.com/urbit/urbit
125+cd urbit
126+./scripts/bootstrap
127+./scripts/build
128+sudo install -m 0755 ./build/urbit /usr/local/bin
129+urbit
130+```
131+
132+##### Fedora
133+
134+```
135+# Bash
136+
137+sudo dnf upgrade
138+sudo dnf install autoconf automake cmake ctags gcc gcc-c++ git gmp-devel libcurl-devel libsigsegv-devel libtool meson ncurses-devel openssl openssl-devel python2 ragel re2c
139+git clone https://github.com/urbit/urbit
140+cd urbit
141+./scripts/bootstrap
142+./scripts/build
143+sudo install -m 0755 ./build/urbit /usr/local/bin
144+urbit
145+```
146+
147+##### FreeBSD
79
148
80```
149```
150+# Bash
151+
152+pkg upgrade
153+pkg install autoconf automake cmake curl gcc git gmake gmp libsigsegv libtool meson python ragel re2c
81−$ git clone https://github.com/urbit/urbit
154+git clone https://github.com/urbit/urbit
82−$ cd urbit
155+cd urbit
83−$ make # gmake on FreeBSD
156+./scripts/bootstrap
157+./scripts/build
158+sudo install -m 0755 ./build/urbit /usr/local/bin
159+urbit
84```
160```
85
161
86−After running `make`, your Urbit executable is in `bin/urbit`. Install
162+##### Arch
87−it wherever you'd like.
88
163
89```
164```
165+# Bash
166+
167+pacman -Syu
168+pacman -S autoconf automake cmake curl gcc git gmp libsigsegv libtool meson ncurses openssl python ragel re2c
169+git clone https://github.com/urbit/urbit
170+cd urbit
171+./scripts/bootstrap
172+./scripts/build
90−$ sudo install -m 0755 bin/urbit /usr/local/bin
173+sudo install -m 0755 ./build/urbit /usr/local/bin
174+urbit
91```
175```
92
176
93−Test that it works:
177+##### AWS
178+
179+```
180+# Bash
181+
182+sudo yum update
183+sudo yum install --enablerepo epel autoconf automake cmake ctags gcc gcc-c++ git gmp-devel libcurl-devel libsigsegv-devel libtool meson ncurses-devel openssl-devel python re2c
184+git clone https://github.com/urbit/urbit
185+cd urbit
186+./scripts/bootstrap
187+./scripts/build
188+sudo install -m 0755 ./build/urbit /usr/local/bin
189+urbit
190+```
191+
192+### Test for successful installation
193+
194+After running your installed `urbit` command, check to see if the following output was printed:
94
195
95```
196```
96$ urbit
197$ urbit
@@ -144,14 +245,15 @@ Simple Usage:
144 urbit <myplanet or mycomet> to restart an existing urbit
245 urbit <myplanet or mycomet> to restart an existing urbit
145```
246```
146
247
248+If so, then you're ready to boot your urbit. If not, check that you entered each Bash command correctly for your host OS platform. If you're still experiencing issues, feel free to drop into [Urbit chat](https://urbit.org/stream) for troubleshooting help.
249+
147### Boot your urbit
250### Boot your urbit
148
251
149−And you're done! If you're running Urbit on a normal modern PC or Mac, or
252+You've now installed the Urbit binary. If you're running Urbit on a normal modern PC or Mac, or
150−on a large cloud instance, move onto the next [setup](../setup/) section to
253+on a large cloud instance, move onto the next [setup](../setup/) section.
151−boot your urbit.
152
254
153−If you're running Urbit in the cloud on a small instance, however, read
255+If you're running Urbit in the cloud on a small instance, read
154−the below section, as you may need to additionally configure swap space.
256+the below section, as you may need to additionally configure swap space, then continue.
155
257
156### (Set up swap)
258### (Set up swap)
157
259
@@ -163,7 +265,7 @@ configuration is smaller than this, and you need to manually configure a
163swapfile.
265swapfile.
164
266
165Digital Ocean has a post on adding swap
267Digital Ocean has a post on adding swap
166−[here](https://www.digitalocean.com/community/tutorials/how-to-add-swap-on-ubuntu-14-04).
268+[here](https://www.digitalocean.com/community/tutorials/how-to-add-swap-space-on-ubuntu-16-04).
167For Amazon there’s a StackOverflow thread
269For Amazon there’s a StackOverflow thread
168[here](http://stackoverflow.com/questions/17173972/how-do-you-add-swap-to-an-ec2-instance).
270[here](http://stackoverflow.com/questions/17173972/how-do-you-add-swap-to-an-ec2-instance).
169
271