Re: RFC: Switch to C++17
Amos Jeffries <[email protected]> Tue, 6 Dec 2022 00:18:36 +1300
| Newsgroups | gmane.comp.web.squid.devel |
|---|---|
| Message-ID | <[email protected]> |
I support the switch. Caveat details below... On 5/12/2022 5:21 am, Francesco Chemolli wrote: > I support the switch > > On Sun, 4 Dec 2022 at 16:18, Alex Rousskov wrote: > > Hello, > > C++17 is supported by popular modern compilers and stable distros. > Squid > master branch should target those IMO. Even old environments can > install > the necessary modern compilers (e.g., RHEL5 users can get them via > Red > Hat Developer Toolset). > > * GCC v5 supports most C++17 features. > * GCC v8 supports all relevant C++17 features. > * Clang v5 supports nearly all C++17 features. > * Clang v8 supports all relevant C++17 features. > non-RHEL distros shipping Squid are almost all providing at lease GCC v8. In many cases even their recently refreshed (Nov 2022) LTS have it. The RHEL family distros (CentOS 7 in particular, but also many others) LTS versions only provide LLVM/clang v7 from the C++17 compilers. So I think we could bump to require GCC v8 or Clang v7 minimum without much fuss. That would leave us figuring out what (if any) hacks we needed for the clang v7 vs C++17 feature gaps. Hopefully no worse than what we have been doing to figure out the GCC 4.8 vs C++11 feature gaps. It has been a while since I had any info about the RedHat developer toolset. Do you know if GCC 8+ or LLVM/clang 8+ are in there? if so, then bump to v8 for both compilers and full speed ahead :-) > > Switching to just C++14 would be better than nothing, but it will not > give us several C++17 features that we already waste serious time on > emulating/avoiding (e.g., std::optional). We should not switch to > C++20 > yet because modern stable compilers still have some C++20 support > holes. > Agreed, C++14 is not worth the jump, and C++20 is far too early. [ IMO in general we should leave ~5 years for the distro LTS to catch up on compilers releases before considering adopting a language update. ] Cheers Amos