diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 236f2d615e..d3a0a960e0 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -29,24 +29,41 @@ jobs: # - once stored under a key, they become immutable (even if local cache path content changes) # - for a refresh the key has to change, e.g., hash of a tracked file in the key with: - path: | - ~/.ccache - ~/.cache/ccache - key: ccache-linux-gccompompi-${{ hashFiles('.github/workflows/linux.yml') }}-${{ hashFiles('cmake/dependencies/AMReX.cmake') }}-${{ github.event.repository.pushed_at }} - restore-keys: | - ccache-linux-gccompompi-${{ hashFiles('.github/workflows/linux.yml') }}- - ccache-linux-gccompompi- + path: ~/.cache + key: ccache-${{ github.workflow }}-${{ github.job }}-git-${{ github.sha }} + restore-keys: ccache-${{ github.workflow }}-${{ github.job }}-git- - name: Build & Install run: | + + export CCACHE_COMPRESS=1 + export CCACHE_COMPRESSLEVEL=10 + export CCACHE_MAXSIZE=1G + ccache -z + pip install -U -e ./tools + export CXXFLAGS="-g -fsanitize=undefined,address -fno-sanitize-recover=all" cmake -S . -B build \ + -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ + -DCMAKE_BUILD_TYPE=Release \ -DHiPACE_COMPUTE=OMP \ -DCMAKE_CXX_STANDARD=17 \ -DCMAKE_INSTALL_PREFIX=/tmp/my-hipace \ -DCMAKE_VERBOSE_MAKEFILE=ON cmake --build build -j 2 + + ccache -s + du -hs ~/.cache + + - name: Run Tests - run: ctest --test-dir build --output-on-failure + run: | + #MPI implementations often leak memory + export "ASAN_OPTIONS=detect_leaks=0" + + # Print stacktrace for easier debugging + export UBSAN_OPTIONS=print_stacktrace=1 + + ctest --test-dir build --output-on-failure linux_gcc_cxx17: name: GNU@7.5 C++17 Serial diff --git a/src/particles/plasma/MultiPlasma.H b/src/particles/plasma/MultiPlasma.H index 12549d09d0..99b4a864ef 100644 --- a/src/particles/plasma/MultiPlasma.H +++ b/src/particles/plasma/MultiPlasma.H @@ -1,6 +1,6 @@ /* Copyright 2021-2022 * - * This file is part of HiPACE++. + * This file is part of HiPACE++ . * * Authors: AlexanderSinn, MaxThevenet, Severin Diederichs * License: BSD-3-Clause-LBNL @@ -91,7 +91,7 @@ public: * * \param[in,out] fields the general field class, modified by this function * \param[in] which_slice slice in which the densities are deposited - * \param[in] gm Geometry of the simulation, to get the cell size etc. + * \param[in] gm Geometry of the simulation (to get the cell size etc.) * \param[in] lev MR level */ void DepositNeutralizingBackground (