Opened 23 months ago

Closed 7 months ago

Last modified 7 months ago

#27952 closed enhancement (fixed)

upgrade Normaliz to 3.8.8, PyNormaliz to 2.12, add script package libnauty

Reported by: vdelecroix Owned by:
Priority: major Milestone: sage-9.2
Component: packages: standard Keywords: package upgrade days101
Cc: mkoeppe, jipilab, isuruf, Winfried, tscrim, gh-kliem, gh-LaisRast, slelievre Merged in:
Authors: Vincent Delecroix, Jonathan Kliem, Matthias Koeppe Reviewers: Jonathan Kliem, Matthias Koeppe
Report Upstream: Fixed upstream, but not in a stable release. Work issues:
Branch: c55a701 (Commits, GitHub, GitLab) Commit:
Dependencies: #30262 Stopgaps:

Status badges

Description (last modified by mkoeppe)

Tarballs: see checksums.ini

These new releases include dynamic bitset classes that allow dynamic h-representation computations.

We also install nauty header and library in order that Normaliz compile with nauty support (for computing automorphism group).

Attachments (2)

normaliz-3.8.4.tar.gz (4.3 MB) - added by gh-kliem 14 months ago.
config.log (52.2 KB) - added by gh-kliem 8 months ago.
Failed installation of new normaliz

Change History (169)

comment:1 Changed 23 months ago by vdelecroix

  • Branch set to u/vdelecroix/normaliz
  • Commit set to fdb67b50a94ec7e4dde62d7a213d6f2bea563dca

New commits:

fdb67b5upgrade normaliz to 3.7.3

comment:2 Changed 23 months ago by vdelecroix

  • Description modified (diff)
  • Keywords package upgrade added
  • Summary changed from upgrade normaliz to 3.7.3 to upgrade Normaliz to 3.7.3 and PyNormaliz to 2.7

comment:3 Changed 23 months ago by git

  • Commit changed from fdb67b50a94ec7e4dde62d7a213d6f2bea563dca to 7b7168bd3d6fee5cda67fa6c86442e4754bbb7e7

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

7b7168bupgrade normaliz to 3.7.3 and PyNormaliz to 2.7

comment:4 Changed 23 months ago by vdelecroix

  • Authors set to Vincent Delecroix
  • Status changed from new to needs_review

comment:5 Changed 23 months ago by vdelecroix

  • Description modified (diff)
  • Status changed from needs_review to needs_work
  • Summary changed from upgrade Normaliz to 3.7.3 and PyNormaliz to 2.7 to upgrade Normaliz to 3.7.3

comment:6 Changed 23 months ago by vdelecroix

  • Dependencies set to #27920

comment:7 Changed 23 months ago by vdelecroix

  • Description modified (diff)
  • Summary changed from upgrade Normaliz to 3.7.3 to upgrade Normaliz to 3.7.3 and PyNormaliz to 2.8

comment:8 Changed 23 months ago by vdelecroix

  • Description modified (diff)

comment:9 Changed 23 months ago by vdelecroix

Self tests do not pass on my computer

$ python3 setup.py test
/opt/sage/sage-py3-gcc/local/lib/python3.7/distutils/dist.py:274: UserWarning: Unknown distribution option: 'long_description_content_type'
  warnings.warn(msg)
running test
Doctest must_be_matrices-39.txt
  2 tests
Doctest test_rational_cones.txt
  34 tests
Doctest segfault-45.txt
  3 tests
Doctest autom.txt
Doctest failures

comment:10 Changed 23 months ago by vdelecroix

And I confirm the segfault in a Python3 console

$ python3
Python 3.7.3 (default, May 26 2019, 12:00:16) 
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from PyNormaliz import Cone, NmzCone, NmzResult
>>> V = [[-1, -1, 1], [-1, 0, 1], [-1, 1, 1], [0, -1, 1], [0, 0, 1], [0, 1, 1], [1, -1, 1], [1, 0, 1], [1, 1, 1]]
>>> cube2 = NmzCone(vertices=V)
>>> NmzResult(cube2,"Automorphisms") == [8, [[[], []], []], [[[0, 2, 1, 3], [1, 0, 3, 2]], [[0, 1, 2, 3]]], [[[1, 0, 3, 2], [0, 2, 1, 3]], [[0, 1, 2, 3]]]]
Erreur de segmentation (core dumped)

comment:11 Changed 23 months ago by git

  • Commit changed from 7b7168bd3d6fee5cda67fa6c86442e4754bbb7e7 to 72af741a434aa8ab7f4602e9fecd54e691ef9513

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

72af741normaliz 3.7.3 upgrade / PyNormaliz 2.8 upgrade

comment:12 Changed 23 months ago by vdelecroix

  • Description modified (diff)
  • Summary changed from upgrade Normaliz to 3.7.3 and PyNormaliz to 2.8 to upgrade e-antic to 0.1.3 Normaliz to 3.7.3 and PyNormaliz to 2.8

segfault probably due to e-antic version. I am about to release 0.1.3

comment:13 Changed 23 months ago by vdelecroix

Most probably, the segfault is due to the fact that Normaliz was not built with nauty support

checking whether nauty headers and library are available... checking for densenauty in -lnauty... no

comment:14 Changed 22 months ago by embray

  • Milestone changed from sage-8.8 to sage-8.9

Tickets still needing working or clarification should be moved to the next release milestone at the soonest (please feel free to revert if you think the ticket is close to being resolved).

comment:15 Changed 22 months ago by vdelecroix

  • Description modified (diff)
  • Summary changed from upgrade e-antic to 0.1.3 Normaliz to 3.7.3 and PyNormaliz to 2.8 to upgrade Normaliz to 3.7.3 and PyNormaliz to 2.8

comment:16 Changed 22 months ago by vdelecroix

  • Description modified (diff)

comment:17 Changed 22 months ago by git

  • Commit changed from 72af741a434aa8ab7f4602e9fecd54e691ef9513 to 36f640ea47a7160379cc47784476270177698cdc

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

026e069upgrade e-antic to 0.1.3
cef606binstall nauty header and library
36f640enormaliz 3.7.3 upgrade / PyNormaliz 2.8 upgrade

comment:18 Changed 22 months ago by vdelecroix

  • Dependencies changed from #27920 to #28006
  • Status changed from needs_work to needs_review

comment:19 Changed 22 months ago by mkoeppe

What's this business with nauty.a? Shouldn't a shared library be built?

comment:20 Changed 22 months ago by vdelecroix

If you suceed in doing so, please go on. Nauty makefile is extremly basic.

comment:21 Changed 22 months ago by vdelecroix

  • Keywords days101 added

comment:22 Changed 22 months ago by mkoeppe

Debian seems to have an autotoolized build system for nauty. https://sources.debian.org/patches/nauty/2.5r9+ds-1/

comment:23 Changed 22 months ago by vdelecroix

They also do not build shared library as far a I see.

comment:24 Changed 22 months ago by mkoeppe

Their "upstream autotoolization.patch " has lib_LTLIBRARIES = libnauty.la ....

comment:25 Changed 22 months ago by vdelecroix

  • Status changed from needs_review to needs_work

Then you are welcome to port their patch to Sage and propose a patch to normaliz!

comment:26 Changed 21 months ago by isuruf

  • Cc isuruf added

comment:27 Changed 20 months ago by jipilab

FWIW: Normaliz 3.7.4 is out and fixes an f-vector issue (that came up with algebraic polytopes). It might be worth to grab this version right away and not wait for another ticket. This newer version should not be a quantum step...

comment:28 Changed 16 months ago by embray

  • Milestone changed from sage-8.9 to sage-9.1

Ticket retargeted after milestone closed

comment:29 follow-up: Changed 15 months ago by mkoeppe

Also we need a version of e-antic that finds Debian's install name of arb, flint-arb. This seems to be in e-antic master but not in the 0.x branch

comment:30 Changed 15 months ago by mkoeppe

