htdocs/gsoc: updated document
This commit is contained in:
parent
bb1c045740
commit
b5cbe784f3
|
@ -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 -->
|
||||||
|
|
Loading…
Reference in New Issue