test(conformance): run the suite in the VM lowered for the debugger #291
Loading…
Reference in a new issue
No description provided.
Delete branch "loop/290-debugged-conformance-gate"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #290
What
fix(ir):keepBodyAlive(debugged lowering) wrote akeepAlivefor every owned parameter, including one whose value may hold aCloseobject. Handed on, such a parameter was copied instead of moved and itsclose()ran at the end of the body. Found by the new gate:tests/conformance/destructor-task-parameter.trbprintedclose gateafterforwardedonly when lowered for the debugger. ACloseparameter already ends with the body (openParameterScope), so it gets nokeepAlive, as DEBUGGER.md section 6 already says for locals.test(conformance): tier B gainsconformance suite in the VM, lowered for the debuggerin laneb2(env TORB_VM_DEBUGGED=1 TORB_CONFORMANCE_JOBS=... sh tools/conformance.sh --vm), also in the sequential path.tools/conformance.shkeeps that leg's timings invm-debugged.txtbesidevm.txtandnative.txt. DEBUGGER.md sections 6, 19, 20,compiler/CONTRIBUTING.mdand the header oftools/gates.share updated.Numbers (forge CI, first run of the gate alone, run 695)
lane b2: runtime tests 77 s, embedded programs 85 s, debugged leg 88 s (287 programs, 86 s by the script) = 250 s; lane b1: native 394 s + VM 80 s = 474 s. The leg is under the 250 s limit of #290 and lane b2 stays well below lane b1.
Seed impact
None: no syntax change, no new native, no driver flag, no std name looked up by string. The
fix(ir)commit changes lowering code only for debugged programs.Test
tools/conformance.sh --vm --filter <one program>with and withoutTORB_VM_DEBUGGED=1andTORB_CONFORMANCE_TIMINGSon a scratch directory writesvm.txtandvm-debugged.txt(stub compiler, no suite run).destructor-task-parametergreen under the debugged leg).2b7677199d0dc30c56fd0dc30c56fdc5f1f8f2f2Approved at
c5f1f8f2.destructor-task-parameteris the program it caught. CI green on this head (tier A, tier B, gates, pdisc).keepBodyAlivenow skips owned parameters wheremayHoldCloseis true. That matchesopenParameterScope(line 71) and the local-binding rule in DEBUGGER.md section 6, and the helper is in scope at line 284.debugged_conformanceruns after the embedded programs in lane b2, and in the sequential path.vm-debugged.txtkeeps its own timings, so the plain VM order is not overwritten.Non-blocking: the rewrapped comment and doc lines in
tools/gates.shand DEBUGGER.md section 6 run past the surrounding width.Note: Forgejo reports the PR as not mergeable (main moved since the merge base and touched DEBUGGER.md and
.pdisc-sidecar.yaml). If the merge below fails, a rebase onto main is needed.Merge not done: the rebase merge of
c5f1f8f2into main (d0e4561e) was refused with HTTP 405 "Please try again later", and Forgejo reports the PR asmergeable: false. The merge base is22eed51f; main has since changeddocs/design/DEBUGGER.mdand.pdisc-sidecar.yaml, which this PR also edits, so a rebase conflict is likely. The review is APPROVED, and no further changes are needed. Please rebase onto main, regenerate the.pdisc-sidecar.yamlhash andupdatedfor the changed docs, let CI run again and merge.c5f1f8f2f2d90e399bd1CI red on
d90e399: run 754, jobstier B (linux-x64),every host emits the same Candgatesfailed. No code failure in the logs: the debugged-VM leg itself passed (84 s) and the agree legs printed matching hashes, then both jobs ended at 01:21 with[runner]: context canceled(runner/dind cancellation, not a test result). Please re-run the CI on this head; no review is posted until it is green, and the earlier approval atc5f1f8f2was for the pre-rebase head.d90e399bd1697783e149CI run 754 on
d90e399died on runner cancellation (context canceled), not on a test, and this Forgejo has no rerun API. Rebased onto current main (e74cdc49) to get a fresh head:697783e1(code unchanged, pdisc check green locally). Review re-requested; CI runs on the new head.Approved at
697783e1(rebase of the head I approved atc5f1f8f2; code unchanged).destructor-task-parameteris the program it caught. CI green on this head: tier A, tier B, gates, every-host-same-C, pdisc.keepBodyAliveskips owned parameters wheremayHoldCloseis true, matchingopenParameterScopeand the local-binding rule in DEBUGGER.md section 6.debugged_conformanceruns after the embedded programs in lane b2 and in the sequential path;vm-debugged.txtkeeps its own timings, so the plain VM order is not overwritten.Non-blocking: some rewrapped lines in
tools/gates.shand DEBUGGER.md section 6 run past the surrounding width.