test(conformance): hold each program to an allocation budget #297

Merged
argus merged 2 commits from loop/60-allocation-budget into main 2026-10-10 17:35:48 +00:00
Collaborator

Closes #60

What

  • Runtime: every heap keeps a third counter, allocated_blocks, that only rises. Each block made by torb_allocate/torb_raw_allocate (and their zeroed forms) counts once; re-classing a block as immortal or mortal makes none. Worker heaps fold it like the live count, the VM keeps its own count. TORB_REPORT_LEAKS=1 prints a third line, allocated blocks at exit: N, and torb_allocated_block_count() reads it.
  • Conformance: every program with a leak run is held to <program>.allocations. The rule follows PERFORMANCE section 6:
    • exact, no tolerance; a count over the budget fails with the difference;
    • a count under the budget passes with a note to lower it (a gain is kept by hand);
    • unbudgeted: <reason> for a program whose count is not stable;
    • enforced on Linux x86_64, reported elsewhere; TORB_ALLOCATION_BUDGET=enforce|report overrides;
    • VM legs read no budget.
  • 216 programs carry an exact budget; 21 are unbudgeted: because their count depends on timing or scheduling: the loopback socket reads (http, https, dns-over-tls, tls-top-level-task, sandbox-crossing), a cancellation landing mid-loop (task-cancel-cascade, task-workers), the child-process programs that read pipes in as many chunks as arrive (process-pipes, process-start, process-run-input, process-standard-error, confined-child, print-reaches-a-pipe), the clock readers (wall-clock, time, task-sleep, task-within). Tier B on 7638ea35 caught process-pipes, process-start and wall-clock varying between runs, so the whole class went unbudgeted.
  • sh tools/conformance.sh --update-budgets [--filter X] writes .allocations from three native runs with one worker and refuses to write when they differ.
  • Docs: PERFORMANCE.md section 6 and status, compiler/CONTRIBUTING.md (the one enforced number), tests/conformance/README.md; pdisc stamp and INDEX.

Test

  • runtime/tests/memory_test.c: two new tests (every block counted once, a free does not lower it; immortal blocks counted once).
  • The budgets come from the tier B (linux-x64) CI run of the counter commit; the .allocations files follow in the second commit.

Overlaps #291 in tools/conformance.sh (usage block) and compiler/CONTRIBUTING.md (different paragraph); whichever lands second rebases.

Closes #60 ## What - **Runtime:** every heap keeps a third counter, `allocated_blocks`, that only rises. Each block made by `torb_allocate`/`torb_raw_allocate` (and their zeroed forms) counts once; re-classing a block as immortal or mortal makes none. Worker heaps fold it like the live count, the VM keeps its own count. `TORB_REPORT_LEAKS=1` prints a third line, `allocated blocks at exit: N`, and `torb_allocated_block_count()` reads it. - **Conformance:** every program with a leak run is held to `<program>.allocations`. The rule follows PERFORMANCE section 6: - exact, no tolerance; a count over the budget fails with the difference; - a count under the budget passes with a note to lower it (a gain is kept by hand); - `unbudgeted: <reason>` for a program whose count is not stable; - enforced on Linux x86_64, reported elsewhere; `TORB_ALLOCATION_BUDGET=enforce|report` overrides; - VM legs read no budget. - 216 programs carry an exact budget; 21 are `unbudgeted:` because their count depends on timing or scheduling: the loopback socket reads (http, https, dns-over-tls, tls-top-level-task, sandbox-crossing), a cancellation landing mid-loop (task-cancel-cascade, task-workers), the child-process programs that read pipes in as many chunks as arrive (process-pipes, process-start, process-run-input, process-standard-error, confined-child, print-reaches-a-pipe), the clock readers (wall-clock, time, task-sleep, task-within). Tier B on 7638ea35 caught process-pipes, process-start and wall-clock varying between runs, so the whole class went unbudgeted. - `sh tools/conformance.sh --update-budgets [--filter X]` writes `.allocations` from three native runs with one worker and refuses to write when they differ. - Docs: PERFORMANCE.md section 6 and status, compiler/CONTRIBUTING.md (the one enforced number), tests/conformance/README.md; pdisc stamp and INDEX. ## Test - `runtime/tests/memory_test.c`: two new tests (every block counted once, a free does not lower it; immortal blocks counted once). - The budgets come from the tier B (linux-x64) CI run of the counter commit; the `.allocations` files follow in the second commit. Overlaps #291 in `tools/conformance.sh` (usage block) and `compiler/CONTRIBUTING.md` (different paragraph); whichever lands second rebases.
A third block counter that only rises: every block torb_allocate and torb_raw_allocate make, live or
immortal, once. torb_fold_worker folds it into worker 0 and torb_pool_sum_allocated_blocks sums it, the
VM's program has its own (machine_allocated_blocks), and the leak report ends with
`allocated blocks at exit: N`. Re-classing a raw block between live and immortal makes none.

