test(conformance): raise the allocation budgets of the 19 programs that call std/fs with a path #556

Merged
argus merged 1 commit from loop/550-main-ci-fix into main 2026-10-28 20:50:02 +00:00
Collaborator

Refs #550

main is red on 6a8bb0199 (run 2113, job tier B (linux-x64)): the conformance suite reports 19 programs over their allocation budget; every other step and all other programs pass.

Cause: refactor(fs) (4398f186b, #549) made every path parameter of std/fs an Into<Path>. Each call now builds a Path first, so the programs that call std/fs with a path allocate more blocks (absolute-path-form 30 -> 155, file-atomic-replace 326 -> 1615, files 78 -> 182, resource-missing 217 -> 504, io-eight-files +174, encoding-round-trip +1, ...). #549 touched only std/ and docs, for which a pull request does not run tier B (tier-b scope in ci.yml). The main runs of 877b4bdf0 and 9e7746636 (#544) started tier B but were cancelled by the next push (cancel-in-progress group), so the first tier B that finished on a commit with the fs change is the one of 6a8bb0199. It is a regression of #549's budgets, not flakiness and not an interaction with #544 or #551.

Change: the 19 .allocations files are set to the count tier B printed on linux x86_64 in that run (the budget is exact there). Test data only, no code. Raising a budget is a change of its own with the reason in the commit message (compiler/CONTRIBUTING.md), which this is.

Verification: this PR touches only tests/, so its pull request run does not include tier B; the check is tier B of the main run after it lands.

Not done here: making the Into<Path> conversion cheaper (that would lower the budgets again), the 19 budgets the run lists as lowerable, and a tier B scope that covers std/.

Refs #550 `main` is red on 6a8bb0199 (run 2113, job `tier B (linux-x64)`): the conformance suite reports 19 programs over their allocation budget; every other step and all other programs pass. Cause: `refactor(fs)` (4398f186b, #549) made every path parameter of `std/fs` an `Into<Path>`. Each call now builds a `Path` first, so the programs that call `std/fs` with a path allocate more blocks (absolute-path-form 30 -> 155, file-atomic-replace 326 -> 1615, files 78 -> 182, resource-missing 217 -> 504, io-eight-files +174, encoding-round-trip +1, ...). #549 touched only `std/` and docs, for which a pull request does not run tier B (`tier-b` scope in `ci.yml`). The main runs of 877b4bdf0 and 9e7746636 (#544) started tier B but were cancelled by the next push (`cancel-in-progress` group), so the first tier B that finished on a commit with the fs change is the one of 6a8bb0199. It is a regression of #549's budgets, not flakiness and not an interaction with #544 or #551. Change: the 19 `.allocations` files are set to the count tier B printed on linux x86_64 in that run (the budget is exact there). Test data only, no code. Raising a budget is a change of its own with the reason in the commit message (compiler/CONTRIBUTING.md), which this is. Verification: this PR touches only `tests/`, so its pull request run does not include tier B; the check is tier B of the `main` run after it lands. Not done here: making the `Into<Path>` conversion cheaper (that would lower the budgets again), the 19 budgets the run lists as lowerable, and a tier B scope that covers `std/`.
test(conformance): raise the allocation budgets of the 19 programs that call std/fs with a path
All checks were successful
ci / commit messages (pull_request) Successful in 4s
ci / what the change touches (pull_request) Successful in 4s
ci / the VS Code extension (editors/vscode) (pull_request) Has been skipped
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 / which runners exist (pull_request) Successful in 1s
ci / bootstrap (linux-x64) (pull_request) Successful in 14s
ci / tier B (linux-x64) (pull_request) Has been skipped
ci / tools/release-sync and tools/registry (linux-x64) (pull_request) Has been skipped
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 / every host emits the same C (pull_request) Has been skipped
ci / the playground (torb as WebAssembly) (pull_request) Has been skipped
ci / tier A (linux-x64) (pull_request) Successful in 27m2s
ci / pack the seed (pull_request) Successful in 11s
ci / archives (pull_request) Has been skipped
ci / gates (pull_request) Successful in 0s
618aee3a5f
refactor(fs) (4398f186b) made every path parameter of std/fs an Into<Path>, so each call now builds a Path
before the runtime sees the text, and the programs that call std/fs allocate more blocks: absolute-path-form
30 -> 155, file-atomic-replace 326 -> 1615, resource-missing 217 -> 504, and so on. The change touched only
std/, for which tier B does not run on a pull request, so no run held the budgets to the new counts until the
tools/ change of aa19c984a ran tier B on main (red on 6a8bb0199).

Each budget is the count tier B reported on linux x86_64 in that run. Lowering the cost of the conversion
itself is a separate change.

Refs #550
argus approved these changes 2026-10-28 20:50:00 +00:00
argus left a comment

Review of 618aee3a5 - APPROVED

  • Tests: test data only (19 tests/conformance/*.allocations, one line each); the files match the 19 programs the body lists. CI green on this head (tier A, bootstrap, gates; tier B is skipped on PRs that touch only tests/, as the body says). The real check is tier B on main after the merge.
  • Correctness: cause is plausible and consistent with the history (4398f186b made every std/fs path parameter Into<Path>, tier B did not run on that std/docs-only PR, first finished tier B on 6a8bb0199 is red, run 2113). Deltas are in the expected direction (only increases, from +1 to +1289, io-eight-files +174). I could not read the tier B job log through the API, so the exact counts are taken from the PR; a wrong number would only show as a red tier B on main, no runtime effect.
  • Scope: exactly the fix of the red main for the loop's task (Refs #550, branch loop/550-main-ci-fix); no code, no lowering of other budgets, no scope change of tier B (listed as not done).
  • Policy: raising a budget needs its own change with the reason in the commit message (compiler/CONTRIBUTING.md); the commit message gives the cause and the run.
  • Security/data/docs/architecture/placement: nothing affected.

Non-blocking: making the Into<Path> conversion cheaper and a tier B scope that covers std/ are worth a follow-up issue so that the next std-only change is held to its budgets on the PR.

Review of 618aee3a5 - APPROVED - Tests: test data only (19 `tests/conformance/*.allocations`, one line each); the files match the 19 programs the body lists. CI green on this head (tier A, bootstrap, gates; tier B is skipped on PRs that touch only `tests/`, as the body says). The real check is tier B on main after the merge. - Correctness: cause is plausible and consistent with the history (`4398f186b` made every `std/fs` path parameter `Into<Path>`, tier B did not run on that std/docs-only PR, first finished tier B on `6a8bb0199` is red, run 2113). Deltas are in the expected direction (only increases, from +1 to +1289, io-eight-files +174). I could not read the tier B job log through the API, so the exact counts are taken from the PR; a wrong number would only show as a red tier B on main, no runtime effect. - Scope: exactly the fix of the red main for the loop's task (`Refs #550`, branch `loop/550-main-ci-fix`); no code, no lowering of other budgets, no scope change of tier B (listed as not done). - Policy: raising a budget needs its own change with the reason in the commit message (compiler/CONTRIBUTING.md); the commit message gives the cause and the run. - Security/data/docs/architecture/placement: nothing affected. Non-blocking: making the `Into<Path>` conversion cheaper and a tier B scope that covers `std/` are worth a follow-up issue so that the next std-only change is held to its budgets on the PR.
argus merged commit b471d025de into main 2026-10-28 20:50:02 +00:00
argus deleted branch loop/550-main-ci-fix 2026-10-28 20:50:02 +00:00
Author
Collaborator

Post-merge check: merged as b471d025d at 2026-10-28 20:50 UTC. No task referenced and no After-merge steps; test data only, no deploy. Verification pending: tier B of the main push run 2181 (created 20:50 UTC, status waiting at the time of this check). Its result is not yet known; not a failure. No further action from this turn.

Post-merge check: merged as b471d025d at 2026-10-28 20:50 UTC. No task referenced and no After-merge steps; test data only, no deploy. Verification pending: tier B of the main push run 2181 (created 20:50 UTC, status waiting at the time of this check). Its result is not yet known; not a failure. No further action from this turn.
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!556
No description provided.