[libcxx-commits] [PATCH] D106763: [libc++][RFC] Disable incomplete library features.

Louis Dionne via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Tue Jul 27 12:40:45 PDT 2021


ldionne accepted this revision.
ldionne added a comment.
This revision is now accepted and ready to land.

Thanks a lot for this! That's exactly what I had in mind.

The fact that we changed the `Apple.cmake` cache means that we already have a tester for this configuration, so no need to add one.

Once the LLVM 13 branch is cut, I'll cherry-pick a change that passes `LIBCXX_ENABLE_INCOMPLETE_FEATURES=OFF` on the release branch (so that LLVM 13 doesn't ship half-implemented features). In the future, it would be even better to consider the LLVM distribution as being a "vendor" and have a "vendor specific" cache for it (that would be used when building LLVM for releasing). We'd set `LIBCXX_ENABLE_INCOMPLETE_FEATURES=OFF` in that cache.



================
Comment at: libcxx/docs/BuildingLibcxx.rst:402
+
+  PLACEHOLDER
 
----------------
Mordante wrote:
> Mordante wrote:
> > Update documentation.
> @ldionne Is it intended these options are documented? There seem to be quite some missing options. For example `LIBCXX_ENABLE_RANDOM_DEVICE` and `LIBCXX_ENABLE_LOCALIZATION`
Oh yeah, the documentation is not up to date in that respect. I'm actually thinking that it's quite bad that there's so much duplication (here and in the `CMakeLists.txt`). Since this is aimed at vendors, perhaps we could have a single copy of those options in the `CMakeLists.txt` and have the documentation point to that? If we grouped configure-time options together, it would make them discoverable. Just a thought.


================
Comment at: libcxx/include/format:64
+#if defined(_LIBCPP_HAS_NO_INCOMPLETE_FORMAT)
+# error "The Format library is not supported by this configuration of libc++"
+#endif
----------------
Maybe this should say something like `The Format library is not complete and stable yet, so this configuration of libc++ does not allow its usage.`. Or anything else that explains a bit _why_ it's not supported (otherwise users tend to be angry).


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D106763



More information about the libcxx-commits mailing list