This is an archive of the discontinued LLVM Phabricator instance.

[libcxx] Remove <ext/hash_set>, <ext/hash_map> and <ext/__hash>
AbandonedPublic

Authored by ldionne on Feb 4 2019, 7:44 AM.

Details

Summary

Those headers have been deprecated for a long time and it's about time
we get rid of them. Users should move to std::unordered_set and
std::unordered_map.

Event Timeline

ldionne created this revision.Feb 4 2019, 7:44 AM

I did run a build of a significant code base with those removed and didn't find any problem. If it breaks some users, I don't think it's going to break many of them.

Oh, I agree. However, when I have proposed this in the past, I have gotten pushback from many people (including Apple, Google and others).
At the very least, you should announce this on llvm-dev, and get feedback there.

Oh, I agree. However, when I have proposed this in the past, I have gotten pushback from many people (including Apple, Google and others).
At the very least, you should announce this on llvm-dev, and get feedback there.

Do you mean libcxx-dev? cfe-dev? (this seems really off topic for llvm-dev)

Oh, I agree. However, when I have proposed this in the past, I have gotten pushback from many people (including Apple, Google and others).
At the very least, you should announce this on llvm-dev, and get feedback there.

Do you mean libcxx-dev? cfe-dev? (this seems really off topic for llvm-dev)

No, l really mean llvm-dev, because that will get a wide audience of libc++ users (not just libc++ developers).

Oh, I agree. However, when I have proposed this in the past, I have gotten pushback from many people (including Apple, Google and others).
At the very least, you should announce this on llvm-dev, and get feedback there.

Do you mean libcxx-dev? cfe-dev? (this seems really off topic for llvm-dev)

No, l really mean llvm-dev, because that will get a wide audience of libc++ users (not just libc++ developers).

libcxx-dev: http://lists.llvm.org/pipermail/libcxx-dev/2019-February/000191.html

I CC'd llvm-dev to grab their attention.

Louis

ldionne abandoned this revision.Jun 22 2021, 9:33 AM

I might revisit this later, but I'm not moving forward for the time being since a bunch of people said it was going to break them.

I think we should instead ship those headers as a separate project and people who need them can still get the headers from that project. IOW, they shouldn't be part of libcxx. But I don't have any time to work on this low priority cleanup at the moment, so abandoning.

I might revisit this later, but I'm not moving forward for the time being since a bunch of people said it was going to break them.

I think we should instead ship those headers as a separate project and people who need them can still get the headers from that project. IOW, they shouldn't be part of libcxx. But I don't have any time to work on this low priority cleanup at the moment, so abandoning.

Another option to consider, if/when this is revisited, is leaving them in libcxx but shipping them only as a (maybe off-by-default?) cmake configuration option.

libcxx/test/libcxx/extensions/hash/specializations.pass.cpp