Re: [Development] Abandoning the container changes

2012-07-23 Thread Marc Mutz
On Friday July 20 2012, Olivier Goffart wrote:
> On Thursday 19 July 2012 14:19:36 Marc Mutz wrote:
> > On Wednesday July 18 2012, Olivier Goffart wrote:
> > > We discussed namespaces long time ago already, and decided not to put
> > > Qt in
> > > a namespace.
> > > The reason is that it breaks source compatibility by breaking all the
> > > forward declarations.
> >
> > Even with inline namespaces? Then they would have failed to achieve their
> > goal to hide the fact that the type is in an inline namespace.
>
> Yes, inline namespace won't help.
>
> If you do:
>
> class QString;
> int foo(const QString &);
>
> It creates the symbol _Z3fooRK7QString, which is different from
> _Z3fooRKN3v507QStringE.

Of course... how embarrassing.. :)

> The suggested solution is, during Qt5 lifetime, introduce
> forward-declaration headers that declares all the Qt types, and deprecate
> the use of forward declarations.
> Then in Qt6 we can finally move in a namespace.

Sounds like a plan, yes.

Thanks,
Marc

-- 
Marc Mutz  | Senior Software Engineer
KDAB (Deutschland) GmbH & Co.KG, a KDAB Group Company
www.kdab.com || Germany +49-30-521325470 || Sweden (HQ) +46-563-540090
KDAB - Qt Experts - Platform-Independent Software Solutions
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Abandoning the container changes

2012-07-20 Thread Olivier Goffart
On Thursday 19 July 2012 14:19:36 Marc Mutz wrote:
> On Wednesday July 18 2012, Olivier Goffart wrote:

> > We discussed namespaces long time ago already, and decided not to put Qt
> > in
> > a namespace.
> > The reason is that it breaks source compatibility by breaking all the
> > forward declarations.
> 
> Even with inline namespaces? Then they would have failed to achieve their
> goal to hide the fact that the type is in an inline namespace.

Yes, inline namespace won't help.

If you do:

class QString;
int foo(const QString &);

It creates the symbol _Z3fooRK7QString, which is different from 
_Z3fooRKN3v507QStringE.


The suggested solution is, during Qt5 lifetime, introduce forward-declaration 
headers that declares all the Qt types, and deprecate the use of forward 
declarations.
Then in Qt6 we can finally move in a namespace.

-- 
Olivier

Woboq - Qt services and support - http://woboq.com
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Abandoning the container changes

2012-07-20 Thread Marc Mutz
On Friday July 20 2012, joao.abeca...@nokia.com wrote:
> > Close to impossible.
>
> Oh, no. It's very possible. It's just not going to happen.
>
> We might as well have Qt50 and Qt52 and let the user pick one.
> Essentially, we're back at Qt5 and Qt6 with different names.

Yes, with the difference that a Qt5 application can't link against a Qt6 Qt 
w/o recompilation.

I'm not fighting for this, don't get me wrong, I'm just setting misconceptions 
straight.

Thanks,
Marc

-- 
Marc Mutz  | Senior Software Engineer
KDAB (Deutschland) GmbH & Co.KG, a KDAB Group Company
www.kdab.com || Germany +49-30-521325470 || Sweden (HQ) +46-563-540090
KDAB - Qt Experts - Platform-Independent Software Solutions
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Abandoning the container changes

2012-07-19 Thread joao.abecasis
Thiago Macieira wrote:
> As you've shown, we need to duplicate everything that has QString,
> QByteArray and QVector in our API.

Not to forget QList, QVariant and potentially other classes we haven't
considered changing yet.

Besides, I'm sure we'd find places where we can't decide which one is
the canonical version, like signals, and be forced to emit both
variations. And this is just scratching the surface.

Assuming Qt keeps some data internally by itself, no matter what the API
looks like, conversion costs would still be there.

> Close to impossible.

Oh, no. It's very possible. It's just not going to happen.

We might as well have Qt50 and Qt52 and let the user pick one.
Essentially, we're back at Qt5 and Qt6 with different names.


João
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Abandoning the container changes

2012-07-19 Thread Marc Mutz
hi Thiago,

There are two sides to this coin.

On Thursday July 19 2012, Thiago Macieira wrote:
> On quinta-feira, 19 de julho de 2012 14.19.36, Marc Mutz wrote:
> > Even with inline namespaces? Then they would have failed to achieve their
> > goal  to hide the fact that the type is in an inline namespace.
>
> Yes. It breaks binary compatibility completely for all the code that uses
> QString in its API.

One: No, it doesn't. Code that mentions 'QString' in v5.0 will implicitly 
say 'v50::QString'. Code that mentions 'QString' in v5.2 (assuming QString 
has changed there) will implicitly say 'v52::QString'. There's no bic, since 
v50::QString hasn't changed, and the old API is still available. _Because_ 
the old API is still available, this comes at a cost, of course.

On Thursday July 19 2012, Thiago Macieira wrote:
> On quinta-feira, 19 de julho de 2012 14.31.52, Marc Mutz wrote:
> > namespace v50 {
> >class QVector ... ; // same as before
> > }
> > inline namespace v52 {
> > class QVector ... ; // new impl, with conversion to/from
> > v50::QVector... }
> > qFun(const v50::QVector&); // old version, explicit namespace, required
> > for BC
> > qFun(const QVector &); // new version (if necessary)
>
> As you've shown, we need to duplicate everything that has QString,
> QByteArray and QVector in our API.
>
> Close to impossible.

