Re: C++20 and newer C++ compiler

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 8/12/22 09:39, kefu chai wrote:
hi Mark,

On Thu, Aug 11, 2022 at 3:06 AM Mark Nelson <mnelson@xxxxxxxxxx> wrote:
Hi Kefu,


Thank you for providing the links!  In the future, I think we should
pick target compiler versions at the beginning of a release cycle, set
the CI/CD to use them, then update our documentation and build checks to
make sure that it's being used even before we need it.  Right now we are
sort of in this weird state where we adopted c++20, but there does not
appear to be working cmake checks for the compiler version and at least
on centos, install-deps.sh doesn't appear to do the right thing.  This
results in build failures that are difficult to diagnose if you don't
know what to look for (ie that '<=>' isn't one of the supported features
in gcc8 despite gcc8 supporting most of the C++20 feature set).

It's really disruptive when main breaks without a clear indication of
what's going on.  I'm all for c++20.  There are a lot of useful
features!  I would very much appreciate it if we could just make some
tweaks to the process so that we aren't making decisions about distros /
compilers / major dependencies half way through the release cycle.

thanks for your insights and suggestions. sorry again. i tried my best anyway.


Yes, and thank you very much for the hard work!  I know it's really difficult to keep everything working right with these kinds of project-wide changes.  Over the last couple of years the build has become more and more complex and breakage is becoming a more common problem (I'm sorry if I was too harsh here, I've been frustrated with build breakage for a while now).  I think we are going to have to be more disciplined than we used to be about how we plan dependencies if we want to stick with the monorepo design.  I'm afraid it's going to get even worse if we don't figure out how to tackle it now.


Mark


Thanks,

Mark


On 8/10/22 07:34, kefu chai wrote:
hi folks,

as you might have already noticed, we've made the switch to C++20. see
Casey's mail sent to this mailing list a couple days ago.

another thing you need to pay attention to is, we now need to use at
least gcc-11 or clang-12 for compiling the tree.

if your working flows depend on the stock C++ compiler in your distro,
you might need to check the version to make sure that its C++20
support. see also
https://en.cppreference.com/w/cpp/compiler_support#cpp20 . for
instance, if you are using ubuntu focal, you could use the ppa repo at
https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test or
prebuilt clang-12 or up at https://apt.llvm.org. if you are using
centos/RHEL 8, you might want to use gcc-toolset-11 or gcc-toolset-12
or llvm-toolset-12 .

apparently, we are not using all the C++20 features, but we are
starting exploring some of them. as some of us have noticed, we have
started using https://wg21.link/P1185R2 in the main branch. because we
are now using both gcc-11 and clang-12 in our CI/CD workflows, we can
assure you that these two compilers should be able to compile the main
branch.

i apologise for any inconvenience caused.

cheers,

_______________________________________________
Dev mailing list -- dev@xxxxxxx
To unsubscribe send an email to dev-leave@xxxxxxx



_______________________________________________
Dev mailing list -- dev@xxxxxxx
To unsubscribe send an email to dev-leave@xxxxxxx




[Index of Archives]     [CEPH Users]     [Ceph Devel]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux