Repository navigation
PR A: one release-profile v1-compiler build per CI build job (align features, gate after release) - #7868
Conversation
Reorder build job to fmt → release build → cargo test --release --no-run, align ci_release_features with v1-compiler-tests deps, and add fail-closed change-sensitive admission with typed CompileContractAdmissionReceipt. Regenerate ci.yml and falsifier.yml so workflow drift no longer blocks heal. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
… modules. namespace_alias_decl_test (from #7094) lacked #[cfg(test)], so the lib target compiled it without #[test] bodies and failed under RUSTFLAGS=-D warnings when the compile-contract gate first built v1-compiler-tests. Same class fixed on import_visibility_pool_coincidence_test and nested_list_alias_emit_test. Co-authored-by: Cursor <cursoragent@cursor.com>
ci_release_features is text_lookup_work_counter only so claim_executor/gunbc carry no per-call record_call_env_depth instrumentation. Tests arm the hook explicitly before depth assertions. Regenerated workflow feature strings. Fixes fmt failure on 4c8ab44 (WIP compile_contract_surface path abandoned per operator: guarded default-off is the cheaper fix). Co-authored-by: Cursor <cursoragent@cursor.com>
|
Addressed review 49123 in
Warm compile-gate locally after cached test graph: ~0.27s (vs ~173s first compile). CI re-running on this head. — sent from fierce-heron-177 |
The witness cost 84-133s to skip an 18s gate compile; drop it from build/verify/pack and run the gate unconditionally. Co-authored-by: Cursor <cursoragent@cursor.com>
Restore the doc comment and test boundary broken when deleting the compile-contract admission unit tests. Co-authored-by: Cursor <cursoragent@cursor.com>
Update the dissolve trigger to cite cargo test --release --no-run after the release build, matching ci_v1_compiler_tests_compile_gate_emit. Co-authored-by: Cursor <cursoragent@cursor.com>
|
review 49198 (Composer REQUEST_CHANGES): Verified — — sent from fierce-heron-177 |
Summary
One release-profile
v1-compilerbuild per CI build job: alignci_release_featureswithv1-compiler-tests(text_lookup_work_counter,interp_test_witness,test_hooks), runcargo test --release --no-runafter the release build so the gate reuses the same artifact, and default-offinterp_test_witnessarming so release bins compile without per-call chain-walk instrumentation.Admission removed: the lane brief step 3 asked for change-sensitive admission. We built it (
compile_contract_admission_witness, receipt, five unit tests). Measurement showed it costs 84–133s (resolve_entry_graph_shared for one git diff; the diff itself is 16–18ms) to decide whether to skip an 18s gate compile — a net loss on every PR, including docs-only skips. Removed rather than kept because it was requested.Structural claim (proven — log, not wall-clock)
One release-profile
v1-compilercompile per build job. Release step logsCompiling v1-compileronce; the gate step compiles onlyv1-compiler-testsagainst that artifact. Feature union closes the artifact fork; default-off arming keeps the sharedinterp_test_witnessfeature inert in release bins (one relaxed load pereval_calluntil a test callsarm_call_env_depth_witness_for_test).Gate command benefit (controlled local comparison)
CI wall-clock on this fleet is a per-slot workspace lottery: self-hosted runners keep
_work/target/between jobs, so the same gate command spans 18s–4m30 depending on which slot you draw — not on the change.actions/cache(~250 MB) is registry/index only; sccache deltas of hit 0 / miss 1 appeared on both fast and slow samples. No single CI run measures the PR; collecting more CI samples samples the lottery.Controlled comparison on this worktree (
RUSTC_WRAPPER=unset,CARGO_INCREMENTAL=0):cargo check -p v1-compiler-tests --tests(dev profile; cleansv1-compiler+v1-compiler-tests)cargo test -p v1-compiler-tests --release --no-run(releasev1-compileralready built; cleanv1-compiler-testsonly)New-cold beats old-cold; warm paths tie. That is the gate-command claim this PR makes.
CI observations (illustrative only — slot-dependent)
Do not read any one row as steady-state CI cost.
Merge bar
Open (operator): one shared artifact vs literally-zero per-call instructions vs full compile-coverage.
Test plan
compile_contractincli_run.rs; witness bin gone)