Re: [patch] New std::string implementation

2015-01-06 Thread Jonathan Wakely
On 06/01/15 13:29 +0100, Rainer Orth wrote: Jonathan Wakely writes: Drat, I even tried to avoid that conflict, but apparently I thought the letter that comes after 'n' is 'n'! Does this fix it? --- a/libstdc++-v3/config/abi/pre/gnu.ver +++ b/libstdc++-v3/config/abi/pre/gnu.ver @@ -118,7 +118

Re: [patch] New std::string implementation

2015-01-06 Thread Rainer Orth
Jonathan Wakely writes: > Drat, I even tried to avoid that conflict, but apparently I thought > the letter that comes after 'n' is 'n'! > > Does this fix it? > > --- a/libstdc++-v3/config/abi/pre/gnu.ver > +++ b/libstdc++-v3/config/abi/pre/gnu.ver > @@ -118,7 +118,7 @@ GLIBCXX_3.4 { > # std::

Re: [patch] New std::string implementation

2015-01-06 Thread Jonathan Wakely
On 06/01/15 10:52 +0100, Rainer Orth wrote: Unfortunately, this patch broke Solaris bootstrap with /bin/ld: libstdc++.so fails to link with ld: fatal: libstdc++-symbols.ver-sun: 5383: symbol 'std::locale::name[abi:cxx11]() const': symbol version conflict l.5383 has ##_ZNKSt6locale4nameB5cx

Re: [patch] New std::string implementation

2015-01-06 Thread Rainer Orth
Jonathan Wakely writes: > The powerpc64 ICE is fixed, so I'm committing the std::string ABI > transition patch. > > This replaces our venerable Copy-on-Write std::string with a > C++11-conforming* Small-String Optimized std::__cxx11::string. > > (* It's not quite 100% conforming, as it's missing

Re: [patch] New std::string implementation

2014-12-23 Thread Bernd Edlinger
Hello Jonathan, starting with around r218964, "New std::string implementation." the following program does no longer link correctly: cat test1.cc #include int main() {   std::string x;   x.erase(x.begin(), x.end()); } g++ test1.cc /tmp/ccgup1FU.o: In function `main': test1.cc:(.text+0x41): u

Re: [patch] New std::string implementation

2014-12-19 Thread Jonathan Wakely
On 20/12/14 00:52 +0100, François Dumont wrote: Hello Great news. However we need the following to make debug/profile modes happy. Ah, thanks for checking it. Shouldn't we use _GLIBCXX_ABI_TAG_CXX11 to tag the __cxx11 namespace ? No, that is defined to __attribute__((abi_tag("cxx

Re: [patch] New std::string implementation

2014-12-19 Thread Jonathan Wakely
This fixes some duplicate symbols which break Darwin bootstrap. Tested x86_64-linux and powerpc64-linux, committed to trunk. commit fa3a5af2feee0f9873ba1a9bdb84148dd122506c Author: Jonathan Wakely Date: Fri Dec 19 23:44:01 2014 + Fix duplicate symbol errors in Darwin bootstrap.

Re: [patch] New std::string implementation

2014-12-19 Thread François Dumont
Hello Great news. However we need the following to make debug/profile modes happy. Shouldn't we use _GLIBCXX_ABI_TAG_CXX11 to tag the __cxx11 namespace ? 2014-12-20 François Dumont * include/bits/c++config: inline __cxx11 namespace within namespace __cxx1998. Ok to com

Re: [patch] New std::string implementation

2014-12-19 Thread Jonathan Wakely
The powerpc64 ICE is fixed, so I'm committing the std::string ABI transition patch. This replaces our venerable Copy-on-Write std::string with a C++11-conforming* Small-String Optimized std::__cxx11::string. (* It's not quite 100% conforming, as it's missing some allocator features. Of course.

Re: [patch] New std::string implementation

2014-11-28 Thread Jonathan Wakely
On 28/11/14 15:24 +, Jonathan Wakely wrote: Tested x86_64-linux with: --target_board=unix\{-m32,\}\{,-D_GLIBCXX_USE_CXX11_ABI=0\} Also tested on powerpc64-linux (where this patch doesn't actually bootstrap due to PR 63573, there's a patch in the PR that's needed) and i686-linux. Oh how s

Re: [patch] New std::string implementation

2014-11-28 Thread Jonathan Wakely
Here's the next version of the std::string rework, this time with 57.1428% more locale facets! The problem is that there are several facet types that use std::string in their public interfaces and as the parameters (or worse, as return types) of virtual functions. It's not possible to overload the

Re: [patch] New std::string implementation

2014-11-18 Thread Jonathan Wakely
On 18/11/14 10:45 +0100, Richard Biener wrote: Looking at all these issues that just pop up inside libstdc++ I wonder if this whole business will not blow up in our face once out in the wild... I'm trying to ensure that most of the the pain is dealt with inside libstdc++ and so users won't have

Re: [patch] New std::string implementation

2014-11-18 Thread Richard Biener
On Mon, Nov 17, 2014 at 5:43 PM, Jonathan Wakely wrote: > On 17/11/14 13:06 +0100, Markus Trippelsdorf wrote: >> >> On 2014.11.14 at 15:43 +, Jonathan Wakely wrote: >>> >>> Tested on x86_64-linux and powerpc64-linux, also with >>> --disable-libstdcxx11-abi to verify all the incompatible change

Re: [patch] New std::string implementation

2014-11-17 Thread Jonathan Wakely
On 17/11/14 13:06 +0100, Markus Trippelsdorf wrote: On 2014.11.14 at 15:43 +, Jonathan Wakely wrote: Tested on x86_64-linux and powerpc64-linux, also with --disable-libstdcxx11-abi to verify all the incompatible changes can be disabled if needed. On ppc64 I get: FAIL: libstdc++-abi/abi_ch

Re: [patch] New std::string implementation

2014-11-17 Thread Markus Trippelsdorf
On 2014.11.14 at 15:43 +, Jonathan Wakely wrote: > Tested on x86_64-linux and powerpc64-linux, also with > --disable-libstdcxx11-abi to verify all the incompatible changes can > be disabled if needed. On ppc64 I get: FAIL: libstdc++-abi/abi_check FAIL: 27_io/basic_ios/copyfmt/char/1.cc execut

Re: [patch] New std::string implementation

2014-11-17 Thread Jonathan Wakely
On 14/11/14 15:43 +, Jonathan Wakely wrote: This is the long-awaited ABI break for std::string, replacing our venerable Copy-On-Write implementation with a C++11-conforming Small-String-Optimization implementation (based on Paolo's vstring). This patch fixes move construction and assignment

Re: [patch] New std::string implementation

2014-11-14 Thread Jonathan Wakely
On 14/11/14 16:51 +, Jonathan Wakely wrote: On 14/11/14 16:42 +, Jonathan Wakely wrote: On 14/11/14 16:32 +, Christopher Jefferson wrote: I tried bootstrapping on Mac OS X 10.10, and got lots of linking issues, the relevant part is:: I might be missing some of the new instantiatio

Re: [patch] New std::string implementation

2014-11-14 Thread Jonathan Wakely
On 14/11/14 16:42 +, Jonathan Wakely wrote: On 14/11/14 16:32 +, Christopher Jefferson wrote: I tried bootstrapping on Mac OS X 10.10, and got lots of linking issues, the relevant part is:: I might be missing some of the new instantiations, I'll look into that. I am missing some inst

Re: [patch] New std::string implementation

2014-11-14 Thread Jonathan Wakely
On 14/11/14 16:32 +, Christopher Jefferson wrote: Some (very small) questions / cleanups 1) Do you plan on supporting CXX11 ABI on C++03? There is some #if __cplusplus < 201103L inside the new basic_string. Yes, the intention is that you get the same std::string implementation independent

Re: [patch] New std::string implementation

2014-11-14 Thread Christopher Jefferson
Some (very small) questions / cleanups 1) Do you plan on supporting CXX11 ABI on C++03? There is some #if __cplusplus < 201103L inside the new basic_string. 2) Is there a need for the #if 0 _M_mutate? I tried bootstrapping on Mac OS X 10.10, and got lots of linking issues, the relevant part is:

[patch] New std::string implementation

2014-11-14 Thread Jonathan Wakely
This is the long-awaited ABI break for std::string, replacing our venerable Copy-On-Write implementation with a C++11-conforming Small-String-Optimization implementation (based on Paolo's vstring). The gist of it is adding a second complete std::string implementation that is tagged with abi_tag("