That's is question number two: what does it cost to apply inline namespaces to 
a core type such as QString? I can't answer that , and you can't answer, 
either, because no-one ever tried. I never said it's easy, but I don't think 
it's impossible. Stephen is working on a Clang-based Qt4-to-5 porting tool, 
IIRC, so in one year, with that work further progressed, that duplication 
might come for free, because it's automatable.

But I can see how converting to inline namespaces /now/ is too big a task, 
yes.

Was just an idea, anyway.

Thanks,
Marc

-- 
Marc Mutz  | Senior Software Engineer
KDAB (Deutschland) GmbH & Co.KG, a KDAB Group Company
www.kdab.com || Germany +49-30-521325470 || Sweden (HQ) +46-563-540090
KDAB - Qt Experts - Platform-Independent Software Solutions
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Abandoning the container changes

2012-07-19 Thread Thiago Macieira
On quinta-feira, 19 de julho de 2012 14.31.52, Marc Mutz wrote:
> namespace v50 {
>class QVector ... ; // same as before
> }
> inline namespace v52 {
> class QVector ... ; // new impl, with conversion to/from v50::QVector...
> }
> qFun(const v50::QVector&); // old version, explicit namespace, required for
> BC
> qFun(const QVector &); // new version (if necessary)

As you've shown, we need to duplicate everything that has QString, QByteArray
and QVector in our API.

Close to impossible.

--
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center
 Intel Sweden AB - Registration Number: 556189-6027
 Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden


signature.asc
Description: This is a digitally signed message part.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Abandoning the container changes

2012-07-19 Thread Thiago Macieira
On quinta-feira, 19 de julho de 2012 14.19.36, Marc Mutz wrote:
> Even with inline namespaces? Then they would have failed to achieve their
> goal  to hide the fact that the type is in an inline namespace.

Yes. It breaks binary compatibility completely for all the code that uses
QString in its API.

--
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center
 Intel Sweden AB - Registration Number: 556189-6027
 Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden


signature.asc
Description: This is a digitally signed message part.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Abandoning the container changes

2012-07-19 Thread Marc Mutz
On Thursday July 19 2012, joao.abeca...@nokia.com wrote:
> Marc Mutz wrote:
> > On Wednesday July 18 2012, joao.abeca...@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.

No, you would of course add an overload (where it matters).

Assuming we have

inline namespace v50 {
   class QVector ... ;
}
qFun(const QVector &); // implictly v50::QVector

now. In, say, v5.2 we'll change QVector's guts. We do so by adding a new 
implementation in namespace v52 and providing overloads for v50::QVector 
where it matters:

namespace v50 {
   class QVector ... ; // same as before
}
inline namespace v52 {
class QVector ... ; // new impl, with conversion to/from v50::QVector...
}
qFun(const v50::QVector&); // old version, explicit namespace, required for BC
qFun(const QVector &); // new version (if necessary)

I'm not sure about forward-declarations, but at least inline namespaces are 
designed to prevent the user of a type from being able to distinguish whether 
it's in a namespace or a nested inline namespace. E.g., you can still 
specialise templates in the surrounding namespace:

template <>
class QVector {...};

Inline namespaces are designed for library versioning. And seriously, 
regarding another copy vs. implicit sharing: Qt breaks behaviour at so many 
levels so often that users would hardly notice if there was some conversion 
going on, esp. as the conversion cost, if not negligible, would of course 
only be paid by old code (ie. qFoo(v50::QVector) would be implemented by 
converting the argument to v52::QVector and calling qFoo(v52::QVector)).

I'd say that people that need BC guarantees are used to this kind of thing, 
without having looked at it in details, glibc's library versioning is working 
in the same way, everything else would be a maintenance nightmare.

Thanks,
Marc

-- 
Marc Mutz  | Senior Software Engineer
KDAB (Deutschland) GmbH & Co.KG, a KDAB Group Company
www.kdab.com || Germany +49-30-521325470 || Sweden (HQ) +46-563-540090
KDAB - Qt Experts - Platform-Independent Software Solutions
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Abandoning the container changes

2012-07-19 Thread Marc Mutz
On Wednesday July 18 2012, Olivier Goffart wrote:
> On Wednesday 18 July 2012 14:00:08 Marc Mutz wrote:
> > On Wednesday July 18 2012, Oswald Buddenhagen wrote:
> > > On Wed, Jul 18, 2012 at 12:25:37PM +0200, ext Marc Mutz wrote:
> > > > 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.
> > >
> > > and how exactly is this supposed to work?
> > > we are not talking about changing some private implementation details,
> > > but the publicly visible data structures which are fundamental parts of
> > > our api+abi. even if it's somehow possible to have different classes
> > > use different container implementations, the conversion overhead would
> > > be ridiculous.
> >
> > That's a question of how the new classes are designed. I don't see an
> > a-priori reason why, say, a v50::QVector couldn't share data with a
> > v51::QVector, esp. considering the flexibility that was already present
> > in Thiago's branch. There will be a conversion penalty of some form, but
> > only for applications that continue to use the old version (because Qt
> > will internally use the newest, of course). There will also be a
> > maintenance penalty, but we already pay it in the form of BC guarantees.
> > If we used inline namespaces, we would trade one form of maintenance
> > burden (keeping BC) for another (maintaining inline namespaces).
> >
> > The question is just: which one is more work? And frankly, no-one knows,
> > because there's no experience with inline namespaces (even though GCC
> > uses something similar for the debug STL containers for a long time).
>
> We discussed namespaces long time ago already, and decided not to put Qt in
> a namespace.
> The reason is that it breaks source compatibility by breaking all the
> forward declarations.

