New version of PARI/GP: 2.4.3 svn-12577
Relevant tickets
9343: PARI upgrade
9591: genus2reduction
9592: lcalc (see also #9845 for a later lcalc spkg based on this one)
9756: Document SAGE_TUNE_pari in the Sage Installation Guide
9860: Port changes in PARI 2.3.5.p4 (#9722) to current 2.4.3
Tickets which have been closed after #9343 got merged
The following lists tickets which seem to be fixed by the new version of PARI/GP:
4794: [with spkg, needs work] Update pari to 2.4.3-svn
4835: pari starts up without initializing enough primes?
7736: factor returns a reducible factor
9175: cygwin: pari's sea.gp program segfaults on Cygwin
9518: Add an spkg-check file for Pari
Files
If you want to upgrade an existing Sage, you have to install 3 spkgs and apply 2 patches. Do this in order as in the list below. In particular, the genus2reduction spkg will not install without the new PARI spkg.
PARI spkg: http://sage.math.washington.edu/home/jdemeyer/spkg/pari-2.4.3.svn-12577.p5.spkg
genus2reduction spkg: http://sage.math.washington.edu/home/mpatel/trac/9591/genus2reduction-0.3.p8.spkg
lcalc spkg: http://sage.math.washington.edu/home/jdemeyer/spkg/lcalc-20100428-1.23.p2.spkg
(or alternatively the lastest, http://sage.math.washington.edu/home/mhansen/lcalc-20100428-1.23.p4.spkg)
Patch for data/extcode: extcode_9343_combined4.patch
Patch for devel/sage: sagelib_9343_combined7.patch
For reviewers
Download sage-4.6.prealpha4.tar, which is a complete Sage distribution based on sage-4.5.3.rc0. Just extract it, and type make. In this file, the following tickets have been merged:
9343 (positive_review): PARI upgrade
9860 (positive_review): Port changes in PARI 2.3.5.p4 (#9722) to current 2.4.3
9591 (positive_review): genus2reduction
9592 (positive_review): lcalc
9845 (needs_review): lcalc doesn't build on cygwin due to missing time.h include
9750 (positive_review): Document that PARI no longer assumes more than GRH.
9636 (positive_review): Catch output from PARI in Sage.
9400 (needs_review): Modify the NumberField constructor to pass in optional integer B such that all the internal PARI routines will replace the discriminant by its gcd with B, making some things massively faster.
This ticket is not strictly related to the PARI upgrade, but it changes a lot of code using PARI. It also fixes an issue with nfinit() and wraps some additional functions in sage/libs/pari/gen.pyx.
If it compiles, you can run the PARI/GP test suite and test PARI's self-tuning capability by doing
env SAGE_CHECK=yes SAGE_TUNE_pari=yes ./sage -f pari-2.4.3.svn-12577.p5.spkg
(To keep the spkg's build directory $SAGE_ROOT/spkg/build/pari-2.4.3.svn-12577.p5/, use ... ./sage -f -s ... instead. This way you'll be able to inspect PARI's logs of eventual self-test failures.)
- For reference, these are the patches for the spkgs:
genus2reduction (Note that the old genus2reduction.c file was not under revision control, unfortunately.)
Debugging PARI/GP build errors
If the new PARI spkg doesn't build, you should try building PARI/GP stand-alone (i.e. outside of Sage). You should download pari-2.4.3.svn-12577.p5.spkg and then type the following in a shell:
tar xjf pari-2.4.3.svn-12577.p5.spkg cd pari-2.4.3.svn-12577.p5/src ./Configure --graphic=none make gp
If this works, there is a bug in Sage's build process for PARI/GP. If this gives errors, this indicates an upstream issue with PARI/GP. In any case, any errors should be reported on the Sage trac.
Known issues
- Tuning has problems on some systems. Since tuning is disabled by default, this is not essential for this ticket.
There are e.g. problems with PARI's self-tuning on Pentium 4 Prescotts:
- Self-tuning hangs on Fedora 13 (gcc 4.4.4).
Self-test fails after self-tuning on Ubuntu 9.04 (gcc 4.3.3), but only due to numerical noise. See #9899
9876: Building PARI/GP with SAGE_CHECK=yes fails on rnfkummer on a PPC Mac OS X 10.4 and on a Solaris SPARC. This looks like an upstream problem with PARI/GP.