[cfe-dev] [llvm-dev] Filesystem has Landed in Libc++

Hans Wennborg via cfe-dev cfe-dev at lists.llvm.org
Thu Aug 2 00:46:04 PDT 2018


I only saw this now after the llvm 7 branch was cut.

It would be good to get this all figured out before the release :-)

On Mon, Jul 30, 2018 at 10:19 PM, Louis Dionne via llvm-dev
<llvm-dev at lists.llvm.org> wrote:
> FWIW, I’d like for us to come to an agreement before the branch for LLVM 7.0
> is cut. How do others feel about this? Am I wrong when I claim that shipping
> an ABI-unstable feature in the std:: namespace is a deviation from normal
> practice? Am I overcautious when I say it’s asking for trouble?
>
> Eric, I know you’re busy and may not have time to do the work so I’m totally
> willing to chime in, but I’d like to have your thoughts on my objection
> first.
>
> Cheers,
> Louis
>
>
> On Jul 27, 2018, at 17:02, Louis Dionne via cfe-dev <cfe-dev at lists.llvm.org>
> wrote:
>
> Eric,
>
> I’m curious to know what the concerns are w.r.t. providing ABI stability for
> filesystem right now. What do you envision may require changing the ABI in
> the future?
>
> I feel like taking filesystem out of experimental/ without providing the
> usual guarantees provided by libc++ for non-experimental code may not be a
> good idea, as we’ll be pretending that we support filesystem when we really
> only half support it. In other words, I think the number of people that will
> start using filesystem while _consciously_ knowing that it is ABI-unstable
> (and what that means) is quite small, and that is making our users a
> disservice.
>
> Would it be possible to instead ship the parts we’re not quite sure we can
> keep ABI stable in the headers (with `_LIBCPP_HIDE_FROM_ABI`) for the time
> being, and lower them to the dylib eventually as things stabilize? This
> would allow us to ship filesystem with LLVM 7.0 without any compromise on
> the guarantees we make our users.
>
> I’m curious to know what you think of this suggestion.
> Louis
>
> On Jul 27, 2018, at 00:20, Eric Fiselier via cfe-dev
> <cfe-dev at lists.llvm.org> wrote:
>
> Hi All,
>
> I recently committed <filesystem> to trunk. I wanted to bring attention to
> some quirks it currently has.
>
> First, it's been put in a separate library, libc++fs, for now. Users are
> responsible for linking the library when they use filesystem.
>
> Second, it should still not be considered ABI stable. Vendors should be
> aware of this before shipping it. Hopefully all the standard and
> implementation bugs can be resolved by the next release, and we can move it
> into the main dylib.
>
> Third, libc++experimental no longer contains the symbols for
> <experimental/filesystem>, which is really just <filesystem> is disguise. If
> you've been using <experimental/filesystem> you now need to link libc++fs
> instead.
>
> Fourth, `<filesystem>` is technically available in C++11 and later. The
> implementation lives in the std::__fs::filesystem namespace, which is marked
> "inline" in C++17 but not before. We should consider documenting this as an
> extension to its use w/o C++17.
>
> Happy coding,
>
> /Eric
>
> [1]
> http://libcxx.llvm.org/docs/UsingLibcxx.html#using-filesystem-and-libc-fs
> _______________________________________________
> 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
>
>
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>



More information about the cfe-dev mailing list