@@ -19,13 +19,13 @@ jobs:
1919 # ubuntu, gcc, code coverage
2020 # #############################################################################
2121 ubuntu-codecoverage :
22- name : Ubuntu GCC, Code Coverage (x2 )
22+ name : Ubuntu GCC, Code Coverage (x10 )
2323
2424 runs-on : ubuntu-latest
2525
2626 env :
2727 CC : " gcc"
28- FLINT_TEST_MULTIPLIER : " 2 "
28+ FLINT_TEST_MULTIPLIER : " 10 "
2929
3030 steps :
3131 - uses : actions/checkout@v4
@@ -101,13 +101,13 @@ jobs:
101101 # ubuntu gcc with assert
102102 # #############################################################################
103103 ubuntu-gcc-assert :
104- name : Ubuntu GCC with NTL (assert, x1 )
104+ name : Ubuntu GCC with NTL (assert, x2 )
105105
106106 runs-on : ubuntu-latest
107107
108108 env :
109109 CC : " gcc"
110- FLINT_TEST_MULTIPLIER : " 1 "
110+ FLINT_TEST_MULTIPLIER : " 2 "
111111
112112 steps :
113113 - uses : actions/checkout@v4
@@ -150,12 +150,63 @@ jobs:
150150 # macos (M1) with clang
151151 # #############################################################################
152152 macos-m1 :
153- name : macOS-M1, Clang (x1 )
153+ name : macOS-M1, Clang (x3 )
154154
155155 runs-on : macos-14
156156
157157 env :
158- FLINT_TEST_MULTIPLIER : " 1"
158+ FLINT_TEST_MULTIPLIER : " 3"
159+
160+ steps :
161+ - uses : actions/checkout@v4
162+
163+ - name : " Setup"
164+ run : |
165+ brew install make
166+ brew install gmp
167+ brew install mpfr
168+ brew install autoconf
169+ brew install libtool
170+ brew install automake
171+ $(brew --prefix llvm@15)/bin/clang --version
172+ gmake --version
173+ autoconf --version
174+ echo "MAKE=gmake -j$(expr $(nproc) + 1) -l 10 --output-sync=target" >> $GITHUB_ENV
175+
176+ - name : " Configure"
177+ run : |
178+ ./bootstrap.sh
179+ ./configure \
180+ CC=$(brew --prefix llvm@15)/bin/clang \
181+ --with-gmp=$(brew --prefix) \
182+ --with-mpfr=$(brew --prefix) \
183+ --disable-static \
184+ --disable-debug
185+
186+ - name : " Compile library"
187+ run : |
188+ $MAKE
189+
190+ - name : " Compile tests"
191+ run : |
192+ $MAKE tests
193+
194+ - name : " Check"
195+ run : |
196+ $MAKE check
197+
198+
199+
200+ # #############################################################################
201+ # macos (x86) with clang and blas
202+ # #############################################################################
203+ macos-x86 :
204+ name : macOS-x86 Clang with BLAS (x2)
205+
206+ runs-on : macos-12
207+
208+ env :
209+ FLINT_TEST_MULTIPLIER : " 2"
159210
160211 steps :
161212 - uses : actions/checkout@v4
@@ -168,6 +219,7 @@ jobs:
168219 brew install autoconf
169220 brew install libtool
170221 brew install automake
222+ brew install openblas
171223 $(brew --prefix llvm@15)/bin/clang --version
172224 gmake --version
173225 autoconf --version
@@ -180,6 +232,7 @@ jobs:
180232 CC=$(brew --prefix llvm@15)/bin/clang \
181233 --with-gmp=$(brew --prefix) \
182234 --with-mpfr=$(brew --prefix) \
235+ --with-blas=$(brew --prefix)/opt/openblas \
183236 --disable-static \
184237 --disable-debug
185238
@@ -201,15 +254,15 @@ jobs:
201254 # ubuntu with clang
202255 # ############################################################################
203256 ubuntu-clang :
204- name : Ubuntu Clang with examples (x0.5 )
257+ name : Ubuntu Clang with examples (x5 )
205258
206259 runs-on : ubuntu-latest
207260
208261 env :
209262 LOCAL : ${{ github.workspace }}/local
210263 LDFLAGS : " -Wl,-rpath,$LOCAL/lib"
211264 CC : " clang"
212- FLINT_TEST_MULTIPLIER : " 0. 5"
265+ FLINT_TEST_MULTIPLIER : " 5"
213266
214267 steps :
215268 - uses : actions/checkout@v4
@@ -255,11 +308,67 @@ jobs:
255308
256309
257310
311+ # ############################################################################
312+ # mingw with gcc
313+ # ############################################################################
314+ mingw64-gcc :
315+ name : MinGW GCC (x0.5)
316+
317+ runs-on : windows-latest
318+
319+ defaults :
320+ run :
321+ shell : msys2 {0}
322+
323+ env :
324+ CC : " gcc"
325+ FLINT_TEST_MULTIPLIER : " 0.5"
326+
327+ steps :
328+ - uses : actions/checkout@v4
329+
330+ - name : " Setup MinGW"
331+ uses : msys2/setup-msys2@v2
332+ with :
333+ msystem : mingw64
334+ update : true
335+ install : mingw-w64-x86_64-gcc mingw-w64-x86_64-autotools
336+
337+ - name : " Setup"
338+ run : |
339+ gcc --version
340+ make --version
341+ autoconf --version
342+ libtool --version
343+ echo "MAKE=make -j$(expr $(nproc) + 1) --output-sync=target" >> $GITHUB_ENV
344+
345+ - name : " Configure"
346+ run : |
347+ ./bootstrap.sh
348+ ./configure \
349+ CC=${CC} \
350+ --disable-static \
351+ --disable-debug
352+
353+ - name : " Compile library"
354+ run : |
355+ ${MAKE}
356+
357+ - name : " Compile tests"
358+ run : |
359+ ${MAKE} tests
360+
361+ - name : " Check"
362+ run : |
363+ ${MAKE} check
364+
365+
366+
258367 # #############################################################################
259368 # msvc
260369 # #############################################################################
261370 msvc :
262- name : MSVC (x0.5 )
371+ name : MSVC (x1 )
263372
264373 runs-on : windows-latest
265374
@@ -304,22 +413,22 @@ jobs:
304413 - name : " Check"
305414 run : |
306415 cd build
307- set "FLINT_TEST_MULTIPLIER=0.5 "
308- ctest -j5 --output-on-failure --timeout 150
416+ set "FLINT_TEST_MULTIPLIER=1 "
417+ ctest -j5 --output-on-failure --timeout 450
309418
310419
311420
312421 # #############################################################################
313422 # alpine linux, musl, 32-bit (assert)
314423 # #############################################################################
315424 alpine-32bit :
316- name : Alpine Linux, musl, 32-bit (assert, x1)
425+ name : Alpine Linux, musl, 32-bit (assert, x1.5 )
317426
318427 runs-on : ubuntu-latest
319428
320429 env :
321430 CC : " gcc"
322- FLINT_TEST_MULTIPLIER : " 1"
431+ FLINT_TEST_MULTIPLIER : " 1.5 "
323432
324433 steps :
325434 - uses : actions/checkout@v4
@@ -372,3 +481,89 @@ jobs:
372481 run : |
373482 $MAKE check
374483 shell : alpine.sh {0}
484+
485+
486+
487+ # #############################################################################
488+ # nemo
489+ # #############################################################################
490+ nemo :
491+ name : Nemo.jl (temporary branch)
492+
493+ runs-on : ubuntu-latest
494+
495+ env :
496+ LOCAL : ${{ github.workspace }}/local
497+ CC : " gcc"
498+
499+ steps :
500+ - uses : actions/checkout@v4
501+
502+ - name : " Setup"
503+ run : |
504+ sudo apt-get install -y sed
505+ sudo apt-get install -y autoconf
506+ sudo apt-get install -y libtool-bin
507+ gcc --version
508+ make --version
509+ autoconf --version
510+ libtool --version
511+ julia --version
512+ julia -e 'println(Base.BinaryPlatforms.HostPlatform())'
513+ echo "MAKE=make -j$(expr $(nproc) + 1) --output-sync=target" >> $GITHUB_ENV
514+
515+ - name : " Configure"
516+ run : |
517+ # Find path to GMP and MPFR
518+ gmp_path=$(julia -e 'include("dev/find_gmp_mpfr.jl"); print(gmp_artifact_dir())')
519+ echo "Path to GMP: ${gmp_path}"
520+ mpfr_path=$(julia -e 'include("dev/find_gmp_mpfr.jl"); print(mpfr_artifact_dir())')
521+ echo "Path to MPFR: ${mpfr_path}"
522+
523+ # Make sure that we output an soname which corresponds to FLINT_JLL's
524+ # soname
525+ wget https://raw.githubusercontent.com/JuliaPackaging/Yggdrasil/master/F/FLINT/build_tarballs.jl
526+ FLINT_JLL_VERSION=$(grep "upstream_version =" build_tarballs.jl | sed "s/upstream_version = v\"\([0-9\.]*\)\"/\1/")
527+ FLINT_JLL_SONAME=$(grep "$FLINT_JLL_VERSION => " configure.ac | sed "s/# $FLINT_JLL_VERSION => \([0-9\.]\+\)/\1/")
528+ FLINT_JLL_MAJOR=$(echo $FLINT_JLL_SONAME | sed "s/\([0-9]\+\)\.[0-9]\+\.[0-9]\+/\1/")
529+ FLINT_JLL_MINOR=$(echo $FLINT_JLL_SONAME | sed "s/[0-9]\+\.\([0-9]\+\)\.[0-9]\+/\1/")
530+ FLINT_JLL_PATCH=$(echo $FLINT_JLL_SONAME | sed "s/[0-9]\+\.[0-9]\+\.\([0-9]\+\)/\1/")
531+ sed -i "s/^\(FLINT_MAJOR_SO=\)[0-9]\+/\1$FLINT_JLL_MAJOR/" configure.ac
532+ sed -i "s/^\(FLINT_MINOR_SO=\)[0-9]\+/\1$FLINT_JLL_MINOR/" configure.ac
533+ sed -i "s/^\(FLINT_PATCH_SO=\)[0-9]\+/\1$FLINT_JLL_PATCH/" configure.ac
534+
535+ # Now we can configure FLINT. However, recent versions of MPFR_jll has
536+ # memory sanitation which messes with finding mpfr_init in the
537+ # configure-script. Hence, we also omit the check for finding MPFR.
538+ # FIXME: Probably want to fix this.
539+ ./bootstrap.sh
540+ ./configure \
541+ CC=${CC} \
542+ --prefix=${LOCAL} \
543+ --with-gmp=${gmp_path} \
544+ --with-mpfr=${mpfr_path} \
545+ --disable-mpfr-check \
546+ --disable-static \
547+ --disable-debug
548+
549+ - name : " Compile and install"
550+ run : |
551+ $MAKE
552+ $MAKE install
553+
554+ - name : " Set up Nemo.jl"
555+ run : |
556+ # Override FLINT_jll's libflint with ours
557+
558+ # NOTE: Reverse me when Nemo uses FLINT v3.
559+ # git clone https://github.com/Nemocas/Nemo.jl.git
560+ git clone https://github.com/albinahlback/Nemo.jl.git && cd Nemo.jl && git checkout flint3 && cd ..
561+
562+ julia -e "import Pkg; Pkg.develop(path=\"./Nemo.jl\");"
563+ echo -e "[e134572f-a0d5-539d-bddf-3cad8db41a82]\nFLINT = \"${LOCAL}\"" > ~/.julia/artifacts/Overrides.toml
564+ touch Nemo.jl/src/Nemo.jl
565+ julia -e "using Nemo; println(\"Path to Nemo's libflint:\", Nemo.libflint)"
566+
567+ - name : " Check Nemo.jl"
568+ run : |
569+ julia -e "import Pkg; Pkg.test(\"Nemo\")"
0 commit comments