From b5cbe784f3727a83b59ece3e854e39edad5d0fc6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Marjam=C3=A4ki?= Date: Sun, 9 Feb 2014 09:58:09 +0100 Subject: [PATCH] htdocs/gsoc: updated document --- htdocs/gsoc2014.php | 47 ++++++++++++++++++++++++++------------------- 1 file changed, 27 insertions(+), 20 deletions(-) diff --git a/htdocs/gsoc2014.php b/htdocs/gsoc2014.php index a2efb84bc..e5b2ea9a6 100644 --- a/htdocs/gsoc2014.php +++ b/htdocs/gsoc2014.php @@ -39,7 +39,7 @@
  • Core Cppcheck
    1. Add 1 new checker (C++)
    2. -
    3. Improved value flow (C++)
    4. +
    5. Abstract interpretation of loops (C++)
    6. Check for unused functions when -j is used (C++)
  • Configurations @@ -50,7 +50,7 @@
  • Distributed computing
      -
    1. Distributed computing (C++)
    2. +
    3. Distributed computing (Network programming, Python / C++)
  • @@ -62,16 +62,21 @@ Name: Add 1 new checker
    Skills required: C++
    Description: 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.

    Project 1.2
    - Name: Improved value flow
    + Name: Abstract interpretation of loops
    Skills required: C++
    - Description: The value flow analysis is used by various checkers - therefore improving - this will mean that many checkers get better. It is possible to improve the value flow analysis, for example - after conditions, inside loops, etc. + Description: You will write an C/C++ expression interpreter that uses the Cppcheck syntax + tree to interpret the expressions in loops. When there are unknown operands (variables with unknown value, + 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 cppcheck + design document.

    @@ -79,10 +84,9 @@ Name: Check for unused functions when -j is used
    Skills required: C++, threads
    Description: 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 - stored in a thread safe way. The problem is that you don't have access to mutexes inside the check so - instead of store to the same container from different threads it might be a good idea to store the - function usage in different containers. And when all threads are done the results can be "merged". + single-threaded. When multithreaded analysis is done the check is disabled. Currently the check saves function + usage information in a container. The same container is used for all files. This should be refactored. For each + file there should be a separate container for the function usage information.

    2. Configurations

    @@ -93,24 +97,25 @@ Skills required: C/C++ (not much), XML
    Description: More configuration files are needed for various libraries. Subtasks: choose a popular library. Analyse the library functions and read API documentation. Write proper configuration - file for Cppcheck. + file for Cppcheck. Test the configuration.

    Project 2.2
    Name: Autogenerated configurations
    Skills required: C++ / scripting
    - Description: Auto generate configuration from headers. To parse the headers, - you can for instance do this yourself (python script/c++/..) or you can modify cppcheck and - use the symboldatabase. + Description: Auto generate configuration from headers. To parse the headers, you can for + instance do this yourself (python script/c++/..) or you can modify cppcheck. All function names will be + extracted, and you will also determine what function arguments are passed by value.

    Project 2.3
    Name: GUI for editing configurations
    Skills required: C++, Qt
    - Description: A graphical user interface for editing configurations would be nice. This should be - added in the cppcheck-gui program. + Description: A graphical user interface for editing configurations would be nice. This can + 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.

    3. Distributed computing

    @@ -118,9 +123,11 @@

    Project 3.1
    Name: Distributed computing
    - Skills required: Network, script, C++
    - Description: Make it possible to distribute analysis. A client and server needs to be written. The client will - execute cppcheck to perform analysis. + Skills required: Network, python / c++
    + Description: Make it possible to distribute analysis. A client and server needs to be + 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.