sagemath/sage

Update Normaliz to 3.9.x, pynormaliz to 2.17, e-antic to 1.x, add optional package antic

mkoeppe opened this issue · 73 comments

Needs:

We also use this ticket as the target ticket for the ci-sage tests after Normaliz/Normaliz#386

Depends on #33316
Depends on #33782
Depends on #34266

CC: @saraedum @videlec @w-bruns @jplab @kliem @dimpase @orlitzky @tscrim

Component: packages: optional

Author: Matthias Koeppe

Branch/Commit: c6778a7

Reviewer: Travis Scrimshaw

Issue created by migration from https://trac.sagemath.org/ticket/31588

Description changed:

--- 
+++ 
@@ -1,5 +1,5 @@
 Needs:
-- Add ANTIC package
+- Add ANTIC package, https://repology.org/project/antic/versions
 - check boost package
 - Upgrade e-antic
 - Upgrade Normaliz

Description changed:

--- 
+++ 
@@ -1,7 +1,7 @@
 Needs:
 - Add ANTIC package, https://repology.org/project/antic/versions
 - check boost package
-- Upgrade e-antic
+- Upgrade e-antic - https://github.com/flatsurf/e-antic/
 - Upgrade Normaliz
 
 Depends on dropping support for system FLINT < 2.6 (done in #31525)

Commit: d1c33ae

Changed dependencies from #31525 to none

Author: Matthias Koeppe, ...

comment:8

Any takers for spkg-configure.m4 and distros/ for ANTIC?


New commits:

45cbcccbuild/bin/sage-site --package: Quoting fix
d1c33aebuild/pkgs/antic: New

Branch pushed to git repo; I updated commit sha1. New commits:

821f1ebbuild/pkgs/antic/dependencies: New
748b186build/pkgs/e_antic: Update to 1.0.3

Changed commit from d1c33ae to 748b186

Changed commit from 748b186 to 8d03b91

Branch pushed to git repo; I updated commit sha1. New commits:

701e45ebuild/pkgs/normaliz: Update to 3.9.2
8d03b91build/pkgs/pynormaliz: Update to 2.16

Dependencies: #33306

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:

8d789f6build/pkgs/_prereq/distros/slackware.txt: Add python3
c62fc35build/pkgs/_prereq/distros/slackware.txt: Add packages needed on -current
e1a2d3atox.ini: Add centos-stream-{8,9}
5dd228etox.ini: Remove centos-6 (packages no longer available)
4978a3bMerge tag '9.5' into t/33196/tox_ini__add_centos_stream8__stream9
9286299Merge #33196
a5dca4atox.ini (centos-8): Remove
b1167bd.github/workflows/tox*.yml: Replace centos-8 by centos-stream-8
4898796.github/workflows/tox*.yml: Replace opensuse-15 (same as opensuse-15.3) by opensuse-15.2.1
0c485cdMerge #33306

Changed commit from 8d03b91 to 0c485cd

Description changed:

--- 
+++ 
@@ -6,6 +6,6 @@
 
 Depends on dropping support for system FLINT < 2.6 (done in #31525)
 
-We can use this ticket also as the target ticket for the ci-sage tests of e-antic 1.0
+We also use this ticket as the target ticket for the ci-sage tests after https://github.com/Normaliz/Normaliz/pull/386
 
 

Description changed:

--- 
+++ 
@@ -2,7 +2,7 @@
 - Add ANTIC package, https://repology.org/project/antic/versions
 - check boost package
 - Upgrade e-antic - https://github.com/flatsurf/e-antic/
-- Upgrade Normaliz
+- Upgrade Normaliz, PyNormaliz
 
 Depends on dropping support for system FLINT < 2.6 (done in #31525)
 
comment:16

ubuntu-trusty-standard:

  [e_antic-1.0.3]   configure: error: *** A compiler with support for C++14 language features is required.

Description changed:

--- 
+++ 
@@ -4,8 +4,6 @@
 - Upgrade e-antic - https://github.com/flatsurf/e-antic/
 - Upgrade Normaliz, PyNormaliz
 
-Depends on dropping support for system FLINT < 2.6 (done in #31525)
-
 We also use this ticket as the target ticket for the ci-sage tests after https://github.com/Normaliz/Normaliz/pull/386
 
 

Changed dependencies from #33306 to #33306, #33316

comment:18

ubuntu-xenial-standard:

In file included from renf_elem/../rand_generator.hpp:17:0,
                 from renf_elem/t-get_d.cpp:14:
renf_elem/t-get_d.cpp: In function 'void d_get_fmpq(double, fmpq*)':
renf_elem/t-get_d.cpp:25:23: error: 'isnormal' was not declared in this scope
     REQUIRE(isnormal(d));
                       ^
renf_elem/t-get_d.cpp:25:23: note: suggested alternative:
In file included from /usr/include/c++/5/random:38:0,
                 from /usr/include/c++/5/bits/stl_algo.h:66,
                 from /usr/include/c++/5/algorithm:62,
                 from renf_elem/../external/catch2/single_include/catch2/catch.hpp:3595,
                 from renf_elem/../rand_generator.hpp:17,
                 from renf_elem/t-get_d.cpp:14:
/usr/include/c++/5/cmath:661:5: note:   'std::isnormal'
     isnormal(_Tp __x)
     ^

(https://github.com/mkoeppe/Normaliz/runs/5115731106?check_suite_focus=true)

Branch pushed to git repo; I updated commit sha1. New commits:

b08400133269: Fix build/pkgs/tox/distros/gentoo.txt
14dada933269: Remove tox Cygwin package name
e76bd22Merge #33269

Changed commit from 0c485cd to e76bd22

Changed dependencies from #33306, #33316 to #33306, #33316, #33269

Changed dependencies from #33306, #33316, #33269 to #33306, #33316, #33269, #32966

Changed dependencies from #33306, #33316, #33269, #32966 to #33306, #33316, #33269, #32966, #32965

Changed commit from e76bd22 to ce78a5f

Branch pushed to git repo; I updated commit sha1. New commits:

c357a41tox.ini: Add docker-ubuntu-trusty-standard-toolchain-gcc_9 etc.
de42909build/pkgs/_gcc*/distros: Add homebrew.txt
50ac752Merge #32966
fdbce20Merge #32966
6d1a0a5Merge #33306
9c8f6dbtox.ini (centos-7-devtoolset): New
ce78a5fMerge #32965
comment:24

ubuntu-bionic-i386-standard:

PASS: renfxx/t-binop
FAIL: renfxx/t-cmp
PASS: renfxx/t-assignment
============================================================================
Testsuite summary for libeantic 1.0.3
============================================================================

(https://github.com/mkoeppe/Normaliz/runs/5115734755?check_suite_focus=true)

Likewise on debian-buster-i386-standard

comment:25

cygwin-standard:

/usr/lib/gcc/x86_64-pc-cygwin/11/../../../../x86_64-pc-cygwin/bin/ld: renfxx/t-assignment.o: in function `bool Catch::compareEqual<eantic::renf_elem_class, eantic::renf_elem_class>(eantic::renf_elem_class const&, eantic::renf_elem_class const&)':
/opt/sage-normaliz-d44452a40c94e3037a71702b8d014409504b94d7/var/tmp/sage/build/e_antic-1.0.3/src/libeantic/test/renfxx/../external/catch2/single_include/catch2/catch.hpp:2311: undefined reference to `eantic::operator==(eantic::renf_elem_class const&, eantic::renf_elem_class const&)'

(many errors)

(https://github.com/mkoeppe/Normaliz/runs/5115730494?check_suite_focus=true)

comment:26

@saraedum, @videlec - these portability failures will need some upstream help

comment:27

Replying to @mkoeppe:

ubuntu-bionic-i386-standard:

PASS: renfxx/t-binop
FAIL: renfxx/t-cmp
PASS: renfxx/t-assignment
============================================================================
Testsuite summary for libeantic 1.0.3
============================================================================

(https://github.com/mkoeppe/Normaliz/runs/5115734755?check_suite_focus=true)

Likewise on debian-buster-i386-standard

We fixed some i386 fedora issues in 1.1.0. That might be the same problem. (I don't see the logs of the test runs anywhere so I am not sure.)

comment:28

Replying to @mkoeppe:

cygwin-standard:

/usr/lib/gcc/x86_64-pc-cygwin/11/../../../../x86_64-pc-cygwin/bin/ld: renfxx/t-assignment.o: in function `bool Catch::compareEqual<eantic::renf_elem_class, eantic::renf_elem_class>(eantic::renf_elem_class const&, eantic::renf_elem_class const&)':
/opt/sage-normaliz-d44452a40c94e3037a71702b8d014409504b94d7/var/tmp/sage/build/e_antic-1.0.3/src/libeantic/test/renfxx/../external/catch2/single_include/catch2/catch.hpp:2311: undefined reference to `eantic::operator==(eantic::renf_elem_class const&, eantic::renf_elem_class const&)'

(many errors)

(https://github.com/mkoeppe/Normaliz/runs/5115730494?check_suite_focus=true)

This is a problem when building with -fvisibility=hidden. It was fixed in 1.1.0.

comment:29

Replying to @mkoeppe:

ubuntu-trusty-standard:

  [e_antic-1.0.3]   configure: error: *** A compiler with support for C++14 language features is required.

True. Can't we assume a C++ 14 compiler?

comment:30

Replying to @mkoeppe:

ubuntu-xenial-standard:

In file included from renf_elem/../rand_generator.hpp:17:0,
                 from renf_elem/t-get_d.cpp:14:
renf_elem/t-get_d.cpp: In function 'void d_get_fmpq(double, fmpq*)':
renf_elem/t-get_d.cpp:25:23: error: 'isnormal' was not declared in this scope
     REQUIRE(isnormal(d));
                       ^
renf_elem/t-get_d.cpp:25:23: note: suggested alternative:
In file included from /usr/include/c++/5/random:38:0,
                 from /usr/include/c++/5/bits/stl_algo.h:66,
                 from /usr/include/c++/5/algorithm:62,
                 from renf_elem/../external/catch2/single_include/catch2/catch.hpp:3595,
                 from renf_elem/../rand_generator.hpp:17,
                 from renf_elem/t-get_d.cpp:14:
/usr/include/c++/5/cmath:661:5: note:   'std::isnormal'
     isnormal(_Tp __x)
     ^

(https://github.com/mkoeppe/Normaliz/runs/5115731106?check_suite_focus=true)

Probably fixed in flatsurf/e-antic#234.

comment:31

Replying to @saraedum:

Replying to @mkoeppe:

ubuntu-trusty-standard:

  [e_antic-1.0.3]   configure: error: *** A compiler with support for C++14 language features is required.

True. Can't we assume a C++ 14 compiler?

We will be able to assume it after #33316 (Sage 9.7)

comment:32

I see. e-antic cannot compile anymore without a C++ 14 compiler. Is that a problem for SageMath? (It's only an optional package, so I guess that's fine?)

comment:33

Replying to @saraedum:

I see. e-antic cannot compile anymore without a C++ 14 compiler. Is that a problem for SageMath? (It's only an optional package, so I guess that's fine?)

The optional packages are supposed to work on all supported platforms in a release.

comment:34

Replying to @saraedum:

I see. e-antic cannot compile anymore without a C++ 14 compiler. Is that a problem for SageMath?

As I said, it will not be problem after #33316. Which is why #33316 is a dependency of this ticket, and the milestone is set to 9.7.

Changed commit from ce78a5f to ab61b93

Branch pushed to git repo; I updated commit sha1. This was a forced push. Last 10 new commits:

33ca131tox.ini, .github/workflows/tox*.yml: Add ubuntu-kinetic, linuxmint-21, fedora-37
805f235build/bin/sage-site --package: Quoting fix
5ec7f5cbuild/pkgs/antic: New
dbde68dbuild/pkgs/antic/dependencies: New
fa3917bbuild/pkgs/e_antic: Update to 1.0.3
8554b71build/pkgs/normaliz: Update to 3.9.2
8f828cabuild/pkgs/pynormaliz: Update to 2.16
1fc7373build/pkgs/e_antic: Update to 1.2.0
7a81709build/pkgs/normaliz: Update to 3.9.3
ab61b93Merge tag '9.6.rc4' into t/31588/normaliz_3_9_x_with_e_antic_1_x_test_ticket

Changed dependencies from #33306, #33316, #33269, #32966, #32965 to #33316

Changed commit from ab61b93 to 9ea0d49

Branch pushed to git repo; I updated commit sha1. New commits:

301b1df.github/workflows/ci-cygwin*.yml: Use python3.9 for tox
9ea0d49Merge #33782

Changed dependencies from #33316 to #33316, #33782

comment:42

On cygwin-standard (https://github.com/sagemath/sagetrac-mirror/runs/6436986860)

  g++ -shared -Wl,--enable-auto-image-base -L/opt/sage-9ea0d4990a38b1d676288006a2f29906a2c8d146/lib -Wl,-rpath,/opt/sage-9ea0d4990a38b1d676288006a2f29906a2c8d146/lib -L/opt/sage-9ea0d4990a38b1d676288006a2f29906a2c8d146/lib -Wl,-rpath,/opt/sage-9ea0d4990a38b1d676288006a2f29906a2c8d146/lib -g -O2 build/temp.cygwin-3.3.5-x86_64-3.9/NormalizModule.o -L/opt/sage-9ea0d4990a38b1d676288006a2f29906a2c8d146/lib/python3.9/config -L/usr/lib -lnormaliz -lpython3.9 -o build/lib.cygwin-3.3.5-x86_64-3.9/PyNormaliz_cpp.cpython-39-x86_64-cygwin.dll
  /usr/lib/gcc/x86_64-pc-cygwin/11/../../../../x86_64-pc-cygwin/bin/ld: build/temp.cygwin-3.3.5-x86_64-3.9/NormalizModule.o: in function `std::vector<eantic::renf_elem_class, std::allocator<eantic::renf_elem_class> >::size() const':
  /usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/bits/stl_vector.h:919: undefined reference to `__imp__ZN6eantic15renf_elem_classaSERKS0_'
  /usr/lib/gcc/x86_64-pc-cygwin/11/../../../../x86_64-pc-cygwin/bin/ld: build/temp.cygwin-3.3.5-x86_64-3.9/NormalizModule.o: in function `void std::_Destroy_aux<false>::__destroy<__gnu_cxx::__normal_iterator<eantic::renf_elem_class*, std::vector<eantic::renf_elem_class, std::allocator<eantic::renf_elem_class> > > >(__gnu_cxx::__normal_iterator<eantic::renf_elem_class*, std::vector<eantic::renf_elem_class, std::allocator<eantic::renf_elem_class> > >, __gnu_cxx::__normal_iterator<eantic::renf_elem_class*, std::vector<eantic::renf_elem_class, std::allocator<eantic::renf_elem_class> > >)':
  /usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/bits/stl_construct.h:162: undefined reference to `__imp__ZN6eantic15renf_elem_classD1Ev'
  /usr/lib/gcc/x86_64-pc-cygwin/11/../../../../x86_64-pc-cygwin/bin/ld: build/temp.cygwin-3.3.5-x86_64-3.9/NormalizModule.o: in function `eantic::renf_elem_class* std::__uninitialized_copy<false>::__uninit_copy<__gnu_cxx::__normal_iterator<eantic::renf_elem_class const*, std::vector<eantic::renf_elem_class, std::allocator<eantic::renf_elem_class> > >, eantic::renf_elem_class*>(__gnu_cxx::__normal_iterator<eantic::renf_elem_class const*, std::vector<eantic::renf_elem_class, std::allocator<eantic::renf_elem_class> > >, __gnu_cxx::__normal_iterator<eantic::renf_elem_class const*, std::vector<eantic::renf_elem_class, std::allocator<eantic::renf_elem_class> > >, eantic::renf_elem_class*)':
  /usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/bits/stl_uninitialized.h:91: undefined reference to `__imp__ZN6eantic15renf_elem_classC1ERKS0_'
  /usr/lib/gcc/x86_64-pc-cygwin/11/../../../../x86_64-pc-cygwin/bin/ld: build/temp.cygwin-3.3.5-x86_64-3.9/NormalizModule.o: in function `void std::_Destroy_aux<false>::__destroy<eantic::renf_elem_class*>(eantic::renf_elem_class*, eantic::renf_elem_class*)':
  /usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/bits/stl_construct.h:162: undefined reference to `__imp__ZN6eantic15renf_elem_classD1Ev'
  /usr/lib/gcc/x86_64-pc-cygwin/11/../../../../x86_64-pc-cygwin/bin/ld: build/temp.cygwin-3.3.5-x86_64-3.9/NormalizModule.o: in function `eantic::renf_elem_class* std::__copy_move<false, false, std::random_access_iterator_tag>::__copy_m<eantic::renf_elem_class*, eantic::renf_elem_class*>(eantic::renf_elem_class*, eantic::renf_elem_class*, eantic::renf_elem_class*)':
  /usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/bits/stl_algobase.h:383: undefined reference to `__imp__ZN6eantic15renf_elem_classaSERKS0_'
  /usr/lib/gcc/x86_64-pc-cygwin/11/../../../../x86_64-pc-cygwin/bin/ld: build/temp.cygwin-3.3.5-x86_64-3.9/NormalizModule.o: in function `eantic::renf_elem_class* std::__uninitialized_copy<false>::__uninit_copy<eantic::renf_elem_class*, eantic::renf_elem_class*>(eantic::renf_elem_class*, eantic::renf_elem_class*, eantic::renf_elem_class*)':
  /usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/bits/stl_uninitialized.h:91: undefined reference to `__imp__ZN6eantic15renf_elem_classC1ERKS0_'
  /usr/lib/gcc/x86_64-pc-cygwin/11/../../../../x86_64-pc-cygwin/bin/ld: build/temp.cygwin-3.3.5-x86_64-3.9/NormalizModule.o: in function `void std::_Destroy<eantic::renf_elem_class>(eantic::renf_elem_class*)':
  /usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/bits/stl_construct.h:151: undefined reference to `__imp__ZN6eantic15renf_elem_classD1Ev'
  /usr/lib/gcc/x86_64-pc-cygwin/11/../../../../x86_64-pc-cygwin/bin/ld: /usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/bits/stl_construct.h:151: undefined reference to `__imp__ZN6eantic15renf_elem_classD1Ev'
.....

Changed commit from 9ea0d49 to b28642f

Branch pushed to git repo; I updated commit sha1. New commits:

b28642fUpgrade to e-antic 1.2.1
comment:45

Workflows for this are now running at https://github.com/saraedum/sage/actions. (Pushing a tag starts the workflows.)

comment:46

this will work better after merging 9.7.beta5

Changed commit from b28642f to fa42d16

New commits:

fa42d16Merge tag '9.7.beta6' into t/31588/normaliz_3_9_x_with_e_antic_1_x_test_ticket

Changed dependencies from #33316, #33782 to #33316, #33782, #34266

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:

a9f4b15tox.ini (gcc_8), build/pkgs/_gcc8: New
120ab05tox.ini (envlist): Replace docker-ubuntu-trusty-minimal with docker-ubuntu-trusty-toolchain-gcc_9-minimal
9b38badbuild/pkgs/_gcc{9,10,11}/distros/opensuse.txt: New
ccce5b1.github/workflows/docker.yml: Use gcc_8 with ubuntu-bionic, linuxmint-19.x
27a0882.github/workflows/docker.yml: Use gcc_11 with opensuse-15.{3,4}
1bc29a4Merge #34266
3d31d02build/pkgs/pynormaliz: Update to 2.17
0ff7b2cbuild/pkgs/normaliz: Update to 3.9.4
0f46ffcbuild/pkgs/antic: Update to 0.2.5
92017f6build/pkgs/e_antic: Update to 1.2.1

Changed commit from fa42d16 to 92017f6

comment:53

Tests in https://github.com/mkoeppe/sage/actions/runs/3120192887 look OK on all Linux platforms. (Failures in docbuild etc. are unrelated - will be fixed in #34572.)

Changed author from Matthias Koeppe, ... to Matthias Koeppe

Branch pushed to git repo; I updated commit sha1. New commits:

a5ee323Merge tag '9.8.beta0' into t/31588/normaliz_3_9_x_with_e_antic_1_x_test_ticket
4517f15Revert "build/pkgs/pynormaliz/install-requires.txt: Fix to 2.14"

Changed commit from 92017f6 to 4517f15

Branch pushed to git repo; I updated commit sha1. New commits:

b814d71build/pkgs/antic/distros: New

Changed commit from 4517f15 to b814d71

Branch pushed to git repo; I updated commit sha1. New commits:

c9f2cfabuild/pkgs/e_antic/distros: Add more
c6778a7build/pkgs/normaliz/distros: Add more

Changed commit from b814d71 to c6778a7

Changed reviewer from https://github.com/mkoeppe/sage/actions/runs/3120192887 to Travis Scrimshaw

comment:60

LGTM.

comment:61

Thanks!