Skip to content

Augment kernel basis functionalities #82

Augment kernel basis functionalities

Augment kernel basis functionalities #82

Workflow file for this run

###########################################
# 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}