Skip to content

Commit ac398ab

Browse files
committed
fp-stability: confirm, rank, and disambiguate dd_line hotspots
dd_line reports a minimal set of source lines, but presented them as a flat, equally-weighted list of confident warnings. Three problems: (1) no check that the reported lines actually reproduce the instability; (2) fypp #:for/#:def expansion collapses many generated computations onto one .fpp line, so a hit can be the wrong instance; (3) a multi-op line did not say which op was at fault. This adds, reusing the verified Verrou --source mechanism (matches file+line+symbol, captured via --gen-source): - Confirmation: perturb only the suspect lines; lines that fail to reproduce the deviation are downgraded from ::warning:: to ::notice:: (unconfirmed). - Per-line ranking: perturb each line alone and rank by the share of float-proxy it reproduces, so the dominant computation is named (e.g. m_time_steppers.fpp:510 = 100%). - Cancellation cross-reference: label dd_line hotspots that coincide with a stage-F catastrophic-cancellation site. - Macro-expansion flag: mark hotspots whose .fpp line sits inside a #:for/#:def expansion as instance-ambiguous. Surfaced in console, the GitHub step summary (ranked, tagged list), and inline annotations. Pure helpers covered by toolchain/mfc/test_fp_stability.py (22 tests, TDD). Verified end-to-end on a serial debug build.
1 parent 4a73bf3 commit ac398ab

2 files changed

Lines changed: 480 additions & 18 deletions

File tree

0 commit comments

Comments
 (0)