This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: state of libstdcxx_so_7-branch



On May 3, 2007, at 8:21 AM, Benjamin Kosnik wrote:
I don't know what to do about the libstdcxx_so_7 branch... AFAICT, the cxx0x-branch hasn't done anything yet that breaks the ABI, so there are certain advantages to keeping it from breaking the ABI. That said, some C++0x changes will break the library ABI, so we might just be delaying the inevitable...

Yes, and I'm just wondering if this means it's better to try and implement a "clean" C++0x library from the very beginning, with no hacks, one type_traits file, etc. I think dealing with a branch might be easier than dealing with obscured interfaces mashing the two together. (Especially if in the end, it turns out that doesn't give us a full solution for both.)


Perhaps I'm looking ahead too far, to where work progresses to the point of a concepts-enabled library. I see divergence growing, not shrinking over time. The divergence between C++0x and mainline will be much more substantial than say from gcc-4_1-branch to gcc-4_2- branch.

Yes. With concepts, the divergence between C++0x and C++98 becomes very, very large. I've been managing a C++98/C++0x libstdc++ within the ConceptGCC source tree, but the amount of macro ugliness is staggering, to say the least. So, we will need to make a clean break, and we should bring all of the libstdcxx_so_7 improvements with us.


The question is whether to make a clean break now, or wait until concepts come into the FSF tree. I'm leaning toward doing it now on the cxx0x-branch. Then, ConceptGCC will be based on the cxx0x-branch, so it will get all of the ABI-breaking changes from the libstdcxx_so_7 branch and from the concepts changes. This would help me immensely, because it means that my concepts changes won't always conflict with other changes in libstdc++. Of course, you all need to decide whether that's in your best interests, too.

Either way, we should always plan on moving the non-ABI-breaking features from the cxx0x-branch to mainline. Long before we get concepts, we'll still want to have library support for rvalue references, variadic templates, etc. in mainline and under -std=c++0x.

- Doug


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]