Skip to content

Conversation

JanVogelsang
Copy link
Contributor

@JanVogelsang JanVogelsang commented Sep 18, 2025

This PR consists of two changes:

  1. Bump the C++ standard from C++17 to C++20 which is required to use C++ concepts (see requires keyword) that this PR uses to fix improve the timer implementation.
  2. Fix Improve the detailed and threaded timer implementation by now correctly turning off detailed or threaded timers when desired.

The PR is based on #3544, which should be merged first. After #3544 is fixed, the number of changes in this PR will reduce drastically.

Edit: #3582 already fixed the timer issue, but the changes to the stopwatches here might still be more desirable compared to the solution implemented in #3582.

Now that the timer issue is already fixed, we can take more time to improve other aspects, such as the CMake-to-C++ interface, which is currently mainly C-macro-based. This could be changed to a C++-based solution which uses compile-time constants (constexpr) instead of C-macros. Further, C++20 modules could be introduced to further cut compile times and clean up the include tree (in combination with #3544).

JanVogelsang and others added 30 commits August 9, 2025 14:25
Co-authored-by: Dennis Terhorst <[email protected]>
Co-authored-by: Dennis Terhorst <[email protected]>
(cherry picked from commit cd6271f)
(cherry picked from commit 9884718)
(cherry picked from commit 076e11a)
(cherry picked from commit 0313d49)
# Conflicts:
#	nestkernel/layer.h
# Conflicts:
#	models/correlomatrix_detector.cpp
#	nestkernel/connection_manager.cpp
#	nestkernel/model_manager.cpp
#	nestkernel/model_manager.h
#	nestkernel/nest.cpp
#	nestkernel/node_manager.cpp
#	nestkernel/simulation_manager.cpp
#	nestkernel/source_table.cpp
#	nestkernel/sp_manager.cpp
#	nestkernel/spatial.cpp
#	nestkernel/target_identifier.h
@jessica-mitchell jessica-mitchell added S: Critical Needs to be addressed immediately T: Maintenance Work to keep up the quality of the code and documentation. labels Sep 18, 2025
@jessica-mitchell jessica-mitchell added S: High Should be handled next and removed S: Critical Needs to be addressed immediately labels Sep 19, 2025
@JanVogelsang JanVogelsang changed the title Fix detailed and threaded timer settings and bump C++ standard to C++20 Bump C++ standard to C++20 Sep 22, 2025
@github-project-automation github-project-automation bot moved this to In progress in Kernel Sep 22, 2025
@github-project-automation github-project-automation bot moved this to In progress in PyNEST-NG Sep 22, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S: High Should be handled next T: Maintenance Work to keep up the quality of the code and documentation.
Projects
Status: To do
Status: In progress
Status: In progress
Development

Successfully merging this pull request may close these issues.

2 participants