Even with inline namespaces? Then they would have failed to achieve their goal 
to hide the fact that the type is in an inline namespace.

-- 
Marc Mutz  | Senior Software Engineer
KDAB (Deutschland) GmbH & Co.KG, a KDAB Group Company
www.kdab.com || Germany +49-30-521325470 || Sweden (HQ) +46-563-540090
KDAB - Qt Experts - Platform-Independent Software Solutions
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Abandoning the container changes

2012-07-19 Thread lars.knoll
Some comments to the thread as a whole:

Thiago did the call to not pursue the container changes any more for Qt 5
and propably had good reasons to do so. That implies that we'll continue
with the classes we have now (yes, with their downsides in some use cases
as well) for Qt 5.

The containers are actually not as bad as some of you make them sound. The
classes are stable and for many (most) use cases have a rather good
performance. So they are something we can live with for the next years to
come. Breaking BC again in a year from now just to make some container
classes 10-30% faster for isolated benchmarks is simply not worth it.
Inside an application the improvement is usually negligible and for the
few cases where it matters one can use specialized containers.

There's many more places where we can improve Qt a lot more (in a BC way)
then by changing our container layout again in a year from now.

Delaying further for such a change is also out of the question. The most
important thing right now is to get the new version out. Remember we're
doing a product which is a sum of many parts. We've done a huge amount of
new work with Qt 5. As long as we haven't done the 5.0 release all this
other good work not worth anything for our user base.

Cheers,
Lars



On 7/19/12 3:08 AM, "ext André Pönitz"
 wrote:

>On Wed, Jul 18, 2012 at 05:49:12PM -0600, Charley Bay wrote:
>> The "ideal" for me is that if container-changes would push the Qt
>> release back six months (to arbitrarily pick-a-fictitious-number), I'd
>> rather have a release now, and another release in six months.
>
>This was not meant to put anything on the critical path or to change the
>timing of Qt 5.0 at all.
>
>Andre'
>___
>Development mailing list
>Development@qt-project.org
>http://lists.qt-project.org/mailman/listinfo/development

___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Abandoning the container changes

2012-07-18 Thread André Pönitz
On Wed, Jul 18, 2012 at 05:49:12PM -0600, Charley Bay wrote:
> The "ideal" for me is that if container-changes would push the Qt
> release back six months (to arbitrarily pick-a-fictitious-number), I'd
> rather have a release now, and another release in six months.

This was not meant to put anything on the critical path or to change the
timing of Qt 5.0 at all.

Andre'
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Abandoning the container changes

2012-07-18 Thread joao.abecasis
Marius Storm-Olsen wrote:
> On 18/07/2012 02:06, ext joao.abeca...@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.
> 
> If there's reasons to break BC, there's reasons for a new Major
> version.  We don't circumvent the policies because is looks silly to
> have a new major version in such a short time after 5.0.

Agreed.

> However, I can imagine there's other significant changes we'll notice
> after 5.0 which will warrant other BC-incompatible changes, and maybe
> we'd want to refactor out more of the modules from QtBase into their
> own repos? As such, we might have several valid reason for having
> another major, to "quickly" correct learned lessons from Qt 5, and to
> ensure Qt 6 can live on for a very long time.

Yes, by all means when we notice these needed changes and have them
ready let's bundle them together and call them a release.

Let's not plan releases based on features and let's not plan to do work
based on the assumption that "we're doing a binary break anyway", at
least for as long as we can avoid it.

> Still, if Qt 6 would be on the road-map then, we should aim for making
> transitioning as simple as a pure recompile. We don't _have_ to do
> significant restructuring just because we're going a new major. Simply
> saying that we need to do it because of BC issues is fine. If major
> speed improvements is a result of that, I'm sure many people would
> understand.

Agreed.

> Anyways, several people and Thiago himself has said that now is not
> the time for such a change to our tools classes, and we should listen
> to that. I don't think you want to add them both and let the end user
> decide, as it will create a maintenance nightmare, and you will have
> applications which both use Qt 5 but are incompatible with each others
> run-time. (Some apps will demand that you use the "optimized" Qt5 for
> plug-ins etc.)

My suggestion is not to have both variants in the common code base or to
advertise two alternative Qt 5 implementations. I'm suggesting we treat
this as feature development happening in a feature branch (reviewed,
CI-tested and all that, if feasible).

I'm also suggesting we consider the posibility of doing an earlier BC
break with stronger SC guarantees and use that if/when there's
significant value being added. Having this *possibility* at all can
encourage people to try out things, instead of waiting for a Do Never Qt
6 (tm) release and rushing half-baked features out.


João
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Abandoning the container changes

2012-07-18 Thread Charley Bay
>
> João spaketh:

>> 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.
>


> André  respondeth:
> > That's essentially option (D) with a somewhat longer lead time.
>

João respondeth again:

> Somewhat. If it's a binary break we should still call it Qt 6.
>

>  I'm thinking we should get 5.0 out, use 5.1 to stabilize, react to

