#26932 closed enhancement (fixed)
Upgrade to givaro4.1.1 fflasffpack2.4.3 linbox1.6.3
Reported by:  cpernet  Owned by:  

Priority:  major  Milestone:  sage8.9 
Component:  packages: standard  Keywords:  
Cc:  fbissey, ghtimokau  Merged in:  
Authors:  Clément Pernet  Reviewers:  Timo Kaufmann 
Report Upstream:  N/A  Work issues:  
Branch:  ead33ba (Commits)  Commit:  
Dependencies:  Stopgaps: 
Description (last modified by )
Tarballs of released packages (with appropriate names) can be found at:
 https://github.com/linboxteam/givaro/releases/download/v4.1.1/givaro4.1.1.tar.gz
 https://github.com/linboxteam/fflasffpack/releases/download/2.4.3/fflas_ffpack2.4.3.tar.bz2
 https://github.com/linboxteam/linbox/releases/download/v1.6.3/linbox1.6.3.tar.gz
Example of timing improvements (in seconds) on my laptop running an i78650U
 for random square matrices of order n=4000 over GF(4194301) (22 bits)
develop  #26932  

A * B  3.61  3.57 
A.det()  2.96  1.52 
A.echelonize()  3.59  1.86 
A\b  8.9  5.13 
 for random square matrices of order n=4000 over GF(251) (8 bits)
develop  #26932  

A * B  1.59  1.5 
A.det()  1.54  0.731 
A.echelonize()  1.82  0.692 
A\b  3.7  1.79 
Change History (80)
comment:1 Changed 2 years ago by
 Cc fbissey added
comment:2 Changed 23 months ago by
 Milestone changed from sage8.6 to sage8.7
comment:3 Changed 22 months ago by
 Branch set to u/cpernet/upgrade_to_givaro_4_1_0_fflas_ffpack_2_4_0_linbox_1_6_0
comment:4 Changed 22 months ago by
 Commit set to f7aa5c04a155e8d690a674bd489f43153bd0d467
Branch pushed to git repo; I updated commit sha1. New commits:
f7aa5c0  fix and clean fetch_int

comment:5 Changed 22 months ago by
Tarballs of released packages (with appropriate names) can be found at:
 https://ljk.imag.fr/membres/Clement.Pernet/soft/givaro4.1.0rc0.tar.gz
 https://ljk.imag.fr/membres/Clement.Pernet/soft/fflas_ffpack2.4.0rc0.tar.bz2
 https://ljk.imag.fr/membres/Clement.Pernet/soft/linbox1.6.0rc0.tar.gz
I'll release the 3 libraries soon, but I meant to check that they could be smoothly updating into sage before hand, therefore this ticket proposes to apply the rc0 versions temporarily. Once everything is in order, I'll cut the releases, and checksums accordingly in this branch.
comment:6 Changed 22 months ago by
 Description modified (diff)
comment:7 Changed 21 months ago by
 Commit changed from f7aa5c04a155e8d690a674bd489f43153bd0d467 to ff8e05871c467be7803fd0457a870f54456c58e6
Branch pushed to git repo; I updated commit sha1. New commits:
ff8e058  update checksums

comment:8 Changed 21 months ago by
For the record, the branch currently breaks several doctests.
 sage t src/sage/algebras/free_algebra.py # 2 doctests failed sage t src/sage/algebras/letterplace/free_algebra_element_letterplace.pyx # 9 doctests failed sage t src/sage/algebras/letterplace/free_algebra_letterplace.pyx # 3 doctests failed sage t src/sage/coding/bch.py # 2 doctests failed sage t src/sage/coding/extended_code.py # 1 doctest failed sage t src/sage/dynamics/arithmetic_dynamics/generic_ds.py # 4 doctests failed sage t src/sage/schemes/elliptic_curves/isogeny_small_degree.py # 1 doctest failed sage t src/sage/schemes/elliptic_curves/ell_curve_isogeny.py # 1 doctest failed sage t src/sage/schemes/generic/scheme.py # 2 doctests failed sage t src/sage/schemes/curves/projective_curve.py # 9 doctests failed sage t src/sage/schemes/hyperelliptic_curves/hyperelliptic_finite_field.py # 1 doctest failed sage t src/sage/interfaces/sage0.py # 1 doctest failed sage t src/sage/rings/fraction_field.py # 1 doctest failed sage t src/sage/rings/polynomial/multi_polynomial.pyx # 1 doctest failed sage t src/sage/rings/polynomial/flatten.py # 1 doctest failed sage t src/sage/rings/polynomial/multi_polynomial_ideal.py # 5 doctests failed sage t src/sage/rings/polynomial/multi_polynomial_element.py # 1 doctest failed sage t src/sage/crypto/mq/rijndael_gf.py # 73 doctests failed 
Givaro::GFqDom seems to be the culprit. I'm working on it.
comment:9 Changed 21 months ago by
 Milestone changed from sage8.7 to sage8.8
Ticket retargeted after milestone closed (if you don't believe this ticket is appropriate for the Sage 8.8 release please retarget manually)
comment:10 Changed 20 months ago by
 Commit changed from ff8e05871c467be7803fd0457a870f54456c58e6 to e879bfecb479d5290a006de25047495d7887d59b
Branch pushed to git repo; I updated commit sha1. New commits:
e879bfe  Merge branch 'develop' into t/26932/upgrade_to_givaro_4_1_0_fflas_ffpack_2_4_0_linbox_1_6_0

comment:11 Changed 19 months ago by
For the record, the source of the abovementionned bugs has been identified to a change in givaro GFqDom interface. It has been fixed now, and we can move forward on this ticket.
comment:12 Changed 19 months ago by
I don't suppose any of these are tested on Cygwin? I'm happy to do so if not, I just wondered.
comment:13 Changed 19 months ago by
The 3 libraries are tested on cygwin. We currently have an unsolved bug of fflasffpack which seem to be cygwin specific: https://github.com/linboxteam/fflasffpack/issues/248
However, I personnaly don't have a cygwin box on which I could test this ticket, so I appreciate your proposition to test the ticket once I put it in "needs review", or shortly before doing so.
comment:14 Changed 19 months ago by
Thanks Clement, will do. I'll also have a look at that bug.
comment:15 Changed 19 months ago by
 Description modified (diff)
comment:16 Changed 19 months ago by
 Commit changed from e879bfecb479d5290a006de25047495d7887d59b to c11d9cfa23ff9f77681a8f12742f68143eed4504
comment:17 Changed 19 months ago by
 Status changed from new to needs_review
I have just released the 3 libraries and updated the sage bindings accordingly. Sage test suite passes on my box. The ticket is ready for review. I may post later on some benchmarks advertising the performance gain from this update.
comment:18 Changed 19 months ago by
 Cc ghtimokau added
comment:19 Changed 19 months ago by
 Commit changed from c11d9cfa23ff9f77681a8f12742f68143eed4504 to 058bfb34c4ba2cc11ae3dcaca9f0bd2abaa1feb6
Branch pushed to git repo; I updated commit sha1. New commits:
058bfb3  update to minor version of LinBox

comment:20 Changed 19 months ago by
 Description modified (diff)
 Summary changed from Upgrade to givaro4.1.0 fflasffpack2.4.0 linbox1.6.0 to Upgrade to givaro4.1.0 fflasffpack2.4.0 linbox1.6.1
Update: I realized that there was a mismatch between the tar.gz on github and the published md5, sha1 and cksum checks. I updated the tar.gz of the three libraries to their actual values on github.
In addition, we fixed some minor issues in the linboxautoinstall and the dependency version checking system and therefore release 1.6.1 consequently. I have thus updated this ticket to linbox1.6.1 accordingly.
comment:21 Changed 19 months ago by
comment:22 Changed 19 months ago by
Thanks for the feedback.
 for the darwin bug, this is a bug in the testsuite file tests/testqlup.C which I just fixed upstream. It does not have any impact on the main library itself.
 for the aarch64 bug, it seems that some SIMD has been detected at configure time by reading hte CPUID (SSE2 enabled), but the definition of the
__m128i
type is absent. The header file with these definition should be included infflasffpack/utils/fflas_intrinsic.h
where I read thatarm_neon.h
gets included. However its seems that the intrinsics there are totally different from the intel/amd ones (I have no experience with ARM). I guess you will hit the same bugs building fflasffpack and givaro don't you? And they probably already existed with linbox1.5.2 fflasffpack2.3.2, givaro4.0.4. As an easy fix I suggest to force disable these SIMD at configure time (disablesse disablesse2
). If noone with experience on ARM and SIMD can help enabling it, I will then autodisable these simd in the configure scripts when ARM target is detected. Bug reported upstream https://github.com/linboxteam/linbox/issues/215
comment:23 Changed 19 months ago by
Ok scratch what I said about the aarch64 problem. I got confused between the 2 logs and did not realized that no SIMD was detected with the aarch64 build. The bug is much simpler, and I think I fixed it upstream. As I can not test it on an aarch64 system, could you confirm that it is now fixed? I built a prerelease https://ljk.imag.fr/membres/Clement.Pernet/soft/linbox1.6.2alpha0.tar.gz for you to test it. It should fix the two above issues.
comment:24 Changed 19 months ago by
Thanks for looking into this!
The tarball you linked wasn't able to run tests (apparently some files are missing: testsmithform.h: No such file or directory
). Instead I'm testing the latest commit on github.
This is running on our CI right now (I don't have direct access to aarch64/darwin myself). You can see the status in the "checks" on this GitHub PR: https://github.com/NixOS/nixpkgs/pull/61535
comment:25 Changed 19 months ago by
I can't believe this one did not get caught earlier. I fixed it upstream and prepared https://ljk.imag.fr/membres/Clement.Pernet/soft/linbox1.6.2alpha1.tar.gz accordingly in case it helps.
comment:26 Changed 19 months ago by
We usually build from the git repository anyways, so it doesn't make much difference.
The aarch64 build succeeded, but darwin is still failing: https://logs.nix.ci/?key=nixos/nixpkgs.61535&attempt_id=da868da30fdc45df98b07cb18ed6f867
comment:27 Changed 19 months ago by
 Commit changed from 058bfb34c4ba2cc11ae3dcaca9f0bd2abaa1feb6 to 4287e026ac4c8d1655b364e5be7a4309224dc7b9
Branch pushed to git repo; I updated commit sha1. New commits:
4287e02  upgrade to linbox1.6.2

comment:28 Changed 19 months ago by
 Description modified (diff)
 Summary changed from Upgrade to givaro4.1.0 fflasffpack2.4.0 linbox1.6.1 to Upgrade to givaro4.1.0 fflasffpack2.4.0 linbox1.6.2
I released linbox1.6.2 fixing the bugs raised by ghtimokau and updated the branch accordingly.
comment:29 Changed 19 months ago by
I can confirm that those are fixed, thank you!
comment:30 Changed 18 months ago by
 Description modified (diff)
comment:31 Changed 18 months ago by
 Description modified (diff)
comment:32 Changed 18 months ago by
Is someone who has already looked at it willing to set this to a positive review? Otherwise I will doublecheck things on my (ubuntu) machine and then flip it positive.
comment:33 Changed 18 months ago by
 Reviewers set to Timo Kaufmann
 Status changed from needs_review to positive_review
Thanks!
comment:34 Changed 18 months ago by
 Branch changed from u/cpernet/upgrade_to_givaro_4_1_0_fflas_ffpack_2_4_0_linbox_1_6_0 to 4287e026ac4c8d1655b364e5be7a4309224dc7b9
 Resolution set to fixed
 Status changed from positive_review to closed
comment:35 Changed 18 months ago by
 Commit 4287e026ac4c8d1655b364e5be7a4309224dc7b9 deleted
I was going to report that I had this issue testing linbox in gentoo
x86_64pclinuxgnug++ DHAVE_CONFIG_H I. I.. DLinBoxTestOnly O2 Wall g DNDEBUG U_LB_DEBUG g DNDEBUG U_LB_DEBUG I.. DARCH_X86_64=1 DOPENBLAS___64BIT__=1 DARCH_X86_64=1 DOPENBLAS___64BIT__=1 fopenmp DFFLAS_COMPILED DFFPACK_COMPILED fabiversion=6 I/usr/include/openblas march=native O2 pipe msse msse2 msse3 mssse3 msse4.1 msse4.2 mavx mavx2 mfma c o testserialization.o testserialization.C testserialization.C:32:10: fatal error: linbox/util/serialization.h: No such file or directory 32  #include "linbox/util/serialization.h"  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
I see that a fix has been committed in linbox https://github.com/linboxteam/linbox/commit/5a0aac2662969289c50fb9dec2fd2e597a276815 unfortunately it requires a new tarball to be completely fixed since the problem is that some files have not been included in the 1.6.2 tarball [and earlier probably]. What is the ETA for that?
comment:36 followup: ↓ 37 Changed 18 months ago by
comment:37 in reply to: ↑ 36 Changed 18 months ago by
Replying to cpernet:
These missing files do not impact the part of LinBox? used in Sage. The compilation failure is in the testsuite. I can release v1.6.3 of LinBox? very shortly if you think it should be fixed for the next sage release. I guess, it will happen in another ticket as this one is now closed.
Yes, I should have said it is in the test suite. I don't know, Volker may choose to reopen if it causes troubles with bots running spkgcheck
on packages.
comment:38 Changed 18 months ago by
 Resolution fixed deleted
 Status changed from closed to new
comment:39 Changed 18 months ago by
On 32bit the sage library doesn't build:
[sagelib8.8.beta7] build/cythonized/sage/libs/linbox/linbox_flint_interface.cpp: In function ‘long unsigned int __pyx_f_4sage_4libs_6linbox_22linbox_flint_interface_linbox_fmpz_mat_rank(fmpz_mat_struct*)’: [sagelib8.8.beta7] build/cythonized/sage/libs/linbox/linbox_flint_interface.cpp:1792:50: error: no matching function for call to ‘rank(long unsigned int&, LinBox::DenseMatrix<Givaro::ZRing<Givaro::Integer> >&)’ [sagelib8.8.beta7] (void)(LinBox::rank(__pyx_v_r, (__pyx_v_LBA[0]))); [sagelib8.8.beta7] ^ [sagelib8.8.beta7] In file included from /home/buildbot/slave/sage_git/build/local/include/linbox/algorithms/bbcharpoly.h:47:0, [sagelib8.8.beta7] from /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/charpoly.h:34, [sagelib8.8.beta7] from build/cythonized/sage/libs/linbox/linbox_flint_interface.cpp:1233: [sagelib8.8.beta7] /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/rank.h:75:17: note: candidate: template<class Blackbox, class Method, class DomainCategory> size_t& LinBox::rank(size_t&, const Blackbox&, const DomainCategory&, const Method&) [sagelib8.8.beta7] inline size_t &rank (size_t &r, const Blackbox &A, [sagelib8.8.beta7] ^~~~ [sagelib8.8.beta7] /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/rank.h:75:17: note: template argument deduction/substitution failed: [sagelib8.8.beta7] build/cythonized/sage/libs/linbox/linbox_flint_interface.cpp:1792:50: note: candidate expects 4 arguments, 2 provided [sagelib8.8.beta7] (void)(LinBox::rank(__pyx_v_r, (__pyx_v_LBA[0]))); [sagelib8.8.beta7] ^ [sagelib8.8.beta7] In file included from /home/buildbot/slave/sage_git/build/local/include/linbox/algorithms/bbcharpoly.h:47:0, [sagelib8.8.beta7] from /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/charpoly.h:34, [sagelib8.8.beta7] from build/cythonized/sage/libs/linbox/linbox_flint_interface.cpp:1233: [sagelib8.8.beta7] /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/rank.h:92:17: note: candidate: template<class Blackbox> size_t& LinBox::rank(size_t&, const Blackbox&) [sagelib8.8.beta7] inline size_t &rank (size_t &r, const Blackbox &A) [sagelib8.8.beta7] ^~~~ [sagelib8.8.beta7] /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/rank.h:92:17: note: template argument deduction/substitution failed: [sagelib8.8.beta7] build/cythonized/sage/libs/linbox/linbox_flint_interface.cpp:1792:50: note: cannot convert ‘__pyx_v_r’ (type ‘long unsigned int’) to type ‘size_t& {aka unsigned int&}’ [sagelib8.8.beta7] (void)(LinBox::rank(__pyx_v_r, (__pyx_v_LBA[0]))); [sagelib8.8.beta7] ^ [sagelib8.8.beta7] In file included from /home/buildbot/slave/sage_git/build/local/include/linbox/algorithms/bbcharpoly.h:47:0, [sagelib8.8.beta7] from /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/charpoly.h:34, [sagelib8.8.beta7] from build/cythonized/sage/libs/linbox/linbox_flint_interface.cpp:1233: [sagelib8.8.beta7] /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/rank.h:109:17: note: candidate: template<class Blackbox, class Method> size_t& LinBox::rank(size_t&, const Blackbox&, const Method&) [sagelib8.8.beta7] inline size_t &rank (size_t &r, const Blackbox &A, [sagelib8.8.beta7] ^~~~ [sagelib8.8.beta7] /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/rank.h:109:17: note: template argument deduction/substitution failed: [sagelib8.8.beta7] build/cythonized/sage/libs/linbox/linbox_flint_interface.cpp:1792:50: note: candidate expects 3 arguments, 2 provided [sagelib8.8.beta7] (void)(LinBox::rank(__pyx_v_r, (__pyx_v_LBA[0]))); [sagelib8.8.beta7] ^ [sagelib8.8.beta7] In file included from /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/rank.h:131:0, [sagelib8.8.beta7] from /home/buildbot/slave/sage_git/build/local/include/linbox/algorithms/bbcharpoly.h:47, [sagelib8.8.beta7] from /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/charpoly.h:34, [sagelib8.8.beta7] from build/cythonized/sage/libs/linbox/linbox_flint_interface.cpp:1233: [sagelib8.8.beta7] /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/rank.inl:44:17: note: candidate: template<class Blackbox> size_t& LinBox::rank(size_t&, const Blackbox&, const LinBox::RingCategories::ModularTag&, const LinBox::Method::Auto&) [sagelib8.8.beta7] inline size_t &rank (size_t &r, [sagelib8.8.beta7] ^~~~ [sagelib8.8.beta7] /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/rank.inl:44:17: note: template argument deduction/substitution failed: [sagelib8.8.beta7] build/cythonized/sage/libs/linbox/linbox_flint_interface.cpp:1792:50: note: candidate expects 4 arguments, 2 provided [sagelib8.8.beta7] (void)(LinBox::rank(__pyx_v_r, (__pyx_v_LBA[0]))); [sagelib8.8.beta7] ^ [sagelib8.8.beta7] In file included from /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/rank.h:131:0, [sagelib8.8.beta7] from /home/buildbot/slave/sage_git/build/local/include/linbox/algorithms/bbcharpoly.h:47, [sagelib8.8.beta7] from /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/charpoly.h:34, [sagelib8.8.beta7] from build/cythonized/sage/libs/linbox/linbox_flint_interface.cpp:1233: [sagelib8.8.beta7] /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/rank.inl:60:17: note: candidate: template<class Blackbox> size_t& LinBox::rank(size_t&, const Blackbox&, const LinBox::RingCategories::ModularTag&, const LinBox::Method::Elimination&) [sagelib8.8.beta7] inline size_t &rank (size_t &r, [sagelib8.8.beta7] ^~~~ [sagelib8.8.beta7] /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/rank.inl:60:17: note: template argument deduction/substitution failed: [sagelib8.8.beta7] build/cythonized/sage/libs/linbox/linbox_flint_interface.cpp:1792:50: note: candidate expects 4 arguments, 2 provided [sagelib8.8.beta7] (void)(LinBox::rank(__pyx_v_r, (__pyx_v_LBA[0]))); [sagelib8.8.beta7] ^ [sagelib8.8.beta7] In file included from /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/rank.h:131:0, [sagelib8.8.beta7] from /home/buildbot/slave/sage_git/build/local/include/linbox/algorithms/bbcharpoly.h:47, [sagelib8.8.beta7] from /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/charpoly.h:34, [sagelib8.8.beta7] from build/cythonized/sage/libs/linbox/linbox_flint_interface.cpp:1233: [sagelib8.8.beta7] /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/rank.inl:75:17: note: candidate: template<class Field, class Vector> size_t& LinBox::rank(size_t&, const LinBox::SparseMatrix<_Field, _Storage>&, const LinBox::RingCategories::ModularTag&, const LinBox::Method::Elimination&) [sagelib8.8.beta7] inline size_t &rank (size_t &r, [sagelib8.8.beta7] ^~~~ [sagelib8.8.beta7] /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/rank.inl:75:17: note: template argument deduction/substitution failed: [sagelib8.8.beta7] build/cythonized/sage/libs/linbox/linbox_flint_interface.cpp:1792:50: note: ‘LinBox::DenseMatrix<Givaro::ZRing<Givaro::Integer> > {aka LinBox::BlasMatrix<Givaro::ZRing<Givaro::Integer>, std::vector<Givaro::Integer> >}’ is not derived from ‘const LinBox::SparseMatrix<_Field, _Storage>’ [sagelib8.8.beta7] (void)(LinBox::rank(__pyx_v_r, (__pyx_v_LBA[0]))); [sagelib8.8.beta7] ^ [sagelib8.8.beta7] In file included from /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/rank.h:131:0, [sagelib8.8.beta7] from /home/buildbot/slave/sage_git/build/local/include/linbox/algorithms/bbcharpoly.h:47, [sagelib8.8.beta7] from /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/charpoly.h:34, [sagelib8.8.beta7] from build/cythonized/sage/libs/linbox/linbox_flint_interface.cpp:1233: [sagelib8.8.beta7] /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/rank.inl:503:17: note: candidate: template<class Blackbox> size_t& LinBox::rank(size_t&, const Blackbox&, const LinBox::RingCategories::ModularTag&, const LinBox::Method::Blackbox&) [sagelib8.8.beta7] inline size_t &rank (size_t &r, [sagelib8.8.beta7] ^~~~ [sagelib8.8.beta7] /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/rank.inl:503:17: note: template argument deduction/substitution failed: [sagelib8.8.beta7] build/cythonized/sage/libs/linbox/linbox_flint_interface.cpp:1792:50: note: candidate expects 4 arguments, 2 provided [sagelib8.8.beta7] (void)(LinBox::rank(__pyx_v_r, (__pyx_v_LBA[0]))); [sagelib8.8.beta7] ^ [sagelib8.8.beta7] In file included from /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/rank.h:131:0, [sagelib8.8.beta7] from /home/buildbot/slave/sage_git/build/local/include/linbox/algorithms/bbcharpoly.h:47, [sagelib8.8.beta7] from /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/charpoly.h:34, [sagelib8.8.beta7] from build/cythonized/sage/libs/linbox/linbox_flint_interface.cpp:1233: [sagelib8.8.beta7] /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/rank.inl:93:17: note: candidate: template<class Blackbox> size_t& LinBox::rank(size_t&, const Blackbox&, const LinBox::RingCategories::ModularTag&, const LinBox::Method::Wiedemann&) [sagelib8.8.beta7] inline size_t &rank (size_t &res, [sagelib8.8.beta7] ^~~~ [sagelib8.8.beta7] /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/rank.inl:93:17: note: template argument deduction/substitution failed: [sagelib8.8.beta7] build/cythonized/sage/libs/linbox/linbox_flint_interface.cpp:1792:50: note: candidate expects 4 arguments, 2 provided [sagelib8.8.beta7] (void)(LinBox::rank(__pyx_v_r, (__pyx_v_LBA[0]))); [sagelib8.8.beta7] ^ [sagelib8.8.beta7] In file included from /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/rank.h:131:0, [sagelib8.8.beta7] from /home/buildbot/slave/sage_git/build/local/include/linbox/algorithms/bbcharpoly.h:47, [sagelib8.8.beta7] from /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/charpoly.h:34, [sagelib8.8.beta7] from build/cythonized/sage/libs/linbox/linbox_flint_interface.cpp:1233: [sagelib8.8.beta7] /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/rank.inl:388:17: note: candidate: template<class Field> size_t& LinBox::rank(size_t&, const LinBox::SparseMatrix<_Field, LinBox::SparseMatrixFormat::SparseSeq>&, const LinBox::RingCategories::ModularTag&, const LinBox::Method::SparseElimination&) [sagelib8.8.beta7] inline size_t &rank (size_t &r, [sagelib8.8.beta7] ^~~~ [sagelib8.8.beta7] /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/rank.inl:388:17: note: template argument deduction/substitution failed: [sagelib8.8.beta7] build/cythonized/sage/libs/linbox/linbox_flint_interface.cpp:1792:50: note: ‘LinBox::DenseMatrix<Givaro::ZRing<Givaro::Integer> > {aka LinBox::BlasMatrix<Givaro::ZRing<Givaro::Integer>, std::vector<Givaro::Integer> >}’ is not derived from ‘const LinBox::SparseMatrix<_Field, LinBox::SparseMatrixFormat::SparseSeq>’ [sagelib8.8.beta7] (void)(LinBox::rank(__pyx_v_r, (__pyx_v_LBA[0]))); [sagelib8.8.beta7] ^ [sagelib8.8.beta7] In file included from /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/rank.h:131:0, [sagelib8.8.beta7] from /home/buildbot/slave/sage_git/build/local/include/linbox/algorithms/bbcharpoly.h:47, [sagelib8.8.beta7] from /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/charpoly.h:34, [sagelib8.8.beta7] from build/cythonized/sage/libs/linbox/linbox_flint_interface.cpp:1233: [sagelib8.8.beta7] /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/rank.inl:400:17: note: candidate: template<class Blackbox, class DomainCategory> size_t& LinBox::rank(size_t&, const Blackbox&, const DomainCategory&, const LinBox::Method::SparseElimination&) [sagelib8.8.beta7] inline size_t &rank (size_t &r, [sagelib8.8.beta7] ^~~~ [sagelib8.8.beta7] /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/rank.inl:400:17: note: template argument deduction/substitution failed: [sagelib8.8.beta7] build/cythonized/sage/libs/linbox/linbox_flint_interface.cpp:1792:50: note: candidate expects 4 arguments, 2 provided [sagelib8.8.beta7] (void)(LinBox::rank(__pyx_v_r, (__pyx_v_LBA[0]))); [sagelib8.8.beta7] ^ [sagelib8.8.beta7] In file included from /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/rank.h:131:0, [sagelib8.8.beta7] from /home/buildbot/slave/sage_git/build/local/include/linbox/algorithms/bbcharpoly.h:47, [sagelib8.8.beta7] from /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/charpoly.h:34, [sagelib8.8.beta7] from build/cythonized/sage/libs/linbox/linbox_flint_interface.cpp:1233: [sagelib8.8.beta7] /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/rank.inl:413:17: note: candidate: template<class Blackbox> size_t& LinBox::rank(size_t&, const Blackbox&, const LinBox::RingCategories::ModularTag&, const LinBox::Method::DenseElimination&) [sagelib8.8.beta7] inline size_t &rank (size_t &r, [sagelib8.8.beta7] ^~~~ [sagelib8.8.beta7] /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/rank.inl:413:17: note: template argument deduction/substitution failed: [sagelib8.8.beta7] build/cythonized/sage/libs/linbox/linbox_flint_interface.cpp:1792:50: note: candidate expects 4 arguments, 2 provided [sagelib8.8.beta7] (void)(LinBox::rank(__pyx_v_r, (__pyx_v_LBA[0]))); [sagelib8.8.beta7] ^ [sagelib8.8.beta7] In file included from /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/rank.h:131:0, [sagelib8.8.beta7] from /home/buildbot/slave/sage_git/build/local/include/linbox/algorithms/bbcharpoly.h:47, [sagelib8.8.beta7] from /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/charpoly.h:34, [sagelib8.8.beta7] from build/cythonized/sage/libs/linbox/linbox_flint_interface.cpp:1233: [sagelib8.8.beta7] /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/rank.inl:458:17: note: candidate: template<class Blackbox, class MyMethod> size_t& LinBox::rank(size_t&, const Blackbox&, const LinBox::RingCategories::IntegerTag&, const MyMethod&) [sagelib8.8.beta7] inline size_t &rank (size_t &r, [sagelib8.8.beta7] ^~~~ [sagelib8.8.beta7] /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/rank.inl:458:17: note: template argument deduction/substitution failed: [sagelib8.8.beta7] build/cythonized/sage/libs/linbox/linbox_flint_interface.cpp:1792:50: note: candidate expects 4 arguments, 2 provided [sagelib8.8.beta7] (void)(LinBox::rank(__pyx_v_r, (__pyx_v_LBA[0]))); [sagelib8.8.beta7] ^ [sagelib8.8.beta7] In file included from /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/rank.h:131:0, [sagelib8.8.beta7] from /home/buildbot/slave/sage_git/build/local/include/linbox/algorithms/bbcharpoly.h:47, [sagelib8.8.beta7] from /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/charpoly.h:34, [sagelib8.8.beta7] from build/cythonized/sage/libs/linbox/linbox_flint_interface.cpp:1233: [sagelib8.8.beta7] /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/rank.inl:468:17: note: candidate: template<class Blackbox, class Method> size_t& LinBox::rank(size_t&, const Blackbox&, const LinBox::RingCategories::RationalTag&, const Method&) [sagelib8.8.beta7] inline size_t &rank (size_t &r, [sagelib8.8.beta7] ^~~~ [sagelib8.8.beta7] /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/rank.inl:468:17: note: template argument deduction/substitution failed: [sagelib8.8.beta7] build/cythonized/sage/libs/linbox/linbox_flint_interface.cpp:1792:50: note: candidate expects 4 arguments, 2 provided [sagelib8.8.beta7] (void)(LinBox::rank(__pyx_v_r, (__pyx_v_LBA[0]))); [sagelib8.8.beta7] ^ [sagelib8.8.beta7] In file included from /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/rank.h:131:0, [sagelib8.8.beta7] from /home/buildbot/slave/sage_git/build/local/include/linbox/algorithms/bbcharpoly.h:47, [sagelib8.8.beta7] from /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/charpoly.h:34, [sagelib8.8.beta7] from build/cythonized/sage/libs/linbox/linbox_flint_interface.cpp:1233: [sagelib8.8.beta7] /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/rank.inl:483:17: note: candidate: template<class Blackbox> size_t& LinBox::rank(size_t&, const Blackbox&, const LinBox::RingCategories::RationalTag&, const LinBox::Method::SparseElimination&) [sagelib8.8.beta7] inline size_t &rank (size_t &r, [sagelib8.8.beta7] ^~~~ [sagelib8.8.beta7] /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/rank.inl:483:17: note: template argument deduction/substitution failed: [sagelib8.8.beta7] build/cythonized/sage/libs/linbox/linbox_flint_interface.cpp:1792:50: note: candidate expects 4 arguments, 2 provided [sagelib8.8.beta7] (void)(LinBox::rank(__pyx_v_r, (__pyx_v_LBA[0])));
comment:40 Changed 18 months ago by
You may as well get a linbox 1.6.3 in at the same time, me and the other distros that look at testsuite results would be very grateful to have a working testsuite.
comment:41 Changed 18 months ago by
 Branch changed from 4287e026ac4c8d1655b364e5be7a4309224dc7b9 to u/cpernet/4287e026ac4c8d1655b364e5be7a4309224dc7b9
comment:42 followup: ↓ 43 Changed 18 months ago by
 Commit set to bd8b2a0e3c84eaf05db55687b43503457ad9deca
I am a little confused, the testsuite runs fine on nixos (64 bit). Is it maybe because we fetch directly from the github tag?
Last 10 new commits:
e879bfe  Merge branch 'develop' into t/26932/upgrade_to_givaro_4_1_0_fflas_ffpack_2_4_0_linbox_1_6_0

4a60894  new api for FFPACK::Det

2a99383  fix gfqDom interface

c4f97e1  fix new echelon API in LinBox

eb00dde  update to new echelon API

fbbd37a  update to new Echelon API

c11d9cf  update checksum to the freshly cut releases

058bfb3  update to minor version of LinBox

4287e02  upgrade to linbox1.6.2

bd8b2a0  fix 32 compilation failure for linboxrank

comment:43 in reply to: ↑ 42 Changed 18 months ago by
Replying to ghtimokau:
I am a little confused, the testsuite runs fine on nixos (64 bit). Is it maybe because we fetch directly from the github tag?
Yes. I am using the tarball generated by make sdist
and which is the one linked in the ticket description. A git checkout will test fine but not the generated tarball.
comment:44 Changed 18 months ago by
 Commit changed from bd8b2a0e3c84eaf05db55687b43503457ad9deca to ddacbf01a64e7830f2ad03f13200c3edff4f0dc5
Branch pushed to git repo; I updated commit sha1. New commits:
ddacbf0  upgrade to linbox1.6.3 fflasffpack2.4.1 and givaro4.1.1

comment:45 Changed 18 months ago by
 Description modified (diff)
 Summary changed from Upgrade to givaro4.1.0 fflasffpack2.4.0 linbox1.6.2 to Upgrade to givaro4.1.1 fflasffpack2.4.1 linbox1.6.3
I just released new minor revisions of linbox (1.6.3) fflasffpack (2.4.1) and givaro (4.1.1),
 taking into account the above problems and fixing other minor issues such as
 including the README.md in the distro,
 fixing fflasffpack API for parallel calls from SageMath (in preparation of #27444).
I updated the current branch and ticket accordingly, and it is now again ready for review.
comment:46 Changed 18 months ago by
 Status changed from new to needs_review
comment:47 Changed 18 months ago by
 Commit changed from ddacbf01a64e7830f2ad03f13200c3edff4f0dc5 to f2d1f29dcf5860053d8861a516058cc48e3f5bbb
Branch pushed to git repo; I updated commit sha1. New commits:
f2d1f29  upgrade to fflasffpack2.4.2 fixing testsuite errors with echlon forms

comment:48 Changed 18 months ago by
 Commit changed from f2d1f29dcf5860053d8861a516058cc48e3f5bbb to 784815648e9e8bac9c81e6336014f0021d91f853
Branch pushed to git repo; I updated commit sha1. New commits:
7848156  upgrade do fflasffpack 2.4.3 fixing an error in charpoly autotune

comment:49 Changed 18 months ago by
 Description modified (diff)
comment:50 Changed 18 months ago by
 Description modified (diff)
comment:51 Changed 18 months ago by
I just did 2 last fixes of some bugs which shamelessly went through the prerelease testing. No more fixes are expected, and the ticket is still open for review, with fflasffpack2.4.3 version (I updated the branch and ticket description accordingly).
comment:52 Changed 18 months ago by
 Summary changed from Upgrade to givaro4.1.1 fflasffpack2.4.1 linbox1.6.3 to Upgrade to givaro4.1.1 fflasffpack2.4.3 linbox1.6.3
comment:53 Changed 18 months ago by
Testsuite of givaro, fflasffpack, linbox passes for me on Linux64, osx64 on conda. Any chance we could get this ticket tested and reviewed soon?
comment:54 Changed 17 months ago by
 Status changed from needs_review to positive_review
comment:55 Changed 17 months ago by
 Milestone changed from sage8.8 to sage8.9
comment:56 Changed 17 months ago by
 Status changed from positive_review to needs_work
Doesn't build on 32bit:
Debian 10 32bit:
[sagelib8.9.beta0] [ 5/15] gcc fnostrictaliasing g O2 DNDEBUG g fwrapv O3 Wall Wnounused fPIC I./sage/libs/flint I./sage/cpython I./sage/ext I./sage/libs/ntl I/var/lib/buildbot/slave/sage_git/build/local/lib/python2.7/sitepackages/cysignals I./sage/rings I/var/lib/buildbot/slave/sage_git/build/local/lib/python2.7/sitepackages/cypari2 I./sage/rings/finite_rings Isage/cpython I/var/lib/buildbot/slave/sage_git/build/local/include I/var/lib/buildbot/slave/sage_git/build/src I/var/lib/buildbot/slave/sage_git/build/src/sage/ext I/var/lib/buildbot/slave/sage_git/build/local/include/python2.7 I/var/lib/buildbot/slave/sage_git/build/local/lib/python2.7/sitepackages/numpy/core/include Ibuild/cythonized I/var/lib/buildbot/slave/sage_git/build/local/include/python2.7 c build/cythonized/sage/matrix/matrix_integer_dense.c o build/temp.linuxi6862.7/build/cythonized/sage/matrix/matrix_integer_dense.o fnostrictaliasing DCYTHON_CLINE_IN_TRACEBACK=1 std=c99 g fPIC Wall O2 mmmx msse msse2 msse3 I/var/lib/buildbot/slave/sage_git/build/local/include/m4ri I/var/lib/buildbot/slave/sage_git/build/local/include [sagelib8.9.beta0] In file included from /var/lib/buildbot/slave/sage_git/build/local/include/recint/ruint.h:53, [sagelib8.9.beta0] from /var/lib/buildbot/slave/sage_git/build/local/include/givaro/modularruint.h:14, [sagelib8.9.beta0] from /var/lib/buildbot/slave/sage_git/build/local/include/givaro/modular.h:26, [sagelib8.9.beta0] from build/cythonized/sage/libs/linbox/linbox_flint_interface.cpp:722: [sagelib8.9.beta0] /var/lib/buildbot/slave/sage_git/build/local/include/recint/rudiv.h: In member function ‘Givaro::Modular<_Storage_t, _Compute_t, typename std::enable_if<(is_same_ruint< <templateparameter11>, <templateparameter12> >::value  is_smaller_ruint< <templateparameter11>, <templateparameter12> >::value)>::type>::Element& Givaro::Modular<_Storage_t, _Compute_t, typename std::enable_if<(is_same_ruint< <templateparameter11>, <templateparameter12> >::value  is_smaller_ruint< <templateparameter11>, <templateparameter12> >::value)>::type>::init(Givaro::Modular<_Storage_t, _Compute_t, typename std::enable_if<(is_same_ruint< <templateparameter11>, <templateparameter12> >::value  is_smaller_ruint< <templateparameter11>, <templateparameter12> >::value)>::type>::Element&, const Givaro::Integer&) const [with _Storage_t = RecInt::ruint<7>; _Compute_t = RecInt::ruint<8>]’: [sagelib8.9.beta0] /var/lib/buildbot/slave/sage_git/build/local/include/recint/rudiv.h:214:65: error: inconsistent operand constraints in an ‘asm’ [sagelib8.9.beta0] udiv_qrnnd(q.Value, c, a2.Value, a1.Value, b1.Value); [sagelib8.9.beta0] ^ [sagelib8.9.beta0] /var/lib/buildbot/slave/sage_git/build/local/include/recint/rudiv.h:214:65: error: inconsistent operand constraints in an ‘asm’ [sagelib8.9.beta0] udiv_qrnnd(q.Value, c, a2.Value, a1.Value, b1.Value); [sagelib8.9.beta0] ^ [sagelib8.9.beta0] /var/lib/buildbot/slave/sage_git/build/local/include/recint/rudiv.h:222:45: error: inconsistent operand constraints in an ‘asm’ [sagelib8.9.beta0] umul_ppmm(d1, d0, q.Value, b0.Value); [sagelib8.9.beta0] ^ [sagelib8.9.beta0] /var/lib/buildbot/slave/sage_git/build/local/include/recint/rudiv.h:222:45: error: inconsistent operand constraints in an ‘asm’ [sagelib8.9.beta0] /var/lib/buildbot/slave/sage_git/build/local/include/recint/rudiv.h:222:45: error: inconsistent operand constraints in an ‘asm’ [sagelib8.9.beta0] umul_ppmm(d1, d0, q.Value, b0.Value); [sagelib8.9.beta0] ^ [sagelib8.9.beta0] /var/lib/buildbot/slave/sage_git/build/local/include/recint/rudiv.h:222:45: error: inconsistent operand constraints in an ‘asm’ [sagelib8.9.beta0] [ 6/15] gcc fnostrictaliasing g O2 DNDEBUG g fwrapv O3 Wall Wnounused fPIC I./sage/cpython I./sage/ext I./sage/libs/flint I./sage/libs/ntl I/var/lib/buildbot/slave/sage_git/build/local/lib/python2.7/sitepackages/cysignals Isage/libs/flint I/var/lib/buildbot/slave/sage_git/build/local/include I/var/lib/buildbot/slave/sage_git/build/src I/var/lib/buildbot/slave/sage_git/build/src/sage/ext I/var/lib/buildbot/slave/sage_git/build/local/include/python2.7 I/var/lib/buildbot/slave/sage_git/build/local/lib/python2.7/sitepackages/numpy/core/include Ibuild/cythonized I/var/lib/buildbot/slave/sage_git/build/local/include/python2.7 c build/cythonized/sage/matrix/matrix_integer_sparse.cpp o build/temp.linuxi6862.7/build/cythonized/sage/matrix/matrix_integer_sparse.o fnostrictaliasing DCYTHON_CLINE_IN_TRACEBACK=1 O2 Wall g DNDEBUG U_LB_DEBUG DDISABLE_COMMENTATOR DFFLAS_COMPILED DFFPACK_COMPILED std=gnu++11 mfpmath=sse fabiversion=6 I/var/lib/buildbot/slave/sage_git/build/local/include [sagelib8.9.beta0] cc1plus: warning: SSE instruction set disabled, using 387 arithmetics [sagelib8.9.beta0] error: command 'gcc' failed with exit status 1 [sagelib8.9.beta0] make[4]: *** [Makefile:33: sage] Error 1
Debian 8, 9 32bit:
[sagelib8.9.beta0] [ 6/13] gcc fnostrictaliasing g O2 DNDEBUG g fwrapv O3 Wall Wnounused fPIC I./sage/cpython I./sage/ext I./sage/libs/flint I./sage/libs/ntl I/home/buildbot/slave/sage_git/build/local/lib/python2.7/sitepackages/cysignals Isage/libs/flint I/home/buildbot/slave/sage_git/build/local/include I/home/buildbot/slave/sage_git/build/src I/home/buildbot/slave/sage_git/build/src/sage/ext I/home/buildbot/slave/sage_git/build/local/include/python2.7 I/home/buildbot/slave/sage_git/build/local/lib/python2.7/sitepackages/numpy/core/include Ibuild/cythonized I/home/buildbot/slave/sage_git/build/local/include/python2.7 c build/cythonized/sage/matrix/matrix_integer_sparse.cpp o build/temp.linuxi6862.7/build/cythonized/sage/matrix/matrix_integer_sparse.o fnostrictaliasing DCYTHON_CLINE_IN_TRACEBACK=1 O2 Wall g DNDEBUG U_LB_DEBUG DDISABLE_COMMENTATOR DFFLAS_COMPILED DFFPACK_COMPILED fpermissive std=gnu++11 mfpmath=sse fabiversion=6 I/home/buildbot/slave/sage_git/build/local/include [sagelib8.9.beta0] build/cythonized/sage/matrix/matrix_integer_sparse.cpp:1:0: warning: SSE instruction set disabled, using 387 arithmetics [sagelib8.9.beta0] /* Generated by Cython 0.29.10 */ [sagelib8.9.beta0] ^ [sagelib8.9.beta0] build/cythonized/sage/matrix/matrix_integer_sparse.cpp: In function ‘PyObject* __pyx_pf_4sage_6matrix_21matrix_integer_sparse_21Matrix_integer_sparse_30_rank_linbox(__pyx_obj_4sage_6matrix_21matrix_integer_sparse_Matrix_integer_sparse*)’: [sagelib8.9.beta0] build/cythonized/sage/matrix/matrix_integer_sparse.cpp:7765:48: error: no matching function for call to ‘rank(long unsigned int&, LinBox::SparseMatrix<Givaro::ZRing<Givaro::Integer> >&)’ [sagelib8.9.beta0] (void)(LinBox::rank(__pyx_v_r, (__pyx_v_M[0]))); [sagelib8.9.beta0] ^ [sagelib8.9.beta0] build/cythonized/sage/matrix/matrix_integer_sparse.cpp:7765:48: note: candidates are: [sagelib8.9.beta0] In file included from /home/buildbot/slave/sage_git/build/local/include/linbox/algorithms/bbcharpoly.h:47:0, [sagelib8.9.beta0] from /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/charpoly.h:34, [sagelib8.9.beta0] from build/cythonized/sage/matrix/matrix_integer_sparse.cpp:4384: [sagelib8.9.beta0] /home/buildbot/slave/sage_git/build/local/include/linbox/solutions/rank.h:75:17: note: template<class Blackbox, class Method, class DomainCategory> size_t& LinBox::rank(size_t&, const Blackbox&, const DomainCategory&, const Method&) [sagelib8.9.beta0] inline size_t &rank (size_t &r, const Blackbox &A, [sagelib8.9.beta0] ^
comment:57 Changed 17 months ago by
 Commit changed from 784815648e9e8bac9c81e6336014f0021d91f853 to 43e1b7f236db20e098450953c90e368ebdcc8dcc
Branch pushed to git repo; I updated commit sha1. New commits:
43e1b7f  fix ulong>size_t bug in 32 bits debian 8,9

comment:58 Changed 17 months ago by
I pushed a fix to the second bug (size_t vs unsigned long in calling LinBox::rank
). I'm still waiting for a build of sage on a 32 bit ubuntu to finish, to confirm that the bug is no longer there.
As for the first bug, do you confirm that it only shows up in Debian 10 ?
I have no clue what is going on there, and can not reproduce it as I don't have a 32 bit Debian at hand. Looking at other instances of the bug, it seems related to asm code explicitly using some registers (like %ebx) that gcc reserves for PIC offsets. Altough the umul_ppmm
indeed uses some asm code (in reclonglong.h) in does not use %ebx explicitly, and more surprisingly, the other error, for udiv_qrnd
does not involve any asm code.
This part of givaro's code is not used in Sage, so an easy fix is to comment out line 26 of givaro/src/kernel/ring/modular.h
.
comment:59 Changed 17 months ago by
 Commit changed from 43e1b7f236db20e098450953c90e368ebdcc8dcc to b0221421819f534f72a7282fe842737de9fa9702
Branch pushed to git repo; I updated commit sha1. New commits:
b022142  fix ulong > size_t

comment:60 Changed 17 months ago by
I added a fix to another size_t issue. I confirm that the current branch compiles and passes the testsuite on a 32 bit ubuntu xenial I could have access to.
comment:61 Changed 17 months ago by
Yes, I get the error only on Debian 10 32bit. Thats gcc 8.3.0. My guess would be that all sufficiently new compiler versions fail. The next oldest 32bit machine is Ubuntu 18 / gcc 7.3.0 and that passes.
I don't think the error is about EBX, you are free to use it in inline asm as long as you restore it (at least on gcc >=5 and as long as you don't make function calls / use the PLT).
I haven't tried to figure out which of the many inline asm implementations is selected but various do specify constraints "=&r" (sl)
which maybe be inconsistent (presumably meaning unsatisfyable).
comment:62 Changed 17 months ago by
 Branch changed from u/cpernet/4287e026ac4c8d1655b364e5be7a4309224dc7b9 to u/isuruf/26932
 Commit changed from b0221421819f534f72a7282fe842737de9fa9702 to 8dbef6857366344bcff0b8f789e59fd4b183d23e
 Status changed from needs_work to needs_review
comment:63 Changed 17 months ago by
 Status changed from needs_review to positive_review
Let's try it again.
comment:64 Changed 17 months ago by
Ok, I finally got some time to get back to this problem. I doubt the fix above will work (I tried on a 32bit box and it still fails, as recint is also included in fflasffpack).
The problem is that two copies of the file longlong.h from GNU GMP are shipped: one in flint (longlong.h) and one in givaro (reclonglong.h). Flint has stripped down the file to a minimalistic set of definitions while givaro's version is the complete original one.
The problem is that these file define macros in the global namespace and conflict one with the other. I therefore added a #ifdef add_ssaaaa
in givaro's reclonglong.h to yield whenever flint's longlong.h was already included.
However, givaro's forces the NO_ASM macro which skips all ASM dependent defines and makes the calls to umul_ppmm
and other also work on i386 even when passed 64 bits ints. However, flint longlong.h removed the NO_ASM section, and therefore compiles the ASM variants of these routines, thus triggering the compilation failure.
I will fix givaro's reclonglong.h
so that it undefs the symbols conflicting with flint and redefines them in its own way.
comment:65 Changed 17 months ago by
 Status changed from positive_review to needs_work
Fix doesn't work, for the record. Still fails with the
[sagelib8.9.beta2] In file included from /var/lib/buildbot/slave/sage_git/build/local/include/recint/ruint.h:53:0, [sagelib8.9.beta2] from /var/lib/buildbot/slave/sage_git/build/local/include/givaro/modularruint.h:14, [sagelib8.9.beta2] from /var/lib/buildbot/slave/sage_git/build/local/include/givaro/modular.h:26, [sagelib8.9.beta2] from /var/lib/buildbot/slave/sage_git/build/local/include/linbox/field/fieldtraits.h:30, [sagelib8.9.beta2] from /var/lib/buildbot/slave/sage_git/build/local/include/linbox/field/gf2.h:40, [sagelib8.9.beta2] from /var/lib/buildbot/slave/sage_git/build/local/include/linbox/vector/streamgf2.h:77, [sagelib8.9.beta2] from /var/lib/buildbot/slave/sage_git/build/local/include/linbox/vector/stream.h:872, [sagelib8.9.beta2] from /var/lib/buildbot/slave/sage_git/build/local/include/linbox/matrix/densematrix/blasmatrix.h:42, [sagelib8.9.beta2] from /var/lib/buildbot/slave/sage_git/build/local/include/linbox/matrix/densematrix.h:79, [sagelib8.9.beta2] from build/cythonized/sage/libs/linbox/linbox_flint_interface.cpp:727: [sagelib8.9.beta2] /var/lib/buildbot/slave/sage_git/build/local/include/recint/rudiv.h: In member function ‘Givaro::Modular<_Storage_t, _Compute_t, typename std::enable_if<(is_same_ruint< <templateparameter11>, <templateparameter12> >::value  is_smaller_ruint< <templateparameter11>, <templateparameter12> >::value)>::type>::Element& Givaro::Modular<_Storage_t, _Compute_t, typename std::enable_if<(is_same_ruint< <templateparameter11>, <templateparameter12> >::value  is_smaller_ruint< <templateparameter11>, <templateparameter12> >::value)>::type>::init(Givaro::Modular<_Storage_t, _Compute_t, typename std::enable_if<(is_same_ruint< <templateparameter11>, <templateparameter12> >::value  is_smaller_ruint< <templateparameter11>, <templateparameter12> >::value)>::type>::Element&, const Givaro::Integer&) const [with _Storage_t = RecInt::ruint<7>; _Compute_t = RecInt::ruint<8>]’: [sagelib8.9.beta2] /var/lib/buildbot/slave/sage_git/build/local/include/recint/rudiv.h:214:65: error: inconsistent operand constraints in an ‘asm’ [sagelib8.9.beta2] udiv_qrnnd(q.Value, c, a2.Value, a1.Value, b1.Value); [sagelib8.9.beta2] ^ [sagelib8.9.beta2] /var/lib/buildbot/slave/sage_git/build/local/include/recint/rudiv.h:214:65: error: inconsistent operand constraints in an ‘asm’ [sagelib8.9.beta2] udiv_qrnnd(q.Value, c, a2.Value, a1.Value, b1.Value); [sagelib8.9.beta2] ^ [sagelib8.9.beta2] /var/lib/buildbot/slave/sage_git/build/local/include/recint/rudiv.h:222:45: error: inconsistent operand constraints in an ‘asm’ [sagelib8.9.beta2] umul_ppmm(d1, d0, q.Value, b0.Value); [sagelib8.9.beta2] ^ [sagelib8.9.beta2] /var/lib/buildbot/slave/sage_git/build/local/include/recint/rudiv.h:222:45: error: inconsistent operand constraints in an ‘asm’ [sagelib8.9.beta2] /var/lib/buildbot/slave/sage_git/build/local/include/recint/rudiv.h:222:45: error: inconsistent operand constraints in an ‘asm’ [sagelib8.9.beta2] umul_ppmm(d1, d0, q.Value, b0.Value); [sagelib8.9.beta2] ^ [sagelib8.9.beta2] /var/lib/buildbot/slave/sage_git/build/local/include/recint/rudiv.h:222:45: error: inconsistent operand constraints in an ‘asm’
comment:66 Changed 17 months ago by
 Branch changed from u/isuruf/26932 to u/cpernet/26932
comment:67 Changed 17 months ago by
 Commit changed from 8dbef6857366344bcff0b8f789e59fd4b183d23e to ead33baa4ac1b72158dee587c72ac3b4300d96ef
 Status changed from needs_work to needs_review
I pushed a patch to givaro, which basically changes the name on givaro's side of all macros which definition where in conflict between flint (longlong.h) and givaro (reclonglong.h) by prefixing them with recint_
.
This change solves the problem on the 32bit ubuntu machine where I could reproduce the bug.
New commits:
ead33ba  fixing double definition of macros between flint and givaro by isolating givaro's with recint_ prefix

comment:68 Changed 17 months ago by
Thanks. @vbraun, can you review this?
comment:69 Changed 17 months ago by
With this branch and using sagelib built against system libraries, I'm getting
File "/usr/lib/python2.7/sitepackages/sage/matrix/matrix_double_dense.pyx", line 2517, in sage.matrix.matrix_double_dense.Matrix_double_dense.is_unitary Failed example: P.is_unitary(algorithm='orthonormal') Expected: Traceback (most recent call last): ... error: ((lwork==1)(lwork >= MAX(1,2*n))) failed for 3rd keyword lwork: zgees:lwork=0 Got: <BLANKLINE> Traceback (most recent call last): File "/usr/lib/python2.7/sitepackages/sage/doctest/forker.py", line 681, in _run self.compile_and_execute(example, compiler, test.globs) File "/usr/lib/python2.7/sitepackages/sage/doctest/forker.py", line 1105, in compile_and_execute exec(compiled, globs) File "<doctest sage.matrix.matrix_double_dense.Matrix_double_dense.is_unitary[23]>", line 1, in <module> P.is_unitary(algorithm='orthonormal') File "sage/matrix/matrix_double_dense.pyx", line 2568, in sage.matrix.matrix_double_dense.Matrix_double_dense.is_unitary (build/cythonized/sage/matrix/matrix_double_dense.c:16152) _, T = self.schur(base_ring=sage.rings.complex_double.CDF) File "sage/matrix/matrix_double_dense.pyx", line 3268, in sage.matrix.matrix_double_dense.Matrix_double_dense.schur (build/cythonized/sage/matrix/matrix_double_dense.c:19274) T._matrix_numpy, Q._matrix_numpy = scipy.linalg.schur(self._matrix_numpy, output=format) File "/usr/lib/python2.7/sitepackages/scipy/linalg/decomp_schur.py", line 139, in schur result = gees(lambda x: None, a1, lwork=1) ValueError: On entry to ZGEES parameter number 6 had an illegal value
Any ideas?
comment:70 followup: ↓ 71 Changed 17 months ago by
Yes. It is not related to this ticket but to the way we sometimes package openblas in distro compared to sage. I have had this doctest failure for several months now. https://github.com/cschwan/sageongentoo/commit/1a5fefec74c222ee5d0673bb439c6d5a3b0c6e1e#commitcomment30999803 has some gory details if you get down in it. The culprit is not so much sage than it is scipy in a way. It is all down to the xerbla
routine effectively used https://github.com/cschwan/sageongentoo/commit/1a5fefec74c222ee5d0673bb439c6d5a3b0c6e1e#commitcomment31035447 and after.
In any case this is not related to this ticket.
comment:71 in reply to: ↑ 70 Changed 17 months ago by
Replying to fbissey:
In any case this is not related to this ticket.
After some investigation, in my case this turned out to be caused by linking fflasffpack with asneeded  apparently this strips a bit too many linked libs. I started linking with asneeded with the 2.4.0 update so that made me think it was related to the upgrade.
comment:72 Changed 17 months ago by
That's very strange because the failure above occurs during a call to a function in scipy. It is supposed to fail but the error message and the point it break is different depending on the version of xerbla
(C or Fortran) used.
comment:73 Changed 17 months ago by
I guess the linking may influence the order things are loaded in memory and privilege a call over another.
comment:74 followup: ↓ 75 Changed 17 months ago by
Numpy has a python_xerbla.c
file and a xerbla_
inside which is supposed to override the xerbla from BLAS and give a nice exception. We should create a new ticket for the xerbla issue
comment:75 in reply to: ↑ 74 Changed 17 months ago by
Replying to isuruf:
Numpy has a
python_xerbla.c
file and axerbla_
inside which is supposed to override the xerbla from BLAS and give a nice exception. We should create a new ticket for the xerbla issue
I didn't know that. In that case the overridding is obviously not working under some conditions. Is it a bug in sage, scipy or numpy? Digging this a bit more.
comment:76 Changed 17 months ago by
Actually, the numpy source file you are pointing to gives the error message we see in some sageondistros as opposed to the one seen in vanilla sage. The source file is in two places in numpy. Once in linalg/lapack_lite which seems to indicate that this is used when numpy is configured without an external lapack. The other copy is in core/src/common, it is unclear if it is always compiled or not at this stage.
comment:77 Changed 17 months ago by
I'd say python_xerbla.c
is always compiled. This is from core/src/common/setupy.py
blas_info = get_info('blas_opt', 0) if blas_info and ('HAVE_CBLAS', None) in blas_info.get('define_macros', []): extra_info = blas_info # These files are also in MANIFEST.in so that they are always in # the source distribution independently of HAVE_CBLAS. common_src.extend([join('src', 'common', 'cblasfuncs.c'), join('src', 'common', 'python_xerbla.c'), ]) if uses_accelerate_framework(blas_info): common_src.extend(get_sgemv_fix()) else: extra_info = {}
For those who don't know, numpy's build system sets DHAVE_CBLAS=NONE
when blas/lapack is found :) When no blas/lapack is provided found, HAVE_CBLAS
is undefined.
The xerbla_
symbol is inserted in numpy/core/_multiarray_umath.so
. But from experience the scipy call that can give the differing messages never use that and must load a version from blas/lapack otherwise we would never see this difference.
comment:78 Changed 16 months ago by
 Status changed from needs_review to positive_review
Putting this into positive review, so that it's tested again.
comment:79 Changed 16 months ago by
 Branch changed from u/cpernet/26932 to ead33baa4ac1b72158dee587c72ac3b4300d96ef
 Resolution set to fixed
 Status changed from positive_review to closed
comment:80 Changed 16 months ago by
 Commit ead33baa4ac1b72158dee587c72ac3b4300d96ef deleted
This released fixed
sage: m = diagonal_matrix(ZZ, [2] * 46) sage: m._det_linbox() 70368744177664 sage: m = diagonal_matrix(ZZ, [3] * 100) sage: m._det_linbox() 515377520732011331036461129765621272702107522001
see #28318
Retarging tickets optimistically to the next milestone. If you are responsible for this ticket (either its reporter or owner) and don't believe you are likely to complete this ticket before the next release (8.7) please retarget this ticket's milestone to sagepending or sagewishlist.