Conversation
This PR adds a periodic `checkSystem` call to the LCNF simplifier's recursive traversal, checking every 512 visited nodes. This breaks up multi-second gaps (observed up to 2.3s on `big_do.lean`) without measurable performance regression — the amortized cost is effectively zero on benchmarks like `big_do` and `simp_local`. An unconditional `checkSystem` on every node caused a 0.4% instruction count regression, which is why the amortized approach is used instead. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
!radar |
|
Benchmark results for ce6b715 against 978bde4 are in. There are no significant changes. @nomeata
Small changes (2🟥)
|
|
Ok, this looks cheap enough. |
|
(Taking this off the queue, measurement since shows that 512 may be too rare to get latency into the 50ms area) |
|
Mathlib CI status (docs):
|
|
Reference manual CI status:
|
|
Looks like my other changes made this one obsolete. |
|
Wrong, may still be needed. |
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
!radar |
|
Benchmark results for 65f5fbf against 3c6ea49 are in. Significant changes detected! @nomeata
Medium changes (1🟥)
Small changes (66🟥) Too many entries to display here. View the full report on radar instead. |
|
Closing: this PR is no longer needed after #13258 landed on master. #13258 adds Verified with a clean build from scratch: zero gaps at 50ms threshold across all 46 elab_bench tests and all previously problematic files (4595_slowdown, simp_local, big_do, aStructPerfIssue, cbv_iter) without any LCNF simp checkSystem. |
|
Reopening — the gap testing was incorrectly run on a branch without the monitoring instrumentation, so the zero-gap results were meaningless. Need to re-verify. |
|
Closing: this PR is no longer needed after #13258 landed on master. Verified with a clean build on the instrumented branch ( No LCNF simp gaps at any threshold. Previously problematic files — zero gaps at 50ms:
Remaining gaps (elab_bench at 50ms) are all outside LCNF simp:
None of these would be helped by adding |
This PR adds a
checkSystemcall to the LCNF simplifier's recursivetraversal. This breaks up multi-second gaps (observed up to 1.75s on
big_do.lean) that prevent prompt cancellation in the IDE.Local benchmarks on
big_doandsimp_localshow no measurablewall-clock regression with unconditional checking (no amortization
needed).
Found using
LEAN_CHECK_SYSTEM_INTERVAL_MSmonitoring from #13218.