Opened 11 years ago

Closed 10 years ago

Last modified 9 years ago

#9858 closed defect (fixed)

FLINT 1.5.0.p5's test suite fails to build with new GMP/MPIR

Reported by: leif Owned by: leif
Priority: critical Milestone: sage-4.8
Component: packages: standard Keywords: SAGE_CHECK mpz_random
Cc: burcin, mhansen, was, davidloeffler Merged in: sage-4.8.alpha0
Authors: Leif Leonhardy Reviewers: Jeroen Demeyer
Report Upstream: Fixed upstream, in a later stable release. Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Status badges

Description (last modified by leif)

Due to the use of deprecated/obsolete GMP functions, the test suite of flint-1.5.0.p5 fails to build since merging the new MPIR 2.1.3 (#8664), or if one uses any other recent version of MPIR or GMP. This means that the package's installation fails if SAGE_CHECK=yes:

Successfully installed flint-1.5.0.p5
Running the test suite.
*************************************************
Running test suite. This should take 6-20 minutes
   Please report all failures to sage-devel
*************************************************
gcc -std=c99 -I/mnt/usb1/scratch/jdemeyer/sage-4.7.2.alpha3-baseline/local/include/ -I/mnt/usb1/scratch/jdemeyer/sage-4.7.2.alpha3-baselin
e/local/include -mtune=opteron -march=opteron -fPIC -funroll-loops  -O2 -c F_mpz-test.c -o F_mpz-test.o
[...]
gcc -std=c99 -I/mnt/usb1/scratch/jdemeyer/sage-4.7.2.alpha3-baseline/local/include/ -I/mnt/usb1/scratch/jdemeyer/sage-4.7.2.alpha3-baseline/local/include -mtune=opteron -march=opteron -fPIC -funroll-loops  -O2 -c fmpz-test.c -o fmpz-test.o
fmpz-test.c: In function âtest___fmpz_normaliseâ:
fmpz-test.c:1379:8: warning: implicit declaration of function âmpz_randomâ
g++  -I/mnt/usb1/scratch/jdemeyer/sage-4.7.2.alpha3-baseline/local/include/ -I/mnt/usb1/scratch/jdemeyer/sage-4.7.2.alpha3-baseline/local/include -mtune=opteron -march=opteron -fPIC -funroll-loops  -O2 fmpz-test.o test-support.o -o fmpz-test zn_mod.o misc.o mul_ks.o pack.o mul.o mulmid.o mulmid_ks.o ks_support.o mpn_mulmid.o nuss.o pmf.o pmfvec_fft.o tuning.o mul_fft.o mul_fft_dft.o array.o invert.o mpn_extras.o mpz_extras.o memory-manager.o ZmodF.o ZmodF_mul.o ZmodF_mul-tuning.o fmpz.o fmpz_poly.o mpz_poly-tuning.o mpz_poly.o ZmodF_poly.o long_extras.o zmod_poly.o theta.o zmod_mat.o F_mpz.o tinyQS.o factor_base.o poly.o sieve.o linear_algebra.o block_lanczos.o NTL-interface.o -L/mnt/usb1/scratch/jdemeyer/sage-4.7.2.alpha3-baseline/local/lib/ -L/mnt/usb1/scratch/jdemeyer/sage-4.7.2.alpha3-baseline/local/lib/  -lgmp -lpthread -lntl -lm
fmpz-test.o: In function `test___fmpz_normalise':
fmpz-test.c:(.text+0x368d): undefined reference to `mpz_random'
collect2: ld returned 1 exit status
make: *** [fmpz-test] Error 1
Error building the test suite for FLINT
*************************************
Error testing package ** flint-1.5.0.p5 **
*************************************
sage: An error occurred while testing flint-1.5.0.p5

I guess Bill has already fixed that in FLINT 1.5.2, which was released over a year ago. So simply updating the spkg might suffice.

Btw, at least the current FLINT in Sage ignores user-provided CFLAGS; one could perhaps "move" them into some other environment variable used by FLINT.


Upstream: http://www.flintlib.org/


New spkg: http://sage.math.washington.edu/home/leif/Sage/spkgs/flint-1.5.0.p10.spkg

md5sum: 907a720d1b9bf9e4bc1412e08b2f8892

flint-1.5.0.p10 (Leif Leonhardy, October 11th 2011)

  • #9858: Add an upstream patch from FLINT 1.5.2 to make FLINT's test suite build (when SAGE_CHECK=yes) with MPIR 1.3.x, 2.x (cf. #8664) and GMP 5.x. The patch just substitutes deprecated random functions in one file (fmpz-test.c) which have been removed from the mentioned GMP / MPIR versions.

Attachments (1)

flint-1.5.0.p9-p10.diff (2.0 KB) - added by leif 10 years ago.
Diff between the p9 and the p10. For reference / review only.

Download all attachments as: .zip

Change History (21)

comment:1 Changed 11 years ago by leif

Actually five months ago:

v 1.5.2 -- 08-Apr-10

   * Added some defines for MPIR 1.3 support (use of deprecated functions)

And he did replace mpz_random() in fmpz-test.c.

comment:2 Changed 10 years ago by leif

FLINT 1.6 was released on/for Chrismas (Dec. 24th).

Unless somebody else already did/does I'll open a ticket to upgrade Sage's version to that one.

Since Sage currently does weird things with the Makefile, providing a new, "clean" spkg will take some time (besides testing collaboration with the new FLINT of course).

(Though FLINT is a plain C library, with a separate module to interface with NTL, which is C++ and hence the interface as well, Sage builds one monolithic "FLINT" library with that interface module included such that it always depends on the NTL library and the C++ standard library, which is totally odd and frequently causes trouble. Changing that requires changes to the Sage library, including module_list.py and perhaps setup.py, too.)


The FLINT spkg also needs to be upgraded (to at least version 1.5.2, plus one simple patch) to work on Linux/ARM, see #10328.

comment:3 Changed 10 years ago by leif

Just for the record:

I have some flint-1.5.2.p1 around to address only the most important issues (changes not yet committed though).

There's much wrong with this spkg (including upstream), but in the light of FLINT 1.6.0 and 2.1.0 (already released), this ticket is mainly intended to prevent FLINT being a show stopper for #8664 and #5847.

I'll perhaps include the patch from #10328, too.

Feel free to ping me w.r.t. uploading a new spkg in case this ticket further drags... ;-)