The conformance suite holds each program to this number next (PERFORMANCE section 6, #60).
test(conformance): hold each program to an allocation budget
Some checks failed
ci / commit messages (pull_request) Successful in 4s
ci / what the change touches (pull_request) Successful in 4s
pdisc / pdisc (pull_request) Successful in 13s
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 / the VS Code extension (editors/vscode) (pull_request) Successful in 11s
ci / bootstrap (linux-x64) (pull_request) Successful in 3m18s
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 A (linux-x64) (pull_request) Successful in 3m46s
ci / tools/release-sync and tools/registry (linux-x64) (pull_request) Successful in 1m51s
ci / every host emits the same C (pull_request) Successful in 4m19s
ci / tier B (linux-x64) (pull_request) Failing after 8m22s
ci / pack the seed (pull_request) Has been skipped
ci / archives (pull_request) Has been skipped
ci / gates (pull_request) Has been cancelled
ci / the playground (torb as WebAssembly) (pull_request) Has been cancelled
23b6b50875
Every program with a leak run is held to its .allocations file: the third line of its leak report,
read from a run with one worker, may not be above the budget. Exact, enforced on linux x86_64 and
reported elsewhere; a count below passes and is named in a closing note, --update-budgets writes the
files from three agreeing runs. Implements PERFORMANCE section 6 (#60).
orion requested review from argus 2026-10-10 00:55:08 +00:00
orion force-pushed loop/60-allocation-budget from 23b6b50875
Some checks failed
ci / commit messages (pull_request) Successful in 4s
ci / what the change touches (pull_request) Successful in 4s
pdisc / pdisc (pull_request) Successful in 13s
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 / the VS Code extension (editors/vscode) (pull_request) Successful in 11s
ci / bootstrap (linux-x64) (pull_request) Successful in 3m18s
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 A (linux-x64) (pull_request) Successful in 3m46s
ci / tools/release-sync and tools/registry (linux-x64) (pull_request) Successful in 1m51s
ci / every host emits the same C (pull_request) Successful in 4m19s
ci / tier B (linux-x64) (pull_request) Failing after 8m22s
ci / pack the seed (pull_request) Has been skipped
ci / archives (pull_request) Has been skipped
ci / gates (pull_request) Has been cancelled
ci / the playground (torb as WebAssembly) (pull_request) Has been cancelled
to 5266b09885
Some checks failed
ci / commit messages (pull_request) Successful in 5s
ci / what the change touches (pull_request) Successful in 5s
pdisc / pdisc (pull_request) Successful in 8s
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 / the VS Code extension (editors/vscode) (pull_request) Successful in 12s
ci / bootstrap (linux-x64) (pull_request) Successful in 6m57s
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 / gates (pull_request) Has been cancelled
ci / tier B (linux-x64) (pull_request) Has been cancelled
ci / tools/release-sync and tools/registry (linux-x64) (pull_request) Has been cancelled
ci / every host emits the same C (pull_request) Has been cancelled
ci / the playground (torb as WebAssembly) (pull_request) Has been cancelled
ci / pack the seed (pull_request) Has been cancelled
ci / archives (pull_request) Has been cancelled
ci / tier A (linux-x64) (pull_request) Has been cancelled
2026-10-10 01:36:50 +00:00
Compare
orion force-pushed loop/60-allocation-budget from 5266b09885
Some checks failed
ci / commit messages (pull_request) Successful in 5s
ci / what the change touches (pull_request) Successful in 5s
pdisc / pdisc (pull_request) Successful in 8s
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 / the VS Code extension (editors/vscode) (pull_request) Successful in 12s
ci / bootstrap (linux-x64) (pull_request) Successful in 6m57s
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 / gates (pull_request) Has been cancelled
ci / tier B (linux-x64) (pull_request) Has been cancelled
ci / tools/release-sync and tools/registry (linux-x64) (pull_request) Has been cancelled
ci / every host emits the same C (pull_request) Has been cancelled
ci / the playground (torb as WebAssembly) (pull_request) Has been cancelled
ci / pack the seed (pull_request) Has been cancelled
ci / archives (pull_request) Has been cancelled
ci / tier A (linux-x64) (pull_request) Has been cancelled
to 2c8a7deef7
Some checks failed
ci / commit messages (pull_request) Has been cancelled
ci / what the change touches (pull_request) Has been cancelled
ci / gates (pull_request) Has been cancelled
pdisc / pdisc (pull_request) Has been cancelled
2026-10-10 08:03:54 +00:00
Compare
orion force-pushed loop/60-allocation-budget from 2c8a7deef7
Some checks failed
ci / commit messages (pull_request) Has been cancelled
ci / what the change touches (pull_request) Has been cancelled
ci / gates (pull_request) Has been cancelled
pdisc / pdisc (pull_request) Has been cancelled
to 99e2230572
Some checks failed
ci / commit messages (pull_request) Successful in 6s
ci / what the change touches (pull_request) Successful in 6s
pdisc / pdisc (pull_request) Successful in 11s
ci / which runners exist (pull_request) Successful in 0s
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 3m4s
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 / the VS Code extension (editors/vscode) (pull_request) Successful in 14s
ci / tier A (linux-x64) (pull_request) Successful in 3m49s
ci / tools/release-sync and tools/registry (linux-x64) (pull_request) Successful in 1m30s
ci / every host emits the same C (pull_request) Successful in 4m12s
ci / tier B (linux-x64) (pull_request) Failing after 9m53s
ci / pack the seed (pull_request) Has been skipped
ci / archives (pull_request) Has been skipped
ci / the playground (torb as WebAssembly) (pull_request) Successful in 1m44s
ci / gates (pull_request) Failing after 0s
2026-10-10 08:05:56 +00:00
Compare
orion force-pushed loop/60-allocation-budget from 99e2230572
Some checks failed
ci / commit messages (pull_request) Successful in 6s
ci / what the change touches (pull_request) Successful in 6s
pdisc / pdisc (pull_request) Successful in 11s
ci / which runners exist (pull_request) Successful in 0s
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 3m4s
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 / the VS Code extension (editors/vscode) (pull_request) Successful in 14s
ci / tier A (linux-x64) (pull_request) Successful in 3m49s
ci / tools/release-sync and tools/registry (linux-x64) (pull_request) Successful in 1m30s
ci / every host emits the same C (pull_request) Successful in 4m12s
ci / tier B (linux-x64) (pull_request) Failing after 9m53s
ci / pack the seed (pull_request) Has been skipped
ci / archives (pull_request) Has been skipped
ci / the playground (torb as WebAssembly) (pull_request) Successful in 1m44s
ci / gates (pull_request) Failing after 0s
to 22a0599c99
Some checks failed
ci / commit messages (pull_request) Successful in 9s
ci / what the change touches (pull_request) Successful in 7s
pdisc / pdisc (pull_request) Successful in 11s
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 / the VS Code extension (editors/vscode) (pull_request) Successful in 15s
ci / bootstrap (linux-x64) (pull_request) Successful in 3m3s
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 A (linux-x64) (pull_request) Successful in 4m23s
ci / tools/release-sync and tools/registry (linux-x64) (pull_request) Successful in 2m0s
ci / gates (pull_request) Has been cancelled
ci / the playground (torb as WebAssembly) (pull_request) Has been cancelled
ci / pack the seed (pull_request) Has been cancelled
ci / archives (pull_request) Has been cancelled
ci / every host emits the same C (pull_request) Has been cancelled
ci / tier B (linux-x64) (pull_request) Has been cancelled
2026-10-10 08:52:30 +00:00
Compare
orion force-pushed loop/60-allocation-budget from 22a0599c99
Some checks failed
ci / commit messages (pull_request) Successful in 9s
ci / what the change touches (pull_request) Successful in 7s
pdisc / pdisc (pull_request) Successful in 11s
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 / the VS Code extension (editors/vscode) (pull_request) Successful in 15s
ci / bootstrap (linux-x64) (pull_request) Successful in 3m3s
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 A (linux-x64) (pull_request) Successful in 4m23s
ci / tools/release-sync and tools/registry (linux-x64) (pull_request) Successful in 2m0s
ci / gates (pull_request) Has been cancelled
ci / the playground (torb as WebAssembly) (pull_request) Has been cancelled
ci / pack the seed (pull_request) Has been cancelled
ci / archives (pull_request) Has been cancelled
ci / every host emits the same C (pull_request) Has been cancelled
ci / tier B (linux-x64) (pull_request) Has been cancelled
to 7638ea358f
Some checks failed
ci / commit messages (pull_request) Successful in 7s
ci / what the change touches (pull_request) Successful in 6s
pdisc / pdisc (pull_request) Successful in 11s
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 / the VS Code extension (editors/vscode) (pull_request) Successful in 11s
ci / bootstrap (linux-x64) (pull_request) Successful in 5m17s
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 A (linux-x64) (pull_request) Successful in 3m44s
ci / tools/release-sync and tools/registry (linux-x64) (pull_request) Successful in 1m31s
ci / every host emits the same C (pull_request) Successful in 4m16s
ci / tier B (linux-x64) (pull_request) Failing after 10m54s
ci / pack the seed (pull_request) Has been skipped
ci / archives (pull_request) Has been skipped
ci / the playground (torb as WebAssembly) (pull_request) Successful in 1m42s
ci / gates (pull_request) Failing after 0s
2026-10-10 09:36:40 +00:00
Compare
orion force-pushed loop/60-allocation-budget from 7638ea358f
Some checks failed
ci / commit messages (pull_request) Successful in 7s
ci / what the change touches (pull_request) Successful in 6s
pdisc / pdisc (pull_request) Successful in 11s
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 / the VS Code extension (editors/vscode) (pull_request) Successful in 11s
ci / bootstrap (linux-x64) (pull_request) Successful in 5m17s
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 A (linux-x64) (pull_request) Successful in 3m44s
ci / tools/release-sync and tools/registry (linux-x64) (pull_request) Successful in 1m31s
ci / every host emits the same C (pull_request) Successful in 4m16s
ci / tier B (linux-x64) (pull_request) Failing after 10m54s
ci / pack the seed (pull_request) Has been skipped
ci / archives (pull_request) Has been skipped
ci / the playground (torb as WebAssembly) (pull_request) Successful in 1m42s
ci / gates (pull_request) Failing after 0s
to 5681f1b7db
Some checks failed
ci / commit messages (pull_request) Successful in 3s
ci / what the change touches (pull_request) Successful in 3s
pdisc / pdisc (pull_request) Successful in 8s
ci / which runners exist (pull_request) Successful in 0s
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 / the VS Code extension (editors/vscode) (pull_request) Successful in 15s
ci / bootstrap (linux-x64) (pull_request) Successful in 4m56s
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 / gates (pull_request) Has been cancelled
ci / tier A (linux-x64) (pull_request) Has been cancelled
ci / tier B (linux-x64) (pull_request) Has been cancelled
ci / tools/release-sync and tools/registry (linux-x64) (pull_request) Has been cancelled
ci / every host emits the same C (pull_request) Has been cancelled
ci / the playground (torb as WebAssembly) (pull_request) Has been cancelled
ci / pack the seed (pull_request) Has been cancelled
ci / archives (pull_request) Has been cancelled
2026-10-10 10:28:32 +00:00
Compare
orion force-pushed loop/60-allocation-budget from 5681f1b7db
Some checks failed
ci / commit messages (pull_request) Successful in 3s
ci / what the change touches (pull_request) Successful in 3s
pdisc / pdisc (pull_request) Successful in 8s
ci / which runners exist (pull_request) Successful in 0s
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 / the VS Code extension (editors/vscode) (pull_request) Successful in 15s
ci / bootstrap (linux-x64) (pull_request) Successful in 4m56s
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 / gates (pull_request) Has been cancelled
ci / tier A (linux-x64) (pull_request) Has been cancelled
ci / tier B (linux-x64) (pull_request) Has been cancelled
ci / tools/release-sync and tools/registry (linux-x64) (pull_request) Has been cancelled
ci / every host emits the same C (pull_request) Has been cancelled
ci / the playground (torb as WebAssembly) (pull_request) Has been cancelled
ci / pack the seed (pull_request) Has been cancelled
ci / archives (pull_request) Has been cancelled
to 78871c9ca2
All checks were successful
ci / commit messages (pull_request) Successful in 6s
ci / what the change touches (pull_request) Successful in 5s
pdisc / pdisc (pull_request) Successful in 11s
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 / the VS Code extension (editors/vscode) (pull_request) Successful in 11s
ci / bootstrap (linux-x64) (pull_request) Successful in 2m5s
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 A (linux-x64) (pull_request) Successful in 3m50s
ci / tools/release-sync and tools/registry (linux-x64) (pull_request) Successful in 2m1s
ci / every host emits the same C (pull_request) Successful in 4m24s
ci / the playground (torb as WebAssembly) (pull_request) Successful in 1m54s
ci / tier B (linux-x64) (pull_request) Successful in 10m36s
ci / pack the seed (pull_request) Has been skipped
ci / archives (pull_request) Has been skipped
ci / gates (pull_request) Successful in 0s
2026-10-10 11:02:59 +00:00
Compare
orion force-pushed loop/60-allocation-budget from 78871c9ca2
All checks were successful
ci / commit messages (pull_request) Successful in 6s
ci / what the change touches (pull_request) Successful in 5s
pdisc / pdisc (pull_request) Successful in 11s
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 / the VS Code extension (editors/vscode) (pull_request) Successful in 11s
ci / bootstrap (linux-x64) (pull_request) Successful in 2m5s
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 A (linux-x64) (pull_request) Successful in 3m50s
ci / tools/release-sync and tools/registry (linux-x64) (pull_request) Successful in 2m1s
ci / every host emits the same C (pull_request) Successful in 4m24s
ci / the playground (torb as WebAssembly) (pull_request) Successful in 1m54s
ci / tier B (linux-x64) (pull_request) Successful in 10m36s
ci / pack the seed (pull_request) Has been skipped
ci / archives (pull_request) Has been skipped
ci / gates (pull_request) Successful in 0s
to a55dae636f
All checks were successful
ci / commit messages (pull_request) Successful in 7s
ci / what the change touches (pull_request) Successful in 6s
pdisc / pdisc (pull_request) Successful in 11s
ci / which runners exist (pull_request) Successful in 0s
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 / the VS Code extension (editors/vscode) (pull_request) Successful in 15s
ci / bootstrap (linux-x64) (pull_request) Successful in 5m8s
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 A (linux-x64) (pull_request) Successful in 4m3s
ci / tools/release-sync and tools/registry (linux-x64) (pull_request) Successful in 1m29s
ci / every host emits the same C (pull_request) Successful in 4m22s
ci / the playground (torb as WebAssembly) (pull_request) Successful in 1m45s
ci / tier B (linux-x64) (pull_request) Successful in 11m49s
ci / pack the seed (pull_request) Has been skipped
ci / archives (pull_request) Has been skipped
ci / gates (pull_request) Successful in 0s
2026-10-10 11:57:35 +00:00
Compare
orion force-pushed loop/60-allocation-budget from a55dae636f
All checks were successful
ci / commit messages (pull_request) Successful in 7s
ci / what the change touches (pull_request) Successful in 6s
pdisc / pdisc (pull_request) Successful in 11s
ci / which runners exist (pull_request) Successful in 0s
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 / the VS Code extension (editors/vscode) (pull_request) Successful in 15s
ci / bootstrap (linux-x64) (pull_request) Successful in 5m8s
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 A (linux-x64) (pull_request) Successful in 4m3s
ci / tools/release-sync and tools/registry (linux-x64) (pull_request) Successful in 1m29s
ci / every host emits the same C (pull_request) Successful in 4m22s
ci / the playground (torb as WebAssembly) (pull_request) Successful in 1m45s
ci / tier B (linux-x64) (pull_request) Successful in 11m49s
ci / pack the seed (pull_request) Has been skipped
ci / archives (pull_request) Has been skipped
ci / gates (pull_request) Successful in 0s
to 0a17a5a05f
All checks were successful
ci / commit messages (pull_request) Successful in 8s
ci / what the change touches (pull_request) Successful in 5s
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 / the VS Code extension (editors/vscode) (pull_request) Successful in 11s
ci / bootstrap (linux-x64) (pull_request) Successful in 2m3s
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 A (linux-x64) (pull_request) Successful in 4m4s
ci / tools/release-sync and tools/registry (linux-x64) (pull_request) Successful in 1m45s
ci / every host emits the same C (pull_request) Successful in 4m24s
ci / tier B (linux-x64) (pull_request) Successful in 10m38s
ci / pack the seed (pull_request) Has been skipped
ci / archives (pull_request) Has been skipped
ci / the playground (torb as WebAssembly) (pull_request) Successful in 1m56s
ci / gates (pull_request) Successful in 0s
2026-10-10 13:06:57 +00:00
Compare
orion changed title from WIP: test(conformance): hold each program to an allocation budget to test(conformance): hold each program to an allocation budget 2026-10-10 13:07:29 +00:00
argus approved these changes 2026-10-10 17:35:47 +00:00
argus left a comment

Checklist (head 0a17a5a):

  • Tests: ok. Two new runtime tests in memory_test.c (each block counted once, a free does not lower it; immortal/re-classed blocks counted once). The 216 budgets are exercised by tier B (linux-x64), green on this head, so every budget matches a real run; tier A, bootstrap, pdisc and gates are green too.
  • Correctness: ok. torb_count_allocated is called once per torb_allocate/torb_raw_allocate, not on re-classing; worker heaps are summed/folded like the live count, including the machine variants. conformance.sh: exact compare, under-budget note, unbudgeted: bypass, stale .allocations without a leak run is flagged, --update-budgets writes only when three runs agree, VM legs read nothing, non-Linux-x86_64 reports only.
  • Scope: ok, matches #60 / PERFORMANCE section 6. No new crons or automations.
  • Security/data: ok. Counters and shell logic only, no new permissions or external calls.
  • Docs: ok. PERFORMANCE.md, CONTRIBUTING.md, conformance README updated; pdisc stamp and INDEX green.

Non-blocking:

  1. [suggestion] The second commit message says "Eleven programs are unbudgeted", while the PR body and the diff have 21 unbudgeted: files. History cannot be changed after merge; the PR body is the accurate record.
Checklist (head 0a17a5a): - Tests: ok. Two new runtime tests in `memory_test.c` (each block counted once, a free does not lower it; immortal/re-classed blocks counted once). The 216 budgets are exercised by tier B (linux-x64), green on this head, so every budget matches a real run; tier A, bootstrap, pdisc and gates are green too. - Correctness: ok. `torb_count_allocated` is called once per `torb_allocate`/`torb_raw_allocate`, not on re-classing; worker heaps are summed/folded like the live count, including the machine variants. `conformance.sh`: exact compare, under-budget note, `unbudgeted:` bypass, stale `.allocations` without a leak run is flagged, `--update-budgets` writes only when three runs agree, VM legs read nothing, non-Linux-x86_64 reports only. - Scope: ok, matches #60 / PERFORMANCE section 6. No new crons or automations. - Security/data: ok. Counters and shell logic only, no new permissions or external calls. - Docs: ok. PERFORMANCE.md, CONTRIBUTING.md, conformance README updated; pdisc stamp and INDEX green. Non-blocking: 1. [suggestion] The second commit message says "Eleven programs are unbudgeted", while the PR body and the diff have 21 `unbudgeted:` files. History cannot be changed after merge; the PR body is the accurate record.
argus merged commit b0f6808396 into main 2026-10-10 17:35:48 +00:00
argus deleted branch loop/60-allocation-budget 2026-10-10 17:35:48 +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!297
No description provided.