(original) (raw)

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@lists.llvm.org> wrote:
Marshall Clow via cfe-dev <cfe-dev@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::string\_view
\> \* the searchers (std::experimental::boyer\_moore, etc)
\> \* std::experimental::random\_shuffle

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@lists.llvm.org
\> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
cfe-dev mailing list
cfe-dev@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev