Skip to content

Julia 1.14 compatibility: field-aware write barriers; CI on 1.13 and master asserts - #956

Merged
maleadt merged 2 commits into
mainfrom
tb/julia-1.14
Sep 26, 2026
Merged

maleadt merged 2 commits into
mainfrom
tb/julia-1.14

Conversation

@maleadt

@maleadt maleadt commented Sep 25, 2026 •

Copy link
Copy Markdown
Member
  • Remove the field-aware write barriers of Julia 1.14. gc: make write barrier field-aware JuliaLang/julia#62737 split julia.write_barrier into julia.object_write_barrier and julia.field_write_barrier.p11/.p13. GPULowerGCFrame only removed the old intrinsic, so the new ones leaked into device code whenever a heap object was stored into a field. This broke e.g. CUDA.jl's randn! on ComplexF16, via the LazyString in sincospi's error path. Adds a PTX test that fails without the fix. The existing tests missed it because code_native doesn't validate IR.
  • CI. Test on the released 1.13 instead of 1.13-nightly, and use 1.13 for the downstream back-end tests (was 1.12). Re-enable master in the assert-build workflows: julia-ci publishes master assert builds again, and LLVM.jl already uses them. GetAsserts runs as pull_request_target, so this PR can't exercise that change. I ran the suite against the master assert build (1.14.0-DEV.3363, julia-ci build 666) on x86_64 Linux instead, and it passes.

Julia 1.13 has been released, so test on it instead of the 1.13 nightly,
and run the back-end tests on it. Also re-enable testing against assert
builds of Julia master, which are available again from the julia-ci
pipeline, to catch issues with the upcoming 1.14 early.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@codecov

codecov Bot commented Sep 25, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 85.55%. Comparing base (0d06ee4) to head (03a8d3d).
⚠️ Report is 3 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #956      +/-   ##
==========================================
- Coverage   86.54%   85.55%   -1.00%     
==========================================
  Files          29       29              
  Lines        5729     5800      +71     
==========================================
+ Hits         4958     4962       +4     
- Misses        771      838      +67     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@maleadt
maleadt marked this pull request as ready for review September 25, 2026 13:22
JuliaLang/julia#62737 replaced `julia.write_barrier` with
`julia.object_write_barrier` and `julia.field_write_barrier.p11/.p13`.
Only the former was removed by GPULowerGCFrame, so the new intrinsics
survived into device code whenever an object was stored into a field,
e.g. when constructing a LazyString in an error path.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@maleadt maleadt changed the title CI: test on Julia 1.13 and master assert builds Julia 1.14 compatibility: field-aware write barriers; CI on 1.13 and master asserts Sep 25, 2026
@maleadt
maleadt merged commit 0a11416 into main Sep 26, 2026
33 checks passed
@maleadt
maleadt deleted the tb/julia-1.14 branch September 26, 2026 06:01
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.

1 participant