feedback and generally (im)prove on the Qt 5 vision. Some container
> changes sneaked in, but they're not what we're trying to deliver *now*.
>
> In parallel, we actually write the container changes everyone's up in
> arms about (Thiago's changes are unfinished and not-fully-published work
> in progress), we review those changes, take them for a spin, kick the
> hell out of those tires and then make an informed decision whether it is
> worth the binary break and how to handle it, in case it is.
>
> Besides autotests coverage, we also have no benchmarks showing
> improvements. I assume we can see improvements for the inlining of size
> and offset/data in iteration benchmarks, but we haven't fully explored
> the impact of *growing* the size of the container itself.
>
> Anyway, we can discuss potential options now, but we can't make any
> decisions and can hardly make commitments, other than than "let's do the
> container changes and release them when they're ready".
>

IMHO this seems reasonable.

I view QML2 as the "stabilized" version of QML1 (significant technical
differences, as well as underlying implementation).  I was quite impressed
with what QML1 offered (it's a new paradigm), but I think the community
would benefit from learning-to-work with QML2 as opposed to extending their
learning curves on QML1.

I understand the value of the container-changes, and while warranted, it
doesn't seem to be the biggest part of the core-offering of Qt5, and it's
possible some of the benchmarks/changes associated with that effort might
be better understood after the C++11 Rvalue-references are better
implemented and made available through compiler vendors.

The "ideal" for me is that if container-changes would push the Qt release
back six months (to arbitrarily pick-a-fictitious-number), I'd rather have
a release now, and another release in six months.

I know it's been discussed before (don't want to re-open that discussion),
but I don't care about binary compatibility (I know how to recompile); and
only somewhat care about interface compatibility (adding-member-functions
seems incredibly cheap to me, I'd prefer to have the APIs mature properly
since they represent new designs); and, I'd support any
"renaming/refactoring" to enforce best-practice-use-models as these are
"discovered" when applying this new paradigm.

--charley
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Abandoning the container changes

2012-07-18 Thread joao.abecasis
Marc Mutz wrote:
> On Wednesday July 18 2012, joao.abeca...@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
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Abandoning the container changes

2012-07-18 Thread joao.abecasis
André Pönitz wrote:
> On Wed, Jul 18, 2012 at 07:06:55AM +, joao.abeca...@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.
> 
> That's essentially option (D) with a somewhat longer lead time.

Somewhat. If it's a binary break we should still call it Qt 6.

I'm thinking we should get 5.0 out, use 5.1 to stabilize, react to
feedback and generally (im)prove on the Qt 5 vision. Some container
changes sneaked in, but they're not what we're trying to deliver *now*.

In parallel, we actually write the container changes everyone's up in
arms about (Thiago's changes are unfinished and not-fully-published work
in progress), we review those changes, take them for a spin, kick the
hell out of those tires and then make an informed decision whether it is
worth the binary break and how to handle it, in case it is.

Besides autotests coverage, we also have no benchmarks showing
improvements. I assume we can see improvements for the inlining of size
and offset/data in iteration benchmarks, but we haven't fully explored
the impact of *growing* the size of the container itself.

Anyway, we can discuss potential options now, but we can't make any
decisions and can hardly make commitments, other than than "let's do the
container changes and release them when they're ready".

Cheers,


João
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Abandoning the container changes

2012-07-18 Thread Stephen Kelly
On Wednesday, July 18, 2012 14:00:08 Marc Mutz wrote:
> The question is just: which one is more work? And frankly, no-one knows,
> because there's no experience with inline namespaces (even though GCC uses
> something similar for the debug STL containers for a long time).

I believe the llvm community libc++ uses inline namespaces, but that might not 
have the widespread use and multiple versions required to really get the 
required experience.

I don't think breaking binary compatibility in a 5.x release is a good idea. 
As was said previously, if it's Qt 6, call it Qt 6.

Thanks,

-- 
Stephen Kelly  | Software Engineer
KDAB (Deutschland) GmbH & Co.KG, a KDAB Group Company
www.kdab.com || Germany +49-30-521325470 || Sweden (HQ) +46-563-540090
KDAB - Qt Experts - Platform-Independent Software Solutions

signature.asc
Description: This is a digitally signed message part.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Abandoning the container changes

2012-07-18 Thread Olivier Goffart
On Wednesday 18 July 2012 14:00:08 Marc Mutz wrote:
> On Wednesday July 18 2012, Oswald Buddenhagen wrote:
> > On Wed, Jul 18, 2012 at 12:25:37PM +0200, ext Marc Mutz wrote:
> > > 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.
> > 
> > and how exactly is this supposed to work?
> > we are not talking about changing some private implementation details,
> > but the publicly visible data structures which are fundamental parts of
> > our api+abi. even if it's somehow possible to have different classes use
> > different container implementations, the conversion overhead would be
> > ridiculous.
> 
> That's a question of how the new classes are designed. I don't see an
> a-priori reason why, say, a v50::QVector couldn't share data with a
> v51::QVector, esp. considering the flexibility that was already present in
> Thiago's branch. There will be a conversion penalty of some form, but only
> for applications that continue to use the old version (because Qt will
> internally use the newest, of course). There will also be a maintenance
> penalty, but we already pay it in the form of BC guarantees. If we used
> inline namespaces, we would trade one form of maintenance burden (keeping
> BC) for another (maintaining inline namespaces).
> 
> The question is just: which one is more work? And frankly, no-one knows,
> because there's no experience with inline namespaces (even though GCC uses
> something similar for the debug STL containers for a long time).

We discussed namespaces long time ago already, and decided not to put Qt in a 
namespace.
The reason is that it breaks source compatibility by breaking all the forward 
declarations.

-- 
Olivier

Woboq - Qt services and support - http://woboq.com
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Abandoning the container changes

2012-07-18 Thread Marc Mutz
On Wednesday July 18 2012, Oswald Buddenhagen wrote:
> On Wed, Jul 18, 2012 at 12:25:37PM +0200, ext Marc Mutz wrote:
> > 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.
>
> and how exactly is this supposed to work?
> we are not talking about changing some private implementation details,
> but the publicly visible data structures which are fundamental parts of
> our api+abi. even if it's somehow possible to have different classes use
> different container implementations, the conversion overhead would be
> ridiculous.

That's a question of how the new classes are designed. I don't see an a-priori 
reason why, say, a v50::QVector couldn't share data with a v51::QVector, esp. 
considering the flexibility that was already present in Thiago's branch. 
There will be a conversion penalty of some form, but only for applications 
that continue to use the old version (because Qt will internally use the 
newest, of course). There will also be a maintenance penalty, but we already 
pay it in the form of BC guarantees. If we used inline namespaces, we would 
trade one form of maintenance burden (keeping BC) for another (maintaining 
inline namespaces).

The question is just: which one is more work? And frankly, no-one knows, 
because there's no experience with inline namespaces (even though GCC uses 
something similar for the debug STL containers for a long time).

Thanks,
Marc

-- 
Marc Mutz  | Senior Software Engineer
KDAB (Deutschland) GmbH & Co.KG, a KDAB Group Company
www.kdab.com || Germany +49-30-521325470 || Sweden (HQ) +46-563-540090
KDAB - Qt Experts - Platform-Independent Software Solutions
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Abandoning the container changes

2012-07-18 Thread marius.storm-olsen
On 18/07/2012 02:06, ext joao.abeca...@nokia.com wrote:
> Hey,
>
> I would rather we don't *rush* the container changes in, but get them
> up to snuff in a separate branch, instead. I would also like to
> challenge the assumptions I've seen repeated that probability for
> breakage is low and autotest coverage is high. It isn't and it isn't.
> It is very easy to break less-often used features and corner cases
> that will not get caught by autotests. I don't think this is
> acceptable for fundamentals like QVector and friends.
>
> 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.

If there's reasons to break BC, there's reasons for a new Major version. 
We don't circumvent the policies because is looks silly to have a new 
major version in such a short time after 5.0.

However, I can imagine there's other significant changes we'll notice 
after 5.0 which will warrant other BC-incompatible changes, and maybe 
we'd want to refactor out more of the modules from QtBase into their own 
repos? As such, we might have several valid reason for having another 
major, to "quickly" correct learned lessons from Qt 5, and to ensure Qt 
6 can live on for a very long time.

Still, if Qt 6 would be on the road-map then, we should aim for making 
transitioning as simple as a pure recompile. We don't _have_ to do 
significant restructuring just because we're going a new major. Simply 
saying that we need to do it because of BC issues is fine. If major 
speed improvements is a result of that, I'm sure many people would 
understand.

Anyways, several people and Thiago himself has said that now is not the 
time for such a change to our tools classes, and we should listen to 
that. I don't think you want to add them both and let the end user 
decide, as it will create a maintenance nightmare, and you will have 
applications which both use Qt 5 but are incompatible with each others 
run-time. (Some apps will demand that you use the "optimized" Qt5 for 
plug-ins etc.)

-- 
.marius

> Cheers,
> João
>
> 
> From: development-bounces+joao.abecasis=nokia@qt-project.org 
> [development-bounces+joao.abecasis=nokia@qt-project.org] on behalf of ext 
> André Pönitz [andre.poen...@mathematik.tu-chemnitz.de]
> Sent: 17 July 2012 23:59
> To: development@qt-project.org
> Subject: Re: [Development] Abandoning the container changes
>
> On Tue, Jul 17, 2012 at 05:19:23PM +0200, Oswald Buddenhagen wrote:
>> On Mon, Jul 16, 2012 at 02:52:32PM -0700, ext Thiago Macieira wrote:
>>> On segunda-feira, 16 de julho de 2012 21.34.10, André Pönitz
>>> wrote:
>>>> On Thu, Jul 05, 2012 at 09:04:39AM +0300, Thiago Macieira
>>>> wrote:
>>>>> I think that, despite the potential benefits of the changes,
>>>>> we should not apply them at this time. There are far too many
>>>>> chances for breakage and it's a blatant disrespect for the
>>>>> feature freeze.
>>>>
>>>> I assume this is meant as a verdict, not as (possibly
>>>> temporary) state of thinking.
>>>
>>> Correct. The changes are the right thing to do, just not now.
>>> We'll have to live with the current containers and their overhead
>>> until Qt 6.
>>>
>>> That includes the fact that QList is extremely
>>> inefficient.
>>
>> this is absurd.
>
> Incidentally, I agree. [Even if I lack the skill to express myself
> so clearly at times ;-}]
>
>> we said A, now we need to say B. or "unsay" A, which i don't think
>> anyone wants.
>>
>> i for one don't believe in qt6 anytime soon. it's the do-never release
>> qt5 was for years.
>
> The suggested "4 years" are 3 1/2 years too much anyway.
>
> That's 3 1/2 years more of forcing people to re-invent the wheel when
> it comes to performance-sensitive components in a Qt environment, and
> it's 3 1/2 years on top of the past half decade or so where Qt containers
> fail to deliver on one of the original reasons to have them at all
> (portability, convenience of use, _and_ performance).
>
> We do have the chance to fix it _now_, and we have a fairly decent
> idea of how the fix looks like. The whole change is essentially
> source compatible, i.e. has a low probability of breaking

Re: [Development] Abandoning the container changes

2012-07-18 Thread Oswald Buddenhagen
> On Wednesday July 18 2012, joao.abeca...@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.
> 
if it's qt 6, then you call it qt 6. you need to do that because of
SOVERSION requirements anyway.
but this instantly forces the question: what's the point of rushing out
5.0 now if we already know that we'll deprecate it in a year?

> > 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.
> 
every linux distributor will slaughter you for this statement.

On Wed, Jul 18, 2012 at 12:25:37PM +0200, ext Marc Mutz wrote:
> 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.
> 
and how exactly is this supposed to work?
we are not talking about changing some private implementation details,
but the publicly visible data structures which are fundamental parts of
our api+abi. even if it's somehow possible to have different classes use
different container implementations, the conversion overhead would be
ridiculous.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Abandoning the container changes

2012-07-18 Thread Marc Mutz
On Wednesday July 18 2012, joao.abeca...@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?

Thanks,
Marc

-- 
Marc Mutz  | Senior Software Engineer
KDAB (Deutschland) GmbH & Co.KG, a KDAB Group Company
www.kdab.com || Germany +49-30-521325470 || Sweden (HQ) +46-563-540090
KDAB - Qt Experts - Platform-Independent Software Solutions
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Abandoning the container changes

2012-07-18 Thread André Pönitz
On Wed, Jul 18, 2012 at 07:06:55AM +, joao.abeca...@nokia.com wrote:
> Hey,
> 
> I would rather we don't *rush* the container changes in, but get them
> up to snuff in a separate branch, instead. I would also like to
> challenge the assumptions I've seen repeated that probability for
> breakage is low and autotest coverage is high. It isn't and it isn't.
> It is very easy to break less-often used features and corner cases
> that will not get caught by autotests. I don't think this is
> acceptable for fundamentals like QVector and friends. 
> 
> 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.

That's essentially option (D) with a somewhat longer lead time.

I think that would be ok.

> 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.

Right.

Andre'
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Abandoning the container changes

2012-07-18 Thread joao.abecasis
Hey,

I would rather we don't *rush* the container changes in, but get them up to 
snuff in a separate branch, instead. I would also like to challenge the 
assumptions I've seen repeated that probability for breakage is low and 
autotest coverage is high. It isn't and it isn't. It is very easy to break 
less-often used features and corner cases that will not get caught by 
autotests. I don't think this is acceptable for fundamentals like QVector and 
friends. 

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.

Cheers,


João


From: development-bounces+joao.abecasis=nokia@qt-project.org 
[development-bounces+joao.abecasis=nokia@qt-project.org] on behalf of ext 
André Pönitz [andre.poen...@mathematik.tu-chemnitz.de]
Sent: 17 July 2012 23:59
To: development@qt-project.org
Subject: Re: [Development] Abandoning the container changes

On Tue, Jul 17, 2012 at 05:19:23PM +0200, Oswald Buddenhagen wrote:
> On Mon, Jul 16, 2012 at 02:52:32PM -0700, ext Thiago Macieira wrote:
> > On segunda-feira, 16 de julho de 2012 21.34.10, André Pönitz
> > wrote:
> > > On Thu, Jul 05, 2012 at 09:04:39AM +0300, Thiago Macieira
> > > wrote:
> > > > I think that, despite the potential benefits of the changes,
> > > > we should not apply them at this time. There are far too many
> > > > chances for breakage and it's a blatant disrespect for the
> > > > feature freeze.
> > >
> > > I assume this is meant as a verdict, not as (possibly
> > > temporary) state of thinking.
> >
> > Correct. The changes are the right thing to do, just not now.
> > We'll have to live with the current containers and their overhead
> > until Qt 6.
> >
> > That includes the fact that QList is extremely
> > inefficient.
>
> this is absurd.

Incidentally, I agree. [Even if I lack the skill to express myself
so clearly at times ;-}]

> we said A, now we need to say B. or "unsay" A, which i don't think
> anyone wants.
>
> i for one don't believe in qt6 anytime soon. it's the do-never release
> qt5 was for years.

The suggested "4 years" are 3 1/2 years too much anyway.

That's 3 1/2 years more of forcing people to re-invent the wheel when
it comes to performance-sensitive components in a Qt environment, and
it's 3 1/2 years on top of the past half decade or so where Qt containers
fail to deliver on one of the original reasons to have them at all
(portability, convenience of use, _and_ performance).

We do have the chance to fix it _now_, and we have a fairly decent
idea of how the fix looks like. The whole change is essentially
source compatible, i.e. has a low probability of breaking other
components, and it is very well covered by autotests. The chances
to be ready before the rest (Webkit Windows? Mac?) is ready for
a 5.0 release are good.

To get back on the constructive side I propose to do any of the
following, in decreasing order of desirability:

(A) Have the QString/QByteArray related bits in 5.0.

(B) Have everything in 5.0.

(C) Don't do anything for 5.0, but aim for a 6.0 instead for a 5.1
next.

(D) Don't do anything for 5.0, but allow 5.1 to be source compatiple
but binary incompatible.

(E) Don't do anything for 5.0, and provide a compile-time switch
for 5.1 to select between "current" and "patched" versions, default
to "current". [This is probably the most expensive solution, but
the one that fits best to "the rules"]

Andre'
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Abandoning the container changes

