-
Notifications
You must be signed in to change notification settings - Fork 0
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
Upgrade to C++20 #27
Comments
[Transferred from legacy agenda on behalf of @ericpassmore ] Hmm I'm running /lib32/libstdc++.so.6 today. What version should I be targeting for leap build from main? |
[Transferred from legacy agenda on behalf of @spoonincode ] neither gcc nor clang have released FULL c++20 support |
Maybe it is more appropriate to talk about the C++20 features we'd like to use, Matt is correct, full support for C++20 doesn't exist yet. I think this list might be fairly up to date. I'd like to use std::span and 3 way comparison operator (<=>). |
With ubuntu 18 being dropped, I def think we should go ahead and move up to 20 (well, maybe until after the release is cut). But with no compiler fully supporting 20, we need to decide on the minimum compiler we'll target. gcc10 seems reasonable as at least there is a ubuntu20 package and it has most of the good stuff. |
Yes, it would be great to move to C++20, and indeed most of the good c++20 stuff is in gcc 10. Newer compilers can be installed if we add the following repository:
I have been building with Also, it is very easy to install any clang version with:
|
I am a little uncomfortable asking users to install packages outside their basic distro. BUT I'm also interested in using newer tools. Ubuntu 20 is near 3 years old, so I suppose it's a reasonable trade off to ask a user to upgrade either their compiler or OS. It would be nice to target g++-12 as our "supported" complier. |
2.28 meeting notes: Open Questions:
Decisions to vote on:
|
So we are now install gcc-10 on ubuntu 20.04.1
|
The way I read the 2.28 notes above was that the vote was only to defer this decision until post 4.0 branch. There appears to be outstanding questions still? For example
|
Isn't
Apologies, I don't know what that means. |
We talked about this briefly on the engineering weekly meeting video call, but the "chickens test" is a colloquialism for a test that takes the entire chain, breaks it down into segments that were collected with a known-good version of code, replays those chain segments with a piece of software under test, verifies that the replayed chain segments link correctly, and then passes or fails based on whether the chain state is equivalent with the software under test and the known-good software. This test is very good at catching consensus deviations where the software under test deviates from the behavior of the known-good software in ways that we do not have unit or integration tests for. People do weird things on-chain. The colloquialism for the test comes from the 🐓 🐓 🐓 emoji in the test name. |
Upon further reflection the group is unconvinced that compiler flags would be a material risk for the semantics and therefore chicken testing shouldn't be considered a pre-requisite. Open Question
|
Thanks Zach, this seems like an excellent test indeed! |
I'm glad it isn't this chicken test. |
This Leap Issue was created to track the C++20 upgrade effort. Please direct further comments there. Closing this discussion issue. |
[Transferred from legacy agenda on behalf of @greg7mdp and @ScottBailey]
(Should we) consider switching to -std=c++20 for leap and appbase? (@greg7mdp)
It’s 2023, can we have FULL C++20 support? If now isn’t the right time, when is? (@ScottBailey)
The text was updated successfully, but these errors were encountered: