diff options
| author | Gabriel Schneider <[email protected]> | 2026-09-28 16:59:45 -0300 |
|---|---|---|
| committer | Gabriel Schneider <[email protected]> | 2026-10-01 00:12:15 -0300 |
| commit | 04e4323a27237bc886e92ce20c02c42c6f594d1f (patch) | |
| tree | d4b3e0ae6e19d03e86d38c153ccc542f8d2a14c9 /docs/open-questions.md | |
| parent | 84b04c8ea7f04ba7569628e49ca900622c8d7858 (diff) | |
| download | pardes-04e4323a27237bc886e92ce20c02c42c6f594d1f.tar.gz pardes-04e4323a27237bc886e92ce20c02c42c6f594d1f.zip | |
The docs say which shell a command runs in, what Kill's word matches, where dumps go and in what time, and how to send code to a REPL
Dogfood found the docs saying $SHELL -c where commands run the root ctl's Shell, the README's log line missing run, exit, send, dump and restore, Kill's argument unexplained, and nothing on Repl - and bare Repl, on bracketed paste for multi-line code over pty/data, or on the UTC dump time. The Restore write's ECONNRESET through a mount is documented rather than fixed: pardes sends the answer before the hang-up, and 9ns drops it when its next send fails first. The REPL decision is recorded with the others, and the fs guide says a builtin's word still runs first.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Diffstat (limited to 'docs/open-questions.md')
| -rw-r--r-- | docs/open-questions.md | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/docs/open-questions.md b/docs/open-questions.md index a2ce2086..d4b5699c 100644 --- a/docs/open-questions.md +++ b/docs/open-questions.md @@ -11,7 +11,8 @@ Raised 2026-09-27 in the review of pardes against acme (Plan 9 source at **Decided 2026-09-28: a command pane.** Clicked or written at an interactive terminal at its prompt, the line is typed into that shell, whose state the clicker can see. From anywhere else it runs as its own terminal pane whose -child is `$SHELL -c` the line in the pane's directory: full emulation +child is the root ctl's `Shell` run with `-c` and the line, in the pane's +directory: full emulation (colours, `less`, `vim`, `sudo`'s prompt work), the exit status from waiting on the child (`exit N`, `exit 127` for a misspelling, no prompt marks needed), Kill signalling its process group, `run`/`exit` records in the log, @@ -57,3 +58,19 @@ behaviour inside a chosen terminal: a line in, `exit N` and its output out. The planned root `ctl` (session builtins) and pane `ctl` (pane builtins) refuse unknown words, whatever is decided here; the question is only what `exec` and the middle-click do with them. + +## Where does an exec from a code file go? + +**Decided 2026-09-28: to a REPL bound for its language, when one is.** +`Repl python` binds a terminal; then an exec made by a gesture (a middle +click, the execute key, a selection or a single word) on the body of a file +in that language, or on the REPL's own body, is typed into the REPL +instead of run. What stays a command whatever is bound: a builtin's word, +a word in a tag, `Exec <text>` run by name, a command word @`cmd` in the +text, and a 9P `exec` write (a script writes the REPL's `pty/data`). An +event record written back is done as the click it was, REPL and all. With +several bound the pane asks which, one key answering, and remembers +nothing. A REPL takes text only while its program has the terminal, and a +done command pane cannot be bound. Chosen over a per-file or per-directory +binding, which would need a place to keep and show it; bindings are not +dumped. `docs/fs.md` has the behaviour. |
