Repository navigation
Conversation
CI's toolchains are upstream BART's: GCC 14 on Linux, Apple's clang on macOS, and MSYS2's UCRT64 GCC on Windows. The library builds there as a self-contained DLL: BART's win/ port is compiled in, what MinGW lacks (getsubopt, readlink, C11 threads) is supplied beside it, assertions reach BART's error path through the C runtime's import slots, and the GCC runtime, OpenMP and winpthreads are linked statically. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GEk7xWNYS2EqnCP1UMyzTg
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GEk7xWNYS2EqnCP1UMyzTg
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GEk7xWNYS2EqnCP1UMyzTg
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
BART builds under MinGW, but Windows' 32-bit long caps every array at 2 GiB and no macro can widen it without editing BART, so the Windows build is reverted and the documentation says why. The test matrix runs 3.10 and 3.14 on Linux (GCC 14) and macOS (clang); the CUDA wheel is loaded from every supported Python, as the CPU wheels are tested. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GEk7xWNYS2EqnCP1UMyzTg
mcencini
marked this pull request as ready for review
September 28, 2026 13:29
mcencini
pushed a commit
that referenced
this pull request
Sep 28, 2026
Linux CI, the documentation build, the CUDA build and the Copilot environment use upstream BART's Linux toolchain, GCC 14, with nvcc's host compiler at g++-12. The CUDA wheel is loaded from each Python from 3.10 to 3.14, as the CPU wheels are tested from each. Carried over from #96, which this supersedes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HV1XJrQxFRsusBwNuvwh3j
Collaborator
Author
|
Superseded. #98 brought Windows in as a real LLP64 port, and #99 carries over what this PR had that #98 lacked: GCC 14 on Linux CI, the docs and CUDA builds, and loading the CUDA wheel from every Python. Closing at Matteo's request. Generated by Claude Code |
mcencini
added a commit
that referenced
this pull request
Sep 28, 2026
…#99) Linux CI, the documentation build, the CUDA build and the Copilot environment use upstream BART's Linux toolchain, GCC 14, with nvcc's host compiler at g++-12. The CUDA wheel is loaded from each Python from 3.10 to 3.14, as the CPU wheels are tested from each. Carried over from #96, which this supersedes. Claude-Session: https://claude.ai/code/session_01HV1XJrQxFRsusBwNuvwh3j Co-authored-by: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Requested by Matteo · project thread
What changed
Before: the test matrix built Linux with clang (3.10, 3.12) and GCC 14 (3.12 with MKL), and macOS on 3.12. The docs gallery, CUDA build and Copilot setup built with clang. The CUDA wheel was loaded only from Python 3.12. The docs said Windows was unsupported because "BART does not build on it".
After: CI uses upstream BART's toolchains, GCC 14 on Linux and Apple's clang on macOS. Each platform tests Python 3.10 and 3.14 only (MKL on Linux 3.10, coverage on Linux 3.14). The docs gallery, CUDA build and Copilot setup build with GCC 14; the CUDA build keeps nvcc's host compiler at g++-12, the newest Ubuntu's nvcc accepts. The publish workflow loads the CUDA wheel from every Python from 3.10 to 3.14, as the CPU wheels are already tested on Linux x86_64 and macOS arm64. The Windows statement in AGENTS.md, the prerequisites pages and pyproject now gives the real reason.
Why
Windows was attempted on this branch and reverted. BART builds under MinGW GCC, and the resulting DLL loads into MSVC-built Python through the C ABI. But Windows is LLP64: BART keeps every dimension, size and byte stride in
long, which is 32 bits there, so no array can exceed 2 GiB. No macro can widen it without editing BART.#define long long longbreaks BART'slong longs, a typedef breaks itsunsigned longs, andoptreg.c'ssscanf("%lu")would still write 4 bytes. WSL2 remains the route.Dropping Linux clang means the vendored Blocks runtime, which only clang on non-Apple systems uses, is no longer exercised in CI; CMake still supports that build.
Validation
./scripts/lint.sh: clean.publish.ymlon this branch (builds and tests every wheel, publishes nothing).Public API and documentation
No API change. Updated AGENTS.md,
docs/guides/user/prerequisites.md,docs/guides/developer/prerequisites.mdanddocs/guides/developer/pull-requests.md.🤖 Generated with Claude Code
https://claude.ai/code/session_01GEk7xWNYS2EqnCP1UMyzTg