Re: [patch] Implement ISO/IEC TS 18822 C++ File system TS

2015-05-13 Thread Jonathan Wakely
On 08/05/15 13:43 +0200, Rainer Orth wrote: Jonathan Wakely writes: I've committed the two changes attached (only tested on linux again). patch2.txt should fix the mingw-w64 errors above, as well as the issues Daniel reported, and should fix the error on Solaris 10 Rainer, would you be able

Re: [patch] Implement ISO/IEC TS 18822 C++ File system TS

2015-05-08 Thread Rainer Orth
Jonathan Wakely writes: > I've committed the two changes attached (only tested on linux again). > > patch2.txt should fix the mingw-w64 errors above, as well as the > issues Daniel reported, and should fix the error on Solaris 10 > > Rainer, would you be able to test with > --enable-libstdcxx-fil

Re: [patch] Implement ISO/IEC TS 18822 C++ File system TS

2015-05-02 Thread Jonathan Wakely
Another portability fix, to avoid using &stat::st_atime because st_atime might be a macro, and &stat::st_atim.tv_sec is not valid. Also POSIX doesn't actually require any particular structure for timespec, so set the fields explicitly instead of using braces. Tested powerpc64le-linux and powerpc

Re: [patch] Implement ISO/IEC TS 18822 C++ File system TS

2015-05-01 Thread Jonathan Wakely
On 01/05/15 20:38 +0100, Jonathan Wakely wrote: On 01/05/15 21:28 +0200, Daniel Krügler wrote: But if I read your implementation of path::compare(const path& p) correctly it *also* may allocate memory by copying _M_pathname into a _Cmpt object. Yes, I agree that there's a bug here that could c

Re: [patch] Implement ISO/IEC TS 18822 C++ File system TS

2015-05-01 Thread Jonathan Wakely
On 01/05/15 11:53 +0100, Jonathan Wakely wrote: On 01/05/15 10:05 +0900, Luke Allardyce wrote: This fails on mingw-w64 4.02 due to Yay, thanks for trying it! an extra typename: /mnt/build/native/gcc/x86_64-w64-mingw32/libstdc++-v3/include/experimental/fs_path.h:784:35: error: expected neste

Re: [patch] Implement ISO/IEC TS 18822 C++ File system TS

2015-05-01 Thread Jonathan Wakely
On 01/05/15 21:28 +0200, Daniel Krügler wrote: 2015-05-01 20:22 GMT+02:00 Jonathan Wakely : On 01/05/15 19:03 +0200, Daniel Krügler wrote: b/libstdc++-v3/src/filesystem/path.cc: - path::compare(const path& p) const noexcept: Shouldn't the implementation of this noexcept function not try to c

Re: [patch] Implement ISO/IEC TS 18822 C++ File system TS

2015-05-01 Thread Daniel Krügler
2015-05-01 20:22 GMT+02:00 Jonathan Wakely : > On 01/05/15 19:03 +0200, Daniel Krügler wrote: >> >> b/libstdc++-v3/src/filesystem/path.cc: >> >> - path::compare(const path& p) const noexcept: >> >> Shouldn't the implementation of this noexcept function not try to >> create copies of path objects? C

Re: [patch] Implement ISO/IEC TS 18822 C++ File system TS

2015-05-01 Thread Jonathan Wakely
On 01/05/15 19:03 +0200, Daniel Krügler wrote: b/libstdc++-v3/src/filesystem/path.cc: - path::compare(const path& p) const noexcept: Shouldn't the implementation of this noexcept function not try to create copies of path objects? Couldn't _Cmpt just hold references to _M_pathname? All your ot

Re: [patch] Implement ISO/IEC TS 18822 C++ File system TS

2015-05-01 Thread Jonathan Wakely
On 01/05/15 19:03 +0200, Daniel Krügler wrote: - There are three places where you refer to std::__addressof and one where you refer to std::addressof. Is this difference intentional? No, I'll make them all use __addressof. - I found all together six non-uglified usages of parameter name "rhs"

Re: [patch] Implement ISO/IEC TS 18822 C++ File system TS

2015-05-01 Thread Daniel Krügler
2015-04-30 19:32 GMT+02:00 Jonathan Wakely : > This is the complete implementation I intend > to commit shortly. (It's also been pushed to the redi/filesystem-ts > branch in the git mirror). - There are three places where you refer to std::__addressof and one where you refer to std::addressof. Is

Re: [patch] Implement ISO/IEC TS 18822 C++ File system TS

2015-05-01 Thread Rainer Orth
Jonathan Wakely writes: > Sorry about that, I'll add a check for fchmodat, in the meantime this > will fix bootstrap. Committed as obvious. > > > commit f4768ebcfd68e2fa6e4763d0b681e8fe710c64c4 > Author: Jonathan Wakely > Date: Fri May 1 16:09:28 2015 +0100 > > * acinclude.m4 (GLIBCXX_EN

Re: [patch] Implement ISO/IEC TS 18822 C++ File system TS

2015-05-01 Thread Jonathan Wakely
On 01/05/15 14:45 +0200, Rainer Orth wrote: Jonathan Wakely writes: 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, an

Re: [patch] Implement ISO/IEC TS 18822 C++ File system TS

2015-05-01 Thread Rainer Orth
Jonathan Wakely writes: > 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 fai

Re: [patch] Implement ISO/IEC TS 18822 C++ File system TS

2015-04-30 Thread Jonathan Wakely
On 30/04/15 18:32 +0100, Jonathan Wakely wrote: This is the complete implementation I intend to commit shortly. (It's also been pushed to the redi/filesystem-ts branch in the git mirror). Committed to trunk at r222654. Implement N4100 File System TS * acinclude.m4 (GLIBCXX_ENABLE_

[patch] Implement ISO/IEC TS 18822 C++ File system TS

2015-04-30 Thread Jonathan Wakely
This is the complete 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 main