2012-07-17 Thread André Pönitz
On Tue, Jul 17, 2012 at 05:19:23PM +0200, Oswald Buddenhagen wrote:
> On Mon, Jul 16, 2012 at 02:52:32PM -0700, ext Thiago Macieira wrote:
> > On segunda-feira, 16 de julho de 2012 21.34.10, André Pönitz
> > wrote:
> > > On Thu, Jul 05, 2012 at 09:04:39AM +0300, Thiago Macieira
> > > wrote:
> > > > I think that, despite the potential benefits of the changes,
> > > > we should not apply them at this time. There are far too many
> > > > chances for breakage and it's a blatant disrespect for the
> > > > feature freeze.
> > > 
> > > I assume this is meant as a verdict, not as (possibly
> > > temporary) state of thinking.
> > 
> > Correct. The changes are the right thing to do, just not now.
> > We'll have to live with the current containers and their overhead
> > until Qt 6.
> > 
> > That includes the fact that QList is extremely
> > inefficient.
>
> this is absurd.

Incidentally, I agree. [Even if I lack the skill to express myself
so clearly at times ;-}]

> we said A, now we need to say B. or "unsay" A, which i don't think
> anyone wants.
> 
> i for one don't believe in qt6 anytime soon. it's the do-never release
> qt5 was for years. 

The suggested "4 years" are 3 1/2 years too much anyway.

That's 3 1/2 years more of forcing people to re-invent the wheel when
it comes to performance-sensitive components in a Qt environment, and
it's 3 1/2 years on top of the past half decade or so where Qt containers
fail to deliver on one of the original reasons to have them at all
(portability, convenience of use, _and_ performance).

We do have the chance to fix it _now_, and we have a fairly decent
idea of how the fix looks like. The whole change is essentially
source compatible, i.e. has a low probability of breaking other
components, and it is very well covered by autotests. The chances
to be ready before the rest (Webkit Windows? Mac?) is ready for
a 5.0 release are good.

To get back on the constructive side I propose to do any of the
following, in decreasing order of desirability: 

(A) Have the QString/QByteArray related bits in 5.0.

(B) Have everything in 5.0.

(C) Don't do anything for 5.0, but aim for a 6.0 instead for a 5.1
next.

(D) Don't do anything for 5.0, but allow 5.1 to be source compatiple
but binary incompatible.

(E) Don't do anything for 5.0, and provide a compile-time switch
for 5.1 to select between "current" and "patched" versions, default
to "current". [This is probably the most expensive solution, but
the one that fits best to "the rules"]

Andre'
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Abandoning the container changes

2012-07-17 Thread Oswald Buddenhagen
On Mon, Jul 16, 2012 at 02:52:32PM -0700, ext Thiago Macieira wrote:
> On segunda-feira, 16 de julho de 2012 21.34.10, André Pönitz wrote:
> > On Thu, Jul 05, 2012 at 09:04:39AM +0300, Thiago Macieira wrote:
> > > I think that, despite the potential benefits of the changes, we
> > > should not apply them at this time. There are far too many chances
> > > for breakage and it's a blatant disrespect for the feature freeze.
> > 
> > I assume this is meant as a verdict, not as (possibly temporary)
> > state of thinking.
> 
> Correct. The changes are the right thing to do, just not now. We'll have to 
> live with the current containers and their overhead until Qt 6.
> 
> That includes the fact that QList is extremely inefficient.
> 
this is absurd.
we said A, now we need to say B. or "unsay" A, which i don't think
anyone wants.

i for one don't believe in qt6 anytime soon. it's the do-never release
qt5 was for years. 
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Abandoning the container changes

2012-07-17 Thread Marc Mutz
On Tuesday July 17 2012, Andre Somers wrote:
> Op 16-7-2012 23:52, Thiago Macieira schreef:
[...]
> > That includes the fact that QList is extremely inefficient.
>
> That being the case, would it be possible to at least document these
> issues properly then? I think it is not all that clear from the
> documentation that QList is so inefficient for these cases. I don't
> think documentation changes are binary incompatible ;-)
[...]

Would a patch that makes certain QList instantiations privately inherit 
QVector acceptable? I'm thinking QList, QList, mostly, 
probably others. That would require a patch that made QList and QVector 
identical, API-wise, and that, in turn, would require "using member;" support 
in the compiler (the QT_NO_USING define is still in the code).

Thanks,
Marc

-- 
Marc Mutz  | Senior Software Engineer
KDAB (Deutschland) GmbH & Co.KG, a KDAB Group Company
www.kdab.com || Germany +49-30-521325470 || Sweden (HQ) +46-563-540090
KDAB - Qt Experts - Platform-Independent Software Solutions
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Abandoning the container changes

2012-07-16 Thread Andre Somers
Op 16-7-2012 23:52, Thiago Macieira schreef:
> On segunda-feira, 16 de julho de 2012 21.34.10, André Pönitz wrote:
>> On Thu, Jul 05, 2012 at 09:04:39AM +0300, Thiago Macieira wrote:
>>> Hello all
>>>
>>> I think that, despite the potential benefits of the changes, we
>>> should not apply them at this time. There are far too many chances
>>> for breakage and it's a blatant disrespect for the feature freeze.
>> I assume this is meant as a verdict, not as (possibly temporary)
>> state of thinking.
> Correct. The changes are the right thing to do, just not now. We'll have to
> live with the current containers and their overhead until Qt 6.
>
> That includes the fact that QList is extremely inefficient.
That being the case, would it be possible to at least document these 
issues properly then? I think it is not all that clear from the 
documentation that QList is so inefficient for these cases. I don't 
think documentation changes are binary incompatible ;-)

