Jump to content

GSoC/2017/StatusReports/CsabaKertesz: Difference between revisions

From KDE Community Wiki
Kecsap (talk | contribs)
No edit summary
Kecsap (talk | contribs)
Line 22: Line 22:
Status: DONE
Status: DONE


Commits:
Example commits:


Add ccache support
Add ccache support
Line 31: Line 31:
Status: DONE
Status: DONE


Commits:
Example commits:


Add security (hardening) flags
Add security (hardening) flags
Line 41: Line 41:
'''3. Add Clang specific improvements to the CMake build system'''
'''3. Add Clang specific improvements to the CMake build system'''


Status: In Progress
Status: DONE


Commits:
Example commits:


Add verbose warning and optimized debug/linker flags
https://github.com/KDE/kstars/commit/b6d848b849f4d3be664ad3b33a1a531734d11d23


'''4. Add Clang sanitizers to the CMake build system'''
'''4. Add Clang sanitizers to the CMake build system'''
Status: DONE
Example commits:
Add sanitizer support
https://github.com/KDE/kstars/commit/2c32445378c9bc9f74d48c136a5f8e9656159490


'''5. Run the KStars application with the sanitizers enabled and fix all memory error found
'''5. Run the KStars application with the sanitizers enabled and fix all memory error found
Line 57: Line 66:
Status: In Progress
Status: In Progress


Commits:
Example commits:


Replace NULL with nullptr
Replace NULL with nullptr
https://github.com/KDE/kstars/commit/827f5c2d60d9c4594470cd693edee66868af014e
https://github.com/KDE/kstars/commit/827f5c2d60d9c4594470cd693edee66868af014e
Fix compiler warnings
https://github.com/KDE/kstars/commit/f075756affa3494f9be91d74221e93575ad8c4d9


'''8. Add documentation about the improvements and the sanitizers to the wiki pages.'''
'''8. Add documentation about the improvements and the sanitizers to the wiki pages.'''

Revision as of 19:52, 23 June 2017

Improve stability, testing and bring modern C++ to KStars

Brief explanation: KStars has a mature codebase with well-written C++. It has been under constant development for the last 16 years and requires serious modernization due to the complexity of the code with its many contributors. The student is required to refactor the sources with modern C++11/C++14 features, explore and fix corner cases, perform static code analysis and implement new testing methods.

Expected results:

Refactor code to C++11/C++14 Replace raw pointers with smart pointers where appropriate. Use standard containers. Migrate all connections/slots to new Qt style connection. Add new unit and functional tests covering the complete scope of the source code. Reduced memory footprint especially on embedded devices. Knowledge Prerequisite: C++, Qt, Data Structures

Mentor: Jasem Mutlaq (Matrix: Jasem)

May 30, 2017 - June 30, 2017

Progress of the planned items:

1. Add ccache support

Status: DONE

Example commits:

Add ccache support https://github.com/KDE/kstars/commit/d0bd857d9dfb87b725ee02553bfaced8a6c10057

2. Add hardening support to the CMake build system (improve security)

Status: DONE

Example commits:

Add security (hardening) flags https://github.com/KDE/kstars/commit/c9f2566cf956a449a88a40341c062d653ba99b3c

Update the security flags https://github.com/KDE/kstars/commit/b0936baa56951dad2b67931aad73c63ea153c31f

3. Add Clang specific improvements to the CMake build system

Status: DONE

Example commits:

Add verbose warning and optimized debug/linker flags https://github.com/KDE/kstars/commit/b6d848b849f4d3be664ad3b33a1a531734d11d23

4. Add Clang sanitizers to the CMake build system

Status: DONE

Example commits:

Add sanitizer support https://github.com/KDE/kstars/commit/2c32445378c9bc9f74d48c136a5f8e9656159490

5. Run the KStars application with the sanitizers enabled and fix all memory error found by these tools

6. Add Unity build to the CMake build system to cut the build time

7. Refactor codes to modern C++11/C++14 what I get in touch while fixing bugs:

Status: In Progress

Example commits:

Replace NULL with nullptr https://github.com/KDE/kstars/commit/827f5c2d60d9c4594470cd693edee66868af014e

Fix compiler warnings https://github.com/KDE/kstars/commit/f075756affa3494f9be91d74221e93575ad8c4d9

8. Add documentation about the improvements and the sanitizers to the wiki pages.

Status: In Progress

Wiki page: https://techbase.kde.org/Projects/Edu/KStars/C%2B%2B_developer_tools_with_KStars_on_Linux