-
Notifications
You must be signed in to change notification settings - Fork 287
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
Fixes for compilations using single/triple/quadruple precision #3910
Conversation
@roystgnr Is the |
I don't know why it's there. :) |
Job Coverage on f907d55 wanted to post the following: CoverageInconsistent report tags were found between the head and base reports. Inconsistent tags: This comment will be updated on new commits. |
The reason why it's there is discussed (in rambling fashion) in #3157 Basically: in TIMPI we're copying certain things into buffers via Unfortunately, a |
58c10d3
to
556ddf4
Compare
Yep. Assuming I can get boostorg/multiprecision#636 merged, the newest commit, 3e80340, fixes compilations using quadruple precision if the user disables both fparser (linking issue 'cause fparser doesn't know about boost's float128, so it never instantiates anything for that type) and MetaPhysicL (because we check at points if the scalar type is built-in, and it obviously isn't marked as such https://github.com/libMesh/MetaPhysicL/blob/e67ec423140498ed65e5824c4de0f9f7143bbbdc/src/core/include/metaphysicl/compare_types.h#L163-L177). Other than that, I think I broke CIVET by force pushing so much, so if you could give it a nudge @jwpeterson I think we should be good. |
Who knows, the user might have set something there.
Could you cherry-pick my last two commits from the roystgnr/fixes branch? I don't have permission to push to yours. That'll fix a minor issue I noticed and hopefully also wake up Civet. |
Thanks, well noticed. :) I just realised, what does the "Test 32bit" actually do? |
Most of our tests get run with 64-bit integers; that one with 32-bit. It's also one of the places where we run tests in dbg mode. |
Thanks, I see, you change |
We really ought to be testing the variations on |
Hey,
This completely fixes single/triple precision compilations for me.
Compilations using quadruple precision, however, will still fail:
./include/libmesh/point.h:104:73: error: use of deleted function ‘std::hash<boost::multiprecision::number<boost::multiprecision::backends::float128_backend, boost::multiprecision::et_off> >::hash()’
__float128
is trivially copyable but boost's wrapper unfortunately isn't? After writing that, I checked, and the docs claim it should be...?! Is boost::multiprecision::float128 a trivial type? boostorg/multiprecision#635):../src/geom/point.C:28:80: error: static assertion failed: Someone made Point non-TriviallyCopyable
Cheers,
-Nuno