comment:4 Changed 10 years ago by leif

  • Owner changed from tbd to leif

comment:5 Changed 10 years ago by leif

Just for the record:

"[...] I assume Sage did not upgrade to flint 1.6. This is a good thing as it will be a very long time before we are able to cover factorisation of polynomials over the integers in flint2. It'll be worth waiting for though.

Bill."

(http://groups.google.com/group/flint-devel/msg/2dc5c1b7fba7520c)

;-)

comment:6 Changed 10 years ago by kcrisman

See also #11547 for a (very small, but important) change to the spkg-install needed for Cygwin - just so we don't forget that if this ticket ends up upgrading to p8 (see #11246 for p6 and p7).

comment:7 Changed 10 years ago by kcrisman

Here is another issue - if one of the patches fails in the current Flint spkg, then the Cygwin-only move of $SAGE_LOCAL/lib/libntl.a to a temporary file is NOT rescinded. So this should already happen if the patches do not apply. Just a point for any upgrade to FLINT - this should be fixed.

(I noticed this because one of the patches didn't apply for me. Which makes no sense, because it was exactly right. But whatever.)

comment:8 Changed 10 years ago by kcrisman

See #11727 for that problem.

comment:9 Changed 10 years ago by leif

  • Priority changed from major to blocker

Since #8664 is now included in Sage 4.7.2.alpha3, this should be a blocker for the final Sage 4.7.2.

comment:10 follow-up: Changed 10 years ago by jdemeyer

  • Description modified (diff)

What are the plans for this ticket? Upgrading to FLINT 1.5.2? Upgrading to FLINT 1.6? Upgrading to FLINT 2.x? Fixing more odds and ends in the FLINT spkg?

comment:11 in reply to: ↑ 10 Changed 10 years ago by leif

  • Description modified (diff)

Replying to jdemeyer:

What are the plans for this ticket? Upgrading to FLINT 1.5.2? Upgrading to FLINT 1.6? Upgrading to FLINT 2.x? Fixing more odds and ends in the FLINT spkg?

Upgrading to FLINT 1.5.2, which fixes the original issue and a few other bugs in FLINT 1.5.0.

More precisely, rebasing the FLINT 1.5.2 spkg I already have (which also includes a couple of fixes to Sage's part) on the changes that were made to the 1.5.0 spkg in Sage since the p5.

Upgrading to FLINT 1.6 shouldn't hurt, but would now be better done on a follow-up ticket.

As Bill meanwhile also disclosed on sage-release, they're working hard on a FLINT 2.x (planned as a Christmas present) that implements all features that Sage requires, since the current one doesn't yet provide all we need. (FLINT 2 is a complete rewrite of FLINT 1). So upgrading to that is not an option at the moment.

comment:12 Changed 10 years ago by jdemeyer

  • Milestone changed from sage-4.7.2 to sage-4.7.3
  • Priority changed from blocker to critical

comment:13 Changed 10 years ago by leif

For the record, I'm working on that, and not just since today btw.

Nevertheless, nobody should have touched the 1.5.0[.p5] spkg (or earlier ones) without upgrading to 1.5.2, since it fixes other critical bugs.

comment:14 Changed 10 years ago by leif

  • Authors set to Leif Leonhardy
  • Cc davidloeffler added
  • Description modified (diff)
  • Status changed from new to needs_review

I've made a FLINT 1.5.0.p10 spkg which just fixes the trivial test suite build error (see the ticket's description), since providing a clean FLINT 1.5.2 spkg based on the 1.5.0.p9 is tedious and still takes some time, hopefully just until tomorrow.

Please test (with SAGE_CHECK=yes of course, and an MPIR >=1.3.x or GMP 5.x, e.g. with Sage 4.7.2.alpha3) and review!

(Unless you're happy with unmerging the overdue MPIR upgrade from Sage 4.7.2 just for this reason.)

Thanks in advance.

Changed 10 years ago by leif

Diff between the p9 and the p10. For reference / review only.

comment:15 Changed 10 years ago by leif

I've attached a diff between the p9 and the p10 spkg for review.

comment:16 Changed 10 years ago by leif

  • Report Upstream changed from N/A to Fixed upstream, in a later stable release.

comment:17 Changed 10 years ago by jdemeyer

  • Reviewers set to Jeroen Demeyer
  • Status changed from needs_review to positive_review

comment:18 Changed 10 years ago by jdemeyer

  • Merged in set to sage-4.7.3.alpha0
  • Resolution set to fixed
  • Status changed from positive_review to closed

comment:19 Changed 9 years ago by jdemeyer

  • Milestone sage-4.7.3 deleted

Milestone sage-4.7.3 deleted

comment:20 Changed 9 years ago by jdemeyer

  • Merged in changed from sage-4.7.3.alpha0 to sage-4.8.alpha0
  • Milestone set to sage-4.8
Note: See TracTickets for help on using tickets.