Re: gnat-3.2 transition plan
Matthias Klose <doko@cs.tu-berlin.de> writes:
> Rumour says, that there will be one more C++ ABI change to fix bugs
> found after the gcc-3.2 release (maybe for gcc-3.4), and then the C++
> ABI will be stable ...
I believe this is a misprediction of the future. Here is my prediction:
1. The "core" ABI of g++ (i.e. how to layout objects, mangle symbols,
perform exception handling, etc) is already "stable" in the sense
it won't change for "most" applications.
2. Bugs in that core ABI may be discovered from time to time (even
after 3.4). It is likely that few applications are affected by the
bugs. If the bugs get fixed, an ABI breakage will occur for those
few applications. g++ will offer a warning if a program uses
constructs that cause that breakage.
3. None of the bugs that have been already fixed for 3.4 triggers for
the C++ code that ships with GCC itself (i.e. libstdc++). So even
if the bugs get fixed, recompiling the current libstdc++ won't
cause an ABI breakage.
4. OTOH, libstdc++ is likely to change with each compiler release; the
ABI of that library is not yet stable. It is, unfortunately, quite
easy to break that ABI - instantiating a template more or less in
some implementation file already breaks the ABI. It is also quite
difficult to detect such breakage automatically; one has to compare
the header files to find out whether the changes introduced cause
ABI breakage or not.
Regards,
Martin
Reply to: