[llvm-dev] [cfe-dev] RFC: Plan for removing components from namespace std::experimental (original) (raw)
Christopher Di Bella via llvm-dev llvm-dev at lists.llvm.org
Mon Apr 10 15:27:12 PDT 2017
- Previous message: [llvm-dev] [cfe-dev] RFC: Plan for removing components from namespace std::experimental
- Next message: [llvm-dev] [cfe-dev] RFC: Plan for removing components from namespace std::experimental
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
I second Justin's suggestion, but would that happen in LLVM 5 or 6?
Just as something to consider, it may also cause spurious errors for people who are relying on the at-version-stability of experimental libraries, causing them to turn off warnings for deprecated code.
As C Bergstrom has said, users buy into experimental libraries with the knowledge that the interface or behaviour could change at a moment's notice, so it might not be an issue, but it is worth considering.
On Tue., 11 Apr. 2017, 08:11 Justin Bogner via cfe-dev, < cfe-dev at lists.llvm.org> wrote:
Marshall Clow via cfe-dev <cfe-dev at lists.llvm.org> writes: > As part of the work on C++17, WG21 released a series of "Technical > Specifications", (TS) which added proposed new features to the standard > library. These were all defined in the namespace 'std::experimental' (and > namespaces inside of that). > > Then, much of these features were merged into the main standard, and became > part of namespace 'std'. Libc++ now has two implementations of several of > these, and they are diverging (because changes were made to the ones in the > main standard, but not to the ones in the TS. > > In the long run, I would like to remove the TS versions of these features > from libc++ - since there are "better" versions in the main standard now. > However, since people are using these, I don't think yanking them w/o > warning is the right thing to do. > > So, I'm proposing a new policy, and a timetable: > > One year. > > One year after we ship a LLVM release that supports a new C++ standard, we > will remove all the features that are in the 'experimental' namespace that > are implemented in the new standard). > > Applying this policy to C++17, we get: > > LLVM 5.0 will support C++17. > > So, for LLVM 7.0, we will remove (at least) the following features from > libc++ > * std::experimental::filesystem > * std::experimental::optional > * std::experimental::any > * std::experimental::stringview > * the searchers (std::experimental::boyermoore, etc) > * std::experimental::randomshuffle
Should we throw [[deprecated("use std::filesystem")]] and such on these things in the window between the non-experimental version being released and the experimental one being removed? > and probably other things... > > Comments? > > -- Marshall _> ________________________ > cfe-dev mailing list > cfe-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
cfe-dev mailing list cfe-dev at lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170410/831a08c1/attachment.html>
- Previous message: [llvm-dev] [cfe-dev] RFC: Plan for removing components from namespace std::experimental
- Next message: [llvm-dev] [cfe-dev] RFC: Plan for removing components from namespace std::experimental
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]