Add Windows CI and fix Tensor QR FFI (rtol) - #124
Merged
Conversation
Run Tensor4all.jl build and tests on windows-2025 without system Rust so the Windows installer fallback path is covered end-to-end.
The C API expects rtol before out_q/out_r; omitting it misaligned the Windows call and left out handles null. Accept and validate rtol, and cover the exact-QR path plus invalid rtol in tests.
Member
Author
Follow-up: fix #123 on this PRPushed the Julia-side FFI fix for Tensor QR:
Local |
Member
Author
|
Windows CI re-run is green after the QR fix:
Run: https://github.com/tensor4all/Tensor4all.jl/actions/runs/29138855687 |
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.
Summary
.github/workflows/CI_Windows.ymlfor automated Windows testing of Tensor4all.jl.windows-rusttoolchain-bootstrap.yml: remove/hide system Rust on the runner, assertcargo/rustc/rustupare unavailable, then rely onRustToolChain.jlfor the Windows installer fallback.ltsand1onwindows-2025; builds against the pinnedtensor4all-rscheckout and runsPkg.test().rtolthrought4a_tensor_qrso the Windows ABI matches the C API.Windows CI design
Linux/macOS CI (
CI.yml) installs a system Rust toolchain viadtolnay/rust-toolchain. Windows end users typically getcargo/rustcthroughRustToolChain.jlinstead. This workflow locks in that path so regressions in Windows bootstrap,deps/build.jl, or the Rust cdylib install do not slip past CI.JULIA_DEPOT_PATHis not fully isolated sojulia-actions/cacheremains effective; PATH filtering alone forces the RustToolChain fallback.Tensor QR fix (#123)
t4a_tensor_qrexpects(tensor, left_inds, n_left, rtol, out_q, out_r). The Julia wrapper previously omittedrtol, which misaligned the call on Windows (out_q or out_r is null/ReadOnlyMemoryError).rtol::Real=0.0(exact-QR sentinel)Cdouble(rtol)in theccallqr(t, inds...; kwargs...)test/core/tensor_factorize.jlTest plan
Pkg.test()on macOSPkg.build()succeeds via RustToolChainPkg.test()green for Julialtsand1Closes #123