public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Jonathan Wakely <jwakely@redhat.com>
To: libstdc++@gcc.gnu.org, gcc-patches@gcc.gnu.org
Subject: [patch] Implement ISO/IEC TS 18822 C++ File system TS
Date: Thu, 30 Apr 2015 17:42:00 -0000	[thread overview]
Message-ID: <20150430173236.GT3618@redhat.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 1743 bytes --]

This is the complete <experimental/filesystem> implementation I intend
to commit shortly. (It's also been pushed to the redi/filesystem-ts
branch in the git mirror).

As before, only a static library (libstdc++fs.a) is built, so there
are no symbols added to libstdc++.so and we can be a bit more risky
with regards to maintaining a stable ABI for this stuff.

Since the last updates to the branch I added the <codecvt> header,
which meant I could add the missing path conversion features to
filesystem. I've also put everything relevant in a nested __cxx11
namespace, to avoid problems with the dual std::string ABI.

At this time the objects in libstdc++fa.a are all built with the
default std::string ABI (as set by configure). It will probably be
necessary to compile all of src/filesystem/*.cc twice when the dual
ABI is enabled, so both sets of definitions go in the archive.

I've tested this on GNU/Linux and DragonFly BSD, but as it's probably
not going to build everywhere I've added the configure option
--enable-libstdcxx-filesystem-ts which defaults to enabled on GNU, BSD
and Solaris targets, and disabled elsewhere for now. If it fails to
build on any of those targets we can change the default while we fix
the problem.

There are still quite a few operations (see src/filesystem/ops.cc)
without proper implementations, which might need to use the Win32 API.
I've compiled the _GLIBCXX_FILESYSTEM_IS_WINDOWS code by overriding
the macro, but not tested it any more than that. Someone will have to
try using --enable-libstdcxx-filesystem-ts on mingw.org, mingw-w64 and
cygwin to see what happens there. It's possible that macro could be
replaced by the existing _GLIBCXX_HAVE_DOS_BASED_FILESYSTEM macro, but
I'm not sure yet.



[-- Attachment #2: patch.txt.bz2 --]
[-- Type: application/x-bzip2, Size: 29938 bytes --]

             reply	other threads:[~2015-04-30 17:32 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-30 17:42 Jonathan Wakely [this message]
2015-04-30 19:33 ` Jonathan Wakely
     [not found]   ` <CAFW6PZB9WvskzrKCsNKK4s-5oXWjcwkuZGMrWbrfgJ7fpJiCXQ@mail.gmail.com>
     [not found]     ` <20150501105351.GY3618@redhat.com>
2015-05-01 19:49       ` Jonathan Wakely
2015-05-02  9:52         ` Jonathan Wakely
2015-05-08 11:43         ` Rainer Orth
2015-05-13 10:56           ` Jonathan Wakely
2015-05-01 12:45 ` Rainer Orth
2015-05-01 15:11   ` Jonathan Wakely
2015-05-01 15:14     ` Rainer Orth
2015-05-01 17:03 ` Daniel Krügler
2015-05-01 17:55   ` Jonathan Wakely
2015-05-01 18:22   ` Jonathan Wakely
2015-05-01 19:28     ` Daniel Krügler
2015-05-01 19:38       ` Jonathan Wakely
2015-05-01 20:05         ` Jonathan Wakely

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150430173236.GT3618@redhat.com \
    --to=jwakely@redhat.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=libstdc++@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).