-
Notifications
You must be signed in to change notification settings - Fork 252
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
[External] Update pybind11 to 2.11 #12141
Conversation
Clearly this is something to be discussed by @KratosMultiphysics/technical-committee |
Looks like it would require some additional refactoring. |
definitely. It will take some time to iron out, and I'll need to use the CI as my machine to do so ... |
I am not too positive about including all the headers. This makes bigger our repo...and that is already exploding ... per regards the bumping up, can you list here the advantages (aside of the symbols you mention)? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
blocking as this is potentially disruptive (and huge)
It does. Ideally we'd be using pybind that's installed on the user's system and not explicitly include it in our repository. Another solution would be to have pybind as a submodule (though that's an all new can of worms). I'm not sure who or why decided to explicitly include pybind in our repo, but since we have it in here, we must be transparent with what version we're using. P.S.: the increase in size is 2.5Mb. There are single source files in our repository that are an order of magnitude larger than that, so I doubt this should be an issue.
The last commit touching our pybind dates Aug 22 2022 but doesn't say what version it copied, so I'll assume it was the latest release at that time (version 2.10 dating Jul 16 2022). You can take a look at the changelogs since that release. I cannot overstate the importance of having debug symbols in our builds though. Benchmarking without them is nearly impossible, and so is fast debugging in If you don't want pybind updated, we should at least give users the option to provide their own version or fall back to the copy in our repo. |
…sics/Kratos into external/pybind11
To clarify, I agree that debugging symbols are ok, although i am not clear on the why with the current version is not possible. we took the decision some time ago not to use submodules, and i believe this is somthing we should maintain |
Makes sense to me, I agree. |
my proposal would be to remove anything that is not strictly needed (rst files, html, tests etc) and eventually add a txt file acknowledging the version and the relevant info). That would solve all technical issues and still keep low the number of files. What is that you dislike about this? |
Changes
Update pybind11 to its latest release (2.11).
Instead of copying only the headers, I included all files in the repository because
pybind11Tools
As a result, I also got rid of
cmake_modules/pybind11Tools.cmake
and made the necessary changes in all applications'CMakeLists.txt
s.Notes
Updating pybind11 has the happy sideeffect that symbols now get properly written to binaries if requested (in
FullDebug
,Debug
andRelWithDebInfo
modes), so tracebacks and profiling become actually useful.