summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-09-20 00:59:34 -0300
committerGabriel Schneider <[email protected]>2026-10-01 00:12:14 -0300
commit2ce8956c8e9843eba7407ab12593871ee451b991 (patch)
tree3c19599045e65947535365f51bfa5339aaa4568f /docs
parentc1990b3e6e196ad41379aa432bf3ccca8a65d9f0 (diff)
downloadpardes-2ce8956c8e9843eba7407ab12593871ee451b991.tar.gz
pardes-2ce8956c8e9843eba7407ab12593871ee451b991.zip
Use cloud9's file-server engine instead of the private copy
src/9p.zig shrinks to an 88-line alias: the engine and the backend contract (Req, Reply/ReplyWith, Op, Status, Attr, E, error strings) now come from cloud9.fs. The editor's limits become cloud9.fs.Options values; the ESP32-P4 board backend drops its own copies of the contract types. No behaviour change; fs-bench still allocates nothing per request. cloud9 re-pinned to the commit that carries the engine. Co-Authored-By: Claude Fable 5.1 <[email protected]>
Diffstat (limited to 'docs')
-rw-r--r--docs/cloud9.md16
-rw-r--r--docs/fs.md14
2 files changed, 18 insertions, 12 deletions
diff --git a/docs/cloud9.md b/docs/cloud9.md
index e18130ef..d31d2cb3 100644
--- a/docs/cloud9.md
+++ b/docs/cloud9.md
@@ -7,14 +7,18 @@ other dependency; no sibling checkout is required. Re-pin with
`zig fetch --save=cloud9 git+https://git.sr.ht/~gbrls/cloud9#<commit>`, and swap in
`.cloud9 = .{ .path = "../cloud9" }` while editing both packages at once.
-`src/9p.zig` remains the adapter between cloud9 requests and Pardes filesystem
-operations. Mounting, Unix namespace discovery and permissions, the editor event
-loop, connection limits, and exported tree policy remain here. `src/9p_quic.zig`
+The file-server engine (fids, jobs, parking, flush, hangup) is cloud9's
+`fs.Server`; the control tree in `src/ninep/` is its backend, using cloud9's
+`fs.Req`, `fs.Op`, `fs.Status`, `fs.E` and `fs.ReplyWith` (extended with the
+editor's reply payload locator). `src/9p.zig` names the editor's and the
+board's `fs.Options` and re-exports the wire names the transports use.
+Mounting, Unix namespace discovery and permissions, the editor event loop,
+connection limits, and exported tree policy remain here. `src/9p_quic.zig`
selects the existing `pardes-9p` ALPN for cloud9's optional OpenSSL transport.
-The snapshot client and standalone protocol/GPIO tests import the same module.
-The separate `05-zig-p4` build also supplies cloud9 for the GPIO firmware entry.
+The standalone protocol/GPIO tests import the same module. The separate
+`05-zig-p4` build also supplies cloud9 for the GPIO firmware entry.
-Run `zig build 9p-test` for the filesystem adapter and
+Run `zig build 9p-test` for the engine configurations and
`zig build 9p-io-test -Dquic=true` for native transport/client integration. Run cloud9's `zig build test`,
`transport-test`, `quic-test -Dquic=true`, `fuzz`, and `differential` steps for the
shared implementation. See cloud9's `docs/validation.md` for recorded runs and
diff --git a/docs/fs.md b/docs/fs.md
index c16f810b..a9293393 100644
--- a/docs/fs.md
+++ b/docs/fs.md
@@ -137,15 +137,17 @@ Zero-length truncation accepts the accompanying `mtime` hint sent by Linux
v9fs; the hint is not stored. Standalone timestamp changes remain refused.
The tree lives in `src/ninep/`: `tree.zig` (nodes, lookup, readdir, dispatch,
-the backend contract), `pane.zig` (pane files), `ctl.zig`, `addr.zig`,
-`pty.zig`, `events.zig` (event and log streams), `screen.zig` and
-`sources.zig`. The protocol engine is `src/9p.zig`, the transports
-`src/9p_io.zig`; `src/fs.zig` keeps host access, mounts, resolution, find and
-grep.
+and the editor's reply payload over cloud9's backend contract), `pane.zig`
+(pane files), `ctl.zig`, `addr.zig`, `pty.zig`, `events.zig` (event and log
+streams), `screen.zig` and `sources.zig`. The protocol engine is cloud9's
+`fs.Server`, configured in `src/9p.zig` (the editor's and the board's
+capacities); the transports are `src/9p_io.zig`; `src/fs.zig` keeps host
+access, mounts, resolution, find and grep.
`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 and that `new`, `ctl`, `name`, `sel` and `log` behave. `zig build
-9p-test` checks the freestanding wire protocol; `zig build fs-bench` measures
+9p-test` checks the two engine configurations' budgets (the engine's own
+tests are cloud9's `zig build test`); `zig build fs-bench` measures
filesystem transactions in the core.
`zig build fs-test quic-test -Dquic=true` also exercises QUIC mounts and I/O.