perf(bench): exclude resolution fixtures from incremental-benchmark sweep#1131
Conversation
…weep The incremental benchmark walks the repo root, which pulls hand-annotated resolution-benchmark fixtures into the corpus. A single heavy grammar (tree-sitter-verilog #1107) added ~850ms to fullBuildMs — the cost is real but unrelated to shared code paths the benchmark is meant to track. Add an optional exclude glob array to BuildGraphOpts, merged into config.exclude in setupPipeline so both the JS pipeline and the native orchestrator (which receives ctx.config as JSON) honor it. Pass 'tests/benchmarks/resolution/fixtures/**' from the benchmark script so future language PRs don't silently inflate timings, and remove the 3.10.0:Full build entry from KNOWN_REGRESSIONS now that the cause is addressed. Closes #1112
Greptile SummaryThis PR fixes a benchmark inflation issue where resolution fixture files (e.g. Verilog) were being parsed during the incremental-benchmark sweep, silently inflating
Confidence Score: 5/5Safe to merge; the change is narrowly scoped to benchmark infrastructure with no impact on normal user builds. The loadConfig cache is never mutated — setupPipeline creates a new object so subsequent calls get the original config. The merged config is correctly forwarded to the native orchestrator via JSON.stringify(ctx.config). BUILD_OPTS is applied consistently across all six buildGraph calls. Removing the 3.10.0:Full build exemption is safe given the stored baseline was already at 1959ms. No files require special attention. Important Files Changed
Reviews (3): Last reviewed commit: "Merge branch 'main' into perf/1112-exclu..." | Re-trigger Greptile |
Codegraph Impact Analysis2 functions changed → 6 callers affected across 5 files
|
Summary
excludeglob array toBuildGraphOpts, merged intoconfig.excludeinsetupPipelineso both the JS pipeline and the native orchestrator (which receivesctx.configas JSON) honor it.tests/benchmarks/resolution/fixtures/**fromscripts/incremental-benchmark.tsso future language PRs don't silently inflatefullBuildMspurely from fixture parsing (e.g. tree-sitter-verilog added ~850ms / +43% on1959 → 2809msin feat(native): port Verilog extractor to Rust #1107).3.10.0:Full buildentry (and its docstring paragraph) fromKNOWN_REGRESSIONSnow that the root cause is addressed.Smoke-tested locally against this worktree (WASM engine):
Closes #1112
Test plan
npm run typecheckcleannpm run lintclean on changed filesRUN_REGRESSION_GUARD=1 npm test -- tests/benchmarks/regression-guard.test.ts→ 17/17 pass after removing the exemption (committed3.10.0entry already had a clean 1959ms baseline; only the rollingdevcomparison needed the exemption while fixtures inflated the number)exclude: ['tests/benchmarks/resolution/fixtures/**'], no fixture nodes land in the DB; without it, 25 verilog nodes are presentdev → 3.10.0Full build comparison no longer hits the threshold