The representation of a graph of processes and pipe halves (or files) that sits between ShellSubset's parse trees and the future module, called Proc::Spawner here; asked for in your message of 2026-11-01 (03:55). It continues the page “Run Graph API”, whose marks stay valid. Nothing below is written yet, except R2 and the script that drew the pictures.
Words used throughout. The executor: ShellSpawn, the module that runs parse trees through posix_spawn (claude/pspawn-design.md). A process and an end: the two kinds of node (N1). An edge: one fd of one process, connected to one end (N3). Forgetting an end: the parent closes its own copy (N2). Keep: N4. The shell layer: N3.
How to read the pictures: a box is a process, with its fd numbers in small cells, fds it reads on the left and fds it writes on the right; an fd a child inherits unchanged from Perl (its fd 0 is Perl's fd 0) is left out. Two circles w and r in a dashed frame are the halves of one pipe. A page shape is a file; “Perl's fd N” is a fd of the parent itself. Borders and colors show states (N9).
Loading marks…