summaryrefslogtreecommitdiff
path: root/docs/design.md
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-09-19 21:26:05 -0300
committerGabriel Schneider <[email protected]>2026-09-19 21:26:05 -0300
commitb05abcba3ea09ea106ad28364c6e40a3ec31b890 (patch)
tree9170fac5e7e5d8bde108de34a182aaa9d6844117 /docs/design.md
parentae310a207534b33b7321dd2b9f423a73b1969159 (diff)
downloadcloud9-b05abcba3ea09ea106ad28364c6e40a3ec31b890.tar.gz
cloud9-b05abcba3ea09ea106ad28364c6e40a3ec31b890.zip
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 <[email protected]>
Diffstat (limited to 'docs/design.md')
-rw-r--r--docs/design.md14
1 files changed, 14 insertions, 0 deletions
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<name>` toggle. Fragments register namespaced steps (`<name>`,
+`<name>-test`, ...), never call `standardTargetOptions`, and use root-relative
+`b.path("<name>/...")`. 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