Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ABI breakage caused by renaming of jl_init__threading to jl_init #40730

Closed
fingolfin opened this issue May 6, 2021 · 1 comment · Fixed by #40851
Closed

ABI breakage caused by renaming of jl_init__threading to jl_init #40730

fingolfin opened this issue May 6, 2021 · 1 comment · Fixed by #40851

Comments

@fingolfin
Copy link
Contributor

(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.

@JeffBezanson
Copy link
Member

Ok, it's easy enough to add an alias for this to keep compatibility so we might as well. In general the ABI is not stable between minor versions though.

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 a pull request may close this issue.

2 participants