C++11 in KDevelop 4.6

Milian Wolff mail at milianw.de
Wed Nov 21 19:05:26 UTC 2012


On Wednesday 21 November 2012 19:33:30 Andreas Pakulat wrote:
> Hi,
> 
> this means you're going to require recent MacOSX versions (afaik only
> 10.8 comes with a working clang)

Is that an issue? I have no idea when it comes to MacOSX, but the people I 
know tend to upgrade ASAP to the newest MacOSX versions. Furthermore, I know 
of not a single user of KDevelop on Mac. There was one of the AMSN developers, 
question is whether he still uses it. Also see below.

> and msvc 2012 has also not been
> adopted very widely yet. Not to mention that there's no official Qt
> support for that compiler AFAIK.

Compiling Qt on MSVC 2012 is definitely possible, I know people who did that. 
And afaik 4.8.4 will also include some fixes required for that.

> If you intend to drop support for compiling Kdevelop on Windows once
> 4.5 has been branched please let me know now so I can stop pursuing
> building it on that platform. And I suggest to make this decision
> explicit in the cmake files with a platform check.

So you want to work (or already do work) on KDevelop support for Windows? 
What prevents you from using the MSVC CTP? Why is C++11 support an issue here? 
The compiler is even available free of charge as far as I know? What exactly 
is the issue?

Note: I don't want to drop Windows support alltogether. I just don't want to 
be kept back by a platform with imaginary user base.

> Personally I think its too early to make C++11 support - which is
> incomplete in all state of the art compilers anyway - mandatory.

Did you take a look at the features supported by the compiler versions I 
listed below? The fact that some parts like the threading and memory model 
stuff is not yet supported, doesn't mean we cannot start using C++11 for the 
rest? 

> Using
> it where it makes sense and providing a fallback like Qt does is a
> much better approach for an open source project that lags developers
> anyway. Then again, having not used any C++11 features so far, I'm not
> even half as excited about it as everyone else seems to be :)

Why do you think will we get less developers when we complicate things? Imo 
writing constexpr is much easier and straight forward compared to going 
through the Q_CONSTEXPR indirection. Also, don't you think we become more 
interesting for new developers by offering them to use C++11 in our code base?

> Andreas
> 
> PS: If you do ditch support for older gcc's make sure to remove the
> ext/hash-map stuff which only exists for gcc 4.3 and older IIRC.

I definitely want to do that.

> On Wed, Nov 21, 2012 at 7:14 PM, Milian Wolff <mail at milianw.de> wrote:
> > Hey all,
> > 
> > is anyone opposed to open KDevelop 4.6 for C++11? I.e. that means we
> > continue to work as-is and provide a kick-ass KDevelop 4.5. Once we
> > branch 4.5, we enable C++11 mode globally and start using it in master.
> > 
> > ######## Reasons:
> > 
> > - KDevelop is a free time project and it should be fun to work on it.
> > C++11 is quite a lot of fun, if not only because it's new. This is
> > actually the main reason for me to go down the C++11 route. This would
> > also allow us to learn C+11 which is a benefit for those of us who do
> > professional work-work programming.
> > 
> > - Tons of potential performance benefits thanks to constexpr, noexcept, r-
> > value references etc. pp.
> > 
> > - Much easier to read code thanks to auto, lambdas, alias templates,
> > defaulted functions, etc. pp. This also leads to better maintainability.
> > 
> > - Improved compiler analysis thanks to e.g. static assert, override,
> > final,
> > nullptr, explicit conversion operators, deleted functions, etc. pp.
> > 
> > ######## Compilers:
> > 
> > See also: http://wiki.apache.org/stdcxx/C%2B%2B0xCompilerSupport
> > 
> > Personally I'd say we should just require these compiler versions and
> > above:
> > 
> > clang 3.1 - required for constexpr, lambda, initializer lists, ...
> > 
> > GCC 4.7 - 4.6 might even be enough, but 4.7 has some more stuff like
> > delegating constructors, override, final and non-static data member
> > initialization.
> > 
> > msvc ctp november 2012
> > (http://blogs.msdn.com/b/vcblog/archive/2012/11/02/visual-c-c-11-and-the-
> > future-of-c.aspx)
> > 
> > ######## Potential Issues:
> > 
> > - FreeBSD situation? http://wiki.freebsd.org/NewC%2B%2BStack <-- I'm not
> > sure how far they are. But quite frankly, I'd say they can stick to
> > KDevelop 4.5 until they have a modern compiler like clang 3.1.
> > 
> > - Debian? Wheezy should come with GCC 4.7 if I'm not mistaken:
> > http://packages.debian.org/wheezy/gcc Imo it's fine if we only support
> > that
> > version of Debian. All other distros probably already have GCC 4.7
> > available, or will have it in their next distro release in time for
> > KDevelop 4.6
> > 
> > - Windows? If anything breaks on MSVC it's imo not an issue as KDevelop is
> > defacto dead on Windows (noone is working on it there). Also considering
> > that the windows team is actually working on proper C++11 support (see
> > link above) its only a matter of time until it has everything we need.
> > 
> > - Backporting: Now this is imo a potential issue, but considering that we
> > don't do such a good job in that regard anyways, it's not that big a
> > deal... And most of the fixes we do backport are oneliners which could be
> > done in the 4.5 branches and forward ported to 4.6.
> > 
> > ######## Comments? Feedback?
> > 
> > Cheers
> > --
> > Milian Wolff
> > mail at milianw.de
> > http://milianw.de
> > --
> > KDevelop-devel mailing list
> > KDevelop-devel at kdevelop.org
> > https://barney.cs.uni-potsdam.de/mailman/listinfo/kdevelop-devel
-- 
Milian Wolff
mail at milianw.de
http://milianw.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20121121/c883058b/attachment.sig>


More information about the KDevelop-devel mailing list