-
-
Notifications
You must be signed in to change notification settings - Fork 23
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
pybind11-abi test script is silently broken for pybind11 2.12, and may be missing ABI version 5 #96
Comments
Thanks @AaronOpfer, this is probably what caused #96 . |
See a related change on the anaconda-recipes side: https://github.com/AnacondaRecipes/pybind11-feedstock/pull/15/files#diff-f3725a55bf339595bf865fec73bda8ac99f283b0810c205442021f29c06eea9aR38 . |
Thinking a bit more about this, now that pybind11 does not have a unique |
As emerged in #105 (comment), since pybind11 2.13.6, 2.12.1 and 2.11.2 a new system is in place in pybind11 (see pybind/pybind11#5296) for which @conda-forge/pybind11 do you have any opinion on this? Note that this will fix #96 and the first part of #95, but the problem of incompatibility between different major versions of gcc/clang (#77) or minor versions of msvc (part of #95). |
I think that makes sense. |
fyi also @isuruf @beckermr @bluescarni @tdegeus that partecipated in discussion in this repo. |
FWIW:
For MSVC: See the comment I posted a few minutes ago: #95 (comment) For gcc/clang: Are we missing something in pybind11? — I assumed what we have is as good as one can make it, without crossing into Undefined Behavior territory. No? |
Thanks for clarifying that. To be honest, I am not sure how to handle that at the conda-forge level. Trying to constraint all the pybind11 dependency to share the same |
From my understanding (at least reading from #77) conda-forge is considering gcc and clang compiled-code effectively ABI compatible (even if that is not true in some corner case/bugs, correct me if I am wrong), while pybind11 considers them ABI-incompatible, and that is what #77 is about. |
Yeah, sorry I didn't mean to suggest that.
Nope. — That's really difficult to pin-point. My gut feeling: it's rare, maybe even really rare. But it only takes one major package to depend on it and I'm wrong already ... |
Sure, and I was not implying you were suggesting it, my bad if I give you that impression. I was just sharing my preliminary tought on a this while typing the issue.
Perhaps we can be pragmatic and leave to who is packaging affected packages to handle that? I mean, if therea are libA and libB in such condition, nothing prevents libA to create a liba-pybind11-abi-internals package (to reflect the |
I'm a big fan of being pragmatic. (The opposing force: I don't want to create traps.)
Sounds pragmatic. — Re corner case/bugs, I'd guess that's again something very difficult to make a judgement on.
Yes. I didn't author that part of pybind11, but I always understood it as inspired by a "better safe than sorry" mindset. (Which made sense to me.)
Have you seen this code already? All 5 sub-macros that are combined into |
Yes, but Wenzel was against doing that in conda-forge and instead wanted us to figure out a solution upstream. |
Is someone working on it? |
pybind/pybind11#4953 was my attempt at it |
Oh ... I posted questions back in July: pybind/pybind11#4953 (comment) Did you see that comment already? |
Solution to issue cannot be found in the documentation.
Issue
pybind11-feedstock/recipe/meta.yaml
Line 37 in d08856e
This test looks for a define in pybind11 source that does not actually exist anymore
https://github.com/pybind/pybind11/blob/f33f6afb667b6b5c0da7dee98dc02f51b4cc0e96/include/pybind11/detail/internals.h#L40
In addition it looks like there are interesting ABI changes for py 3.12 that the recipe might not be reflecting
You can check the build log and see that the bash test now emits a scripting error about missing arguments and then the build passes anyway. So this test is broken.
Sorry that this is light on details, I am away from my computers at the moment and could not log an issue from where I spotted the problem originally due to network policy.
Installed packages
Environment info
The text was updated successfully, but these errors were encountered: