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
Import BOOST 1.84. #16621
Import BOOST 1.84. #16621
Conversation
fb9b042
to
42bb6bd
Compare
Well, it works! At least on everything but the Windows platform:
It's not clear to me why it would look at the GCC headers. Anyone see what I'm doing wrong? |
This issue was reported earlier in #16413. |
Does someone have a Windows platform and could see how we end up in these header files? The errors only report that we do, but it would be very useful to see the include chain if someone was willing to dig a little bit... |
Maybe not directly related, but potentially we run into the same problem? |
452a514
to
30ea0dd
Compare
OK, this finally seems to work. This is ready to merge if you all agree with one design decision: In the past, the BOOST copy we have locally was a stripped down version that only included a subset of BOOST (a moderately curated superset of what we actually use). This has the advantage of saving ~80MB of space in the repository: the entire set of BOOST header files + the small number of source libs we ship is ~180MB, whereas what we used to package is ~100MB. On the downside, this means that if you relied on the bundled version of BOOST, you couldn't use all of BOOST. It is also quite a lot of work to strip down a BOOST version to the level we used in the past, because inevitably newer versions of some component of BOOST rely on other components they did not in the past. My proposal here is to just package all of the header files. That's not all of BOOST: we only package the |
Tests correctly now. |
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.
Fine with me.
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.
I am ok with it as well; I am curious about the possible impact on the size of the git meta data, especially the compressed history. Do we have an estimate of how much bigger the download from a git clone
is going to be?
@kronbichler I don't know. How would I test this? We have, over the past 25 years, repeatedly imported BOOST versions that were 80-100 MB large. I suspect that importing one more at 180 MB is not going to break the bank. But as a point of comparison: If you take the 180 MB in the |
I imported all you branches, including this one, and the size of my |
The Boost header file modified by e969195 was added in Boost 1.74. I am guessing therefore that on MSVC any Boost 1.74+ will result in deal.II failing to compile: this is troublesome for scenarios where an external Boost installation is used unless this hack is manually replicated beforehand. This worries me, but I also understand this looks like Boost's fault, not deal.II's. I wonder if this shall be at least documented for users configuring deal.II with an external Boost 1.74+ on MSVC. |
Let's see what the |
I found the issue. It's due to Kokkos defining things starting with a double underscore: boostorg/smart_ptr#112 (comment) Kokkos should simply not be doing this. |
Yes, fixed in Kokkos 4.1.00 (kokkos/kokkos#5804). |
We can decide if we want to try to patch the bundled |
In both cases, configuring deal.II with an external installation of the internally patched library would require the same manual patch to be applied to the external installation beforehand (unless configuring with an external Kokkos 4.1, which changed licensing though!) If one assumes it is more frequent to configure deal.II with an external Boost than with an external Kokkos, patching the bundled Kokkos would probably cause less trouble. |
See #16882. |
My suggestion would be to keep the patch here, just in case. |
Ping? |
Given that this has been open for a while without additional comments, and that it has received two approvals, I will take the decision and merge now. |
First draft. Probably many things still wrong with this.
In reference to #16618.
Fixes #16662.