Skip to content

Fix logger reinitialization#17

Open
keiwanjamaly wants to merge 29 commits intosatfra:mainfrom
keiwanjamaly:Fix-logger-reinitialization
Open

Fix logger reinitialization#17
keiwanjamaly wants to merge 29 commits intosatfra:mainfrom
keiwanjamaly:Fix-logger-reinitialization

Conversation

@keiwanjamaly
Copy link
Contributor

This pull request introduces several changes across multiple files, focusing on build system updates, code improvements, and test enhancements. The most significant changes include updates to the build configuration, improvements to the build_logger function, adjustments to mathematical functions, and the addition of new tests. Below is a breakdown of the most important changes:

Build System Updates:

  • Added several directories to .dockerignore to exclude build artifacts and logs from Docker builds. (.dockerignore)
  • Removed the inclusion of setup_targets.cmake from DiFfRG/CMakeLists.txt, simplifying the build configuration. (DiFfRG/CMakeLists.txt)
  • Updated Boost library version requirement from 1.80 to 1.84 in setup_build_system.cmake. (DiFfRG/cmake/setup_build_system.cmake)
  • Removed custom build targets (debug, release, etc.) from setup_targets.cmake. (DiFfRG/cmake/setup_targets.cmake)
  • Modified the Dockerfile to switch the base image from Rocky Linux to Ubuntu and updated installation steps for dependencies. (Dockerfile)

Code Improvements:

  • Enhanced the build_logger function in utils.cc to reuse existing loggers if available, reducing redundant logger creation. (DiFfRG/src/DiFfRG/common/utils.cc)
  • Updated mathematical documentation in regulators.hh to replace \partial_t with \partial_k for better accuracy in describing derivatives. (DiFfRG/include/DiFfRG/physics/regulators.hh) [1] [2] [3] [4] [5] [6]

Test Enhancements:

  • Added a new test for the build_logger function to verify its creation and retrieval behavior. (DiFfRG/tests/common/test_logger.cc)
  • Introduced a new test executable test_logger in the test configuration. (DiFfRG/tests/common/CMakeLists.txt)
  • Replaced std::riemann_zeta with boost::math::zeta for improved compatibility in loop integral tests. (DiFfRG/tests/physics/test_loop_integrals.cc) [1] [2]

Mathematica Code Enhancements:

  • Added support for complex<double> as a known C type in CodeTools.m and introduced a function to project complex types to simpler types. (Mathematica/DiFfRG/CodeTools.m) [1] [2]
  • Updated kernel function templates to handle projected complex types in CodeTools.m. (Mathematica/DiFfRG/CodeTools.m) [1] [2]

These changes collectively improve the build process, enhance code clarity and functionality, and strengthen test coverage.

@keiwanjamaly
Copy link
Contributor Author

keiwanjamaly commented May 27, 2025

So, I'm sorry, that this is so much, I promise I will do pull request more incrementally in the future.

@keiwanjamaly
Copy link
Contributor Author

I have also added the fix for the matsubara quadrature segmentation fault, since I have not seen it in the main branch.

@satfra
Copy link
Owner

satfra commented May 30, 2025

I have two minor issues:

  1. Is the minimum requirement 1.81 -> 1.84 in boost necessary? There are some incompatibilities between boost >1.81 and kokkos' nvcc wrapper, which is why for future developments we may have to rely on boost 1.81

  2. Why the change from rocky linux to Ubuntu? In particular for CUDA workflows this is problematic - while rocky linux gives perfect compatibility, using CUDA on the Ubuntu docker is plagued by conflicting gcc/nvcc versions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

Comments