diff options
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/fs.md | 2 | ||||
| -rw-r--r-- | docs/ui-review.md | 2 | ||||
| -rw-r--r-- | docs/v9fs.md | 16 |
3 files changed, 9 insertions, 11 deletions
@@ -197,7 +197,7 @@ for Unix and TCP, a poll loop for QUIC, and the 9P client for mounts); `zig build fs-test` drives real sessions using the independent Python client in `test/ninep.py`; `zig build fs-discovery-test` checks that browsing -creates nothing, that the walk to `/pane/new` and a remove work, and that +creates nothing, that an open of `/pane/new` and a remove work, and that `look`, `exec`, `name`, `sel` and `log` behave. `zig build 9p-test` checks the two engine configurations' budgets (the engine's own tests are cloud9's `zig build test`); `zig build fs-bench` measures diff --git a/docs/ui-review.md b/docs/ui-review.md index 2438f2ef..58a42e61 100644 --- a/docs/ui-review.md +++ b/docs/ui-review.md @@ -198,7 +198,7 @@ Review artifacts from this pass: ## Regression checks Both native binaries built in ReleaseFast. The full TTY and SDL unit suites -passed with the inherited nesting variables `PARDES_FORWARD_LOOK`, `PARDES_9P` +passed with the inherited nesting variables `PARDES_PID`, `PARDES_9P` and `PARDES_PANE` removed from the test process. Those variables exposed an existing environment-ownership issue in native subprocess tests: libc's environment was changed while the Zig test I/O retained the old slice. This diff --git a/docs/v9fs.md b/docs/v9fs.md index 1b14c21f..cfbbd35b 100644 --- a/docs/v9fs.md +++ b/docs/v9fs.md @@ -13,16 +13,14 @@ cat "$PARDES_MOUNT/index" cat "$PARDES_MOUNT/README" cat "$PARDES_MOUNT/pane/$PARDES_PANE/body" echo 'Msg hello' > "$PARDES_MOUNT/exec" -awk '{print $1}' "$PARDES_MOUNT/pane/new/ctl" +n=$(cat "$PARDES_MOUNT/pane/new") ``` -Walking to `pane/new` opens a pane, and the walk lands on that pane's own -directory, so its `ctl` answers the serial to use afterwards. The kernel keeps -the name it walked rather than the one the server answers back, so -`pane/new` stays in the dentry cache as a name of its own; address the pane as -`pane/<serial>` once you have it, and expect a fresh path resolution of -`pane/new` to open another pane. It is not listed in `pane/`, so `ls -l` and -`find` over the mount create nothing. +**Opening** `pane/new` makes a pane, and reading that open file answers its +serial; address the pane as `pane/<serial>` from then on. Each open makes +another one, so read it once and keep the number. A *stat* makes nothing, +which is why `new` can be listed at all: `ls`, `ls -l` and `find` over the +whole mount create nothing, because none of them open it. The mount belongs to that pane's subprocess tree. Other panes and the editor core keep their original mount namespace. It works in native Linux TTY and SDL @@ -112,5 +110,5 @@ Pardes accepts this truncation without storing caller-selected timestamps; standalone timestamp, permission, and ownership changes remain unsupported. The initial kernel probe passed on this host on 2026-09-14. The broader -`fs-test` has an existing syntax-bold assertion failure at `test/fs.py:459`, +`fs-test` has an existing syntax-bold assertion failure (now `test/fs.py:615`), also reproduced on the cached editor binary preceding the truncation fix. |
