Earlier quoted context omitted.
Note that "large scale" is pulling a heavy weight here. Also, living at the HEAD of your language standard is quite a bit different from living at the HEAD of other dependencies.
It's not just the language standard, they build and deploy the latest clang HEAD every week or so
Dropping support for old C++ standards
91–100 of 100 posts
Re: Dropping support for old C++ standards
#92Titus Winters leading the google abseil library eventually came to the conclusion that the only sane way to manage a large scale C++ system is to "live at head" [1] -- that is, libraries should live at the head production version of their dependencies. This is patchworked around in more easygoing languages with dependency management systems, docker containers, etc. etc. but if you can enforce living at head from the…
That's fine as long as HEAD doesn't break things. I can no longer count the number of times we had an issue with a "supposedly" minor release that ended up breaking major things in our stack. Most of them were things that could have been detected using unit tests or some kind of basic regression testing. If you have a 1000 dependency packages, and at any point in time 0.1% of them are broken, then odds are you will a…
Re: Dropping support for old C++ standards
#93I really like what Herb Sutter is doing with cpp2/cppfront: it's a new language that translates to C++, by defaulting to C++ good practices and "avoiding 95% of C++ pitfalls". Please watch its presentation on it. It's designed to interact with C++. Backward compatibility is good to have, but C++ needs for alternatives that allow it to drop support for old things, because the language needs to evolve and backward comp…
Re: Dropping support for old C++ standards
#94Re: Dropping support for old C++ standards
#95Earlier quoted context omitted.
Unless Sony is financially contributing, I don’t see why a 3rd party would care that the PlayStation sdk is running legacy software.
Right, same can be said regarding current state of ISO support on free beer compilers, now limping behind VC++. So taken to extreme, some Boost libraries might become VC++ only, for authors that decide to go fully on ISO C++ 20 and 23.
Re: Dropping support for old C++ standards
#96Earlier quoted context omitted.
Right, same can be said regarding current state of ISO support on free beer compilers, now limping behind VC++. So taken to extreme, some Boost libraries might become VC++ only, for authors that decide to go fully on ISO C++ 20 and 23.
What do you mean free beer compilers are limping behind VC++? The situation (as always) seems exactly the contrary. [0] [0]: https://en.cppreference.com/w/cpp/compiler_support/23
See their C++20 support versus VC++.
Re: Dropping support for old C++ standards
#97I really like what Herb Sutter is doing with cpp2/cppfront: it's a new language that translates to C++, by defaulting to C++ good practices and "avoiding 95% of C++ pitfalls". Please watch its presentation on it. It's designed to interact with C++. Backward compatibility is good to have, but C++ needs for alternatives that allow it to drop support for old things, because the language needs to evolve and backward comp…
this? https://youtu.be/ELeZAKCN4tY
Re: Dropping support for old C++ standards
#98Re: Dropping support for old C++ standards
#99Earlier quoted context omitted.
It does. Google mirrors every commit to LLVM in their monorepo, builds and tests the whole monorepo with a fresh Clang nightly, and (ideally) one of those Clang nightlies is released as the new stable compiler for all users of the monorepo every week. This helps keep Google at HEAD and helps keeps LLVM upstream stable.
I thought llvm lived in /third_party, and internal projects usually target specific LLVM versions, not the current open source trunk.
Each upstream commit didn't land directly into the monorepo, instead there was a long lived branch, and on the compiler team there was a buildcop rotation responsible for doing an integrate from that branch into //third_party/llvm. This included running the tests (and fixing any problems) for any other software that depends on LLVM as well as building an unstable crosstool and doing some basic smoke tests on that. Taking that crosstool through testing and to stable crosstool was the responsibility of a different buildcop rotation, using a special compiler team tool for testing the testing crosstool nightly, then to release to stable we used the ordinary presubmits, but for all projects at once, making its testing as similar as possible to any normal code change.
Re: Dropping support for old C++ standards
#100Earlier quoted context omitted.
I thought llvm lived in /third_party, and internal projects usually target specific LLVM versions, not the current open source trunk.
As far as I know, there was only ever one version of LLVM at a time in the monorepo. It's possible things changed after I left (either the compiler team or Google). Each upstream commit didn't land directly into the monorepo, instead there was a long lived branch, and on the compiler team there was a buildcop rotation responsible for doing an integrate from that branch into //third_party/llvm. This included running t…