André

___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Abandoning the container changes

2012-07-16 Thread Thiago Macieira
On segunda-feira, 16 de julho de 2012 21.34.10, André Pönitz wrote:
> On Thu, Jul 05, 2012 at 09:04:39AM +0300, Thiago Macieira wrote:
> > Hello all
> >
> > I think that, despite the potential benefits of the changes, we
> > should not apply them at this time. There are far too many chances
> > for breakage and it's a blatant disrespect for the feature freeze.
>
> I assume this is meant as a verdict, not as (possibly temporary)
> state of thinking.

Correct. The changes are the right thing to do, just not now. We'll have to
live with the current containers and their overhead until Qt 6.

That includes the fact that QList is extremely inefficient.

--
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center
 Intel Sweden AB - Registration Number: 556189-6027
 Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden


signature.asc
Description: This is a digitally signed message part.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Abandoning the container changes

2012-07-16 Thread André Pönitz
On Thu, Jul 05, 2012 at 09:04:39AM +0300, Thiago Macieira wrote:
> Hello all
> 
> I think that, despite the potential benefits of the changes, we
> should not apply them at this time. There are far too many chances
> for breakage and it's a blatant disrespect for the feature freeze.

I assume this is meant as a verdict, not as (possibly temporary)
state of thinking.

Andre'
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Abandoning the container changes

2012-07-05 Thread Thiago Macieira
On quinta-feira, 5 de julho de 2012 15.30.27, André Somers wrote:
> Op 5-7-2012 12:28, Thiago Macieira schreef:
> > We can add them, but I don't see a value in doing that if no one is using
> > them. They'll just increase build time.
>
> How could we use it, if it is not included?

Chicken-and-the-egg.

What I meant was that I don't see value in adding them to QtCore unless our
own API is using them. It would increase confusion, increase build time and
would not improve our performance. In fact, it might even make it worse since
there would be limited data sharing between the two sets of classes.

Adding the new QVector class to a separate, downloadable module is quite easy.
It is currently using undocumented API in QtCore (QArrayData) but that API's
semantics get pretty well-defined due to the use in inline functions elsewhere.

However, adding the new QByteArray and QString doesn't make sense since it
would require duplicating everything that is not inline, or jumping through
hoops to share it. I am not looking forward to doing that work, but if someone
else is, be my guest.

--
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center
 Intel Sweden AB - Registration Number: 556189-6027
 Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden


signature.asc
Description: This is a digitally signed message part.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Abandoning the container changes

2012-07-05 Thread André Somers
Op 5-7-2012 12:28, Thiago Macieira schreef:
> We can add them, but I don't see a value in doing that if no one is using
> them. They'll just increase build time.
How could we use it, if it is not included?

André

___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Abandoning the container changes

2012-07-05 Thread aep
On Thu, 05 Jul 2012 13:28:58 +0300, Thiago Macieira wrote:

> We can add them, but I don't see a value in doing that if no one is 
> using
> them. They'll just increase build time.

extra module?

I always wondered where to throw stuff that

  - can't make it (yet) into Qt,
  - is too small to be its own module,
  - but useful enough not to be stuck on labs.

Basically that was the idea of Qxt, but with modularization these 
things can happen right in Qt.


___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Abandoning the container changes

2012-07-05 Thread Thiago Macieira
On quinta-feira, 5 de julho de 2012 11.28.58, Michael Hasselmann wrote:
> On Thu, 2012-07-05 at 09:04 +0300, Thiago Macieira wrote:
> > Hello all
> >
> > I think that, despite the potential benefits of the changes, we should not
> > apply them at this time. There are far too many chances for breakage and
> > it's a blatant disrespect for the feature freeze.
> >
> > The changes are public, though, so we can always retrieve them for Qt 6
> > when we do it in (say) 4 years time.
>
> I don't know the changes in detail, but would it be possible to
> introduce the container changes under a special namespace instead (think
> std::tr1)?
>
> Then we could still choose to use them in new code and the transition to
> Qt 6 would be somewhat easier.

We can add them, but I don't see a value in doing that if no one is using
them. They'll just increase build time.

--
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center
 Intel Sweden AB - Registration Number: 556189-6027
 Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden


signature.asc
Description: This is a digitally signed message part.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Abandoning the container changes

2012-07-05 Thread Michael Hasselmann
On Thu, 2012-07-05 at 09:04 +0300, Thiago Macieira wrote:
> Hello all
> 
> I think that, despite the potential benefits of the changes, we should not 
> apply them at this time. There are far too many chances for breakage and it's 
> a blatant disrespect for the feature freeze.
> 
> The changes are public, though, so we can always retrieve them for Qt 6 when 
> we do it in (say) 4 years time.

I don't know the changes in detail, but would it be possible to
introduce the container changes under a special namespace instead (think
std::tr1)?

Then we could still choose to use them in new code and the transition to
Qt 6 would be somewhat easier.

regards,
Michael

___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


[Development] Abandoning the container changes

2012-07-04 Thread Thiago Macieira
Hello all

I think that, despite the potential benefits of the changes, we should not
apply them at this time. There are far too many chances for breakage and it's
a blatant disrespect for the feature freeze.

The changes are public, though, so we can always retrieve them for Qt 6 when
we do it in (say) 4 years time.

I'll abandon my branch and the metaobject changes that went along.

--
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center
 Intel Sweden AB - Registration Number: 556189-6027
 Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden


signature.asc
Description: This is a digitally signed message part.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development