diff --git a/.github/workflows/gha_ci.yml b/.github/workflows/gha_ci.yml index 3ea2d68ca..70a4714bc 100644 --- a/.github/workflows/gha_ci.yml +++ b/.github/workflows/gha_ci.yml @@ -81,6 +81,12 @@ jobs: - uses: actions/checkout@v4 - name: Build run: bash tools/gha_conda_ubsan.sh + conda_llvm18_asan: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Build + run: bash tools/gha_llvm18_conda_asan.sh conda_llvm17_asan: runs-on: ubuntu-latest steps: diff --git a/CMakeLists.txt b/CMakeLists.txt index 6cfdd07bf..9d2c8cb77 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -158,8 +158,8 @@ endif() include(GNUInstallDirs) find_package(LLVM REQUIRED CONFIG) -if(${LLVM_VERSION_MAJOR} LESS 15 OR ${LLVM_VERSION_MAJOR} GREATER 18) - message(FATAL_ERROR "LLVM >= 15 and <= 18 is required.") +if(${LLVM_VERSION_MAJOR} LESS 15 OR ${LLVM_VERSION_MAJOR} GREATER 19) + message(FATAL_ERROR "LLVM >= 15 and <= 19 is required.") endif() # List of source files. diff --git a/doc/changelog.rst b/doc/changelog.rst index fd558726f..2eea22c2f 100644 --- a/doc/changelog.rst +++ b/doc/changelog.rst @@ -7,6 +7,7 @@ Changelog New ~~~ +- Support LLVM 19 (`#455 `__). - Non-number exponents for the ``pow()`` function are now supported in Taylor integrators (`#454 `__). diff --git a/doc/install.rst b/doc/install.rst index cad4aeac9..c80b936b8 100644 --- a/doc/install.rst +++ b/doc/install.rst @@ -14,7 +14,7 @@ and several CPU architectures (x86-64, 64-bit ARM and 64-bit PowerPC). heyoka has the following **mandatory** dependencies: -* the `LLVM `__ compiler infrastructure library (version >=15 and <=18), +* the `LLVM `__ compiler infrastructure library (version >=15 and <=19), * the `Boost `__ C++ libraries (version >=1.69), * the `{fmt} `__ library (version >=9 and <=11), * the `spdlog `__ library, diff --git a/tools/gha_conda_clang_tidy.sh b/tools/gha_conda_clang_tidy.sh old mode 100755 new mode 100644 diff --git a/tools/gha_conda_ubsan.sh b/tools/gha_conda_ubsan.sh old mode 100755 new mode 100644 diff --git a/tools/gha_llvm16_conda_asan.sh b/tools/gha_llvm16_conda_asan.sh old mode 100755 new mode 100644 diff --git a/tools/gha_llvm17_conda_asan.sh b/tools/gha_llvm17_conda_asan.sh old mode 100755 new mode 100644 diff --git a/tools/gha_llvm18_conda_asan.sh b/tools/gha_llvm18_conda_asan.sh new file mode 100644 index 000000000..ab0b6137a --- /dev/null +++ b/tools/gha_llvm18_conda_asan.sh @@ -0,0 +1,48 @@ +#!/usr/bin/env bash + +# Echo each command +set -x + +# Exit on error. +set -e + +# Core deps. +sudo apt-get install wget + +# Install conda+deps. +wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh -O miniconda.sh +export deps_dir=$HOME/local +export PATH="$HOME/miniconda/bin:$PATH" +bash miniconda.sh -b -p $HOME/miniconda +conda create -y -p $deps_dir c-compiler cxx-compiler cmake ninja 'llvmdev=18.*' \ + tbb-devel tbb libboost-devel 'mppp=1.*' sleef xtensor xtensor-blas blas \ + blas-devel fmt spdlog +source activate $deps_dir + +# Create the build dir and cd into it. +mkdir build +cd build + +# Clear the compilation flags set up by conda. +unset CXXFLAGS +unset CFLAGS + +# Configure. +cmake ../ -G Ninja \ + -DCMAKE_PREFIX_PATH=$deps_dir \ + -DCMAKE_BUILD_TYPE=Debug \ + -DHEYOKA_BUILD_TESTS=yes \ + -DHEYOKA_BUILD_TUTORIALS=ON \ + -DHEYOKA_WITH_MPPP=yes \ + -DHEYOKA_WITH_SLEEF=yes \ + -DCMAKE_CXX_FLAGS="-fsanitize=address" \ + -DCMAKE_CXX_FLAGS_DEBUG="-g -Og" + +# Build. +ninja -v + +# Run the tests. +ctest -VV -j4 + +set +e +set +x