htdocs/gsoc: updated document

This commit is contained in:
Daniel Marjamäki 2014-02-09 09:58:09 +01:00
parent bb1c045740
commit b5cbe784f3
1 changed files with 27 additions and 20 deletions

View File

@ -39,7 +39,7 @@
<li>Core Cppcheck <li>Core Cppcheck
<ol> <ol>
<li>Add 1 new checker (C++)</li> <li>Add 1 new checker (C++)</li>
<li>Improved value flow (C++)</li> <li>Abstract interpretation of loops (C++)</li>
<li>Check for unused functions when -j is used (C++)</li> <li>Check for unused functions when -j is used (C++)</li>
</ol></li> </ol></li>
<li>Configurations <li>Configurations
@ -50,7 +50,7 @@
</ol></li> </ol></li>
<li>Distributed computing <li>Distributed computing
<ol> <ol>
<li>Distributed computing (C++)</li> <li>Distributed computing (Network programming, Python / C++)</li>
</ol></li> </ol></li>
</ul> </ul>
</p> </p>
@ -62,16 +62,21 @@
<strong>Name:</strong> Add 1 new checker<br> <strong>Name:</strong> Add 1 new checker<br>
<strong>Skills required:</strong> C++<br> <strong>Skills required:</strong> C++<br>
<strong>Description:</strong> There are several tickets in our issue tracker that has ideas for new checkers. <strong>Description:</strong> There are several tickets in our issue tracker that has ideas for new checkers.
The subtasks will be: implement a new checker, write test cases, test it against various projects. The subtasks will be: pick a ticket to fix, write test cases, implement new checker, test it against various
projects.
</p> </p>
<p> <p>
<strong>Project 1.2</strong><br> <strong>Project 1.2</strong><br>
<strong>Name:</strong> Improved value flow<br> <strong>Name:</strong> Abstract interpretation of loops<br>
<strong>Skills required:</strong> C++<br> <strong>Skills required:</strong> C++<br>
<strong>Description:</strong> The value flow analysis is used by various checkers - therefore improving <strong>Description:</strong> You will write an C/C++ expression interpreter that uses the Cppcheck syntax
this will mean that many checkers get better. It is possible to improve the value flow analysis, for example tree to interpret the expressions in loops. When there are unknown operands (variables with unknown value,
after conditions, inside loops, etc. etc) the interpreter shall bailout. You will interpret the loop expressions until : the loop finish , or
there is a timeout , or the variables are unchanged. During the interpretation, the variable values will be
recorded and saved as ValueFlow values. You can read an overview of the Cppcheck syntax tree and ValueFlow
analysis in the <a href="http://sourceforge.net/projects/cppcheck/files/Articles/cppcheck-design.pdf">cppcheck
design</a> document.
</p> </p>
<p> <p>
@ -79,10 +84,9 @@
<strong>Name:</strong> Check for unused functions when -j is used<br> <strong>Name:</strong> Check for unused functions when -j is used<br>
<strong>Skills required:</strong> C++, threads<br> <strong>Skills required:</strong> C++, threads<br>
<strong>Description:</strong> Currently the check for unused functions only works when the analysis is <strong>Description:</strong> Currently the check for unused functions only works when the analysis is
single-threaded. When multithreaded analysis is done the check is disabled. The function usage must be single-threaded. When multithreaded analysis is done the check is disabled. Currently the check saves function
stored in a thread safe way. The problem is that you don't have access to mutexes inside the check so usage information in a container. The same container is used for all files. This should be refactored. For each
instead of store to the same container from different threads it might be a good idea to store the file there should be a separate container for the function usage information.
function usage in different containers. And when all threads are done the results can be "merged".
</p> </p>
<h2>2. Configurations</h2> <h2>2. Configurations</h2>
@ -93,24 +97,25 @@
<strong>Skills required:</strong> C/C++ (not much), XML<br> <strong>Skills required:</strong> C/C++ (not much), XML<br>
<strong>Description:</strong> More configuration files are needed for various libraries. Subtasks: choose <strong>Description:</strong> More configuration files are needed for various libraries. Subtasks: choose
a popular library. Analyse the library functions and read API documentation. Write proper configuration a popular library. Analyse the library functions and read API documentation. Write proper configuration
file for Cppcheck. file for Cppcheck. Test the configuration.
</p> </p>
<p> <p>
<strong>Project 2.2</strong><br> <strong>Project 2.2</strong><br>
<strong>Name:</strong> Autogenerated configurations<br> <strong>Name:</strong> Autogenerated configurations<br>
<strong>Skills required:</strong> C++ / scripting<br> <strong>Skills required:</strong> C++ / scripting<br>
<strong>Description:</strong> Auto generate configuration from headers. To parse the headers, <strong>Description:</strong> Auto generate configuration from headers. To parse the headers, you can for
you can for instance do this yourself (python script/c++/..) or you can modify cppcheck and instance do this yourself (python script/c++/..) or you can modify cppcheck. All function names will be
use the symboldatabase. extracted, and you will also determine what function arguments are passed by value.
</p> </p>
<p> <p>
<strong>Project 2.3</strong><br> <strong>Project 2.3</strong><br>
<strong>Name:</strong> GUI for editing configurations<br> <strong>Name:</strong> GUI for editing configurations<br>
<strong>Skills required:</strong> C++, Qt<br> <strong>Skills required:</strong> C++, Qt<br>
<strong>Description:</strong> A graphical user interface for editing configurations would be nice. This should be <strong>Description:</strong> A graphical user interface for editing configurations would be nice. This can
added in the cppcheck-gui program. be developed as a standalone program or integrated in the cppcheck-gui program. However in the end the plan
is that it will be merged into the cppcheck-gui program.
</p> </p>
<h2>3. Distributed computing</h2> <h2>3. Distributed computing</h2>
@ -118,9 +123,11 @@
<p> <p>
<strong>Project 3.1</strong><br> <strong>Project 3.1</strong><br>
<strong>Name:</strong> Distributed computing<br> <strong>Name:</strong> Distributed computing<br>
<strong>Skills required:</strong> Network, script, C++<br> <strong>Skills required:</strong> Network, python / c++<br>
<strong>Description:</strong> Make it possible to distribute analysis. A client and server needs to be written. The client will <strong>Description:</strong> Make it possible to distribute analysis. A client and server needs to be
execute cppcheck to perform analysis. written. The client will execute cppcheck to perform analysis. The programming language used to write the
client and server is either python or c++ (your choice). The server shall be able to handle at least 100
clients. The client and server needs to be cross platform.
</p> </p>
</div> <!-- .wrap --> </div> <!-- .wrap -->