Augment kernel basis functionalities #82
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| ########################################### | |
| # adapted from FLINT's workflows/CI.yml # | |
| ########################################### | |
| name: CI | |
| on: | |
| pull_request: | |
| push: | |
| branches: | |
| - main | |
| env: | |
| GLOBAL_MULTIPLIER: 1 | |
| concurrency: | |
| # Group by workflow and ref, and to limit to 1 concurrent job except for main | |
| group: ${{ github.workflow }}-${{ github.ref }}-${{ github.ref != 'refs/heads/main' || github.run_number }} | |
| # Cancel intermediate builds for pull requests | |
| cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }} | |
| jobs: | |
| ############################################################################## | |
| # ubuntu 24.04, gcc, flint dev | |
| ############################################################################## | |
| ubuntu-gcc-flintdev: | |
| name: Ubuntu 24.04, GCC, FLINT dev (x10) | |
| runs-on: ubuntu-24.04 | |
| env: | |
| CC: "gcc" | |
| FLINT_TEST_MULTIPLIER: "10" | |
| steps: | |
| - name: "Rescale multiplier" | |
| run: | | |
| FLINT_TEST_MULTIPLIER=$(echo "${FLINT_TEST_MULTIPLIER} * ${GLOBAL_MULTIPLIER}" | bc) | |
| echo "FLINT_TEST_MULTIPLIER=${FLINT_TEST_MULTIPLIER}" | |
| echo "FLINT_TEST_MULTIPLIER=${FLINT_TEST_MULTIPLIER}" >> $GITHUB_ENV | |
| - uses: actions/checkout@v6 | |
| - name: "Setup" | |
| run: | | |
| sudo apt-get install -y \ | |
| libgmp-dev \ | |
| libmpfr-dev \ | |
| autoconf \ | |
| libtool-bin | |
| # Check versions | |
| gcc --version | |
| make --version | |
| autoconf --version | |
| libtool --version | |
| echo "MAKE=make -j$(expr $(nproc) + 1) --output-sync=target" >> $GITHUB_ENV | |
| # install FLINT dev version | |
| git clone --depth=1 https://github.com/flintlib/flint.git | |
| cd flint | |
| ./bootstrap.sh | |
| ./configure | |
| make | |
| sudo make install | |
| sudo ldconfig | |
| - name: "Configure" | |
| run: | | |
| cd flint-extras | |
| ./bootstrap.sh | |
| ./configure \ | |
| CC=${CC} | |
| - name: "Compile library" | |
| run: | | |
| cd flint-extras | |
| $MAKE | |
| ldd libpml.so | |
| - name: "Compile tests" | |
| run: | | |
| cd flint-extras | |
| $MAKE tests | |
| - name: "Check" | |
| run: | | |
| cd flint-extras | |
| $MAKE check | |
| ############################################################################## | |
| # ubuntu 24.04, clang, flint 3.4.0 | |
| ############################################################################## | |
| ubuntu-clang-flint340: | |
| name: Ubuntu 24.04, clang, FLINT 3.4.0 (x10) | |
| runs-on: ubuntu-24.04 | |
| env: | |
| CC: "clang" | |
| FLINT_TEST_MULTIPLIER: "10" | |
| steps: | |
| - name: "Rescale multiplier" | |
| run: | | |
| FLINT_TEST_MULTIPLIER=$(echo "${FLINT_TEST_MULTIPLIER} * ${GLOBAL_MULTIPLIER}" | bc) | |
| echo "FLINT_TEST_MULTIPLIER=${FLINT_TEST_MULTIPLIER}" | |
| echo "FLINT_TEST_MULTIPLIER=${FLINT_TEST_MULTIPLIER}" >> $GITHUB_ENV | |
| - uses: actions/checkout@v6 | |
| - name: "Setup" | |
| run: | | |
| sudo apt-get install -y \ | |
| libgmp-dev \ | |
| libmpfr-dev \ | |
| autoconf \ | |
| libtool-bin | |
| # Check versions | |
| clang --version | |
| make --version | |
| autoconf --version | |
| libtool --version | |
| echo "MAKE=make -j$(expr $(nproc) + 1) --output-sync=target" >> $GITHUB_ENV | |
| # install FLINT dev version | |
| git clone --depth=1 https://github.com/flintlib/flint.git --branch v3.4.0 --single-branch | |
| cd flint | |
| ./bootstrap.sh | |
| ./configure | |
| make | |
| sudo make install | |
| sudo ldconfig | |
| - name: "Configure" | |
| run: | | |
| cd flint-extras | |
| ./bootstrap.sh | |
| ./configure \ | |
| CC=${CC} | |
| - name: "Compile library" | |
| run: | | |
| cd flint-extras | |
| $MAKE | |
| ldd libpml.so | |
| - name: "Compile tests" | |
| run: | | |
| cd flint-extras | |
| $MAKE tests | |
| - name: "Check" | |
| run: | | |
| cd flint-extras | |
| $MAKE check | |
| ############################################################################## | |
| # ubuntu 24.04 ARM, gcc, flint dev | |
| ############################################################################## | |
| ubuntu-gcc-flintdev-arm: | |
| name: Ubuntu 24.04 ARM, GCC, FLINT dev (x5) | |
| runs-on: ubuntu-24.04-arm | |
| env: | |
| CC: "gcc" | |
| FLINT_TEST_MULTIPLIER: "5" | |
| steps: | |
| - name: "Rescale multiplier" | |
| run: | | |
| FLINT_TEST_MULTIPLIER=$(echo "${FLINT_TEST_MULTIPLIER} * ${GLOBAL_MULTIPLIER}" | bc) | |
| echo "FLINT_TEST_MULTIPLIER=${FLINT_TEST_MULTIPLIER}" | |
| echo "FLINT_TEST_MULTIPLIER=${FLINT_TEST_MULTIPLIER}" >> $GITHUB_ENV | |
| - uses: actions/checkout@v6 | |
| - name: "Setup" | |
| run: | | |
| sudo apt-get install -y \ | |
| libgmp-dev \ | |
| libmpfr-dev \ | |
| autoconf \ | |
| libtool-bin | |
| # Check versions | |
| gcc --version | |
| make --version | |
| autoconf --version | |
| libtool --version | |
| echo "MAKE=make -j$(expr $(nproc) + 1) --output-sync=target" >> $GITHUB_ENV | |
| # install FLINT dev version | |
| git clone --depth=1 https://github.com/flintlib/flint.git | |
| cd flint | |
| ./bootstrap.sh | |
| ./configure | |
| make | |
| sudo make install | |
| sudo ldconfig | |
| - name: "Configure" | |
| run: | | |
| cd flint-extras | |
| ./bootstrap.sh | |
| ./configure \ | |
| CC=${CC} \ | |
| --disable-debug | |
| - name: "Compile library" | |
| run: | | |
| cd flint-extras | |
| $MAKE | |
| ldd libpml.so | |
| - name: "Compile tests" | |
| run: | | |
| cd flint-extras | |
| $MAKE tests | |
| - name: "Check" | |
| run: | | |
| cd flint-extras | |
| $MAKE check | |
| ############################################################################## | |
| # macos (M1), clang, homebrewed FLINT | |
| ############################################################################## | |
| macos-m1-brewedflint: | |
| name: macOS-M1, Clang, homebrewed FLINT (x3) | |
| runs-on: macos-15 | |
| env: | |
| FLINT_TEST_MULTIPLIER: "3" | |
| steps: | |
| - name: "Rescale multiplier" | |
| run: | | |
| FLINT_TEST_MULTIPLIER=$(echo "${FLINT_TEST_MULTIPLIER} * ${GLOBAL_MULTIPLIER}" | bc) | |
| echo "FLINT_TEST_MULTIPLIER=${FLINT_TEST_MULTIPLIER}" | |
| echo "FLINT_TEST_MULTIPLIER=${FLINT_TEST_MULTIPLIER}" >> $GITHUB_ENV | |
| - uses: actions/checkout@v6 | |
| - name: "Setup" | |
| run: | | |
| # GMP and MPFR are already installed, and it complains if we try to | |
| # install it. | |
| # brew install gmp | |
| # brew install mpfr | |
| brew install make | |
| brew install autoconf | |
| brew install libtool | |
| brew install automake | |
| brew install llvm | |
| brew install flint | |
| $(brew --prefix llvm)/bin/clang --version | |
| gmake --version | |
| autoconf --version | |
| echo "MAKE=gmake -j$(expr $(nproc) + 1) -l 10 --output-sync=target" >> $GITHUB_ENV | |
| - name: "Configure" | |
| run: | | |
| cd flint-extras | |
| ./bootstrap.sh | |
| ./configure \ | |
| CC=$(brew --prefix llvm)/bin/clang \ | |
| --with-gmp=$(brew --prefix) \ | |
| --with-mpfr=$(brew --prefix) \ | |
| --disable-debug | |
| - name: "Compile library" | |
| run: | | |
| cd flint-extras | |
| $MAKE | |
| - name: "Compile tests" | |
| run: | | |
| cd flint-extras | |
| $MAKE tests | |
| - name: "Check" | |
| run: | | |
| cd flint-extras | |
| $MAKE check | |
| ############################################################################## | |
| # macos (M1), gcc, flint-dev | |
| ############################################################################## | |
| macos-m1-flintdev: | |
| name: macOS-M1, gcc, flint-dev (x3) | |
| runs-on: macos-15 | |
| env: | |
| FLINT_TEST_MULTIPLIER: "3" | |
| steps: | |
| - name: "Rescale multiplier" | |
| run: | | |
| FLINT_TEST_MULTIPLIER=$(echo "${FLINT_TEST_MULTIPLIER} * ${GLOBAL_MULTIPLIER}" | bc) | |
| echo "FLINT_TEST_MULTIPLIER=${FLINT_TEST_MULTIPLIER}" | |
| echo "FLINT_TEST_MULTIPLIER=${FLINT_TEST_MULTIPLIER}" >> $GITHUB_ENV | |
| - uses: actions/checkout@v6 | |
| - name: "Setup" | |
| run: | | |
| # GMP and MPFR are already installed, and it complains if we try to | |
| # install it. | |
| # brew install gmp | |
| # brew install mpfr | |
| brew install make | |
| brew install autoconf | |
| brew install libtool | |
| brew install automake | |
| gcc --version | |
| gmake --version | |
| autoconf --version | |
| echo "MAKE=gmake -j$(expr $(nproc) + 1) -l 10 --output-sync=target" >> $GITHUB_ENV | |
| # install FLINT dev version | |
| git clone --depth=1 https://github.com/flintlib/flint.git | |
| cd flint | |
| ./bootstrap.sh | |
| ./configure \ | |
| CC=$(CC) \ | |
| --with-gmp=$(brew --prefix) \ | |
| --with-mpfr=$(brew --prefix) \ | |
| --disable-debug | |
| make | |
| sudo make install | |
| - name: "Configure" | |
| run: | | |
| cd flint-extras | |
| ./bootstrap.sh | |
| ./configure \ | |
| CC=$(CC) \ | |
| --with-gmp=$(brew --prefix) \ | |
| --with-mpfr=$(brew --prefix) \ | |
| --disable-debug | |
| - name: "Compile library" | |
| run: | | |
| cd flint-extras | |
| $MAKE | |
| - name: "Compile tests" | |
| run: | | |
| cd flint-extras | |
| $MAKE tests | |
| - name: "Check" | |
| run: | | |
| cd flint-extras | |
| $MAKE check | |
| ############################################################################# | |
| # mingw with gcc | |
| ############################################################################# | |
| #mingw64-gcc: | |
| # name: MinGW GCC (x0.5) | |
| # runs-on: windows-latest | |
| # defaults: | |
| # run: | |
| # shell: msys2 {0} | |
| # env: | |
| # CC: "gcc" | |
| # FLINT_TEST_MULTIPLIER: "0.5" | |
| # steps: | |
| # - uses: actions/checkout@v6 | |
| # - name: "Setup MinGW" | |
| # uses: msys2/setup-msys2@v2 | |
| # with: | |
| # msystem: mingw64 | |
| # update: true | |
| # install: bc mingw-w64-x86_64-gcc mingw-w64-x86_64-autotools | |
| # - name: "Rescale multiplier" | |
| # run: | | |
| # FLINT_TEST_MULTIPLIER=$(echo "${FLINT_TEST_MULTIPLIER} * ${GLOBAL_MULTIPLIER}" | bc) | |
| # echo "FLINT_TEST_MULTIPLIER=${FLINT_TEST_MULTIPLIER}" | |
| # echo "FLINT_TEST_MULTIPLIER=${FLINT_TEST_MULTIPLIER}" >> $GITHUB_ENV | |
| # - name: "Setup" | |
| # run: | | |
| # gcc --version | |
| # make --version | |
| # autoconf --version | |
| # libtool --version | |
| # echo "MAKE=make -j$(expr $(nproc) + 1) --output-sync=target" >> $GITHUB_ENV | |
| # - name: "Configure" | |
| # run: | | |
| # ./bootstrap.sh | |
| # ./configure \ | |
| # CC=${CC} \ | |
| # --disable-debug | |
| # - name: "Compile library" | |
| # run: | | |
| # ${MAKE} | |
| # - name: "Compile tests" | |
| # run: | | |
| # ${MAKE} tests | |
| # - name: "Check" | |
| # run: | | |
| # ${MAKE} check | |
| ############################################################################## | |
| # msvc | |
| ############################################################################## | |
| #msvc: | |
| # name: MSVC (x1) | |
| # runs-on: windows-latest | |
| # env: | |
| # FLINT_TEST_MULTIPLIER: 1 | |
| # TIMEOUT: 150 | |
| # steps: | |
| # - name: "Rescale multiplier (powershell)" | |
| # run: | | |
| # $FLINT_TEST_MULTIPLIER = $env:FLINT_TEST_MULTIPLIER * $env:GLOBAL_MULTIPLIER | |
| # echo "FLINT_TEST_MULTIPLIER=$FLINT_TEST_MULTIPLIER | Out-File -Append -FilePath $env:GITHUB_ENV" | |
| # $TIMEOUT = $env:TIMEOUT * $env:GLOBAL_MULTIPLIER | |
| # echo "TIMEOUT=$TIMEOUT | Out-File -Append -FilePath $env:GITHUB_ENV" | |
| # shell: powershell | |
| # - uses: actions/checkout@v6 | |
| # - name: "Setup cache for dependencies" | |
| # uses: actions/github-script@v7 | |
| # with: | |
| # script: | | |
| # core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || ''); | |
| # core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || ''); | |
| # - name: "Install dependencies" | |
| # run: | | |
| # vcpkg install gmp mpfr pthreads --binarysource="clear;x-gha,readwrite" | |
| # - name: "Setup MSVC" | |
| # uses: ilammy/msvc-dev-cmd@v1.13.0 | |
| # with: | |
| # arch: x86_64 | |
| # - name: "Configure" | |
| # run: | | |
| # mkdir build | |
| # cd build | |
| # # For single build, we need atomics | |
| # cmake ` | |
| # -G "Ninja" ` | |
| # -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake ` | |
| # -DCMAKE_C_FLAGS="/wd4018 /wd4146 /wd4244 /wd4267 /wd4305 /wd4996" ` | |
| # -DBUILD_TESTING=ON ` | |
| # -DCMAKE_BUILD_TYPE=Release ` | |
| # .. | |
| # - name: "Build" | |
| # run: | | |
| # cd build | |
| # # NOTE: Number of threads for Github's CI runners are 4. | |
| # cmake --build . -j5 | |
| # - name: "Check" | |
| # run: | | |
| # cd build | |
| # set "FLINT_TEST_MULTIPLIER=$env:FLINT_TEST_MULTIPLIER" | |
| # ctest -j5 --output-on-failure --timeout $env:TIMEOUT | |
| # shell: powershell | |
| ############################################################################## | |
| # alpine linux, musl, 32-bit (assert) | |
| ############################################################################## | |
| #alpine-32bit: | |
| # name: Alpine Linux, musl, 32-bit (assert, x1.5) | |
| # runs-on: ubuntu-24.04 | |
| # env: | |
| # CC: "gcc" | |
| # FLINT_TEST_MULTIPLIER: "1.5" | |
| # steps: | |
| # - name: "Rescale multiplier" | |
| # run: | | |
| # FLINT_TEST_MULTIPLIER=$(echo "${FLINT_TEST_MULTIPLIER} * ${GLOBAL_MULTIPLIER}" | bc) | |
| # echo "FLINT_TEST_MULTIPLIER=${FLINT_TEST_MULTIPLIER}" | |
| # echo "FLINT_TEST_MULTIPLIER=${FLINT_TEST_MULTIPLIER}" >> $GITHUB_ENV | |
| # - uses: actions/checkout@v6 | |
| # - name: "Setup latest Alpine Linux" | |
| # uses: jirutka/setup-alpine@v1 | |
| # with: | |
| # arch: x86 | |
| # branch: edge | |
| # packages: > | |
| # gmp-dev | |
| # mpfr-dev | |
| # gcc | |
| # musl-dev | |
| # make | |
| # autoconf | |
| # automake | |
| # libtool | |
| # - name: "Setup" | |
| # run: | | |
| # gcc --version | |
| # make --version | |
| # autoconf --version | |
| # libtool --version | |
| # echo "MAKE=make -j$(expr $(nproc) + 1) --output-sync=target" >> $GITHUB_ENV | |
| # shell: alpine.sh {0} | |
| # - name: "Configure" | |
| # run: | | |
| # ./bootstrap.sh | |
| # ./configure \ | |
| # CC=${CC} \ | |
| # --enable-assert \ | |
| # --disable-debug | |
| # shell: alpine.sh {0} | |
| # - name: "Compile library" | |
| # run: | | |
| # $MAKE | |
| # shell: alpine.sh {0} | |
| # - name: "Compile tests" | |
| # run: | | |
| # $MAKE tests | |
| # shell: alpine.sh {0} | |
| # - name: "Check" | |
| # run: | | |
| # $MAKE check | |
| # shell: alpine.sh {0} |