We are happy to announce the immediate availability of KDevelop 4.6.0! It adds more than a thousand commits worth of bug fixes, performance improvements and new features.
KDevelop aims to create an IDE which doesn't get into your way and nevertheless provides a powerful and versatile set of tools for software development. Support for C++ and CMake are KDevelop's most prominent and widely used features, but the 4.6.0 release -- among other things -- also continues to improve the language support for PHP and Python.
Aside from many bug fixes and general improvements such as performance optimizations in various areas, which make KDevelop 4.6.0 faster and less memory-hungry, a few changes are especially noteworthy:
The ReviewBoard plugin now supports updating existing review requests. There is a new plugin which adds support for building projects with ninja instead of make. CMake support was also stabilized and improved, adding support for missing or new CMake features.
KDevelop comes with a shiny new animated Splash Screen. Furthermore you can now open files in the currently running session easily from the command line via "kdevelop $file".
The area tabs ("Code", "Review", "Debug") have been replaced with a unified button, which should make it more obvious how they are supposed to be used. You change the areas by invoking an action such as "Debug Process" and then "Go Back" to coding if you are finished in the "Debug" area. Related to that, the Working Sets are now identified by a fresh, consistent set of icons.
The new Project Filter plugin provides a poweful tool to define which files you want to be part of your project. You can access it via the context menu in the project tree view, or from within the project settings. The old filter line edit in the project tree view was removed in favor of this more powerful and optimized approach to filtering.
Support for various C++11 features was added to the C++ language plugin. A shiny new feature is the so called look-ahead completion, which offers potential matches from member variables or functions accessible after dereferencing object or pointer types. Some notable performance improvements were made and in general the code has been cleaned up, making it more robust.
Python language support has seen various improvements in its static analyzer, as well as in the code completion component. Especially, relative imports are now supported; types can be deduced from isinstance() calls; and there is now a built-in tool to extract information from non-Python libraries to be used by the IDE to provide better support for them.
The PHP language plugin received support for various new features introduced by the last PHP releases. As such, the editor now properly understands late static binding from PHP 5.3. From PHP 5.4 comes the support for the new short array syntax, function array dereferencing and trait declarations. Finally, the newstring and array literal dereferencing from PHP 5.5 is also supported.
The debug session is now correctly closed when a program exits under specific conditions. Breakpoint modifications such as disabling or enabling them takes effect immediately now, with no need to stop running program manually anymore. Debugging from external terminals has been improved, and it is now possible to debug from konsole, gnome-terminal, xfce4-terminal, xterm and probably other terminals. The Breakpoints toolview now displays only file names and the full path is accessible through a tooltip, which simplifies the UI and makes it easier to understand which files contain breakpoints.
A new feature is the addition of a CPU registers toolview. It shows, and offers to edit, all user mode registers and general purpose flags for x86/x86_64 and armV7 (maybe v6 too?) architectures. This toolview combined with the Disassemble toolview makes it possible to control and watch a programs behavior on a very low level. Obviously that is not a feature used everyday, but for some specific purposes it can be very useful, e.g. to debug c/c++ code with assembly inclusions, for testing ring 3 protection algorithms/techniques or reverse engineering. Also it comes in handy if you debug an application without debug symbols in which case disassemble and registers are the only source of information about what is going on.
Most KDevelop users should get a fresh copy of the new version via their distributions packager. Otherwise you can download the source from the official KDE mirrors: http://download.kde.org/stable/kdevelop/4.6.0/src/
To verify the integrity of your download, use the following hash sums for comparison:
To wrap up let us all thank the various contributors who made this latest KDevelop release possible! They are, in alphabetic order:
Albert Vaca, Aleix Pol, Alexander Mezin, Alexandre Courbot, Alexey Morozov, Allen Winter, Andras Mantia, Andrea Scarpino, Andreas Pakulat, Aurélien Gâteau, Bartosz Matuszewski, Ben Wagner, Burkhard Lück, Burkhard Lueck, Christophe Giboudeaux, Christoph Feck, David E. Narváez, David Faure, David Nolden, Florian Eßer, Gabo Menna, Ghislain Mary, Hannes Hofer, Heinz Wiesinger, Ivan Shapovalov, Jekyll Wu, Jon Mease, Jørgen Kvalsvik, Juliano F. Ravasi, Kevin Funk, Lambert Clara, Lasse Liehu, Laurent Navet, Luigi Toscano, Maciej Cencora, Marcel Hellwig, Max Schwarz, Meenakshi Khorana, Miha Čančula, Milian Wolff, Miquel Canes Gonzalez, Miquel Sabaté, Morten Danielsen Volden, Nicolai Hähnle, Nicolás Alvarez, Niko Sams, Olivier JG, Pino Toscano, Przemek Czekaj, Sebastian Kügler, Sergey Vidyuk, Steffen Ohrendorf, Sven Brauch, Vlas Puhov, Yuri Chornoivan, Zaar Hai
Thank you all!