Skip to content

ci: restore build checks and CPU summation accuracy - #3735

Open
melonakos wants to merge 20 commits into
masterfrom
fix/restore-ci
Open

melonakos wants to merge 20 commits into
masterfrom
fix/restore-ci

Conversation

@melonakos

@melonakos melonakos commented Oct 24, 2026 •

Copy link
Copy Markdown
Member

Retired runners, stale tools, unavailable fixtures, and LAPACK packaging errors prevented CI from completing. Use supported runners, CMake 3.28.6 on Unix, vcpkg 2026.10.16 tools, provided Windows Fortran, and Homebrew runtime paths. Restore verified public SuiteSparse fixtures and cache dependencies while keeping pinned library versions; expose compiler errors and make dashboard uploads optional. All configured CPU checks, documentation, formatting, integrity tests, and Actionlint pass; the existing Windows pinverse exclusion remains. The CPU summation commit from #3687 fixes variance precision, with guards and regressions for infinities, NaNs, and finite overflow. Merge #3736 and #3710 first; #3731's overlapping reduction must retain the nonfinite guard.

willyborn and others added 6 commits August 5, 2025 20:53
std::abs<CT>(x) with an explicit template argument is rejected as
ambiguous by newer libc++ (e.g. the macOS 26 SDK), which brings the
integer abs overloads into scope. s1var/validsVar are already CT, so
drop the argument and let std::abs resolve the <cmath> overload.
Normalize the existing source, test, and example formatting with clang-format 15. Preserve the cast table with formatting guards.
Build documentation with Ubuntu packages and align Windows vcpkg with the manifest baseline. Use explicit tool paths, propagate failures, and build before running CPU tests.
Pin the compatible runner and fetch the complete version registry before invoking vcpkg. Update the binary cache action to its supported runtime.
Test the workflow repairs with the formatting baseline. Merge the separate formatting PR first so the workflow PR retains its own changes.
@melonakos
melonakos marked this pull request as draft October 24, 2026 03:55
Use a current vcpkg tool checkout for available MSYS2 packages while keeping the manifest baseline. Use CMake 3.28.6 on Linux and macOS for IntelLLVM support.
Reuse complete cached matrices before invoking the downloader and save them after configuration. Stop before repeated fixture requests when SuiteSparse declares an outage, while keeping matrix tests enabled.
@melonakos melonakos changed the title ci: restore supported runners and the vcpkg baseline ci: restore runners, build tools, and fixture caching Oct 24, 2026
Bundle the retained SuiteSparse fixtures with their source metadata and checksums. Validate archive contents before restoring the cache so matrix tests run without the offline provider.
Show compiler failures directly and stop before testing missing binaries. Keep dashboard uploads optional so its outage does not override build and test results.
Enable the provided MinGW Fortran toolchain in the custom Windows triplet so LAPACK can configure with current vcpkg tools.
Add Homebrew's library directory to the test runtime search path so dynamically loaded FreeImage is available on Apple Silicon runners.
Save validated vcpkg binaries after configuration so subsequent builds can reuse them even if compilation or tests fail.
Let the BLAS port own its pkg-config files. Save vcpkg's completed ABI-keyed archives on failed configurations and restore compatible binaries across retries.
Reset a NaN correction term so infinities retain normal sum behavior. Cover real and complex infinities and NaNs through all-element, dimension, and keyed reductions; the regression fails without the guard and the reduction and variance suites pass with it.
@melonakos melonakos changed the title ci: restore runners, build tools, and fixture caching ci: restore build checks and CPU summation accuracy Oct 24, 2026
Install the wrapper and find module where the LAPACK meta-port consumes them. Give the reference package its own pkg-config metadata so the meta-port can own the public LAPACK files.
Keep the modified overlay as LF text so patch whitespace checks remain clean.
Reset infinite correction terms as well as NaNs so finite overflow retains IEEE sum behavior. Extend the real and complex API regression; the reduction and variance suites pass.
@melonakos
melonakos marked this pull request as ready for review October 24, 2026 17:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants