[libcxx-commits] [PATCH] D120831: [libc++] Remove the deprecated <ext/hash_set> and <ext/hash_map>.

Arthur O'Dwyer via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Wed Mar 2 09:33:56 PST 2022


Quuxplusone created this revision.
Quuxplusone added reviewers: ldionne, philnik, libc++, howard.hinnant, EricWF, pcc.
Quuxplusone added a project: libc++.
Herald added subscribers: arichardson, mgorny.
Herald added a project: All.
Quuxplusone requested review of this revision.
Herald added a subscriber: libcxx-commits.
Herald added 1 blocking reviewer(s): libc++.

These have been deprecated since the initial import in 2010.

They can't be added into the modulemap at all, because (1) they depend on the setting of macro `__DEPRECATED` so they must be textual, but (2) they include detail headers like `ext/__hash` and `__algorithm/is_permutation.h` that aren't accessible to user code (and thus aren't accessible to textually-included headers either).

Well, "not accessible" merely means "triggers `-Wprivate-header`," which //could// be worked around (see D118616 <https://reviews.llvm.org/D118616>), but my thesis is that working around it would be uglier, and just killing off these deprecated headers once and for all would be nicer, as long as we agree we can get away with it.

This is also an application of my mantra "If it isn't tested, it doesn't work." Notice the removed tests: they don't actually test much of anything. So we have no idea whether this code actually works.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D120831

Files:
  libcxx/include/CMakeLists.txt
  libcxx/include/ext/__hash
  libcxx/include/ext/hash_map
  libcxx/include/ext/hash_set
  libcxx/test/libcxx/clang_tidy.sh.cpp
  libcxx/test/libcxx/containers/gnu_cxx/hash_map.pass.cpp
  libcxx/test/libcxx/containers/gnu_cxx/hash_map_name_lookup.pass.cpp
  libcxx/test/libcxx/containers/gnu_cxx/hash_set.pass.cpp
  libcxx/test/libcxx/containers/gnu_cxx/hash_set_name_lookup.pass.cpp
  libcxx/test/libcxx/double_include.sh.cpp
  libcxx/test/libcxx/extensions/hash/specializations.compile.fail.cpp
  libcxx/test/libcxx/extensions/hash/specializations.pass.cpp
  libcxx/test/libcxx/extensions/hash_map/const_iterator.compile.fail.cpp
  libcxx/test/libcxx/min_max_macros.compile.pass.cpp
  libcxx/test/libcxx/nasty_macros.compile.pass.cpp
  libcxx/test/libcxx/no_assert_include.compile.pass.cpp
  libcxx/utils/generate_header_tests.py
  libcxx/utils/graph_header_deps.py

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D120831.412456.patch
Type: text/x-patch
Size: 84774 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20220302/47e07152/attachment-0001.bin>


More information about the libcxx-commits mailing list