summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/cloud9.md2
-rw-r--r--docs/fs.md16
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
diff --git a/docs/fs.md b/docs/fs.md
index 49b10a7b..c7ef0857 100644
--- a/docs/fs.md
+++ b/docs/fs.md
@@ -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 |