Skip to content

Releases: atomicdog/julia

Julia 1.14-DEV ppc64le

28 Apr 02:24

Choose a tag to compare

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-tier1 at commit f962829baa
  • 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

  1. aotcompile: skip cross-package PLT thunk on PowerPC
    (commit 3357ee3918) — 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 of emit_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.

  2. deps: backport LLVM PR #131844 (Promote FREEZE for f16) to bundled 20.1.8 (commit f962829baa) — verbatim subset of
    upstream commit 5b6b4fdb. Adds the missing case ISD::FREEZE
    in DAGTypeLegalizer::PromoteFloatResult. Without this, any IR
    with freeze 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 stdlib Random (Float16 in rand! type list), in
    Statistics (Float16 in middle), in SparseArrays' Float16
    linalg / cholmod paths, and as Distributed-worker hangs in
    JuliaLowering_stdlibs, Test, and cmdlineargs. Already in
    upstream release/21.x and release/22.x; LLVM release/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

21 Jul 07:11
8b6de51

Choose a tag to compare

v1.9.0-DEV Pre-release
Pre-release
Merge branch 'JuliaLang:master' into master