[libcxx-commits] [PATCH] D138307: [libc++] Remove default definition of std::char_traits

Reid Kleckner via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Wed Nov 23 11:15:02 PST 2022


rnk added a comment.

Would it be reasonable to retain the default implementation of char_traits under a __config_site macro? This will provide downstream projects with a migration path that is not tightly coupled to the libc++ version. They can update libc++ and complete the migration as separate steps. The migration path can be removed over a longer time horizon, like after the next release.

In our experience at Google, libc++ has recently made frequent breaking changes which prevent us from uprevving libc++, and oftentimes by extension, the entire LLVM toolchain. We are definitely committed and willing to rewrite code to conform to the standard, but the current pace of breakage and lack of migration paths is causing us problems, and I worry that we are just the canary hitting these issues first. I think other users will experience them later when it comes time to release.

I aspired to start a large discussion about appropriate project policies on breaking changes, but I never got around to it, and it looks like we've discovered the next breaking change before I was able to kick off an RFC. I will also be going on leave soon until May, so it's not likely that I'll be able to follow up, but I wanted to share my thoughts.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D138307/new/

https://reviews.llvm.org/D138307



More information about the libcxx-commits mailing list