diff options
| author | Gabriel Schneider <[email protected]> | 2026-09-27 20:20:27 -0300 |
|---|---|---|
| committer | Gabriel Schneider <[email protected]> | 2026-10-01 00:12:14 -0300 |
| commit | 7dc3891ed574d6e96548f592b09b0f8abc87ae2a (patch) | |
| tree | 70cddb9ce4a7e9039f8167e806b7e996f94eefb0 /docs/fs.md | |
| parent | acd9e032a147f4aa7ad49110dc2f4fb945e7a9bb (diff) | |
| download | pardes-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/fs.md')
| -rw-r--r-- | docs/fs.md | 7 |
1 files changed, 5 insertions, 2 deletions
@@ -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 |
