From b05abcba3ea09ea106ad28364c6e40a3ec31b890 Mon Sep 17 00:00:00 2001 From: Gabriel Schneider Date: Sat, 19 Sep 2026 21:26:05 -0300 Subject: Add 9player and introspect as programs beside the library 9player/: FUSE mount CLI that mounts a 9P2000 tree into a fresh user+mount namespace and runs a program in it (no root, no libfuse, no libc). introspect/: the 9P debug/introspection library (freestanding core, value renderers, Linux probe with threads/stacks/memory/breakpoints/panics) and its demo server. Each has its own build fragment; the root build.zig wires them behind -D9player/-Dintrospect with namespaced steps (9player-itest, introspect-check-freestanding, programs-test, ...) and exports the introspect module for dependents. This is the layout for related programs. Co-Authored-By: Claude Fable 5.1 --- docs/design.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'docs') diff --git a/docs/design.md b/docs/design.md index d8d55c4..d12b92c 100644 --- a/docs/design.md +++ b/docs/design.md @@ -66,6 +66,20 @@ identity verification must provide that policy before using it across a trust boundary. OpenSSL allocations and handshake costs are outside the allocation-free protocol core. Accepted connections must close before their shared listener. +# Related programs + +Programs built on the library ship from this repository in sibling +directories of `src/` (`introspect/`, `9player/`), never inside it: each has +its own `src/`, `test/`, `docs/`, README and a `build.zig` fragment +(`pub fn add(b, ctx)`) that the root `build.zig` imports, passes the resolved +target, optimize mode and the `cloud9` module to, and enables with a +`-D` toggle. Fragments register namespaced steps (``, +`-test`, ...), never call `standardTargetOptions`, and use root-relative +`b.path("/...")`. The library keeps its contract: mounting, namespaces, +threads, allocation and process policy stay in the program. `introspect` is +also exported as a module next to `cloud9` for dependents. New related +programs follow this layout. + # Pardes integration Pardes consumes the sibling package through build.zig.zon. Its `src/9p.zig` now -- cgit v1.3