[Development] Abandoning the container changes

joao.abecasis at nokia.com joao.abecasis at nokia.com
Thu Jul 19 01:34:32 CEST 2012


Marc Mutz wrote:
> On Wednesday July 18 2012, joao.abecasis at nokia.com wrote:
>> I think it would be feasible to do a binary-only break somewhere
>> around the 5.2 timeframe (say, ~12 months) where we address this.
>> Technically, this would be Qt 6, but user porting effort would be
>> reduced to a recompile. The value of having a long lived (5 years?)
>> binary compatible 5.x series is (IMO) low as there are quite often
>> other reasons to recompile the stack.
> 
> We don't even need to break binary compatibility. We could use inline
> namespaces to let new code see the new containers while old code uses
> the old ones. That will exclude non-C++11 compilers from seeing the
> more efficient implementations, or else from the BC guarantee. Do we
> care?

It's a binary break because containers and their memory layout are part
of function signatures in the ABI.

We also don't want a price to be paid at the interface: you were calling
a function and now just the function call has an additional cost of
deep-copying the container, potentially breaking implicit sharing that
was previously assumed to occur. This would be a silent change.


João



More information about the Development mailing list