Releases: atomicdog/julia
Julia 1.14-DEV ppc64le
Julia 1.14-DEV ppc64le
(release notes by Claude Code)
First snapshot of the ppc64le-tier1 branch — Julia source-built for
PowerPC ppc64le-linux-gnu with two downstream patches needed to get
the standard test suite to a clean baseline on Power9.
Build provenance
- Branch:
ppc64le-tier1at commitf962829baa - Julia version:
1.14.0-DEV - Bundled LLVM:
20.1.8(with one downstream patch, see below) - Host: Power9, Fedora CoreOS 43, Ubuntu 24.04 reference container
(contrib/ppc64le/Containerfile)
Tarball
julia-f962829baa-linuxppc64le.tar.gz is the standard Julia binary
layout — extract and run julia-f962829baa/bin/julia. Relocatable;
should run on any glibc ppc64le Linux that has the usual runtime
(libstdc++, libgcc, libpthread).
Patches over upstream Julia 1.14-DEV
-
aotcompile: skip cross-package PLT thunk on PowerPC
(commit3357ee3918) — works around the long-standing LLVM PPC
musttail bug (llvm/llvm-project#108014,#63214,#56679) by
routing the cross-package SPECSIG call site through the existing
boxed-args fallback on PPC instead ofemit_pkg_plt_thunk's
varargs-musttail trampoline. Cost: one box/unbox per cross-package
call. Without this, stdlib AOT precompile fails during the first
make release. -
deps: backport LLVM PR #131844 (Promote FREEZE for f16) to bundled 20.1.8(commitf962829baa) — verbatim subset of
upstream commit5b6b4fdb. Adds the missingcase ISD::FREEZE
inDAGTypeLegalizer::PromoteFloatResult. Without this, any IR
withfreeze half(which GVN/InstCombine inject at-O2+to
discharge poison) aborts in JIT/AOT codegen with
"LLVM ERROR: Do not know how to promote this operator's result!".
Surfaces in stdlibRandom(Float16 inrand!type list), in
Statistics(Float16 inmiddle), inSparseArrays' Float16
linalg / cholmod paths, and as Distributed-worker hangs in
JuliaLowering_stdlibs,Test, andcmdlineargs. Already in
upstreamrelease/21.xandrelease/22.x; LLVMrelease/20.x
was closed at 20.1.8 without backport. Drop this patch when
bundled LLVM is bumped to ≥21.
Test status (make test-<name> inside the reference container)
| Suite | Result |
|---|---|
Random |
223353 / 223353 pass (3m59s) |
Statistics |
935 / 935 pass (2m59s) |
JuliaLowering_stdlibs |
clean (5m56s, 110 dep configs precompiled) |
Profile |
19565 pass, 2 broken |
Tar |
3865 pass, 11 broken |
Test |
742 pass, 17 broken (2m45s) |
cmdlineargs |
508 pass, 5 broken (12m16s) |
SparseArrays |
30924 / 30930 pass, 1 stdlib-version-skew error* |
Pkg |
passes apart from 2 .cov instrumentation tests** |
* SparseArrays/test/linalg.jl:826 constructs SymTridiagonal with
a deliberately mismatched ev length, expecting it to succeed. The
current LinearAlgebra/src/tridiag.jl:12 constructor throws
DimensionMismatch. This is a stdlib version skew, identical
failure expected on x86, not a PPC issue.
** Pkg/test/extensions.jl:21,41 run Pkg.test(...; coverage=true)
and expect .cov files in the test package directory. None are
written — likely an interaction between the rootless-podman :Z
SELinux mount and the spawned subprocess's coverage output, not PPC
codegen.
Known limitations
- Built with
USE_BINARYBUILDER_LLVM=0; LLVM is patched and statically
linked in.
Acknowledgements
LLVM FREEZE fix authored upstream by Matt Arsenault
(llvm/llvm-project#131844, merged 2025-03-19). This release is just
the downstream backport for LLVM release/20.x. Backport analysis
and packaging assisted by Anthropic Claude.
v1.9.0-DEV
Merge branch 'JuliaLang:master' into master