on master help sign in
Merge pull request #1321 from del-distributed/patch-1
58c3df3~datnut-pollen
content/docs/hoon/hoon-school/behn.md+3−3
@@ -12,7 +12,7 @@ Following this lesson, we will introduce Gall, a vane used to build user space a
12
12
13In order to introduce vanes, we must first introduce the concept of a [kernel](https://en.wikipedia.org/wiki/Kernel_(operating_system)). The kernel is in some sense the "core" of an operating system, in that it has complete control over all events in the system and may perform any operation. It is the first part of the operating system to boot, and is responsible for spawning all other processes and routing their communication to one another. The tasks a kernel performs are very low level - managing memory, prioritizing processes, keeping track of time, managing hardware I/O, etc.
13In order to introduce vanes, we must first introduce the concept of a [kernel](https://en.wikipedia.org/wiki/Kernel_(operating_system)). The kernel is in some sense the "core" of an operating system, in that it has complete control over all events in the system and may perform any operation. It is the first part of the operating system to boot, and is responsible for spawning all other processes and routing their communication to one another. The tasks a kernel performs are very low level - managing memory, prioritizing processes, keeping track of time, managing hardware I/O, etc.
14
14
15−Kernel code is generally kept to be as minimal as possible, and so almost anything non-trivial is put into an extension called a kernel module. **Vanes** are kernel modules for Arvo. Arvo currently has eight vanes known as Ames, Behn, Clay, Dill, Eyre, Ford, Gall, and Hall. You can read a short description of each one in [Arvo](/docs/arvo/), along with a more thorough explanation of how vanes communicate than the following.
15+Kernel code is generally kept to be as minimal as possible, and so almost anything non-trivial is put into an extension called a kernel module. **Vanes** are kernel modules for Arvo. Arvo currently has seven vanes known as Ames, Behn, Clay, Dill, Eyre, Gall, and Iris. You can read a short description of each one in [Arvo](/docs/arvo/), along with a more thorough explanation of how vanes communicate than the following.
16
16
17Vanes communicate with one another by exchanging chunks of data known as
17Vanes communicate with one another by exchanging chunks of data known as
18`move`s. We will get into more detail above what a `move` is in our example of
18`move`s. We will get into more detail above what a `move` is in our example of
@@ -101,10 +101,10 @@ This arm is called when Behn is first launched. It gives Behn a `duct` to the un
101
101
102### External interface
102### External interface
103
103
104−Arvo talks to Behn via four arms, `++call`, `++load`, `++scry`, `++stay`, and ``++take``, which ultimately call arms in the `event-core` of which we have listed a subset above. Here we will only look at `++call` and `++take`.
104+Arvo talks to Behn via five arms, `++call`, `++load`, `++scry`, `++stay`, and ``++take``, which ultimately call arms in the `event-core` of which we have listed a subset above. Here we will only look at `++call` and `++take`.
105
105
106#### ++call
106#### ++call
107When Behn is `%pass`ed a `note` from another vane, that is enacted upon by Arvo via the `++call` gate. The `note` specifies what action to take, which are references to the internal arms. This is done by including in the `note` a symbol such as `%born`, `%rest`, `%wait`, or `%wake`, which ultimately call the arms with those names in the `event-core`.
107When Behn is `%pass`ed a `note` from another vane, that is enacted upon by Arvo via the `++call` gate. The `note` specifies what action to take, which are references to the internal arms. This is done by including in the `note` a symbol such as `%born`, `%rest`, `%wait`, or `%wake`, which ultimately call the arms with those names in the `event-core`.
108
108
109#### ++take
109#### ++take
110−When Behn is ready to inform another vane or application that a timer has elapsed, Arvo activates the `++take` gate. That is, Arvo `take`s a `gift` from Behn that includes the symbol `%wake`, and `%pass`es it to the the requestee. `%wake` is the only kind of `gift` that Behn can make, but other vanes may possess multiple responses.
110+When Behn is ready to inform another vane or application that a timer has elapsed, Arvo activates the `++take` gate. That is, Arvo `take`s a `gift` from Behn that includes the symbol `%wake`, and `%pass`es it to the requestee. `%wake` is the only kind of `gift` that Behn can make, but other vanes may possess multiple responses.
content/docs/hoon/hoon-school/type-polymorphism.md+1−1
@@ -267,7 +267,7 @@ Let's say you want to write a function that takes a gate as one (or more) of its
267
267
268It's quite useful to be able to pass cores as arguments. But let's think about how to write a function that accepts a core as input. How do we define a sample so that it accepts a core?
268It's quite useful to be able to pass cores as arguments. But let's think about how to write a function that accepts a core as input. How do we define a sample so that it accepts a core?
269
269
270−We _could_ define the sample by example -- i.e., with `$_`, or `_` for short -- using a core. Consider the following, in which `mycore` is the example core and `apply` is function that accepts gates:
270+We _could_ define the sample by example -- i.e., with `$_`, or `_` for short -- using a core. Consider the following, in which `mycore` is the example core and `apply` is a function that accepts gates:
271
271
272```
272```
273> =mycore =>([12 13] |=(a=@ +(a)))
273> =mycore =>([12 13] |=(a=@ +(a)))