[libcxx-commits] [PATCH] D74870: Split _LIBCPP_STRING_EXTERN_TEMPLATE_LIST up into a V1 and UNSTABLE version.

Martijn Vels via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Thu Feb 20 20:13:23 PST 2020


mvels added a comment.

Thanks for the Feedback Eric, personally I think this version or your alternative are close, and both are based on the same (solid) principle of 'make the ABI explicit'

I do like (and prefer) Luis preference of explicitly specifying (decoupling) the V1 and UNSTABLE template list. 
While somewhat more verbose, it's cleaner, and easy to validate 'unstable' changes vs 'extend new c++ API in stable'

I also think we may have to consider a future where we may want to roll unstable into a new V2 stable version (and new V3 / unstable).
Having the tables separate makes this imo a cleaner cut. (And I had an interesting discussion with Titus this morning how we should actually consider any future Vn versions as a new llvm-project rather than introducing versions, alas, that's crazy talk).

Anyway, I don't think we are strongly married into one or the other, if we don't like it for whatever reason, the changes are mostly re-arranging the explicit template macros in __string and a handful of lines in string / string.cpp, likely less than the heavy lifting you already did for making the external templates explicit (again, thanks for that!) . From out chat I understand that you are ok with this version if there is a majority preference, let's meet up when you are back next week.

I am working on two documents, one outlining the motivation, consequences and options for tweaking the unstable ABI, and a separate doc summarizing the intended string optimizations (some in detail and general principles). Hopefully I have something worth sharing tomorrow, thanks!


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D74870





More information about the libcxx-commits mailing list