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

Add jl_stdout_obj back fixing regression of r-juliacall #56340

Open
wants to merge 8 commits into
base: master
Choose a base branch
from

Conversation

PallHaraldsson
Copy link
Contributor

@PallHaraldsson PallHaraldsson commented Oct 25, 2024

Fixes #56339 (very partial revert of #53250 (comment) see also: JuliaInterop/JuliaCall#237 alternative, but maintainer is absent).

Please backport to 1.11.2 (#56228), since it looks bad for Julia to break packages (that PkgEval can't reach, so understandable).

A.
Adding

XX(jl_stdout_obj) \

back, I think a Warning (or TODO) comment can't go there at the end of the line.

[I also added the code, not sure if some kind of dummy export is possible. This could even be a no-op but seemingly not bad with the original code, it's at least not large.]

B.
[I also really want to drop lisp_prompt export in that file, which is possible and desirable... while keeping --lisp CLI option, i.e. only dropping for C API export.

Feel free drop that from same file, and merge too.]

@PallHaraldsson PallHaraldsson marked this pull request as draft October 25, 2024 21:57
@PallHaraldsson PallHaraldsson marked this pull request as ready for review October 25, 2024 22:21
@PallHaraldsson PallHaraldsson mentioned this pull request Oct 25, 2024
43 tasks
Copy link
Member

@fingolfin fingolfin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Julia's ABI and even most of its API are not stable and change with every release of Julia. (I state this as a matter of fact, not because I necessarily condone it -- indeed I think it would be crucial for Julia on the long run to define a subset of its API (and perhaps even ABI) which it commits to keeping stable, and which then on the C header level is "separate" so that developers who wish to target this API have a realistic chance to get that API and only that (and not end up using other, unstable APIs "by accident").

Based on this I'd say having to adapt to each Julia minor release is par for the course, and if there is no active maintainer this project will stop working at to some point on way or another.

However, I also see no harm in restoring this particular API for the time being, it doesn't cost us much and if it helps people to bridge over the time until they have active maintainers for JuliaCall, why not...

@PallHaraldsson
Copy link
Contributor Author

Thanks for approving (CI Failure is unrelated (or well must be). You would support it in 1.11.2? Add a backport label?

Julia's ABI and even most of its API are not stable and change with every release of Julia.

so true...

indeed I think it would be crucial for Julia on the long run to define a subset of its API (and perhaps even ABI) which it commits to keeping stable

Right, I'm not sure when is the right time for that, if not now. At least something must be minimal very unlikely to change.

Based on this I'd say having to adapt to each Julia minor release is par for the course

Right, I think maybe we need to be careful what we add to the exported API, and this never should have been there...

It's annoying when stuff gets dropped from the unstable "API", we are likely converging on a stable API?! I wander how much more it needs to change. At least we could bless a subset of it, similar to Python is doing? [I'm not saying "jl_stdout_obj back" should be declared stable API indefinitely, the PR here is just a workaround, though I'm unclear on downside of never dropping again.]

However, I also see no harm in restoring this particular API for the time being, it doesn't cost us much and if it helps people to bridge over the time until they have active maintainers for JuliaCall, why not...

Exactly, why I'm doing this. I do not rule out dropping it later, or changing to no-op...

This wasn't used by Julia itself (unlike for very similar jl_stdout_obj), likely why it was dropped.

@PallHaraldsson
Copy link
Contributor Author

PallHaraldsson commented Oct 26, 2024

Bump. [If not merged for 1.11.2,] add regression 1.11 label to the issue (and backport 1.11 here).

@PallHaraldsson
Copy link
Contributor Author

PallHaraldsson commented Oct 27, 2024

Bump (on merge if still wanted):

FYI: The alternative is now in motion (with the original developer, otherwise absent, finally answering email), some other people will take over and maintain at JuliaInterop, see: JuliaInterop/JuliaCall#237 (comment)

But I still think this can be merged, it's still helpful (and I believe very safe here), at least if people have older version of the package installed (or some other using this), or taking over that project simply gets delayed.

CI failures are false alarms.

@PallHaraldsson PallHaraldsson force-pushed the patch-27 branch 2 times, most recently from 4e00fab to 12aef8d Compare November 14, 2024 10:22
@PallHaraldsson
Copy link
Contributor Author

Maybe just merge this, because of the hold-up with the alternative (and since it's approved, and not a problem to have in).

If merged then get into 1.11.8 or not really of much help soon.

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.

Removal of jl_stdout_obj broke r-juliacall
2 participants