10Our application server manager.
12It allows applications and vanes to send messages to applications and
13subscribe to data streams. This requires `%gall` to be a sort of a
14hypervisor. Messages coming into `%gall` are routed to the intended
15application, and the response comes back along the same route. If the
16intended target is on another ship, `%gall` will behind-the-scenes route
17it through ames to the other ship to run. This provides an abstraction
18where all apps on all ships are communicated with over the same
21`%gall` neither accepts events from unix nor produces effects. It exists
22entirely for the benefit of other vanes and, in particular,
23applications. Eyre exposes `%gall`'s interface over http, and ames does
24the same over the ames network. `%gall` uses ford to compile and run the
29`%gall` accepts the following cards. The first three are the most
30commonly used, while the others are primarily used internally.
34Sends a message to an app. This will result in a call to the app's
35`++poke` arm. The response is exactly one of a `%nice` if the action
36succeeded or a `%mean` if not.
40Subscribes to a stream from an app. This will result in a call to the
41app's either `++peek` or `++peer` arm. The first response will always be
42either a `%nice` or a `%mean`, indicating whether or not the
43subscription was successful. After the first response, there will be
44zero or more responses of either `%rush` or `%rust`, which communicate
45either a differential or full update to the data stream. There may be a
46`%mean`, which indicates that the subscription has been canceled and no
47more responses will be received along this stream.
52Unsubscribes the current duct from its stream. This receives a response
53of either a `%nice` or a `%mean`. Note that a response of `%nice` does
54not imply that the current duct was in fact subscribed to any stream.
58Initializes a ship's apps. This should be called exactly once for each
59ship on the pier. This produces no moves in response.
63Instantiates a child app. The app will be at path `[p parent-path]`, and
64it will be an instance of the `q` app. The only response will be `%gone`
70Signifies a remote request from ames. `r` should be of type `rook`. This
71how an app on a foreign ship may send a `%mess`, `%show`, or `%nuke`
72card. Note that `%gall` automatically converts `%mess`, `%show`, and
73`%nuke` into ames messages behind the scenes, so the only entity that
74should use `%rote` and `%roth` is ames. Formally, the response is either
75a `%nice` or a `%mean`, which ames uses to give a positive or negative
76ack. A logical response comes by passing a `%roth` card.
81Gives the response received from a remote request. `r` should be of type
82`roon`. This is how an app responds to a foreign request with a `%rush`,
83`%rust`, `%nice`, or `%mean`. The response is either a `%nice` or a
84`%mean`. Even though we, as the proverb goes, "never ack an ack", we do
85need to acknowledge these responses since they're really independent
91Wipes the given app from memory. This is generally considered a hack,
92but it is sometimes useful during development to wipe the state of an
93app. We don't guarantee that this actually completely wipes the app.
94Generally, you want to use a `%cide` card if you actually want to kill
95an app. This gives no response.
100Kills an app and all its children. Even though it's not technically a
101part of `%gall`'s interface since it's not in `++kiss` and can't be
102called from the outside, it's worth mentioning `%cide`, which may be
103called from within `%gall` apps. It should call `++part` to allow the
104app any last words. This gives no response.
111Handles incoming messages. Most commonly with an associated `%logo`. For
112example `++poke-json` handles an incoming JSON request from `%eyre`.
116Handles incoming subscriptions.
120Handles dropping subscribers.
124Handles responses to `%pass` moves.
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