summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-09-27 20:20:27 -0300
committerGabriel Schneider <[email protected]>2026-10-01 00:12:14 -0300
commit7dc3891ed574d6e96548f592b09b0f8abc87ae2a (patch)
tree70cddb9ce4a7e9039f8167e806b7e996f94eefb0 /docs
parentacd9e032a147f4aa7ad49110dc2f4fb945e7a9bb (diff)
downloadpardes-7dc3891ed574d6e96548f592b09b0f8abc87ae2a.tar.gz
pardes-7dc3891ed574d6e96548f592b09b0f8abc87ae2a.zip
Keep what each open holds in one table of open records
Snapshots (and /log's cursor), runs, and the reader_handle constants for event and pty/data each reused the open handle and each validated handle and node on its own. Now p.fs.opens is one table of 64 records, each the node it was opened on and a tagged union of what it holds, like lib9p's per-fid aux and acme's Fid (editors/acme/dat.h:373-385): one lookup (openOf), one release, ENFILE when full. A held read lives in its open's record, so it goes with the release. Opens that hold nothing answer handle 0 and take no record. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Diffstat (limited to 'docs')
-rw-r--r--docs/fs.md7
1 files changed, 5 insertions, 2 deletions
diff --git a/docs/fs.md b/docs/fs.md
index 0d6ffcda..64ac9ba1 100644
--- a/docs/fs.md
+++ b/docs/fs.md
@@ -232,8 +232,11 @@ never writes `follow`, so it sees nothing new: use the follow open instead. `/sc
`cols`, `rows`, `cursor`, a `styles` table, and row-major `cells` of
`[grapheme, style_index]`. Each open freezes one frame until close. A
terminal `body` freezes its history on the first read of each open handle;
-`pty/data` streams live output. Screen and terminal-body snapshots share 32
-handle slots, released on close or disconnect.
+`pty/data` streams live output. An open that holds something between open
+and close -- a frozen screen, terminal body or log, a run, an `event` or
+`pty/data` open -- takes one of 64 records (lib9p's per-fid aux, acme's
+Fid), released on close or disconnect; past that such an open fails with
+`ENFILE`. Other opens hold nothing and are not counted.
`-Dembed-sources=true` embeds the editor's sources and serves them under
`/src` (and `/shaders` on GUI builds). `EffectCode <effect>` lists the current