Skip to content

ABI breakage caused by renaming of jl_init__threading to jl_init #40730

Closed
@fingolfin

Description

@fingolfin

(This was a comment elsewhere but I figured this is an issue of its own).

The changes in c556bb9 broke ABI compatibility: any binary compiled against Julia <= 1.6 and calling jl_init() won't work with latest Julia master / Julia 1.7 unless it is recompiled.

If that's truly intentional, I guess we'll have to keep up producing multiple binaries for lots of BinaryBuilder JLLs, one for each major Julia version (and in some cases maybe more, as in the best there were ABI breaks even in patch level updates from 1.x.y to 1.x.(y+1)).

However, this migration is tricky, because there won't be a libjulia_jll 1.7 before Julia 1.7 is released, so I can't provide such JLLs linked against 1.7/master until then. This would be less of an issue if there was a clear strategy for such breaking changes in Julia: like, leaving a compatibility stub for jl_init__threading in 1.7 so that binaries compiled against older Julia version keep working, and removing that only in 1.8.

To do this, one could add a simple compatibility shim for jl_init__threading with a not to remove it in 1.8. I could look into providing a PR for that, but it'd be nice to know how the feelings about that are before investing work into it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions