Restore mac tests but on ARM#268
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #268 +/- ##
==========================================
+ Coverage 74.75% 77.47% +2.72%
==========================================
Files 17 17
Lines 3208 3228 +20
==========================================
+ Hits 2398 2501 +103
+ Misses 810 727 -83 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
no dice |
|
@copilot why are tests failing? |
The tests are failing due to the same issue as #263 — a segfault (signal 11) in the What's failing:
Root cause (stack trace on macOS ARM): The crash occurs in This is a Julia 1.12 compatibility issue with the |
|
@copilot can you make a PR to fix this? |
In Julia 1.12, BigFloat changed from a mutable struct (layout-compatible
with mpfr_t) to an immutable struct wrapping Memory{Limb}. This broke
the ccall to ft_mpfr_trmv_ptr and related functions that pass BigFloat
arrays as mpfr_t** to the C library, causing a segfault (signal 11).
Fix by:
- Adding `_mpfr_ptr(b::BigFloat)` that extracts the correct mpfr_t*:
- Julia >= 1.12: pointer(getfield(b, :d)) (start of the Memory)
- Julia < 1.12: pointer_from_objref(b) (mutable BigFloat fields)
- Adding `_mpfr_ptrs` for StridedVector and StridedMatrix that build
a Vector{Ptr{mpfr_t}} for the C mpfr_t** argument
- Updating all BigFloat ccalls (trmv/trsv/trmm/trsm _ptr variants) to
use Ptr{Ptr{mpfr_t}} with GC.@preserve to keep BigFloat Memory alive
Done. The fix is in commit Root cause: In Julia 1.12, Fix: Added
All 42 BigFloat 1D plan tests now pass on Julia 1.12. |
|
@MikaelSlevinsky can I approve this to run? |
This is to see if Mac tests pass on ARM (before we were testing on x64)
also bumps setup-julia