docs(vm): record the measured speed steps #449

Merged
argus merged 1 commit from loop/165-docs into main 2026-10-24 01:05:25 +00:00
Collaborator

Closes #165

Task

torbscript/language#165: measure the VM speed steps against fibonacci(30) and fibonacci(32), write the numbers into VM.md section 8, bring section 10 "Speed, the next steps" and slice 10 of section 9 up to date.

What

  • Section 8: a second table with one row per landed step (#166, #163, #164) and the toolchain pair, the commits in each delta, the runner and the date, and what the numbers do and do not say. The older two-row table stays as it was (another machine, not compared).
  • Section 10: the bullet names all five steps as in; the two stale open items (header words per call, Place as a record) are gone.
  • Section 4: the header is ten words per chunk (headerWords in compiler/src/vm/interpret.trb), with the two words the text missed.
  • Slice 10 names the steps and the measured ratio; the header paragraph says about 0.15 s.
  • Touches only docs/design/VM.md; skills/ regenerates to the same files (torb docs skill docs skills --check clean).

Measurement (forge CI, never local)

Scratch branch loop/165-measure (one workflow file, push trigger, never part of this PR; deleted): https://git.torb.dev/torbscript/language/actions/runs/1499 . Six published linux-x64 nightly toolchains (nightly-20260929, -20261008, -20261009, -20261010, -20261011, -20261023), round-robin, five rounds, best of five of torb run --vm minus the best of five of a one-line program; nightly-20261008 again at the end as drift check. Runner: AMD EPYC-Genoa, 16 processors, load average 26-37 (shared).

Toolchain fibonacci(30) net fibonacci(32) net
nightly-20260929 209 ms 540 ms
nightly-20261008 204 ms 482 ms
nightly-20261009 199 ms 486 ms
nightly-20261010 158 ms 400 ms
nightly-20261011 144 ms 395 ms
nightly-20261023 163 ms 433 ms
drift check (nightly-20261008 again) 185 ms 469 ms

Drift 9% on fibonacci(30), 3% on fibonacci(32): inside the 10% repeat threshold, so the job was not repeated; VM.md says that differences below 10% are not read as gain or loss. Only the loadAt/storeAt step (1.26x / 1.21x) clearly shows.

Test

Quick local checks with the published nightly: torb docs skill docs skills --check (7 skills, 285 files, up to date), torb docs index --check docs, pdisc.py check ok, tools/check-commits.sh origin/main HEAD clean. Tier A gates run in the forge CI of this PR.

Seed: No.

Closes #165 ## Task torbscript/language#165: measure the VM speed steps against `fibonacci(30)` and `fibonacci(32)`, write the numbers into VM.md section 8, bring section 10 "Speed, the next steps" and slice 10 of section 9 up to date. ## What - Section 8: a second table with one row per landed step (#166, #163, #164) and the toolchain pair, the commits in each delta, the runner and the date, and what the numbers do and do not say. The older two-row table stays as it was (another machine, not compared). - Section 10: the bullet names all five steps as in; the two stale open items (header words per call, `Place` as a record) are gone. - Section 4: the header is ten words per chunk (`headerWords` in `compiler/src/vm/interpret.trb`), with the two words the text missed. - Slice 10 names the steps and the measured ratio; the header paragraph says about 0.15 s. - Touches only `docs/design/VM.md`; `skills/` regenerates to the same files (`torb docs skill docs skills --check` clean). ## Measurement (forge CI, never local) Scratch branch `loop/165-measure` (one workflow file, push trigger, never part of this PR; deleted): https://git.torb.dev/torbscript/language/actions/runs/1499 . Six published `linux-x64` nightly toolchains (`nightly-20260929`, `-20261008`, `-20261009`, `-20261010`, `-20261011`, `-20261023`), round-robin, five rounds, best of five of `torb run --vm` minus the best of five of a one-line program; `nightly-20261008` again at the end as drift check. Runner: AMD EPYC-Genoa, 16 processors, load average 26-37 (shared). | Toolchain | fibonacci(30) net | fibonacci(32) net | |---|---|---| | nightly-20260929 | 209 ms | 540 ms | | nightly-20261008 | 204 ms | 482 ms | | nightly-20261009 | 199 ms | 486 ms | | nightly-20261010 | 158 ms | 400 ms | | nightly-20261011 | 144 ms | 395 ms | | nightly-20261023 | 163 ms | 433 ms | | drift check (nightly-20261008 again) | 185 ms | 469 ms | Drift 9% on fibonacci(30), 3% on fibonacci(32): inside the 10% repeat threshold, so the job was not repeated; VM.md says that differences below 10% are not read as gain or loss. Only the `loadAt`/`storeAt` step (1.26x / 1.21x) clearly shows. ## Test Quick local checks with the published nightly: `torb docs skill docs skills --check` (7 skills, 285 files, up to date), `torb docs index --check docs`, `pdisc.py check` ok, `tools/check-commits.sh origin/main HEAD` clean. Tier A gates run in the forge CI of this PR. Seed: No.
docs(vm): record the measured speed steps
All checks were successful
ci / commit messages (pull_request) Successful in 5s
ci / what the change touches (pull_request) Successful in 4s
ci / the VS Code extension (editors/vscode) (pull_request) Has been skipped
pdisc / pdisc (pull_request) Successful in 10s
ci / which runners exist (pull_request) Successful in 1s
ci / bootstrap and conformance (windows-x64) (pull_request) Has been skipped
ci / bootstrap and conformance (linux-arm64) (pull_request) Has been skipped
ci / bootstrap and conformance (macos-arm64) (pull_request) Has been skipped
ci / bootstrap (linux-x64) (pull_request) Successful in 13s
ci / cross-compiled on linux-x64 (windows-x64) (pull_request) Has been skipped
ci / cross-compiled on linux-x64 (linux-arm64) (pull_request) Has been skipped
ci / cross-compiled on linux-x64 (macos-arm64) (pull_request) Has been skipped
ci / tier B (linux-x64) (pull_request) Successful in 12m20s
ci / tools/release-sync and tools/registry (linux-x64) (pull_request) Successful in 2m28s
ci / every host emits the same C (pull_request) Successful in 4m40s
ci / the playground (torb as WebAssembly) (pull_request) Successful in 2m16s
ci / tier A (linux-x64) (pull_request) Successful in 24m39s
ci / pack the seed (pull_request) Has been skipped
ci / archives (pull_request) Has been skipped
ci / gates (pull_request) Successful in 0s
3d53a8077b
Measured in the forge's CI with the published nightly toolchains from before and after each step: one record per call (#166), Machine.loadAt and Machine.storeAt (#163), the count of a one-pointer retain in the loop (#164). Section 10 drops the steps that landed, section 4 counts the ten header words, slice 10 names the steps.
argus approved these changes 2026-10-24 01:05:24 +00:00
argus left a comment

Approved. Checklist:

  • Tests/CI: docs-only change; all checks green for this head (gates, tier A/B, pdisc, commit messages).
  • Correctness: spot-checked the numbers against the PR's measurement table (1.26x/1.21x for loadAt/storeAt, 2%/11% for the per-chunk record, about 78 to 53 ns per call on fibonacci(30), about 1.45x overall) and headerWords = 10 in compiler/src/vm/interpret.trb. All consistent; the text states the noise limits and the 10% threshold.
  • Scope: only docs/design/VM.md, matches the acceptance criteria of #165 (section 8 rows, section 10, slice 10, plus the section 4 header fix it found).
  • Security/data/docs: nothing sensitive, no data impact; pdisc check green.
Approved. Checklist: - Tests/CI: docs-only change; all checks green for this head (gates, tier A/B, pdisc, commit messages). - Correctness: spot-checked the numbers against the PR's measurement table (1.26x/1.21x for loadAt/storeAt, 2%/11% for the per-chunk record, about 78 to 53 ns per call on fibonacci(30), about 1.45x overall) and `headerWords = 10` in `compiler/src/vm/interpret.trb`. All consistent; the text states the noise limits and the 10% threshold. - Scope: only `docs/design/VM.md`, matches the acceptance criteria of #165 (section 8 rows, section 10, slice 10, plus the section 4 header fix it found). - Security/data/docs: nothing sensitive, no data impact; pdisc check green.
argus merged commit c4a8443532 into main 2026-10-24 01:05:25 +00:00
argus deleted branch loop/165-docs 2026-10-24 01:05:25 +00:00
Sign in to join this conversation.
No reviewers
No labels
loop
ready
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
torbscript/language!449
No description provided.