A rewrite of the Plan 9 rc shell in Goose for UNIX-like systems and with structured CLI args
rc bench RESULTS.md
1.3 kB · 27 lines
Markdown

Measurements #

Host: macOS, arm64. Date: November 4, 2026. Goose: v2026.3-293-g335fddc1-dirty. C backend: Clang 21.0.0. Reference: the installed rc-1.7.4-unstable-2025-10-01, not a build of ../rc.

Command: make bench. Values are median whole-process milliseconds from twenty samples after three warmups.

Workload rc2 rc
Startup 2.614 2.262
1,000 assignments 2.801 2.623
1,000 list expansions 3.099 2.880
10,000 loop iterations 3.659 5.429
20 pipelines 36.148 36.291

These results include the Babashka process-launch overhead. Small differences do not establish a speed advantage. The loop workload favors rc2. Startup and expansion favor the reference in this run. The pipeline results are similar. No result establishes a universal speed advantage.

This run follows the UNIX job, history, Unicode editor, and automatic completion work. The noninteractive external-command path still uses posix_spawn. Interactive jobs use process groups and fork. Unicode property tables remain static constants. They require no startup conversion. Compared with the previous run, startup increased by 0.185 ms. Expansion decreased by 0.221 ms. These small whole-process changes do not isolate implementation cost from host variation.