GSOC 2012

Henry Miller hank at millerfarm.com
Fri Feb 17 02:34:24 UTC 2012


On Thursday 16 February 2012 12:14:24 Milian Wolff wrote:

> 
> Please don't add your ideas there on your own. Present them here, after all
> only ideas for which we have a mentor should end up on this page.
> 

I have two ideas that seem like they could be done (if someone can mentor, I 
don't feel like I know the code well enough to do so, nor am I'm sure I'd have 
the time).

Extract method refactoring for C++.  I want to highlight a section of code, 
select extract method, and have it turned into a new function (either class 
private, or in an anonymous namespace are the normal case, but sometimes other 
scopes are desirable).  You need to pass in any local variables as parameters.  

Ideally before it does this, it would allow me to select constants within the 
code that could be passed in as well.  Probably not possible, in GSOC, but the 
ultimate ideal would be look through my class and find other functions that 
have the same logic that can not call the new function.  If there is time, 
look at other IDEs and see what refactorings they offer and implement some of 
them as well.

This is important to me, but I don't have the time to do it myself.   We 
choose qt creator at work mostly because kdevelop 4.2 parsing was so slow.  If 
kdevelop had a working extract method I could probably convince a lot of 
people to switch.  This is the one thing we miss most from visual studio 
(actualy from visual assist - an add on to visual studio) when developing on 
linux.

Second:

Before configuring CMake (other build systems optional), check to see what 
compilers are on the system, and have a way to select each.  On my personal 
computer gcc is version 4.2, there is also gcc34, gcc46,  gcc47 and clang.  
Intel's compiler should be supported if possible too.  Some systems have  
cross compilers as well.  (ice cream/distcc are a special cases to watch out 
for - may want to handle them differently)

This could extend into some of what Steffen Ohrendorf suggested: a student who 
knows Microsoft Windows and gets this far can figure out MinGC and msvc 
without too much mentor help.

It would be also useful to finish this with support for more than one build 
tree.  In one project I work on I have 4 build trees: gcc debug, gcc release, 
gcc release for atom, and  clang (there are rumors I that ARM may be added to 
the list latter.  While kdevelop supports this, it isn't obvious how to make 
it work, and switching is cumbersum. What I'd like is build debug with my 
prefered compiler (probably clang for the error messages), and if that works 
start background builds of the others.  (the idea is when I'm ready to test my 
code with a different target only the last change set needs to be built most 
of the time - unless something is broke in one configuration: then I found out 
fairly soon even when I'm in a different one)






More information about the KDevelop-devel mailing list