diff options
| -rw-r--r-- | docs/cloud9.md | 2 | ||||
| -rw-r--r-- | docs/fs.md | 16 |
2 files changed, 12 insertions, 6 deletions
diff --git a/docs/cloud9.md b/docs/cloud9.md index cd92fd05..f993750f 100644 --- a/docs/cloud9.md +++ b/docs/cloud9.md @@ -9,7 +9,7 @@ use `.cloud9 = .{ .path = "../cloud9" }` while editing both. - The engine (fids, jobs, parking, flush, hangup) is cloud9's `fs.Server`; the control tree in `src/ninep/` is its backend. `src/9p.zig` names the - editor's and the board's `fs.Options` (msize 8192, 256 fids). + editor's and the board's `fs.Options` (the editor's: msize 65536, 256 fids, 128 held reads a connection). - Unix and TCP listeners run on cloud9's `serve.Runner` (`std.Io`: an accept task per listener, a reader and a writer task per connection, 16 connections). Requests are answered on the connection's task, which takes @@ -153,7 +153,8 @@ column's `exec` take one command a line. The whole write is checked first (a control character other than a tab fails it all, EINVAL); then lines run in order, and a failing line fails the write after the lines before it took effect, as acme's ctl does. Blank lines are skipped. A mount cuts a big -write into pieces of at most one message (msize 8192, less the header), and +write into pieces of at most one message (msize 64 KiB, 65536 negotiated, +less the header), and each line runs once it is whole. A write that does not fill its message is whole, so its last line runs even without a newline (`printf Save > exec`). An `Edit` whose `{` or `a`/`c`/`i` text is still open waits for the next write on that open, and @@ -322,9 +323,14 @@ none). `current` is the column with the keyboard now, which may differ from the active one. `/index`'s last field is each pane's column serial. A session holds 16 columns (`no space for a column: 16 max`, ENOSPC), each at -least 10 cells wide (`Newcol` from a column under 20 fails `this one is too -narrow to split`). Since root `Newcol` halves the active column, reach 16 by -writing `Newcol` to the widest column's `exec`. +least 10 cells wide, so 16 wants a window 160 cells wide or more. `Newcol` +halves the column it is run from, and one under 20 cells does not split +(`this one is too narrow to split`): reach 16 by writing `Newcol` to the +widest column's `exec` each time, not to the root's, which keeps halving the +one just made. `Newcol` is refused as well when a narrower column would +wrap its panes' tags onto more rows and leave one under its tag and two +rows (`Newcol: no space for a column: the panes' tags would not fit`); a +refused `Newcol` logs its `err` alone and uses up no column serial. `/col/<n>/ctl` takes `Delcol`, `Joincol`, `New` and `Tty` for that column; `/col/<n>/exec` is a click in its tag; `rmdir /col/<n>` closes an empty column @@ -664,7 +670,7 @@ become spaces. | panes | 64 (16 on the board) | | columns | 16 (6 on the board), each at least 10 cells wide | | rows a pane keeps | its tag and 2 | -| msize | 8192 offered | +| msize | 65536 (64 KiB) offered | | connections | 16 Unix+TCP, 16 QUIC | | opens holding state | 64 | | named mounts | 8 | |
