9Our typed and marked computation engine.
11A variety of different services are provided by `%ford`, but they mostly
12involve compiling hook files, slapping/slammming code with marked data,
13and converting data between marks, including validating data to a mark.
14Throughout every computation, `%ford` keeps track of which resources are
15dependencies so that the client may be aware when one or more
16dependencies are updated.
18`%ford` neither accepts unix events nor produces effects. It exists
19entirely for the benefit of applications and other vanes, in particular
20`%gall`. `%eyre` exposes the functional publishing aspects of `%ford`
21while `%gall` uses `%ford` to control the execution of applications.
22`%clay` is intended to use `%ford` to managed marked data, but this is
30`%ford` accepts just one card, `%exec`. This is misleading, however,
31since there are fourteen different `silk`s that may be used with it. In
32every case, the expected response to a `%exec` card is a `%made` gift
33with either an error or the produced result along with its set of
36Silks may autocons, so that the product of a cell of silks is a cell of
37the product of the two silks.
41Tries to functionally produce the file at a given beam with the given
42mark and heel. It fails if there is no way to translate at this level.
46Functionally produces the file at a given beam with the given mark and
47heel. If there is no way to translate at this beam, we pop levels off
48the stack and attempt to bake there until we find a level we can bake.
49This should almost always be called instead of `%bake`.
53Slams the result of one silk against the result of another.
57Translates the given silk to the given mark, if possible. This is one of
58the critical and fundamental operations of ford.
62Diffs the two given silks (which must be of the same mark), producing a
63cage of the mark specified in `++mark` in `++grad` for the mark of the
68Produces exactly its input. This is rarely used on its own, but many
69silks are recursively defined in terms of other silks, so we often need
70a silk that simply produces its input. A monadic return, if you will.
74Computes the given silk with the given tank as part of the stack trace
79Produces an error if the cage is empty. Otherwise, it produces the value
84Takes a silk and a list of changes to make to the silk. At each wing in
85the list we put the value of the associated silk.
89Applies the second silk as a patch to the first silk. The second silk
90must be of the mark specified in `++mark` in `++grad` for the mark of
95Performs a structured assembly directly. This is not generally directly
96useful because several other silks perform supersets of this
97functionality. We don't usually have naked hoods outside ford.
101Produces a core containing the entirety of zuse and hoon, suitable for
102running arbitrary code against. The mark is `%noun`.
106Slaps a twig against a subject silk. The mark of the result is `%noun`.
110Validates untyped data from a ship against a given mark. This is an
111extremely useful function.
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list