(see https://github.com/mkoeppe/sage/runs/430688755?check_suite_focus=true, where Sage recognizes libflint-arb but the e-antic install fails.)

comment:31 Changed 15 months ago by mkoeppe

  • Cc Winfried tscrim added
  • Description modified (diff)
  • Summary changed from upgrade Normaliz to 3.7.3 and PyNormaliz to 2.8 to upgrade Normaliz to 3.8.3, PyNormaliz to 2.8, e-antic

comment:32 Changed 15 months ago by mkoeppe

  • Summary changed from upgrade Normaliz to 3.8.3, PyNormaliz to 2.8, e-antic to upgrade Normaliz to 3.8.3, PyNormaliz to 2.9, e-antic

comment:33 in reply to: ↑ 29 Changed 14 months ago by mkoeppe

Replying to mkoeppe:

Also we need a version of e-antic that finds Debian's install name of arb, flint-arb. This seems to be in e-antic master but not in the 0.x branch

Fixed in merged pull request https://github.com/videlec/e-antic/pull/82; now we only need a new release!

comment:34 Changed 14 months ago by mkoeppe

Needs to be merged with #28799.

comment:35 Changed 14 months ago by mkoeppe

  • Cc gh-kliem gh-LaisRast added
  • Description modified (diff)

comment:36 Changed 14 months ago by mkoeppe

  • Description modified (diff)
  • Summary changed from upgrade Normaliz to 3.8.3, PyNormaliz to 2.9, e-antic to upgrade Normaliz to 3.8.4, PyNormaliz to 2.10, install nauty header/library, add patch to e-antic

comment:37 Changed 14 months ago by mkoeppe

  • Branch changed from u/vdelecroix/normaliz to u/mkoeppe/normaliz

comment:38 follow-up: Changed 14 months ago by gh-kliem

  • Commit changed from 36f640ea47a7160379cc47784476270177698cdc to 3543b73b8f7d0881911c78a7fcf7ef4bfb7fa4d1

The challenge with upgrading Normaliz and PyNormaliz? one basically has to rewrite _cone_from_Vrepresentation_and_Hrepresentation in backend_normaliz.py (and then pickling fails again), as initialization from precomputed data of normaliz cones works a bit different now.

I have mostly figured out how to do this, I think. So unless someone want to, I would like to take care of that part.


New commits:

b9b8222install nauty header and library
b482276normaliz 3.7.3 upgrade / PyNormaliz 2.8 upgrade
1860af0Update Normaliz to 3.8.4, PyNormaliz to 2.10
2e1b0e8normaliz: Remove dependency on boost_cropped
3543b73Add e-antic patch

comment:39 in reply to: ↑ 38 Changed 14 months ago by mkoeppe

Replying to gh-kliem:

The challenge with upgrading Normaliz and PyNormaliz? one basically has to rewrite _cone_from_Vrepresentation_and_Hrepresentation in backend_normaliz.py (and then pickling fails again), as initialization from precomputed data of normaliz cones works a bit different now.

I have mostly figured out how to do this, I think. So unless someone want to, I would like to take care of that part.

Sounds good.

comment:40 Changed 14 months ago by mkoeppe

I assume you are referring to these kinds of errors:

File "src/sage/geometry/polyhedron/backend_normaliz.py", line 675, in sage.geometry.polyhedron.backend_normaliz.Polyhedron_normaliz._cone_from_Vrepresentation_and_Hrepresentation
Failed example:
    cone = P._cone_from_Vrepresentation_and_Hrepresentation(P.vertices(),P.rays(),P.inequalities(),P.equations())   # optional - pynormaliz
Exception raised:
    Traceback (most recent call last):
      File "/Users/mkoeppe/s/sage/sage-rebasing/worktree-algebraic-2018-spring/local/lib/python3.7/site-packages/sage/doctest/forker.py", line 681, in _run
        self.compile_and_execute(example, compiler, test.globs)
      File "/Users/mkoeppe/s/sage/sage-rebasing/worktree-algebraic-2018-spring/local/lib/python3.7/site-packages/sage/doctest/forker.py", line 1123, in compile_and_execute
        exec(compiled, globs)
      File "<doctest sage.geometry.polyhedron.backend_normaliz.Polyhedron_normaliz._cone_from_Vrepresentation_and_Hrepresentation[2]>", line 1, in <module>
        cone = P._cone_from_Vrepresentation_and_Hrepresentation(P.vertices(),P.rays(),P.inequalities(),P.equations())   # optional - pynormaliz
      File "/Users/mkoeppe/s/sage/sage-rebasing/worktree-algebraic-2018-spring/local/lib/python3.7/site-packages/sage/geometry/polyhedron/backend_normaliz.py", line 790, in _cone_from_Vrepresentation_and_Hrepresentation
        return self._cone_from_normaliz_data(data, verbose=verbose)
      File "/Users/mkoeppe/s/sage/sage-rebasing/worktree-algebraic-2018-spring/local/lib/python3.7/site-packages/sage/geometry/polyhedron/backend_normaliz.py", line 414, in _cone_from_normaliz_data
        cone = PyNormaliz.NmzCone(**data)
    PyNormaliz_cpp.NormalizError: Some error in the normaliz input data detected: Input type not allowed with precomputed data

comment:41 Changed 14 months ago by mkoeppe

I will not make further changes at this point. The branch needs the first part of commit 9dd22ef4f79228fdb9e0e012b98046349922d6fb (from #28799).

Last edited 14 months ago by mkoeppe (previous) (diff)

comment:42 Changed 14 months ago by mkoeppe

  • Authors changed from Vincent Delecroix to Vincent Delecroix, Matthias Koeppe

comment:43 Changed 14 months ago by gh-kliem

@Winfried: I'm having trouble with the new version of normaliz for the following reason:

When initializing a cone from precomputed data, it asks me to specify generated_lattice. However, sometimes we do not have access to this (e.g. when we want to change backends and have never done the computations in normaliz or when combinatorially obtaining the new double description is much cheaper).

How do I obtain generated_lattice from extreme_rays and maximal_subspace? (Or even as a cone property from any normaliz cone).

I'm puzzled for example how I could obtain the 2-dimensional permutahedron e.g.. The following doesn't seem to work:

sage: import PyNormaliz
sage: cone = PyNormaliz.NmzCone(
....:     dehomogenization=[[0, 0, 0, 1]],
....:     extreme_rays=[
....:         [1, 2, 3, 1], [1, 3, 2, 1], [2, 1, 3, 1],
....:         [2, 3, 1, 1], [3, 1, 2, 1], [3, 2, 1, 1]],
....:     generated_lattice=[[1, 0, -1, 0], [0, 1, -1, 0], [0, 0, 6, 1]],
....:     maximal_subspace=[],
....:     support_hyperplanes=[
....:         [-1, -1, 0, 5], [-1, 0, 0, 3], [0, -1, 0, 3],
....:         [0, 1, 0, -1], [1, 0, 0, -1], [1, 1, 0, -3]])

It initializes the empty cone for some reason. (At least Dimension of this thing is -1.)

How do I modify the generated lattice to make this work?

Last edited 14 months ago by gh-kliem (previous) (diff)

comment:44 Changed 14 months ago by mkoeppe

  • Work issues set to patch e-antic configure

comment:45 Changed 14 months ago by git

  • Commit changed from 3543b73b8f7d0881911c78a7fcf7ef4bfb7fa4d1 to 2aaeccc690a95633b46fd84004bf808bc2530084

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

e1c224cbuild/pkgs/nauty: Increase patchlevel
60bad9abuild/pkgs/normaliz: Update configure options
2aaecccbuild/pkgs/pynormaliz: Update spkg-check

comment:46 Changed 14 months ago by gh-kliem

  • Authors changed from Vincent Delecroix, Matthias Koeppe to Vincent Delecroix, Jonathan Kliem, Matthias Koeppe
  • Branch changed from u/mkoeppe/normaliz to u/gh-kliem/normaliz
  • Commit changed from 2aaeccc690a95633b46fd84004bf808bc2530084 to f40437f509dce3c70debddf3890fcd1e3468c8cd
  • Work issues changed from patch e-antic configure to patch e-antic configure, patch normaliz

As for the trouble with normaliz 3.8.4:

Winfried Bruns figured out the error, one needs to patch normaliz somehow like this

Add a missing dual in normaliz 3.8.4
diff --git a/source/libnormaliz/cone.cpp b/source/libnormaliz/cone.cpp
index 4e416a75e1..9ba2b2ba40 100644
--- a/source/libnormaliz/cone.cpp
+++ b/source/libnormaliz/cone.cpp
@@ -1034,7 +1034,7 @@ void Cone<Integer>::process_multi_input_inner(map<InputType, vector<vector<Integ
         setComputed(ConeProperty::SupportHyperplanes);

         size_t test_rank=BasisChangePointed.getRank();
-        if( test_rank != BasisChangePointed.to_sublattice(Generators).rank() ||
+        if( test_rank != BasisChangePointed.to_sublattice_dual(Generators).rank() ||
                 test_rank != BasisChangePointed.to_sublattice_dual(SupportHyperplanes).rank())
             throw BadInputException("Precomputed data do not define pointed cone modulo maximal subspace");
         create_convex_hull_data();

I couldn't figure out, how to apply this patch though. So I manually changed the tarball and then udpated the checksums. So my last commit is most likely not helpful.


New commits:

2565849fixed pickling of normaliz polyhedra
f40437fchecksum for patched normaliz

comment:47 Changed 14 months ago by gh-kliem

All tests passing for me.

comment:48 Changed 14 months ago by mkoeppe

  • Branch changed from u/gh-kliem/normaliz to u/mkoeppe/normaliz

comment:49 Changed 14 months ago by mkoeppe

  • Commit changed from f40437f509dce3c70debddf3890fcd1e3468c8cd to 1f534ca2e5dfc196093728006766bd3fc0ef84c6

I've put in the patch


New commits:

1f534cabuild/pkgs/normaliz: Add patch from Winfried

comment:50 follow-up: Changed 14 months ago by mkoeppe

I get this (on macOS):

sage -t src/sage/geometry/polyhedron/backend_normaliz.py
**********************************************************************
File "src/sage/geometry/polyhedron/backend_normaliz.py", line 1242, in sage.geometry.polyhedron.backend_normaliz.Polyhedron_normaliz.__setstate__
Failed example:
    P1.volume(measure='induced_lattice', engine='normaliz')  # optional - pynormaliz
Expected:
    96
Got:
    0
**********************************************************************
File "src/sage/geometry/polyhedron/backend_normaliz.py", line 1251, in sage.geometry.polyhedron.backend_normaliz.Polyhedron_normaliz.__setstate__
Failed example:
    P2 == P # optional - pynormaliz
Expected:
    True
Got:
    False
**********************************************************************
1 item had failures:
   2 of  27 in sage.geometry.polyhedron.backend_normaliz.Polyhedron_normaliz.__setstate__
    [317 tests, 2 failures, 2.46 s]

comment:51 Changed 14 months ago by mkoeppe

  • Work issues patch e-antic configure, patch normaliz deleted

comment:52 Changed 14 months ago by mkoeppe

  • Work issues set to patch e-antic configure

comment:53 Changed 14 months ago by mkoeppe

Vincent, could you make a new e-antic 0.x release?

comment:54 in reply to: ↑ 50 Changed 14 months ago by gh-kliem

This means you didn't apply the patch before installing normaliz (?)

Replying to mkoeppe:

I get this (on macOS):

sage -t src/sage/geometry/polyhedron/backend_normaliz.py
**********************************************************************
File "src/sage/geometry/polyhedron/backend_normaliz.py", line 1242, in sage.geometry.polyhedron.backend_normaliz.Polyhedron_normaliz.__setstate__
Failed example:
    P1.volume(measure='induced_lattice', engine='normaliz')  # optional - pynormaliz
Expected:
    96
Got:
    0
**********************************************************************
File "src/sage/geometry/polyhedron/backend_normaliz.py", line 1251, in sage.geometry.polyhedron.backend_normaliz.Polyhedron_normaliz.__setstate__
Failed example:
    P2 == P # optional - pynormaliz
Expected:
    True
Got:
    False
**********************************************************************
1 item had failures:
   2 of  27 in sage.geometry.polyhedron.backend_normaliz.Polyhedron_normaliz.__setstate__
    [317 tests, 2 failures, 2.46 s]

comment:55 Changed 14 months ago by mkoeppe

The patch was applied in that build:

sage-logger -p 'sage-spkg   normaliz-3.8.4' '/Users/mkoeppe/s/sage/sage-rebasing/worktree-algebraic-2018-spring/logs/pkgs/normaliz-3.8.4.log'
[normaliz-3.8.4] Found local metadata for normaliz-3.8.4
[normaliz-3.8.4] Using cached file /Users/mkoeppe/s/sage/sage-rebasing/worktree-algebraic-2018-spring/upstream/normaliz-3.8.4.tar.gz
[normaliz-3.8.4] normaliz-3.8.4
[normaliz-3.8.4] ====================================================
[normaliz-3.8.4] Setting up build directory for normaliz-3.8.4
[normaliz-3.8.4] Finished extraction
[normaliz-3.8.4] Applying patches from ../patches...
[normaliz-3.8.4] Applying ../patches/patch_test_rank.patch
[normaliz-3.8.4] patching file source/libnormaliz/cone.cpp
[normaliz-3.8.4] Hunk #1 succeeded at 1034 with fuzz 2.

comment:56 Changed 14 months ago by gh-kliem

This is the same issue that I had and why I said, I couldn't do a patch.

When I manually modified the tarball in upstream and updated the checksums it worked just fine.

comment:57 Changed 14 months ago by mkoeppe

Attach your modified tarball please

Changed 14 months ago by gh-kliem

comment:58 Changed 14 months ago by mkoeppe

Well your tarball has a different patch.

comment:59 Changed 14 months ago by gh-kliem

Sorry, my bad. I used an editor without line numbers, because it is not configured to delete trailing spaces.

This is Winfrieds mail:

An einer Stelle ein _dual vergessen. Ersetze Zeile 4287 in cone.cpp durch

vector<Integer> HelpDehom?=BasisChangePointed?.to_sublattice_dual(Dehomogenization);

Winfried

comment:60 follow-up: Changed 14 months ago by gh-kliem

I guess when making the diff file for the patch, I got it wrong. That explains, why the patch was successfully applied but it still didn't work.

comment:61 Changed 14 months ago by mkoeppe

I'll push a fix in a second

comment:62 Changed 14 months ago by git

  • Commit changed from 1f534ca2e5dfc196093728006766bd3fc0ef84c6 to 586617ce78b7fb5e6ffca7765c7d9ce218ac96cc

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

586617cbuild/pkgs/normaliz: Add compute_recession_rank.patch (from upstream)

comment:63 in reply to: ↑ 60 Changed 14 months ago by mkoeppe

Replying to gh-kliem:

I guess when making the diff file for the patch, I got it wrong. That explains, why the patch was successfully applied but it still didn't work.

I recommend this procedure: https://doc.sagemath.org/html/en/developer/packaging.html#how-to-maintain-a-set-of-patches

comment:64 Changed 14 months ago by git

  • Commit changed from 586617ce78b7fb5e6ffca7765c7d9ce218ac96cc to ab81f9fa24d47344e81ea505d0f55f508fc746a3

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

ab81f9fRemove changes to Makefile.am (trigger autoreconf)

comment:65 Changed 14 months ago by mkoeppe

  • Status changed from needs_work to needs_review

This fixes the doctest failures for me.

comment:66 Changed 14 months ago by gh-kliem

  • Branch changed from u/mkoeppe/normaliz to u/gh-kliem/normaliz
  • Commit changed from ab81f9fa24d47344e81ea505d0f55f508fc746a3 to 06d45f3d21992c072aa5744b16f6f29e01e6f8c2

New commits:

06d45f3fixed optional flags; better documentation

comment:67 follow-up: Changed 14 months ago by gh-kliem

How about

-sdh_make
+sdh_make CFLAGS=-fPIC

Doesn't that overwrite previously configured CFLAGS?

comment:68 Changed 14 months ago by mkoeppe

  • Branch changed from u/gh-kliem/normaliz to u/mkoeppe/normaliz

comment:69 in reply to: ↑ 67 Changed 14 months ago by mkoeppe

  • Commit changed from 06d45f3d21992c072aa5744b16f6f29e01e6f8c2 to 1587063c5258e2a25cf5b3a903734598459f8980

Replying to gh-kliem:

How about

-sdh_make
+sdh_make CFLAGS=-fPIC

Doesn't that overwrite previously configured CFLAGS?

Good point. I have revised this.


New commits:

c8d0043build/pkgs/nauty/spkg-install: Put -fPIC in CC at connfigure time
1587063Merge tag '9.1.beta5' into t/27952/normaliz

comment:70 follow-ups: Changed 14 months ago by mkoeppe

  • Status changed from needs_review to needs_work

There are still build failures on various platforms:

ubuntu-trusty:

In file included from ./libnormaliz/list_operations.cpp:31:0,
                 from libnormaliz/cone_and_control.cpp:31:
./libnormaliz/matrix.h: In function 'libnormaliz::Matrix<Number> libnormaliz::LLL_red(const libnormaliz::Matrix<Number>&, libnormaliz::Matrix<Integer>&, libnormaliz::Matrix<Integer>&)':
./libnormaliz/matrix.h:647:30: error: call of overloaded 'isnan(__gnu_cxx::__alloc_traits<std::allocator<double> >::value_type&)' is ambiguous
             if (isnan(M[i][j])) {

ubuntu-{xenial,bionic}-standard, fedora-26-standard etc.:

checking nauty/nauty.h presence... no
checking for nauty/nauty.h... no
configure: error: nauty is not available but was requested

ubuntu-{eoan,focal}-standard, debian-sid-standard etc.:

... renf_elem/.libs/cmp_fmpq.o renf_elem/.libs/floor_ceil.o renf_elem/.libs/gen.o renf_elem/.libs/get_cfrac.o renf_elem/.libs/get_str_pretty.o renf_elem/.libs/init.o renf_elem/.libs/print_pretty.o renf_elem/.libs/randtest.o renf_elem/.libs/set_evaluation.o renf_elem/.libs/set_fmpq_poly.o renf_elem/.libs/sgn.o renf_elem/.libs/get_d.o renf_elem/.libs/get_arb.o renf_elem/.libs/relative_condition_number_2exp.o   -L/sage/local/lib -larb -lflint-arb -lflint -lgmp  -fopenmp -g -O2 -Wl,-rpath -Wl,/sage/local/lib   -fopenmp -Wl,-soname -Wl,libeantic.so.0 -o .libs/libeantic.so.0.0.0
/usr/bin/ld: cannot find -larb
collect2: error: ld returned 1 exit status
make[3]: *** [Makefile:1899: libeantic.la] Error 1

comment:71 follow-up: Changed 14 months ago by mkoeppe

nauty's spkg-configure.m4only looks for the executables, not the library

comment:72 in reply to: ↑ 70 Changed 14 months ago by mkoeppe

Replying to mkoeppe:

There are still build failures on various platforms:

ubuntu-trusty:

In file included from ./libnormaliz/list_operations.cpp:31:0,
                 from libnormaliz/cone_and_control.cpp:31:
./libnormaliz/matrix.h: In function 'libnormaliz::Matrix<Number> libnormaliz::LLL_red(const libnormaliz::Matrix<Number>&, libnormaliz::Matrix<Integer>&, libnormaliz::Matrix<Integer>&)':
./libnormaliz/matrix.h:647:30: error: call of overloaded 'isnan(__gnu_cxx::__alloc_traits<std::allocator<double> >::value_type&)' is ambiguous
             if (isnan(M[i][j])) {

Winfried, do you know about this compile error related to isnan? This is with the ancient gcc on Ubuntu trusty.

comment:73 in reply to: ↑ 70 Changed 14 months ago by mkoeppe

Replying to mkoeppe:

There are still build failures on various platforms: ubuntu-{eoan,focal}-standard, debian-sid-standard etc.:

... renf_elem/.libs/cmp_fmpq.o renf_elem/.libs/floor_ceil.o renf_elem/.libs/gen.o renf_elem/.libs/get_cfrac.o renf_elem/.libs/get_str_pretty.o renf_elem/.libs/init.o renf_elem/.libs/print_pretty.o renf_elem/.libs/randtest.o renf_elem/.libs/set_evaluation.o renf_elem/.libs/set_fmpq_poly.o renf_elem/.libs/sgn.o renf_elem/.libs/get_d.o renf_elem/.libs/get_arb.o renf_elem/.libs/relative_condition_number_2exp.o   -L/sage/local/lib -larb -lflint-arb -lflint -lgmp  -fopenmp -g -O2 -Wl,-rpath -Wl,/sage/local/lib   -fopenmp -Wl,-soname -Wl,libeantic.so.0 -o .libs/libeantic.so.0.0.0
/usr/bin/ld: cannot find -larb
collect2: error: ld returned 1 exit status
make[3]: *** [Makefile:1899: libeantic.la] Error 1

This will be fixed by https://github.com/videlec/e-antic/pull/85

comment:74 in reply to: ↑ 71 Changed 14 months ago by mkoeppe

Replying to mkoeppe:

nauty's spkg-configure.m4only looks for the executables, not the library

Discussing this issue on #28958.

comment:75 Changed 14 months ago by mkoeppe

nauty header file location varies between distributions, https://github.com/Normaliz/Normaliz/issues/332

comment:76 Changed 13 months ago by git

  • Commit changed from 1587063c5258e2a25cf5b3a903734598459f8980 to 7378372b356c4722a59a294158866bdde2f0b3aa

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

5cb779cUpdate Normaliz to 3.8.4, PyNormaliz to 2.10
4ba88efnormaliz: Remove dependency on boost_cropped
cbffb6cbuild/pkgs/normaliz: Update configure options
32906febuild/pkgs/pynormaliz: Update spkg-check
5a8205bfixed pickling of normaliz polyhedra
c9be0c4build/pkgs/normaliz: Add compute_recession_rank.patch (from upstream)
3a69847fixed optional flags; better documentation
a2112c2build/pkgs/nauty/spkg-install: Put -fPIC in CC at connfigure time
69351acUpdate e-antic to 0.1.5
7378372Add libnauty script package, dependency for normaliz

comment:77 Changed 13 months ago by mkoeppe

  • Summary changed from upgrade Normaliz to 3.8.4, PyNormaliz to 2.10, install nauty header/library, add patch to e-antic to upgrade Normaliz to 3.8.4, PyNormaliz to 2.10, e-antic to 0.1.5, install nauty header/library
  • Work issues changed from patch e-antic configure to figure out libnauty configure

comment:78 Changed 13 months ago by git

  • Commit changed from 7378372b356c4722a59a294158866bdde2f0b3aa to efcc1ca9643ddb8788e8bcba40842bb8bfe7ae13

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

ce78b1bUpdate Normaliz to 3.8.4, PyNormaliz to 2.10
8061156normaliz: Remove dependency on boost_cropped
fe957a6build/pkgs/normaliz: Update configure options
ec93c82build/pkgs/pynormaliz: Update spkg-check
787c4dffixed pickling of normaliz polyhedra
3605788build/pkgs/normaliz: Add compute_recession_rank.patch (from upstream)
63fafd0fixed optional flags; better documentation
bdbd6c9build/pkgs/nauty/spkg-install: Put -fPIC in CC at connfigure time
c6f353bUpdate e-antic to 0.1.5
efcc1caAdd libnauty script package, dependency for normaliz

comment:79 Changed 13 months ago by mkoeppe

Rebased on 9.1.beta8

comment:80 Changed 13 months ago by vdelecroix

  • Description modified (diff)

comment:81 Changed 13 months ago by mkoeppe

  • Dependencies changed from #28006 to #29380

comment:82 Changed 12 months ago by mkoeppe

  • Dependencies #29380 deleted
  • Description modified (diff)
  • Milestone changed from sage-9.1 to sage-9.2
  • Summary changed from upgrade Normaliz to 3.8.4, PyNormaliz to 2.10, e-antic to 0.1.5, install nauty header/library to upgrade Normaliz to 3.8.4, PyNormaliz to 2.10, install nauty header/library

Update of e-antic to 0.1.5 was done in #29380.

comment:83 Changed 10 months ago by mkoeppe

  • Description modified (diff)
  • Summary changed from upgrade Normaliz to 3.8.4, PyNormaliz to 2.10, install nauty header/library to upgrade Normaliz to 3.8.5, PyNormaliz to 2.10, install nauty header/library

comment:84 Changed 10 months ago by mkoeppe

  • Summary changed from upgrade Normaliz to 3.8.5, PyNormaliz to 2.10, install nauty header/library to upgrade Normaliz to 3.8.5, PyNormaliz to 2.11, install nauty header/library

comment:85 Changed 10 months ago by mkoeppe

Update of e-antic to 0.1.6 was done in #29826; preparation for the FLINT upgrade in #29719.

comment:86 Changed 10 months ago by git

  • Commit changed from efcc1ca9643ddb8788e8bcba40842bb8bfe7ae13 to 3b67efbc7c87a25f2b3b0c95a6aa613ac6a1b733

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

858aa7cinstall nauty header and library
8402f89Update Normaliz to 3.8.4, PyNormaliz to 2.10
44651b3normaliz: Remove dependency on boost_cropped
25a7c8fbuild/pkgs/normaliz: Update configure options
2cec815build/pkgs/pynormaliz: Update spkg-check
eed04fafixed pickling of normaliz polyhedra
09303bffixed optional flags; better documentation
1cdfb7cbuild/pkgs/nauty/spkg-install: Put -fPIC in CC at connfigure time
583ca93Add libnauty script package, dependency for normaliz
3b67efbUpdate Normaliz to 3.8.5, PyNormaliz to 2.11

comment:87 Changed 10 months ago by mkoeppe

Rebased, new version, dropped the patch

comment:88 Changed 10 months ago by git

  • Commit changed from 3b67efbc7c87a25f2b3b0c95a6aa613ac6a1b733 to 828e6531a8ffdbfe8ce88996835474affa1dde1f

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

828e653Update Normaliz to 3.8.5, PyNormaliz to 2.11

comment:89 Changed 10 months ago by git

  • Commit changed from 828e6531a8ffdbfe8ce88996835474affa1dde1f to ed0d5870bb7b66521e71f4aa752bd8d51e5f3587

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

ed0d587build/pkgs/libnauty/type: Change to optional

comment:90 Changed 10 months ago by mkoeppe

Error on various systems including ubuntu-eoan (https://github.com/mkoeppe/sage/runs/764195861)

  [normaliz-3.8.5]   checking whether e-antic headers and library are available... configure: error: e-antic is not available but was requested
  [normaliz-3.8.5]   ********************************************************************************
  [normaliz-3.8.5]   Error configuring normaliz-3.8.5

(From a run without the FLINT and e-antic updates)

comment:91 follow-up: Changed 10 months ago by mkoeppe

configure:14201: checking whether e-antic headers and library are available
configure:14219: g++ -std=gnu++11 -std=gnu++14 -o conftest -g -O2      -Wl,-rpath-link,/sage/local/lib -L/sage/local/lib -Wl,-rpath,/sage/local/lib      conftest.cpp  -leanticxx -leantic -larb -lflint >&5
/usr/bin/ld: cannot find -larb
collect2: error: ld returned 1 exit status

I guess this happens because on Debian, arb is installed as libflint-arb.

docker run -it docker.pkg.github.com/mkoeppe/sage/sage-docker-ubuntu-eoan-maximal-with-targets-optional:9.1.rc4-66657-ged0d5870bb

comment:92 in reply to: ↑ 91 ; follow-up: Changed 10 months ago by mkoeppe

Replying to mkoeppe:

on Debian, arb is installed as libflint-arb.

(e-antic has fixed this already, but normaliz needs a fix for it too.) https://github.com/Normaliz/Normaliz/blob/master/configure.ac#L314

comment:93 in reply to: ↑ 92 ; follow-up: Changed 10 months ago by mkoeppe

Replying to mkoeppe:

Replying to mkoeppe:

on Debian, arb is installed as libflint-arb.

(e-antic has fixed this already, but normaliz needs a fix for it too.) https://github.com/Normaliz/Normaliz/blob/master/configure.ac#L314

Winfried, if we could get a similar fix into Normaliz 3.8.6, that would be great

comment:94 follow-up: Changed 10 months ago by gh-kliem

Are there any news regarding figure out libnauty configure?

Last edited 10 months ago by gh-kliem (previous) (diff)

comment:95 in reply to: ↑ 94 Changed 10 months ago by mkoeppe

Replying to gh-kliem:

Are there any news regarding figure out libnauty configure?

What is on this branch might already work, but it's also possible that I have forgotten about some of its subtleties.

comment:96 Changed 10 months ago by Winfried

I would not mind a pull request taking care both of the arb issue as well as the nauty issue.

comment:97 Changed 10 months ago by mkoeppe

  • Dependencies set to #29826

comment:98 Changed 10 months ago by git

  • Commit changed from ed0d5870bb7b66521e71f4aa752bd8d51e5f3587 to 18b94b9325ff4d5cbc47d99a25fa952d8ab161c1

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

c05a5ebupgrade to e-antic 0.1.6
de6b953build/pkgs/e_antic: Update to 0.1.7
18b94b9Merge branch 't/29826/e-antic-0.1.6' into t/27952/normaliz

comment:99 follow-up: Changed 10 months ago by mkoeppe

Also, why does build/pkgs/normaliz/dependencies include singular?

comment:100 in reply to: ↑ 99 Changed 10 months ago by mkoeppe

Replying to mkoeppe:

Also, why does build/pkgs/normaliz/dependencies include singular?

This seems to be just a leftover from when normaliz.lib was installed into the singular installation. I'll remove it.

comment:101 Changed 10 months ago by git

  • Commit changed from 18b94b9325ff4d5cbc47d99a25fa952d8ab161c1 to feb22882858d8991b45955df6bcaed3e47a4d5c6

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

feb2288build/pkgs/normaliz/dependencies: Remove singular

comment:102 in reply to: ↑ 93 Changed 10 months ago by mkoeppe

Replying to mkoeppe:

Replying to mkoeppe:

Replying to mkoeppe:

on Debian, arb is installed as libflint-arb.

(e-antic has fixed this already, but normaliz needs a fix for it too.) https://github.com/Normaliz/Normaliz/blob/master/configure.ac#L314

Winfried, if we could get a similar fix into Normaliz 3.8.6, that would be great

This is now https://github.com/Normaliz/Normaliz/pull/339

comment:103 Changed 10 months ago by mkoeppe

  • Summary changed from upgrade Normaliz to 3.8.5, PyNormaliz to 2.11, install nauty header/library to upgrade Normaliz to 3.8.7, PyNormaliz to 2.11, install nauty header/library

comment:104 Changed 10 months ago by Winfried

For the sake of clarity: Normaliz 3.8.7 does not exist yet. I am not sure when it will be released and whether PyNormaliz? 2.11 will be sufficient for it.

But: if it would be helpful to have a version 3.8.7 of Normaliz with updated confiure.ac (arb and nauty), I can make it. But I think the nauty issue should be solved for it.

comment:105 Changed 10 months ago by mkoeppe

Yes, I'll look into the nauty business next

comment:106 Changed 10 months ago by git

  • Commit changed from feb22882858d8991b45955df6bcaed3e47a4d5c6 to 2a7b240bc2e98e61aa788f31d7dc6e7775880826

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

2a7b240Merge tag '9.2.beta2' into t/27952/normaliz

comment:107 Changed 10 months ago by mkoeppe

Tests of normaliz@master against this branch run at https://github.com/mkoeppe/Normaliz/actions/runs/149952613

comment:108 Changed 10 months ago by mkoeppe

For example for ubuntu-bionic-standard:

  [normaliz-git]   checking whether nauty headers and library are available... checking nauty/nauty.h usability... no
  [normaliz-git]   checking nauty/nauty.h presence... no
  [normaliz-git]   checking for nauty/nauty.h... no
  [normaliz-git]   configure: error: nauty is not available but was requested

comment:109 Changed 10 months ago by mkoeppe

Also on cygwin-standard during make check of e-antic:

e_antic-0.1.7] renfxx/test/t-constructor.cpp: In function ‘void check_equal(renf_elem_class&, mp_limb_signed_t)’:
[e_antic-0.1.7] renfxx/test/t-constructor.cpp:29:11: error: ambiguous overload for ‘operator!=’ (operand types are ‘renf_elem_class’ and ‘mp_limb_signed_t’ {aka ‘long long int’})
[e_antic-0.1.7]    29 |     if (a != b)
[e_antic-0.1.7]       |         ~ ^~ ~
[e_antic-0.1.7]       |         |    |
[e_antic-0.1.7]       |         |    mp_limb_signed_t {aka long long int}
[e_antic-0.1.7]       |         renf_elem_class

(with g++ version... 9.3.0)

Last edited 10 months ago by mkoeppe (previous) (diff)

comment:110 Changed 10 months ago by git

  • Commit changed from 2a7b240bc2e98e61aa788f31d7dc6e7775880826 to 7902386ba609b4a39f88ebb50b0fdef07400822d

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

7902386build/pkgs/libnauty: Fix libnauty -> nauty delegation

comment:111 Changed 10 months ago by mkoeppe

New tests of normaliz@master against this branch run at https://github.com/mkoeppe/Normaliz/actions/runs/152252527

comment:112 follow-up: Changed 10 months ago by mkoeppe

Another e-antic failure while building test programs on Debian:

bin/bash ./libtool  --tag=CC   --mode=link gcc -fopenmp -g -O2  -Wl,-rpath-link,/sage/local/lib -L/sage/local/lib -Wl,-rpath,/sage/local/lib  -o poly_extra/test/t-fmpz_poly_scale_0_1_fmpq poly_extra/test/t-fmpz_poly_scale_0_1_fmpq.o libeanticxx.la libeantic.la -larb -lflint -lgmpxx -lgmp -lflint-arb -lflint -lgmp 
libtool: link: gcc -fopenmp -g -O2 -Wl,-rpath-link -Wl,/sage/local/lib -Wl,-rpath -Wl,/sage/local/lib -o poly_extra/test/.libs/t-evaluate poly_extra/test/t-evaluate.o  -L/sage/local/lib ./.libs/libeanticxx.so /sage/local/var/tmp/sage/build/e_antic-0.1.7/src/.libs/libeantic.so ./.libs/libeantic.so -larb -lgmpxx -lflint-arb -lflint -lgmp -fopenmp -Wl,-rpath -Wl,/sage/local/lib
/usr/bin/ld: cannot find -larb
collect2: error: ld returned 1 exit status

because it seems I forgot to change these lines of Makefile.am in https://github.com/videlec/e-antic/pull/85 :

# TODO: we currently build all tests with linked c++ libraries
LDADD = libeanticxx.la libeantic.la -larb -lflint -lgmpxx -lgmp

comment:113 in reply to: ↑ 112 Changed 10 months ago by mkoeppe

Replying to mkoeppe:

Another e-antic failure while building test programs on Debian:

bin/bash ./libtool  --tag=CC   --mode=link gcc -fopenmp -g -O2  -Wl,-rpath-link,/sage/local/lib -L/sage/local/lib -Wl,-rpath,/sage/local/lib  -o poly_extra/test/t-fmpz_poly_scale_0_1_fmpq poly_extra/test/t-fmpz_poly_scale_0_1_fmpq.o libeanticxx.la libeantic.la -larb -lflint -lgmpxx -lgmp -lflint-arb -lflint -lgmp 
libtool: link: gcc -fopenmp -g -O2 -Wl,-rpath-link -Wl,/sage/local/lib -Wl,-rpath -Wl,/sage/local/lib -o poly_extra/test/.libs/t-evaluate poly_extra/test/t-evaluate.o  -L/sage/local/lib ./.libs/libeanticxx.so /sage/local/var/tmp/sage/build/e_antic-0.1.7/src/.libs/libeantic.so ./.libs/libeantic.so -larb -lgmpxx -lflint-arb -lflint -lgmp -fopenmp -Wl,-rpath -Wl,/sage/local/lib
/usr/bin/ld: cannot find -larb
collect2: error: ld returned 1 exit status

because it seems I forgot to change these lines of Makefile.am in https://github.com/videlec/e-antic/pull/85 :

# TODO: we currently build all tests with linked c++ libraries
LDADD = libeanticxx.la libeantic.la -larb -lflint -lgmpxx -lgmp

This is now https://github.com/videlec/e-antic/pull/105

comment:114 Changed 10 months ago by mkoeppe

  • Cc Max.Horn@… added

comment:115 Changed 9 months ago by git

  • Commit changed from 7902386ba609b4a39f88ebb50b0fdef07400822d to 0c540a8487cc7ae140e59a6958e466f12f2050dc

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

539c182build/make/install: Do not depend on src/bin/sage-version.sh
761092cMerge branch 't/29987/build_make_install__do_not_depend_on_src_bin_sage_version_sh' into t/30064/fix_tox_docker_builds_broken_by__29884
f2efa6asrc/doc/bootstrap: Create the directory src/doc/en/reference/repl if it does not exist
b7bf43bbuild/bin/write-dockerfile.sh: ADD src/bin for bootstrapping, needed by src/doc/bootstrap after #29884
365ce61Merge branch 'u/mkoeppe/fix_tox_docker_builds_broken_by__29884' of git://trac.sagemath.org/sage into HEAD
1e7becctox.ini [debian-buster, -sid]: IGNORE_MISSING_SYSTEM_PACKAGES=yes because of libpython3.7-dev
fb61a31Merge branch 'u/mkoeppe/tox_ini__debian_bullseye___sid_have_python3_8_instead_of_3_7' of git://trac.sagemath.org/sage into 9.2.beta3+ci-fixes
0c540a8Merge branch '9.2.beta3+ci-fixes' into t/27952/normaliz

comment:116 Changed 9 months ago by mkoeppe

  • Dependencies changed from #29826 to #29826, #29987, #30064, #29851

comment:117 Changed 9 months ago by mkoeppe

From https://github.com/Normaliz/Normaliz/pull/350#issuecomment-655507396: On ubuntu-trusty with the isnan fix:

libtool: link: g++ -std=gnu++11  -fPIC -DPIC -shared -nostdlib /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/4.8/crtbeginS.o  libnormaliz/.libs/nmz_nauty.o libnormaliz/.libs/offload_handler.o libnormaliz/.libs/output.o libnormaliz/.libs/automorph.o libnormaliz/.libs/cone_dual_mode.o libnormaliz/.libs/cone_property.o libnormaliz/.libs/cone.o libnormaliz/.libs/descent.o libnormaliz/.libs/full_cone.o libnormaliz/.libs/general.o libnormaliz/.libs/HilbertSeries.o libnormaliz/.libs/matrix.o libnormaliz/.libs/nmz_integral.o libnormaliz/.libs/project_and_lift.o libnormaliz/.libs/reduction.o libnormaliz/.libs/simplex.o libnormaliz/.libs/sublattice_representation.o libnormaliz/.libs/input.o libnormaliz/.libs/collection.o   -L/sage/local/lib -leanticxx -leantic -larb -lflint -lmpfr -lnauty -lgmpxx -lgmp -L/sage/local/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.8 -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../.. -lstdc++ -lm -lc -lgcc_s /usr/lib/gcc/x86_64-linux-gnu/4.8/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crtn.o  -fopenmp -g -O2 -Wl,-rpath-link -Wl,/sage/local/lib -Wl,-rpath -Wl,/sage/local/lib   -fopenmp -Wl,-soname -Wl,libnormaliz.so.3 -o .libs/libnormaliz.so.3.8.6
/usr/bin/ld: /sage/local/lib/libnauty.a(naugraph.o): relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC
/sage/local/lib/libnauty.a: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
make[3]: *** [libnormaliz.la] Error 1
make[3]: Target `all' not remade because of errors.

comment:118 Changed 9 months ago by git

  • Commit changed from 0c540a8487cc7ae140e59a6958e466f12f2050dc to 13c0375d334eb3f85b643a7a0dff4a7621987e1a

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

6e9191abuild/pkgs/e_antic: Update to 0.1.8
a906db8Merge branch 't/30262/update_e_antic_to_0_1_8' into t/27952/normaliz
582c309build/pkgs/normaliz: Update to 3.8.7
13c0375build/pkgs/pynormaliz: Update to 2.12

comment:119 Changed 9 months ago by mkoeppe

  • Dependencies changed from #29826, #29987, #30064, #29851 to #29826, #29987, #30064, #29851, #30262

comment:121 Changed 9 months ago by mkoeppe

  • Summary changed from upgrade Normaliz to 3.8.7, PyNormaliz to 2.11, install nauty header/library to upgrade Normaliz to 3.8.7, PyNormaliz to 2.12, install nauty header/library

comment:122 Changed 9 months ago by mkoeppe

  • Work issues changed from figure out libnauty configure to ubuntu-trusty libnauty

comment:123 follow-up: Changed 9 months ago by mkoeppe

The problem with libnauty on ubuntu-trusty still needs to be fixed (https://github.com/mkoeppe/sage/runs/934245080)

pynormaliz build error in ubuntu-xenial:

  NormalizModule.cpp:13:40: fatal error: libnormaliz/map_operations.h: No such file or directory
  compilation terminated.

comment:124 Changed 9 months ago by git

  • Commit changed from 13c0375d334eb3f85b643a7a0dff4a7621987e1a to 027ef5fadb38c4016947224c312dd320453e024b

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

027ef5fbuild/pkgs/pynormaliz: Fix upstream_url

comment:125 in reply to: ↑ 123 Changed 9 months ago by mkoeppe

Replying to mkoeppe:

pynormaliz build error in ubuntu-xenial:

  NormalizModule.cpp:13:40: fatal error: libnormaliz/map_operations.h: No such file or directory
  compilation terminated.

Actually tested with an old PyNormaliz? by mistake

comment:126 Changed 9 months ago by git

  • Commit changed from 027ef5fadb38c4016947224c312dd320453e024b to b35c2fcc2fd08bdc2fc05add07d0d221d853bbe7

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

b35c2fcbuild/pkgs/nauty: Switch to autotoolized fork

comment:127 Changed 9 months ago by mkoeppe

  • Summary changed from upgrade Normaliz to 3.8.7, PyNormaliz to 2.12, install nauty header/library to upgrade Normaliz to 3.8.7, PyNormaliz to 2.12, switch nauty to autotoolized fork

comment:128 Changed 9 months ago by mkoeppe

  • Status changed from needs_work to needs_review

comment:129 Changed 9 months ago by mkoeppe

  • Status changed from needs_review to needs_work

comment:130 Changed 9 months ago by mkoeppe

nauty needs more work, I'll do that on a separate ticket first.

Back to the previous commit, which "only" has failures on ubuntu-trusty and similar.

Last edited 9 months ago by mkoeppe (previous) (diff)

comment:131 Changed 9 months ago by git

  • Commit changed from b35c2fcc2fd08bdc2fc05add07d0d221d853bbe7 to 027ef5fadb38c4016947224c312dd320453e024b

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

comment:132 Changed 9 months ago by mkoeppe

  • Work issues changed from ubuntu-trusty libnauty to ubuntu-trusty libnauty - merge #30271 when ready

comment:133 Changed 9 months ago by dimpase

let's spin libnauty off to a separate ticket indeed

comment:134 Changed 9 months ago by mkoeppe

  • Cc Max.Horn@… removed
  • Status changed from needs_work to needs_review

(removing cc: as requested)

Yes, to make progress here, let's just merge the present version, which works well - except that the optional package normaliz will fail to build on the ancient platforms ubuntu-trusty, debian-jessie and the like.

Needs review.

comment:135 Changed 9 months ago by mkoeppe

  • Dependencies changed from #29826, #29987, #30064, #29851, #30262 to #30262
  • Summary changed from upgrade Normaliz to 3.8.7, PyNormaliz to 2.12, switch nauty to autotoolized fork to upgrade Normaliz to 3.8.7, PyNormaliz to 2.12, add script package libnauty
  • Work issues ubuntu-trusty libnauty - merge #30271 when ready deleted

comment:136 Changed 8 months ago by git

  • Commit changed from 027ef5fadb38c4016947224c312dd320453e024b to 071bfc7bb2b8dc582f4146613956727240e7ac13

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

0882611Merge tag '9.2.beta7' into t/30262/update_e_antic_to_0_1_8
071bfc7Merge branch 't/30262/update_e_antic_to_0_1_8' into t/27952/normaliz

comment:137 Changed 8 months ago by git

  • Commit changed from 071bfc7bb2b8dc582f4146613956727240e7ac13 to 4072b6730412103bf0e6d33d6e31f31e620f8d2d

(push to wrong ticket)

Last edited 8 months ago by mkoeppe (previous) (diff)

comment:138 Changed 8 months ago by git

  • Commit changed from 4072b6730412103bf0e6d33d6e31f31e620f8d2d to 071bfc7bb2b8dc582f4146613956727240e7ac13

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

comment:139 Changed 8 months ago by gh-kliem

  • Reviewers set to Jonathan Kliem

I'm happy with the ticket as it is and all tests in geometry pass for me.

comment:140 Changed 8 months ago by dimpase

is this a positive review?

comment:141 Changed 8 months ago by gh-kliem

No, not by itself. One thing missing is that I wrote pretty much the code in backend_normaliz.py. So somebody has to review that part.

Along with the fact that no one seems to disagree that the present state is an improvement (although not perfect), this would make a positive review IMO.

Last edited 8 months ago by gh-kliem (previous) (diff)

comment:142 follow-up: Changed 8 months ago by mkoeppe

Is this condition tested by a doctest?

Matrix(ZZ, nmz_vertices + nmz_rays).rank() == Matrix(ZZ, nmz_rays).rank() + 1

Also, how come nmz_lines does not have to be used in this condition?

comment:143 Changed 8 months ago by mkoeppe

  • Reviewers changed from Jonathan Kliem to Jonathan Kliem, Matthias Koeppe

comment:144 in reply to: ↑ 142 ; follow-up: Changed 8 months ago by gh-kliem

Replying to mkoeppe:

Is this condition tested by a doctest?

Matrix(ZZ, nmz_vertices + nmz_rays).rank() == Matrix(ZZ, nmz_rays).rank() + 1

Also, how come nmz_lines does not have to be used in this condition?

I have done a terrible job in commenting this (it took me a while to figure out, why I did this) and you are right, a doctest might make sense.

The question is simply: Is the far face a facet or not? If it is a facet, we need to add an inequality to the normaliz cone. The lines don't make a difference with regard to that question.

comment:145 Changed 8 months ago by gh-kliem

  • Branch changed from u/mkoeppe/normaliz to u/kliem/normaliz
  • Commit 071bfc7bb2b8dc582f4146613956727240e7ac13 deleted

comment:146 Changed 8 months ago by gh-kliem

  • Branch changed from u/kliem/normaliz to u/gh-kliem/normaliz
  • Commit set to f3e8fc21d70dc5b6f8e647e39fbe5d01b39ffe13

Last 10 new commits:

7902386build/pkgs/libnauty: Fix libnauty -> nauty delegation
0c540a8Merge branch '9.2.beta3+ci-fixes' into t/27952/normaliz
6e9191abuild/pkgs/e_antic: Update to 0.1.8
a906db8Merge branch 't/30262/update_e_antic_to_0_1_8' into t/27952/normaliz
582c309build/pkgs/normaliz: Update to 3.8.7
13c0375build/pkgs/pynormaliz: Update to 2.12
027ef5fbuild/pkgs/pynormaliz: Fix upstream_url
0882611Merge tag '9.2.beta7' into t/30262/update_e_antic_to_0_1_8
071bfc7Merge branch 't/30262/update_e_antic_to_0_1_8' into t/27952/normaliz
f3e8fc2document far facet condition and add a doctest

comment:147 follow-up: Changed 8 months ago by gh-kliem

[normaliz-3.8.7] checking whether e-antic headers and library are available... configure: error: e-antic is not available but was requested

Tried it with "my" new patchbot. Doesn't work.

But this installation also had trouble without this ticket. Installed normaliz with no problems and then gave me this error

    PyNormaliz_cpp.NormalizInterfaceError: When parsing number_field: coefficient in matrix must be PyFloat, PyInt, PyLong, Sequence, must be able to be converted to a valid gmp input string

Changed 8 months ago by gh-kliem

Failed installation of new normaliz

comment:148 Changed 8 months ago by mkoeppe

Yes, there's still a typo in normaliz configure.ac...

Last edited 8 months ago by mkoeppe (previous) (diff)

comment:150 Changed 8 months ago by mkoeppe

  • Report Upstream changed from N/A to Reported upstream. No feedback yet.

comment:151 Changed 8 months ago by mkoeppe

  • Status changed from needs_review to needs_work

comment:152 Changed 8 months ago by slelievre

  • Cc slelievre added
  • Report Upstream changed from Reported upstream. No feedback yet. to Fixed upstream, but not in a stable release.

Apply the upstream fix as a patch here? Or wait for the next Normaliz release?

comment:153 Changed 8 months ago by mkoeppe

  • Summary changed from upgrade Normaliz to 3.8.7, PyNormaliz to 2.12, add script package libnauty to upgrade Normaliz to 3.8.8, PyNormaliz to 2.12, add script package libnauty

comment:154 Changed 8 months ago by mkoeppe

  • Branch changed from u/gh-kliem/normaliz to u/mkoeppe/normaliz

comment:155 in reply to: ↑ 144 ; follow-up: Changed 8 months ago by mkoeppe

  • Commit changed from f3e8fc21d70dc5b6f8e647e39fbe5d01b39ffe13 to e1fc1477f729a1f6b230c5d57df0e5d4d14cfa83

Replying to gh-kliem:

Replying to mkoeppe:

Is this condition tested by a doctest?

Matrix(ZZ, nmz_vertices + nmz_rays).rank() == Matrix(ZZ, nmz_rays).rank() + 1

... The question is simply: Is the far face a facet or not? If it is a facet, we need to add an inequality to the normaliz cone. The lines don't make a difference with regard to that question.

Thanks for the explanation and adding the new comments and tests.

This is a positive review for your contributions on this ticket.


New commits:

3f2d872Merge tag '9.2.beta8' into t/27952/normaliz
84db571build/pkgs/normaliz: Update to 3.8.8
e1fc147Merge tag '9.2.beta10' into t/27952/normaliz

comment:156 in reply to: ↑ 147 ; follow-up: Changed 8 months ago by mkoeppe

Replying to gh-kliem:

[normaliz-3.8.7] checking whether e-antic headers and library are available... configure: error: e-antic is not available but was requested

Tried it with "my" new patchbot. Doesn't work.

Please check again with the new release.

comment:157 Changed 8 months ago by mkoeppe

  • Reviewers changed from Jonathan Kliem, Matthias Koeppe to Jonathan Kliem, Matthias Koeppe, github.com/mkoeppe/sage/runs/1045214008, github.com/mkoeppe/sage/actions/runs/230112232
  • Status changed from needs_work to needs_review

comment:158 in reply to: ↑ 156 Changed 8 months ago by gh-kliem

Replying to mkoeppe:

Replying to gh-kliem:

[normaliz-3.8.7] checking whether e-antic headers and library are available... configure: error: e-antic is not available but was requested

Tried it with "my" new patchbot. Doesn't work.

Please check again with the new release.

Seems to work well. At least all tests in the geometry folder passed.

This is great, because this is an improvement (see above). Before this ticket, pynormaliz is not working at all.

comment:159 in reply to: ↑ 155 Changed 8 months ago by gh-kliem

  • Status changed from needs_review to positive_review

Replying to mkoeppe:

Replying to gh-kliem:

Replying to mkoeppe:

Is this condition tested by a doctest?

Matrix(ZZ, nmz_vertices + nmz_rays).rank() == Matrix(ZZ, nmz_rays).rank() + 1

... The question is simply: Is the far face a facet or not? If it is a facet, we need to add an inequality to the normaliz cone. The lines don't make a difference with regard to that question.

Thanks for the explanation and adding the new comments and tests.

This is a positive review for your contributions on this ticket.

Positive review on the other part.

comment:160 Changed 8 months ago by gh-kliem

  • Reviewers changed from Jonathan Kliem, Matthias Koeppe, github.com/mkoeppe/sage/runs/1045214008, github.com/mkoeppe/sage/actions/runs/230112232 to Jonathan Kliem, Matthias Koeppe

comment:161 Changed 8 months ago by vbraun

  • Status changed from positive_review to needs_work
**********************************************************************
File "src/sage/geometry/polyhedron/backend_normaliz.py", line 871, in sage.geometry.polyhedron.backend_normaliz.Polyhedron_normaliz._test_far_facet_condition
Failed example:
    P = Polyhedron(vertices=[[1,0], [0,1]],
                   rays=[[1,1]], backend='normaliz')     # optional - pynormaliz
Exception raised:
    Traceback (most recent call last):
      File "/home/release/Sage/local/lib/python3.7/site-packages/sage/doctest/forker.py", line 715, in _run
        self.compile_and_execute(example, compiler, test.globs)
      File "/home/release/Sage/local/lib/python3.7/site-packages/sage/doctest/forker.py", line 1139, in compile_and_execute
        exec(compiled, globs)
      File "<doctest sage.geometry.polyhedron.backend_normaliz.Polyhedron_normaliz._test_far_facet_condition[0]>", line 2, in <module>
        rays=[[Integer(1),Integer(1)]], backend='normaliz')     # optional - pynormaliz
      File "sage/misc/lazy_import.pyx", line 353, in sage.misc.lazy_import.LazyImport.__call__ (build/cythonized/sage/misc/lazy_import.c:3736)
        return self.get_object()(*args, **kwds)
      File "/home/release/Sage/local/lib/python3.7/site-packages/sage/geometry/polyhedron/constructor.py", line 662, in Polyhedron
        return parent(Vrep, Hrep, convert=convert, verbose=verbose)
      File "sage/structure/parent.pyx", line 902, in sage.structure.parent.Parent.__call__ (build/cythonized/sage/structure/parent.c:9364)
        return mor._call_with_args(x, args, kwds)
      File "sage/structure/coerce_maps.pyx", line 180, in sage.structure.coerce_maps.DefaultConvertMap_unique._call_with_args (build/cythonized/sage/structure/coerce_maps.c:5154)
        raise
      File "sage/structure/coerce_maps.pyx", line 175, in sage.structure.coerce_maps.DefaultConvertMap_unique._call_with_args (build/cythonized/sage/structure/coerce_maps.c:5042)
        return C._element_constructor(x, *args, **kwds)
      File "/home/release/Sage/local/lib/python3.7/site-packages/sage/geometry/polyhedron/parent.py", line 598, in _element_constructor_
        return self.element_class(self, Vrep, Hrep, **kwds)
      File "/home/release/Sage/local/lib/python3.7/site-packages/sage/geometry/polyhedron/backend_normaliz.py", line 238, in __init__
        Polyhedron_base.__init__(self, parent, Vrep, Hrep, **kwds)
      File "/home/release/Sage/local/lib/python3.7/site-packages/sage/geometry/polyhedron/base.py", line 249, in __init__
        self._init_from_Vrepresentation(vertices, rays, lines, **kwds)
      File "/home/release/Sage/local/lib/python3.7/site-packages/sage/geometry/polyhedron/backend_normaliz.py", line 565, in _init_from_Vrepresentation
        self._init_from_normaliz_data(data, normaliz_field=normaliz_field, verbose=verbose)
      File "/home/release/Sage/local/lib/python3.7/site-packages/sage/geometry/polyhedron/backend_normaliz.py", line 387, in _init_from_normaliz_data
        cone = self._cone_from_normaliz_data(data, verbose)
      File "/home/release/Sage/local/lib/python3.7/site-packages/sage/geometry/polyhedron/backend_normaliz.py", line 419, in _cone_from_normaliz_data
        PythonModule("PyNormaliz", spkg="pynormaliz").require()
      File "/home/release/Sage/local/lib/python3.7/site-packages/sage/features/__init__.py", line 191, in require
        raise FeatureNotPresentError(self, presence.reason, presence.resolution)
    sage.features.FeatureNotPresentError: PyNormaliz is not available.
    Failed to import `PyNormaliz`.
    To install PyNormaliz you can try to run 'sage -i pynormaliz'.
**********************************************************************

comment:162 Changed 8 months ago by git

  • Commit changed from e1fc1477f729a1f6b230c5d57df0e5d4d14cfa83 to ce2b8f9c33b05fd8e8e914481c357d8cd9cf234d

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

ce2b8f9src/sage/geometry/polyhedron/backend_normaliz.py: Put # optional - pynormaliz on the first line, not continuation line

comment:163 Changed 8 months ago by mkoeppe

  • Status changed from needs_work to positive_review

comment:164 Changed 8 months ago by git

  • Commit changed from ce2b8f9c33b05fd8e8e914481c357d8cd9cf234d to c55a701146b048d5488e1aa82276b12bfa341644
  • Status changed from positive_review to needs_review

Branch pushed to git repo; I updated commit sha1 and set ticket back to needs_review. New commits:

c55a701src/sage/geometry/polyhedron/backend_normaliz.py: Put # optional - pynormaliz on the first line, not continuation line (one more)

comment:165 Changed 8 months ago by mkoeppe

  • Status changed from needs_review to positive_review

comment:166 Changed 7 months ago by vbraun

  • Branch changed from u/mkoeppe/normaliz to c55a701146b048d5488e1aa82276b12bfa341644
  • Resolution set to fixed
  • Status changed from positive_review to closed

comment:167 Changed 7 months ago by dimpase

  • Commit c55a701146b048d5488e1aa82276b12bfa341644 deleted

a bug in libnauty spkg-configure

the 1st two args of AC_SEARCH_LIBS are swapped.

Note: See TracTickets for help on using tickets.