DevHeads.net

Frameworks compiler and Qt requirements after Qt 5.7?

Hi,

If Qt's plans progress according to what they post on the mailinglist then
Qt 5.6 will be LTS, 5.7 will up the compiler requirements to the following:

GCC 4.7
Clang 3.2
MSVC 2012

Framework currently requires:
GCC 4.5
Clang 3.1
MSVC 2012

When frameworks started it had slightly less strict compiler requirements
then Qt had. But now that Qt is upping the compiler requirement, we should
follow as well. In fact, we should probably also update the Qt version
requirement which right now is at 5.2.

I have no clue when Qt 5.7 will be released, but i'm guessing around this
time next year. Frameworks currently is at version 5.11 (5.12 coming up).
If we add a year to that then frameworks is at version 5.24 when Qt 5.7 is
released (big guess!). So why don't we change our requirements starting
with frameworks 5.25 (nice number as well)? I'd propose changing it to the
following:

Qt 5.7 minimal requirement
GCC 5.1 (or somewhere in 5.x)
Clang 3.6.1 (or perhaps even 3.7)
MSVC 2015

We then have full C++11 support across the board and much of C++14
supported as well. MSVC clearly being the limiting one in that area for the
C++14 support, but still quite decent.

Regarding the above version numbers for the compilers. They would now be
considered "cutting edge" but in a year time most distributions will be at
those versions or even newer.

What's your opinion on this?

Cheers,
Mark

Comments

Re: Frameworks compiler and Qt requirements after Qt 5.7?

By Thiago Macieira at 06/26/2015 - 17:23

On Friday 26 June 2015 16:24:50 Mark Gaiser wrote:
Current test results for tst_compiler with MSVC 2015:

SKIP : tst_Compiler::cxx14_binary_literals() Compiler does not support this
C++14 feature
SKIP : tst_Compiler::cxx14_init_captures() Compiler does not support this
C++14 feature
SKIP : tst_Compiler::cxx14_generic_lambdas() Compiler does not support this
C++14 feature
SKIP : tst_Compiler::cxx14_constexpr() Compiler does not support this C++14
feature
SKIP : tst_Compiler::cxx14_decltype_auto() Compiler does not support this
C++14 feature
SKIP : tst_Compiler::cxx14_return_type_deduction() Compiler does not support
this C++14 feature
SKIP : tst_Compiler::cxx14_aggregate_nsdmi() Compiler does not support this
C++14 feature
SKIP : tst_Compiler::cxx14_variable_templates() Compiler does not support
this C++14 feature

The reason for this is that we chose to require SD-6 for C++14 support and
MSVC 2015 does not follow it. Therefore, for Qt's purposes, MSVC 2015 supports
*no* C++14.

Re: Frameworks compiler and Qt requirements after Qt 5.7?

By Aleix Pol at 06/26/2015 - 17:22

On Fri, Jun 26, 2015 at 4:24 PM, Mark Gaiser < ... at gmail dot com> wrote:
I agree with most of the comments. I'm unsure bumping the dependencies
would buy us that much. In fact it might be even interesting to
consider bumping to Qt 5.3 even.

Thinking about Qt 5.7, when Qt 5.5 is not even released, is premature.

Aleix

Re: Frameworks compiler and Qt requirements after Qt 5.7?

By Luigi Toscano at 06/26/2015 - 10:30

On Friday 26 of June 2015 16:24:50 Mark Gaiser wrote:
Even if we change the required version of Qt, why would we need to increase
the compiler requirements? I think that if we decide to go this way, we should
follow the same route: Qt requirements for Frameworks.
That said, I think that bumping the minimum required versions of a specific Qt
version immediately after its release would be a bit too much.

Ciao

Re: Re: Frameworks compiler and Qt requirements after Qt 5.7?

By Martin =?ISO-88... at 06/26/2015 - 11:46

On Friday 26 June 2015 16:30:25 Luigi Toscano wrote:
Fully agree. I don't think it's currently the time to start considering making
Qt 5.7 a requirement. We can start thinking about making maybe 5.6 a new
requirement once it got released as it's a long term release. Given that 5.6
will be a long term release I would say it's a clear no for considering
anything newer as a framework dependency for the near future. It's what som
distros will stick to for quite some time and we don't need to make things
needlessly more difficult.

Thus I think the question about compiler requirement and Qt requirement are
not coupled. Just because we raise the one or the other doesn't mean we should
raise both.

Cheers
Martin

Re: Frameworks compiler and Qt requirements after Qt 5.7?

By Thiago Macieira at 06/28/2015 - 22:44

On Friday 26 June 2015 17:46:21 Martin Gräßlin wrote:
Yes, it does. You need to raise at a minimum to the minimum that the minimum
Qt requires.

If the minimum Qt is 5.6, then KDE's current requirements are higher than
Qt's. So no change is necessary.

If the minimum Qt is 5.7, then Qt's requirements are higher. Effectively, Qt's
requirements become KDE's.

Re: Re: Frameworks compiler and Qt requirements after Qt 5.7?

By Alexander Potashev at 06/26/2015 - 16:51

Hi everyone,

2015-06-26 18:46 GMT+03:00 Martin Gräßlin < ... at kde dot org>:
Correct. Consider the following workflow: the user installs the latest
Qt 5.7 from binary packages and builds the latest KF5 from Git. He
will only need gcc-4.5. But if we bumped KF5 requirements to gcc-4.7,
then the user would need to update gcc for no good reason.

Mark,
In my opinion you had to start this kind of discussion with
emphasizing the new features in Qt 5.{6,7} and in new versions of
compilers that would help us make KF5 better. For me this is still
unclear.

Re: Re: Frameworks compiler and Qt requirements after Qt 5.7?

By Mark at 06/26/2015 - 18:25

On Fri, Jun 26, 2015 at 10:51 PM, Alexander Potashev < ... at gmail dot com>
wrote:

Your GCC argument is wrong (unless you mistyped versions). Qt 5.7 is going
to require GCC 4.7 so a distribution shipping the binary package will
certainly have a GCC version that can compile Qt 5.7. It would make no
sense for frameworks to require anything lower if the thing it's build with
(Qt) requires a higher compiler versions.

Anyhow, it clearly looks like i'm way ahead of this discussion. I thought
this was a good moment with Qt finishing their LTS plans and having a quite
clear picture of what Qt 5.7 is going to require.
To be continued in about a year or so i guess :)