GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — ci: restore build checks and CPU summation accuracy by melonakos · Pull Request #3735 · arrayfire/arrayfire

Conversation

@melonakos

@melonakos melonakos commented Oct 24, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

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.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
willyborn and others added 6 commits August 5, 2025 20:53
@willyborn
sum on CPU now has the same precision as other platforms
058db8a
@daeho-ro
Fix ambiguous std::abs call in confidenceCC
a19abf5
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.
@melonakos
Apply the CI clang-format baseline
e68d29d
Normalize the existing source, test, and example formatting with clang-format 15. Preserve the cast table with formatting guards.
@melonakos
Restore supported CI runners and the vcpkg baseline
01a8a4e
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.
@melonakos
Keep Windows CI on the Visual Studio 2022 image
9942daf
Pin the compatible runner and fetch the complete version registry before invoking vcpkg. Update the binary cache action to its supported runtime.
@melonakos
Include the formatting prerequisite for CI validation
c7d018a
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
melonakos added 2 commits October 24, 2026 10:11
@melonakos
Refresh CI tools without changing pinned dependencies
63b1eb4
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.
@melonakos
Cache matrix fixtures and report provider outages
53d2917
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
melonakos added 9 commits October 24, 2026 10:24
@melonakos
Seed CI from verified public matrix fixtures
d26a4f1
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.
@melonakos
ci: separate compilation and dashboard submission
e9a4e01
Show compiler failures directly and stop before testing missing binaries. Keep dashboard uploads optional so its outage does not override build and test results.
@melonakos
Merge the existing macOS abs overload fix for CI validation
d055d0a
@melonakos
build: select vcpkg's Windows Fortran compiler
e504399
Enable the provided MinGW Fortran toolchain in the custom Windows triplet so LAPACK can configure with current vcpkg tools.
@melonakos
ci: expose Homebrew libraries to macOS tests
51135f9
Add Homebrew's library directory to the test runtime search path so dynamically loaded FreeImage is available on Apple Silicon runners.
@melonakos
Merge the existing CPU summation fix for CI validation
fee70ee
@melonakos
ci: retain Windows dependencies before building ArrayFire
a927336
Save validated vcpkg binaries after configuration so subsequent builds can reuse them even if compilation or tests fail.
@melonakos
ci: resolve LAPACK package ownership and retain dependency progress
953c470
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.
@melonakos
cpu: preserve nonfinite values in compensated sums
15e26f4
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
melonakos added 3 commits October 24, 2026 11:49
@melonakos
build: align LAPACK overlay metadata with the pinned registry
95d215c
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.
@melonakos
build: normalize LAPACK overlay line endings
dcbce90
Keep the modified overlay as LF text so patch whitespace checks remain clean.
@melonakos
cpu: preserve overflow in compensated sums
f84018e
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.
This was referenced Oct 24, 2026
docs: fix the overview contact link #3734
Open
style: apply the existing clang-format 15 policy #3736
Open
@melonakos
melonakos marked this pull request as ready for review October 24, 2026 17:27
@roaffix roaffix mentioned this pull request Nov 2, 2026
Rework the CI: light checks on every push, CPU tests in the merge queue, GPU tests on request #3738
Merged
5 tasks done
@graehl graehl mentioned this pull request Nov 3, 2026
cuda: build with CUDA 13 and target Blackwell #3715
Merged
roaffix added a commit that referenced this pull request Nov 3, 2026
@roaffix
Get the Matrix Market test data from a pinned arrayfire-data commit
8bb1330
The sparse tests' matrices come from the SuiteSparse collection, whose
storage refuses every download ("403 AccessDenied"). ArrayFire's
arrayfire-data repository holds the same nine files, unchanged, under
matrixmarket/, with their CC BY 4.0 attribution. CI downloads them from
arrayfire-data at commit 2723164, which matrixmarket.json pins, so the
Matrix Market tests run again; an empty commit would turn them off.

The manifest of each matrix's size and SHA-256 and the idea of checking
the data before a build come from ArrayFire's fix/restore-ci branch
(#3735), whose check_matrix_data.py is adapted as check-matrix-data.py.
Before every build, ci.sh runs it. It downloads each matrix from the
pinned commit on raw.githubusercontent.com, checks it against the
manifest and the tested tree's list of matrices, fails naming every
file that differs or doesn't download, restores the matrices into the
build tree and prints ON; without a pinned commit it prints OFF.

ci.sh passes the answer on as AF_CI_MTX_FILES. The tests download each
matrix through af_dep_check_and_populate, whose FetchContent_Populate
takes FETCHCONTENT_SOURCE_DIR_<name> as the source when it is set; the
ci preset and matrixmarket.cmake (for the GPU builds and the CMake 3.16
build) set those to the restored matrices, and AF_TEST_WITH_MTX_FILES
to AF_CI_MTX_FILES. Nothing is downloaded from SuiteSparse, and nothing
under test/ changes. The GPU build archives carry the matrices to the
test jobs.
syurkevi pushed a commit that referenced this pull request Nov 3, 2026
@roaffix @syurkevi
Get the Matrix Market test data from a pinned arrayfire-data commit
c6f333c
The sparse tests' matrices come from the SuiteSparse collection, whose
storage refuses every download ("403 AccessDenied"). ArrayFire's
arrayfire-data repository holds the same nine files, unchanged, under
matrixmarket/, with their CC BY 4.0 attribution. CI downloads them from
arrayfire-data at commit 2723164, which matrixmarket.json pins, so the
Matrix Market tests run again; an empty commit would turn them off.

The manifest of each matrix's size and SHA-256 and the idea of checking
the data before a build come from ArrayFire's fix/restore-ci branch
(#3735), whose check_matrix_data.py is adapted as check-matrix-data.py.
Before every build, ci.sh runs it. It downloads each matrix from the
pinned commit on raw.githubusercontent.com, checks it against the
manifest and the tested tree's list of matrices, fails naming every
file that differs or doesn't download, restores the matrices into the
build tree and prints ON; without a pinned commit it prints OFF.

ci.sh passes the answer on as AF_CI_MTX_FILES. The tests download each
matrix through af_dep_check_and_populate, whose FetchContent_Populate
takes FETCHCONTENT_SOURCE_DIR_<name> as the source when it is set; the
ci preset and matrixmarket.cmake (for the GPU builds and the CMake 3.16
build) set those to the restored matrices, and AF_TEST_WITH_MTX_FILES
to AF_CI_MTX_FILES. Nothing is downloaded from SuiteSparse, and nothing
under test/ changes. The GPU build archives carry the matrices to the
test jobs.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

No reviews

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

3 participants

@melonakos @willyborn @daeho-ro
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.