[BACK]Return to CHANGES CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / pari-2.2

File: [local] / OpenXM_contrib / pari-2.2 / Attic / CHANGES (download)

Revision 1.2, Wed Sep 11 07:26:37 2002 UTC (21 years, 8 months ago) by noro
Branch: MAIN
CVS Tags: RELEASE_1_2_3, RELEASE_1_2_2_KNOPPIX_b, RELEASE_1_2_2_KNOPPIX, RELEASE_1_2_2
Changes since 1.1: +391 -9 lines

Upgraded pari-2.2 to pari-2.2.4.

AW = Aleksander Wittlin 
BA = Bill Allombert
BD = Bill Daly
BH = Bruno Haible
CB = Cliff Bergman
CW = Carl Witty
DB = Dominique Bernardi
DC = Dan Christensen
DE = Denis Excoffier
DF = David Ford
DS = Denis Simon
GH = Guillaume Hanrot
GN = Gerhard Niklasch
GT = Glenn Thobe
GTo= Gonzalo Tornaria
HC = Henri Cohen
IS = Igor Schein
IK = Iwao Kimura
ISo= Ignat Soroko
IZ = Ilya Zakharevich
KO = Kiyoshi Ohgishi
LG = Louis Granboulan
MD = Mark Dickinson
MS = Michael Stoll
MSo= Michael Somos
MW = Mark Watkins
OR = Olivier Ramare
OV = Oliver Voigt
PM = Peter Montgomery
PW = Paul van Wamelen
TH = Teluhiko Hilano
TP = Thomas Papanikolaou
XR = Xavier Roblot
YU = Yoshiaki Uchikawa

Done for version 2.2.4 (released ??/07/2002) [hopefully]:
  Fixed
    1- add default 'new_galois_format' to make 2.2.3 C-22 optional (by default,
       old format will be used, preserving compatibility)
 BA 2- FreeBSD: DL_DFLT_NAME value was incorrect
    3- Configure: TIOCGWINSZ not detected on Linux
 BA 4- FpV_roots_to_pol not reduced when applied to a singleton
    5- (a.x = [a]); "a".x ---> [a]  \\ should be ["a"]
    6- (a.x = [a]); print("a".x) ---> a0.E-28x  \\ should be ["a"]
    7- (a.x = [a]); 1.x ---> error \\ should be [1]
    8- wrong rnfidealnorm[rel | abs] (wrong result if O_L not free O_K-module)
    9- gcd(x + 1, x + 1/2) --> 1 \\ should be 1/2  [introduced in 2.2.1]
   10- gcd for multivariate polynomials over finite fields slower than
       in characteristic 0
   11- [library:] typo in vpariputs: pariputsf("%Z%Z",x,y) did not work
       (prints x and address of y)
IZ 12- [gnuplot + dynamic link:] allow building even when dlopen() not available
   13- [CVS:] warnings about unknown files (added .cvsignore files)
   14- f()=return \\ return "void"
       g()=return(f()) \\ return eval("void") = 0
       now g() returns "void" also 
   15- f(x=11,y=x)=local(t=ff(),u=t);1 --> parse error
   16- conjvec([[],[],[]]) --> SEGV
   17- galoisisabelian(x) --> SEGV
   18- nfeltreducemodpr(nfinit(x),1,1) --> SEGV
   19- idealmul(nf, principal ideal, prime ideal) returned wrong result
       [introduced sometime in 2.2]
   20- elltors(ellinit([...], 1)) --> SEGV
   21- try to make sure life of GP variables is not too short. Was:
         v = [0,0]; v + [v=0,v=0] --> SEGV
         u = Mod(x*Mod(1,2),polcyclo(25)*Mod(1,2)); sum(i=1,4,u=u^32) --> SEGV
   22- typo in to_Fp_simple [ bnfcertify(bnfinit(x^2-40!)) --> type error ]
   23- memory leak in gp when handling '&' arguments 
   24- removed hack in gcopy [ did not reset the isclone() flag because
       gunclone checks isonstack(). But other routines may want to use it ].
   25- apparent oo loop in bnfcertify [when computing lower bound for
       regulator]
   26- ideallistarch(nfinit(x),[1,1],0); --> SEGV [bad input]
   27- factor(x-I) --> x - #<16382>
   28- ellsigma(...,matid(1)) --> SEGV [bad input]
   29- ideleprincipal([],1) --> SEGV [bad input]
   30- factorback(matid(1),nfinit(x)) --> SEGV [bad input]
   31- incomplete help message for vecsort
   32- polredabs fails to reduce
         x^8-2*x^7-34*x^6+78*x^5+265*x^4-628*x^3-389*x^2+1237*x-449
       [typo in chk_gen_init: skipfirst not initialized properly]
MW 33- (recent) typo in localred (char 2)
   34- 2.2.3-C20 had broken backward compatibility: restore
       [inefficient, useless] previous output of nfelt*modpr routines
   35- idealappr(nfinit(y),matid(2),1) --> SEGV  [bad input]
   36- sqrtn(0,...) ---> error
   37- galoisinit(x^4 + 5264*x^3 + 8034856*x^2 + 4205424384*x + 504485485632)
       --> weird error
   38- qfsign([;]) --> SEGV
MW 39- torsion group of [0,0,0,-6648,208633] reported as C2 instead of C6
   40- bnfinit: very rare stack corruption
   41- bnfinit: used too much memory when needing huge number of relations
       [when computing fundamental units]
   42- bnrL1(bnr with conductor 1) --> SEGV
   43- "impossible inverse modulo ..." when using addprimes() + ROUND 2
MSo44- [gp: \x] missing 'break' statement in escape()
   45- wrong bound in nf_LLL_cmbf (nffactor) [no counter example to
       the old bound, but proof was wrong anyway...]
   46- [gp:] memory leak when assigning to multidimensional arrays (x[i][j]=1)
   47- added user-friendly error message if Configure not run properly + fix
       INSTALL.tex about make gp.dbg / gp.prf
   48- matcompanion(x*y) --> weird error
   49- typos in hilbert(), e.g
         hilbert(Mod(1,2), y) --> SEGV,
         hilbert(-1+O(2^3), 12 + O(2^3)) accepted wheras 2-adic precision too
         low to decide 
BA 50- [FreeBSD:] PORTOBJFORMAT undefined by the system --> Configure fails
   51- rnfisnorm() [errors, SEGV]. Had to change the prototype.
BA 52- Oxxx/Makefile was not compatible with BSD make.
   53- errors in files read from .gprc, containing trap() --> SEGV
   54- bezoutres(Pol(sin(x)+Pi),Pol(cos(x))) --> "bug in subresext"
   55- nfsubfields had a different output format when using galoissubfieds
   56- polcoeff(1/x, -3) --> SEGV
   57- (-2/x)/(-1/x) --> -2/-1
BA 58- [GP internals:] trap() had an invalid prototype [DI,DI]
   59-  M[,2][1]=1 --> error; M[1,][2]=1 --> no effect  [ now <==> M[1,2]= 2 ]
   60- [GP:] newline in multiline comments /* */ was not ignored
   61- [GP:] when using default 'colors' for input at \gn>1, first debugging
       msg could be colored

  Changed
    1- remove most global variables from gp.c (put them in struct gp_data).
    2- use better bounds for size of factors in nffactor()
    3- tuning for van Hoeij's factorizer (factor + nffactor)
    4- automatic concatenation for strings: use longest match for expression.
       print("a"[1]) is not valid since "a" is not a vector
       print("a", [1])  prints  'a[1]'
IZ  5- [gphelp:] allow uninstalled operation from $TOPDIR or $TOPDIR/Oarch
IZ  6- [gphelp:] better error messages in case TeX compilation fails
    7- [development version:] add version number for this file to the gp
       header when using CVS
IZ  8- [library:] unified access to diffptr (NEXT_PRIME_VIADIFF macro)
    9- buchall: re-use the same random seed when doubling prec (for units)
   10- major cleanup in thue / thueinit
   11- major improvements in rnfkummer (use elements in factored form):
       faster, give smaller elements
   12- improved quadray(D < 0) when relative degree is huge
   13- improved bnfisprincipal when class group large: use factorisation
       (+idealred) instead of arch. components (require much less precision)
   14- allow arbitrary prime degree in rnfkummer
   15- [library:] allow trapping invmoder and recovering the offending INTMOD
   16- improved factor over Z[X] for _huge_ degrees (factorizations mod p)
   17- minor change in ordering for primedec output [use cmp_prime_over_p]
   18- [library:] moved (formerly) gp-specific write* and print* to libpari
   19- nffactor: call factornf when deg(pol) << deg(nf) + remove a priori
       overlift for d-1/d-2 test [major overkill]
   20- input format to rnfisnorm() [use rnfisnorminit]

  Added
 BA 1- Add PARI_VERSION and PARI_VERSION_CODE to paricfg.h
 BA 2- Add pari_release at top of dft.Config.in
    3- rnfpolredabs: flag to use partial factorization
    4- [gprc:] test against VERSION number in .gprc
    5- [gprc:] multiline constructs
 IZ 6- mnemonics for flags
    7- internal flag nf_GEN_IF_PRINCIPAL to bnfisprincipal [isprincipalall]
    8- routine rnfisnorminit()
 BA 9- [Makefile:] bzdist target
   10- [library:] CATCH / TRY mechanism [ encapsulate err_catch ]

  Removed
    1- (useless, undocumented) macros buchgen*, buchinit*

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Done for version 2.2.3 (released 10/06/2002):
  Fixed
    1- bnrinit(bnfinit(subst(polsubcyclo(89,8),x,-x)),4) --> SEGV [make sure
    isprincipalfact is used in makecygen, even in case of precision problems]
    2- bnrisprincipal --> warning + "not an element in ..." [missing nf_FORCE]
    3- oo loop in isprincipalfact when increasing bnf precision
    4- stack corruption in ellap (LARGE p)
    5- zeta(s) destroyed the Bernoulli cache when using the functional equation
    6- oo loop in random_relation (called from bnfinit)
    7- fixed lower bound for p in nfsubfields (could get oo loop: pol never
       squarefree mod p)
    8- [Vecsmall([1, 2])][1][2][1] --> SEGV
    9- typo in t_FRAC + t_PADIC  [only numerator of t_FRAC used]
   10- factorback(t,nfinit(x)) --> SEGV
IZ 11- shift(x > 0,, flag!=0) didn't act as the docs said [flag now ignored]
   12- lindep(Vec(x^48)) --> oo loop
   13- could get NaN in max_modulus (polroots) --> havoc later
   14- missing normalizepol() in centermod(t_POL,)
   15- [Follow-up to 2.2.2-F10] even more recent pdftex failed again
   16- not enough GC when printing a huge t_PADIC
   17- factorpadic(x*(x+1),3,10) would corrupt polx --> SEGV later
   18- delayed carry treated improperly in red_montgomery
   19- F() = 0; local(x)  ==> confusing error message
IZ 20- OS/2: make bench didn't work [env wouldn't start shell scripts]
BA 21- sqrtn(Mod(1,7),2,&z)-->z=1 should be -1
HC 22- Standard transcental functions exp, sin, cos, ^, *, are now orders of
       magnitude faster for t_POL arguments of small degree.
HC 23- fixed a severe bug in p-adic/integer addition (1+3^4+O(3^10))+3
       didn't work.
HC 24- Corrected p-adic initell.
   25- ellj / eta (t_SER) truncated result to seriesprecision
   26- possible overflow in u_FpM_gauss (from ZM_inv)
   27- various problems with C++ compilers
   28- polredabs could fail to reduce "obvious" input, e.g x^2 + n*x + n^2
   29- gcd(x,y,1) didn't check its arguments
   30- typo in elltors: could forget a point of order 2
   31- gdivgs(t_RFRAC,x) incorrect (if numerator had denominator)
   32- serreverse(O(x) or x + O(x^2)) --> SEGV
   33- dbltor(0) returned 2^-308, instead of 10^-308
   34- precision problems in thue/thueinit
       setrand(5);tnf=thueinit(x^3 + x^2 - 43690*x - 3529208) --> error in mplog
   35- typo in bnfnarrow ("impossible inverse")
   36- subst(x,x^0,x) --> floating point exception
ISo37- many typos in the documentation
   38- [DOS/Windows]: incorrect conversion between 'double' and t_REAL
   39- polrootspadic(4*x^2-1,2,2) --> impossible inverse: Mod(2, 16).
       [specific to 2, and non-monic equations]
   40- discrepancy between bnfsunit output and docs [ bnfS[5][2] was t_MAT ]
   41- matdet: pivoting strategy incorrectly chosen ("incorrect type in gexpo")
   42- polcompositum output ordering depended on random seed
   43- plotrecthraw(0,[0]) --> SEGV
   44- plothraw([],[]) --> SEGV
IZ 45- ix86 inline assembler compilation problem [divll]
XR 46- forgotten case in Round4 [ nfdisc(x^12-10*x^11-57*x^10+740*x^9+353*x^8-16130*x^7+17749*x^6+100120*x^5-108466*x^4-292200*x^3+128380*x^2+380800*x+133112)
--> impossible inverse: Mod(2, ...) ]
   47- sin(1e-100) ---> 9.999999999999999999735998397 E-101 [ precision loss ]
   48- idealpow(nf,x, n < 0, 1) did not reduce the result
   49- gcd(0, -1) --> -1, content([0, Pi]) --> 3.14, content([0,Pi,Pi]) --> 1
BA 50- compilation problem on OSF (RTLD_GLOBAL undefined)
BA 51- [X-Windows] hi-res plot: window not redrawn properly (BackingStore pb)
   52- problems with tex2mail output (wrong alignment, wrong colors)
   53- contfrac(sin(Pi/4),,2) --> impossible assignment
   54- infinite recursion in gaffect(t_POL, scalar)
   55- content([-1]) was -1 [ should be 1 ]
   56- stack corruption in u_FpV_polint (used by modular bivariate resultant)
   57- polroots() used too high a precision when checking errors a posteriori
       (--> slow)
   58- contfrac(1/x) --> SEGV
   59- typo in sinh(0) --> wrong zero exponent
   60- exp(O(x^-1)) = O(x^(-1))  [ouch...]
   61- dilog(O(x^10)) = O(1)
   62- cosh(O(1)) --> division by 0
   63- sqrt(4*x^2) --> not an integer exponent for non invertible series in gpow
   64- besselj(0,O(1)) [or besseli] --> precision<=0 in gprec.
   65- O(1)' --> O(x^-1)
   66- gcd(O(2^1), O(2^10)) --> O(2^10)
   67- polrootspadic(x^2+8*x+4,2,2) -->  "impossible assignment"  
   68- one could write() an object to a binary file, corrupting it
MW 69- ellap(ellinit([0,0,1,-7077,235516]), 1075060289) --> "zero argument in
       an arithmetic function"
MW 70- ellap(ellinit([0,0,1,-7077,235516]),1135392007) --> SEGV
BA 71- user's manual index truncated if LANG=fr_FR
   72- lex(string1, string2) could return something not in {-1,0,1}
   73- bnfisprincipal(bnf,x, 0) was not instantaneous when bnf.no = 1
   74- no GC in poleval
   75- make clean did not remove libpari-2.2.*

  Changed
BA  1- improved Fp_isom
IZ  2- remove all dependance on __OPTIMIZE__ for inlining [cf 2.0.14 F-24]
    3- implementation of psi()  [very slow + wrong results at low accuracy]
    4- cleaned up forvec() [no more global variables]
    5- improvements in bnrstark (precompute common data)
BA  6- improved ffinit()
    7- rewrote time-critical parts of bnrstark
    8- all 'input filter' code removed from GP. es.c:filtre() now handles the
       full filtering [and has become reentrant]
    9- isprime() now guarantees primality
BA 10- improved polsubcyclo()
BA 11- new interface for galoissubcyclo
HC 12- gamma function for integral/rational arguments
   13- faster factornf / nfgcd
   14- removed readline-specific code from gp.c
   15- allow bnrstark over Q
   16- 'subgroup' argument made optional in bnrL1, bnrstark, rnfkummer
   17- use relative van Hoeij algorithm in nffactor [can handle huge number
       of modular factors]
   18- rewrote factorff() to use new modular functions
   19- rewrote primedec() to use new modular functions
   20- rewrote most *modpr functions
   21- modified diagnostics for integral LLL to match floating point version
   22- INCOMPATIBILITY: polgalois(); changed 3rd component of result so that
       it gives the numbering among all transitive subgroups of S_n [ was ad
       hoc up to 7, then as described above for n >= 8 ]
   23- INCOMPATIBILITY: nf.zk is now T2-LLL-reduced
   24- idealtwoelt was very slow when a small prime with many divisors
       divided the index (use approximation theorem)
   25- content(scalar) = abs(scalar) [when it makes sense]
   26- changed the interface to ispseudoprime and isprime
   27- [internal] element_muli: check input is consistent
   28- rewrote all LLL algorithms (use Householder, not Gram-Schmidt; do not
       use Gram matrix; unified code).
   29- INCOMPATIBILITY: the internal components of nf[5] have changed (MC and
       T2 not needed anymore)
   30- INCOMPATIBILITY: [library] polred & polredabs do not take a 'prec'
       argument anymore
   31- unified nfinit, polred* [use dedicated structs internally]
   32- rnfconductor(..., 1) doesn't need GRH anymore
   33- extracted FpXQ_gener from idealstar
   34- allow more types in gdivround
   35- improved root_bound (first step in factor() over Z[X]) for huge pols.
   36- faster bernfrac / bernvec
   37- INCOMPATIBILITY: removed gentimer() / genmsgtimer(). Use TIMER/msgTIMER
   38- let nfsubfields call galoissubfields (much faster when field is Galois)
   39- Configure (locatelib): don't look for lib*.so.x [ pb on Linux with
       [readline | ncurses]-devel.rpm.

  Added
    1- mplog2() function --> faster mplog()
    2- gcd for Gaussian integers
HC  3- APRCL primality test
    4- (strong) Lucas primality test + Baillie-Pomerance-Selfridge-Wagstaff test
BA  5- Facilities for permutation groups (perm.c).
BA  6- New functions galoissubgroups, galoisubfields.
HC  7- Implemented all Bessel functions J, I, N, K, H1, H2, and Bessel functions
       for power series and polynomials.
HC  8- Implemented PSLQ [preliminary]
GTo 9- Implemented Cipolla's algorithm for sqrt(Mod(x, p))
   10- library functions FpM_ker, FpM_deplin, diviiround, centermodii
   11- library function gerepileall
   12- library functions corepartial, core2partial
   13- library functions affui, itou, stor, itor
   14- library function lllint_ip (in place)
   15- library functions Q_primitive_part, Q_primpart, Q_remove_denom, Q_denom
   16- allow polredabs to use a partial factorisation of disc(nf) [as polred,
       but inconsistent values for flag. Backward compatibility problem here...]
   17- routine ellminimalmodel()
IZ 18- systems/ directory (currently for OS/2 only)
IZ 19- [OS/2:] install() for OS/2 system  (using builtin dlopen)
IZ 20- gnuplot and X11 are now simultaneously supported

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Done for version 2.2.2 (released 10/01/2002):
  Fixed
    1- qfbred(Qfb(4, 17, 18)) --> SIGFPE
    2- broken compilation in arith.c when CC != gcc
    3- nfhilbert (local case pr | 2) expected POLMOD argument without check
    4- poldegree(P, t) slow when t != varn(P), and may not work in library mode
    5- polrootspadic only worked when leading coeff was a unit
    6- paddicappr was very slow (esp. when p was large)
    7- Configure: check for 'double endianness' [used for double --> t_REAL
       conversion]. Previous check was failing on ARM architecture.
    8- forsubgroup state not properly restored after ^C
    9- libpari.so included symbols from libc without linking it explicitly
       (Debian requirement, and cleaner anyway)
   10- recent pdftex failed to compile users.tex  (\pdfannotlink undefined)
   11- !nf.sign[1] was parsed as (!nf.sign)[1]
   12- matrix(0,1) --> "identical index variables in matrix" [from 2.2.1 F48]
   13- bnfinit could miss some relations in the "small norm" phase
   14- x % y incorrect when y < 0 inexact (2 % -3. --> -1.)
   15- typo in gcdreal (result < 0) [introduced in 2.2.1]
   16- some obscure problems in rnfkummer
   17- not enough GC in hnflll
   18- sqrt(25 + O(2^5))^2 - 25 = O(2^4)
   19- not enough GC when writing a t_PADIC
   20- user member functions were very slow (unnecessary copy)
   21- cd Oxxx; make -j4 bench ran things in the wrong order
   22- poltchebi, pollegendre gave bogus output for negative degrees
   23- possible SEGV or oo loop in polrootsmod when p not a prime
   24- nfnewprec(bnf) could change bnf.gen (due to round-off errors)
   25- SEGV in gcd(x,y) when operands have coeffs of the form Mod(t_INT,t_POL)
   26- not enough GC in poldivres (= t_POL % t_POL)
   27- issquare(Mod(3,27)) = 1  [from 2.2.1 C 10]
   28- [BUG] message in 'elliptic' bench [made polroots more canonical]

  Changed
    1- allow compressing *.dvi files for the online help system
    2- index bound was restricted to MAXLONG in subgrouplist. Made it a GEN
    3- try to guess correct precision earlier in polgalois/polroots
    4- allow GP pointers to 'matrix components', e.g issquare(25,&x[i][j])
    5- changed assignment semantics to make it closer to C: x = y understood as
       (evaluate Y:=y, then set x:=Y), e.g i=0; i += (i=2) sets i to 4  (was 2)
    6- output VECSMALLs as 'Vecsmall([...])'
    7- more efficient polcoeff [also: made it independent of MAXVARN]
    8- retuned bnfinit (let subfactorbase increase further):
       setrand(1);bnfinit(x^4 + 1159*x^2 + 335241) would never finish.
    9- specified precisely lex() [see manual]. Now:
       lex([0,0],[0]) = 1 (was -1), lex(0,[0]) = -1 (was 0)
   10- allow factorback(x, e) for prod x[i]^e[i]
   11- don't store empty lines in history [cf 2.2.1 F57]
   12- extend x \ y, x \/ y and divrem(x,y)
XR 13- improvements in bnrstark (try harder to find modulus, need less memory)
   14- global(x): ignore if x already global (used to raise a warning)
BA 15- install: add RTLD_GLOBAL to dlopen flags [so that symbols can be used
       in other .so]
   16- removed hack in gp_init.c [used "constant default args" to call print0]

  Added
BA  1- New function 'vectorsmall'.
    2- allow setting variable in divrem
    3- GP operator #l for length(l)
    4- a warning in zsign ("increase precision?") when dubious result
    5- Montgomery reduction (only used in powmodulo() for now)
    6- [experimental] basic tuning utilities (src/test/tune.c) [make tune]
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Done for version 2.2.1 (released 18/10/2001):

  Fixed
    1- typo in factornf (factor of degree 3 --> error message)
    2- rnflllgram(), idealinv() didn't check their arguments
    3- [readline] \r<TAB> would complete using files matching r*
    4- wrong result in ZY_ZXY_resultant when degree dropped in ERS
    5- factor(x^2 + I*1.) --> stack corruption
    6- \r directory was silently accepted
    7- check arguments in polcompositum()
TH  8- [Cygwin:] fixed paths for readline on cygwin 1.*
XR  9- possible overflow in ComputeCoeff [ bnrstark() ]
   10- numtoperm(2,x) --> SEGV [check arguments now]
   11- rnfkummer could fail with "missing units"
   12- factornf(P, non-monic t) --> error
   13- forsubgroup/subgrouplist didn't check their arguments nor accepted SNF
       matrices
XR 14- typo in nilord4 --> SEGV, e.g.
       nfdisc(x^16-363*x^14+53550*x^12-4091823*x^10+170172414*x^8 \
         -3663509067*x^6+33703350345*x^4-63300912912*x^2+32451860736)
   15- some messages didn't distinguish between MBytes and millions of Bytes
   16- typo in BuildTree [hensel lift]: SEGV
   17- (rare) oo loop in polroots, e.g. x^5-2*x^4-32*x^3+72*x^2+218*x-491
   18- oo loop in ellpointtoz on certain rare inputs
   19- stack corruption in factorff
BA 20- better interface for galoissubcyclo
BA 21- galoisfixedfield(,,2) now works with non Galois subfields
BA 22- nfgaloisconj now use `d-1'-test + better strategy
BA 23- fix accuracy problems in vandermondeinverse
   24- missed some simplifications when handling multivariate t_RFRAC
   25- [Cygwin:] incorrect default 'path' (used : instead of ;)
   26- element_sqr didn't check its arguments (SEGV if bad input)
   27- possible stack corruption in polroots (+ improved GC there)
   28- typo in nfsubfields (incorrect bound: could miss a subfield)
   29- typo in zsimpjoin (concat error in bnrdisclist, intr. in 2.2.0)
IZ 30- typo in Configure [rl_save_prompt and _eprintf not found in target libs]
MD 31- oo loop in ellap [uninitialized array length in apell1]
   32- stack corruption in addfrac [wrong result for large denominators]
MD 33- resmod2n [called from powmodulo] could return unnormalized integers
   34- not enough GC in nfinit for huge degrees [get_mul_table]
   35- intformal(1/2/t^2) --> apparent oo loop
   36- polredabs(degree 1 polynomial) --> x  [could be very slow]
   37- polredabs() could use a basis which was not LLL reduced
BA 38- pariformats (e.g %Z) incorrect on 64bit machines
   39- polhensellift(x,[x,1],2,2) --> "bug in multiplication"
   40- glitches in readline completion (random() * ne<TAB) --> inserted args)
IZ 41- CLK_TCK may reside in time.h
   42- misleading definition for ?omega / ?bigomega
   43- on \q, "Good bye" --> Goodbye
   44- install() accepted gpnames which were not valid identifiers
   45- bnfinit(x^4+65,,[.1]) --> SEGV   (whenever c < c2)
   46- when host badily configured (~ not expanded), gp would die on startup 
XR 47- factorpadic(, not a prime, ) --> SEGV
   48- matrix(2,2,i,i, ...) allowed, with weird result
BA 49- better arguments checking for galoisfixedfield
   50- psi(I) --> incorrect type in rtodbl
XR 51- increase precision automatically when needed in quadhilbertreal
   52- idealstar(bnfinit(polcyclo(5)),11).clgp --> stack error
   53- default(format,"g0.4"); 3./10 --> 0.300004577  [now: 0.3000]
   54- subst() didn't check its arguments (e.g SEGV on t_STR)
   55- qfbclassno(x < 0): wrong algo when x non fundamental 
   56- obscure bugs with types FRACN/RFRACN [when simplifies to INT/POL]
IZ 57- readline history: while inputing continuation lines, the partial
       command was not put into history until full command was run
   58- not enough GC in polroots (dft) for huge degrees
   59- Cygwin: don't try to build gp-dyn.exe [crashes]
   60- use vsnprintf to fix a long-standing bug in PARI output (using formats)
       used a fixed-length buffer that could overflow. If vsnprintf is not
       found by Configure, the bug remains.

  Changed
    1- removed useless parameter prec in many bnr* and rnf* functions
    2- major update of bnr* functions [use elements in factored form]
    3- use /tmp instead of /var/tmp as default tmp directory [faster on Solaris]
BA  4- Fp_PHlog (Pohlig-Hellman) can use a factorization of the subgroup order
    5- major update of buchall() [bnfinit]: accurate precision increase, use
       multiplicative archimedean components (fewer logs), cleanup
    6- [libpari:] rename permute/permuteInv to GP names numtoperm/permtonum
    7- scalar + [;] --> error  [made it [;]]
BA  8- factorback, chinese, lcm and gcd now accept a single vector
    9- Use I \cap Z instead of NI in hnfideal_inv
   10- improved issquare(t_INTMOD)
   11- improved subresultant routines (new function pseudodiv)
   12- command-line options to Configure (installation directories)
   13- rnfequation: use modular (bivariate) resultant
   14- polynomial gcd (srgcd): uses modular algo (modulargcd,nfgcd) if possible
   15- unified internal hnf* functions
   16- improved nfsubfields [Hensel lift, allow nfsubfields(pol) instead of nf]
   17- merged all "integer logarithms" + "safe ceil" functions (mylogint,
       get_e, floor_bound, myceil)
   18- readline: TAB on empty parentheses following a function name has the
       same effect as M-h (used to insert args).
IZ 19- faster computation of prime number table [better cache use]
IS 20- obscure compiler bug in rootpol.c:max_modulus() [don't modify tau]
   21- make bench ('elliptic'): explained [BUG] message
   22- allow lift(t_PADIC)
   23- faster polroots for Q of the form P(x^k)
   24- allow subst(t, x^n, x)
   25- ?user_fun: do not include function text if help available from addhelp
       [always include it for ??user_fun]
   26- default values for used defined function arguments are evaluated when
       the function is called [used to be "when it's defined"]
   27- allow subgrouplist(znstar(5)) [didn't accept groups in general form]
   28- taught GP about GP2C-style type declaration [ignored]
   29- 0. [realzero()] is now coded on 2 words (was 3, with third one ignored)
IZ 30- readline history: lines are remembered as they were input (whitespace
       was deleted)

  Added
BA  1- function pith() [= pi(x), naïve implementation]
    2- new target for Makefile: gp.dbg
BA  3- library functions FpX_roots_to_pol, FqX_roots_to_pol
BA  4- library function FpX_FpXQ_compo (Brent & Kung)
    5- library function FpM_inv, FpM_gauss, ZM_inv, QM_inv
    6- library function primitive_part
IZ  7- readline: allow switching readline editing on/off [for commandtools]
IZ  8- readline: F1 has same effect as M-h, and F1F1 as M-H (short/long help)
    9- function writebin
XR 10- new error message "precer" (precision too low in...)
   11- allow minimal handling of t_VECSMALL under GP
IZ 12- add error messages (as in err(shier2)) to emacs tag file
   13- add error messages (as in err(shier2)) to vi tag file
IZ 14- add flag to shift() to enable consistency with 2-complement semantic
IZ 15- default 'prompt_cont' for continuation lines
IZ 16- default 'readline' to switch readline on/off in readline-able binaries
IZ 17- capabilities to 'bittest' (return bitmap, 2-complement arithmetic)
GH 18- inline assembler micro-kernel for alpha + recent gcc (at least 2.95.3)

  Removed
    1- obsolete functions twototwo, threetotwo, threetotwo2
XR  2- error message truer2 (superseded by precer)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Done for version 2.2.0 (released 30/04/2001):

  Fixed
BA  1- gpflog could print some lines twice
    2- return() could forget objects on heap
    3- polhensellift didn't accept factors which were not squarefree
    4- Configure missed some shared libraries (when only .so.version was there)
    5- possible symlink attacks against mpqs()
    6- internal requests for precision of bnfinit(x) [ = Q ] could yield SEGV
    7- compatible = 3 not taken into account when reading a file
    8- cbezout(0,0) = 1 (should be 0)
    9- when lines > 0, output driver didn't reset properly after user output
   10- nfdisc(x^5+2*x^4+3*x^3-3*x^2+122*x-1) --> impossible inverse
   11- bug in gcc-2.95 -O3 -fomit-frame-pointer [Linux]: SEGV in quicksqri
   12- addrfrac: could return a t_RFRAC whose denominator wasn't a t_POL
   13- bnfcertify (zimmertbound): off by two error when reading bound
   14- very inefficient Hensel lift (used ideas from Shoup's NTL)
   15- incorrect assumption on factor degrees in polcompositum (SEGV in rare
       cases)
   16- Vec(VECSMALL) --> incorrect object
   17- galoispermtopol didn't check permutation length (--> SEGV on bad input)
XR 18- rnfinit(nf, T) -> bug in multiplication if nf = Q
   19- Pol(cotan(x)) -> SEGV
   20- factor(tough polynomial over Z[X]) --> possible SEGV when padic
       precision is increased [e.g factor(polzagier(60,0))]
XR 21- bug in ideal bound computation in rnfnormgroup
   22- bnrisprincipal(...,y+z) --> SEGV
   23- GP could forget about a function whose redefinition was stopped by a
       syntax error (sometimes with a delay!)
   24- bnfisnorm result would include pols in MAXVARN: e.g. Mod(1, #)
BA 25- pbs in Fp_factor_irred (factoring over Fq a pol. defined over Fp)
   26- missing macros for gphelp (tex-mode) in chapter 5
   27- nfsubfields(nfinit(polcyclo(13))) --> impossible inverse Mod(0, 29)
   28- argument checks for element_mulid, nf_get_r1 (access to nf.sign)
   29- typo in quadhilbertimag (SEGV for very large discriminants)
   30- wrong precision used in numerical derivation
BA 31- isprime(n < 2, 1 or 2) gave wrong result
IZ 32- \r C:\a.gp wouldn't work     [ : and \ forbidden... ]
BA 33- bad PARI prototypes in init.c [were confusing GP2C]
XR 34- nfdisc: fixed cache system in nilord (esp. precision handling)
BA 35- nfgaloisconj(polcyclo(40)): accuracy lost
       nfgaloisconj(polcyclo(11)+1): oo loop
IS 36- typo in squfof tuning on 64bit machines
   37- -lm doesn't exist on MacOS X
BD 38- typo in src/kernel/l0asm.c: ulong not recognized by MSVC
IZ 39- TeX quasi-parsing in gphelp
   40- ^C in gp would kill an xdvi launched by gphelp via ?? [detach from tty]
   41- factor(P in Z[X]): wrong bound used in LLL_cmbf --> "no factor"
   42- one extra blank line printed with some error messages [errcontext]
   43- no typechecks in subgrouplist and forsubgroup
   44- round4 [dbasis]: make sure polmodi gets a polynomial, not an int (SEGV)
   45- various typos in rnfkummer (SEGV or 'non-maximal rank in nfhermite')
   46- Configure -l (no argument) didn't work anymore
BA 47- incorrect quoting in src/make_vi_tags (make ctags)
   48- 1/[;] --> error, whereas [;]^-1 --> [;]  [ now, allow 1/[;] ]
   49- ??real  only gave the help on t_REALs, not on real()
   50- eigen: "missing eigenspace" [roundoff pb in ker() compared to exact 0]
   51- error messages on GP metacommands (\...) indicated wrong context
   52- bnr functions might fail with "indefinite matrix in lllgram" [prec pb]
   53- nfhilbert(nf,a,b, pr | 2) would give bogus result if nf in variable 0 (x)
MD 54- real(1 / (a+quadgen(...)*b)) was a / (a^2 + b^2)  [assumed quadgen(-4) !]
   55- wrong HNF (reduction not finished) when nblines >> nbcol [hnf(,0) only]
   56- rare problem in isprincipal (large non Galois base field)--> wrong 
       result (generators not required) or infinite loop.
   57- compatibility problems with readline-4.2 (build would fail)
BA 58- pari format %Z (pariputsf) treated incorrectly on 64bit machines
XR 59- typo in smallvectors (polredabs): possible oo loop

  Changed
    1- DOS distribution archives (GPM removed)
XR  2- round 4 algorithm: compute characteristic polynomials via Newton sums
XR  3- nffactormod now calls factmod / factmod9 when possible
XR  4- don't compute discriminant in nffactor/nfroots + better bounds in nfsqff
    5- input loops rewritten (filtre more flexible + unified common code)
    6- better modular arithmetic for polynomials (+ uniformized names)
    7- bnfinit: "looking hard" part overdone in random relations. Tuned down.
XR  8- added flag in rnfconductor to check extension is abelian (under GRH)
    9- made Vec("pari") return ["p","a","r","i"] instead of ["pari"]
   10- renamed library function gsize() to sizedigit()  [conflict with gtk]
XR 11- bnrstark: check if N0 is too large (=> computation impossible)
IK 12- let lisGEN() return NULL when EOF is met (was oo loop)
   13- algorithm for zeta(), gamma() [initial GP code by HC]
   14- improved rnfnormgroup() [reduce number of calls to isprincipal]
IZ 15- flags for OS/2 build + use generic [pre|suf]fix for object files
IZ 16- readline: hit_return() would not work after Esc-H
                 extend online help recognition capabilities (Esc h/H, F1)
   17- install the whole distribution (see ?12)
   18- clean up in the bnrdisclist ray class group internal functions
   19- naming scheme for development versions library: libpari-2.2.so.0.0.0
   20- new Configure flags --share-prefix, --host
   21- allow library functions to return NULL to the GP interpreter
   22- let A^-1 and 1/A return a left inverse of A if it exists [A had to be
       square]
   23- retuned factorization over Z[X] (+ "d-1 test" in naive recombination)
   24- sort factorpadic() output

  Added
    1- files README.WIN, config/[arch-osname|locatesymbol], doc/tex2mail.1
GN  2- Jebelean extended gcd + rational number reconstruction
XR  3- new flag to rnfconductor (check extension is abelian)
IZ  4- set of default colors (boldfg)
    5- modular polynomial arithmetic ([uni|bi]variate resultant over Z,
       characteristic polynomial of algebraic numbers, nfgcd).
       [undocumented, experimental]
    6- Pohlig-Hellman discrete log over Fp and nf.zk / pr
BA  7- flag to galoissubcyclo (also output conductor)

  Changed
    1- start using the new modular functions [polcompositum]
BA  2- sqrtn, aka mpsqrtnmod (modular n-th root) uses Fp_shanks now

  Removed
    1- obsolete undocumented functions oldidealinv, idealinv0
    2- buggy function hnfhavas (hnflll is a better alternative)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Done for version 2.1.0 (released 17/11/2000):

  Fixed
    1- non portable \e in es.c (pb with Sun cc)
    2- ^C while prettyprinter in action --> gp crash
    3- polresultant(a,b,x,2) --> b
    4- exp(log(1.+x+y)) --> division by 0
TH  5- support cygwin version 1
    6- TeXmacs interface
    7- GP parser codes (sqrtint, idealprimedec)
    8- trap (break loop) + NO readline + ^C at input time --> exit.
    9- qfminim(,,,1) --> nonsensical result (typo)
   10- SPARC + gcc-2.97 --> bug in addsmulsi (register reset too soon)
   11- trapping allocatemem() could crash GP
   
  Changed
    1- release PARI under the GNU GPL. Remove COPYRIGHT file, add COPYING

===========================================================================
Done for version 2.0.21 (released 27/10/2000):
  Fixed
    1- trap(gdiver2,a,1/0) <C-D> trap(,a,1/0); trap(gdiver2,a,1/0) --> crash
    2- lllgramintern could reduce a wrong lattice (after precision problems)
XR  3- not enough GC in bezout()
    4- use hnfmodid in ideallllred  (work mod I \cap Z, not mod N(I))
IS  5- C++ compilation problem (compl is a C++ operator + casts)
    6- factor(x^2 - 16810110*x + 62994937599000) --> division by 0
BA  7- Pocklington-Lehmer didn't stop factorisation after sqrt(N)
    8- exp(log(Pi+x+y)*1.) --> SEGV (still gives an error, but a decent one)
    9- factorff needed a prime field F_p where p was single precision
   10- more digits than were significant could be printed (ex: precision(Pi,1))
   11- rnfisnorm didn't accept vectors on Zk basis as argument
   12- [cygwin] fixed timer (always returned 0)
IS 13- function prototypes (missing 'extern')
   14- quadray(bnf, ...) didn't work when bnf.disc < 0. Could also return
       a relative equation over an intermediate field
   15- deficient argument checks: asinh(2*x-1), agm(1,1-x), zetakinit(2*x-1),
       idealinv( , wrongtype), nfnewprec([2*x-1]), thueinit(non-monic or
       degree 1), lcm(x, 0) rnfidealmul(2*x-1,0), galoisfixedfield(2*x-1),
       qfbnupow(2*x-1, 0), polred([x,x]), bezout(Mod(x,x^2+1),0),
       numtoperm(-1,0), polred(nf), idealhnf(nf,y+z), factorpadic(,y,),
       nfelftreduce, rnfsteinitz, idealappr(not an nf, ...): SEGV
   16- check variable numbers in algtobasis: nfalgtobasis(nfinit(P(y), x))
   17- factorcantor(x^4 - x^3 - 2*x - 1, 3) --> SEGV [typo!]
   18- matsupplement(non-exact entries): fixed zero test (--> |x| < eps)
   19- precision(I*1.) --> +oo (should be realprecision)
   20- global() could check uninitialized memory
   21- default(prettyprinter,"non-existent-file") ---> SIGPIPE and GP crash
   22- gamma(1+O(3^2)+x) --> SIGFPE
   23- typo in cxgamma (gamma(-4.1+Pi*I/2) --> exponent overflow)
   24- Odos/paricfg.h defined PARIINFO incorrectly
   25- inconsistenty t_POLMOD specification: Mod(x,y)+16 --> invalid object
   26- bnfsunit error (impossible I-->S) when large class group
   27- qfminim([;],...) / qfperfection([;]) --> SEGV
   28- idealpow(,,,1) only reduced at the end, not after each multiplication
   29- typo in zbrent (always used bisection)
BA 30- cotan(x) wasn't accepted
   31- wrong internal prototype for thetanullk (prec not taken into account)
   32- various bugs in gphelp -detex (??\a)
   33- trap + ^C + next would interrupt \r or read()
IZ 34- external prettyprinter incompatible with colors
   35- idealval used much larger numbers than necessary
   36- sqrtint very inefficient (computed with full precision all along)
   37- bnfisprincipal couldn't deal with some non-Galois fields
   38- listcreate allowed creating longer lists than GP could later handle
   39- INPUT colors was "leaking out" (affected status messages)
   40- idealpowred(, power > 2^32) --> wrong result
   41- when lines > 0, output driver didn't reset properly after overflow
   42- huge precision losses in bnfinit computations (--> truncation error)
   43- mateigen([1,2;3,4]) wouldn't work at default precision
   44- leftover debugging statements in gphelp -to_pod
   45- zeta(x) didn't always use the precision of x (contrary to the other
       trans. functions)
   46- some Warnings from MIPSPro 7.2.1 compiler (contributed by PM)
BA 47- gdiv(SER,POL) --> SEGV when POL has lgef < lg
   48- check relative pol is monic before calling a rnf* function
XR 49- cleaned up bnrL1 character computations
XR 50- round 4: possible problems when increasing p-adic precision
   51- stack corruption in mppgcd(huge t_FRAC, huge t_FRAC)
BA 52- abs(t_SER) not allowed
   53- nfdisc(non monic polynomial,, disc factorization) returned wrong answer
   54- rnfidealnormrel(rnfinit(nfinit(y^2-2),x),2) --> SIGBUS
   55- hardcoded paths in a few scripts (tex2mail, gpflog, make_vi_tags)

  Changed
BA  1- more efficient quadratic Hensel lift
    2- made ya optional in polinterpolate
BA  3- more efficient factorff when pol belongs to Fp[X] (based on Fp_isom)
    4- catch SIGFPE
    5- made poltchebi efficient
    6- write all real zeroes in exponential format (0e28) in format 'g'
    7- bnfsunit: try to compute S-units even when the class group is large
                 reduce class group generators
    8- 0.e N now inputs a real 0 of decimal exponent N (was N-defaultprecision)
    9- try to avoid errors due to precision loss (while computing archimedian
       components) in bnfnewprec/bnfmake
   10- restore \o2 to previous meaning, use \o3 for alternate prettyprinter
   11- normalized output of idealfactor (sort factors)
   12- better TeXization (\left / \right)
   13- allow color changes in error messages (when sample input is given)
   14- format for bnf[9] (new isprincipal)
   15- cleaned up isprincipal + bnfinit (small_norm, getfu, class_group_gen)
XR 16- added flag for D>0 in quadhilbert: if non-zero, try more modulii
   17- idealred: reduce huge ideals as Z-module first (using lllintpartial)
   18- TeXmacs interface

  Added
    1- library function zerovec
    2- van Hoeij's algo. for modular factors recombination (factor over Z[X])
    3- algdep for p-adic numbers
IZ  4- default values for 'colors' (light/dark) and 'prettyprinter' (tex2mail)
    5- hnflll implementation (old one was preliminary and didn't work at all)
GN  6- squfof implementation
    7- numerical derivation
XR  8- GP interface to hensel_lift functions (polhensellift)

  Removed
    1- quadrayimagwei, preliminary implementation to quadray(D < 0) 

===========================================================================
Done for version 2.0.20.beta (released 07/06/2000):
  Fixed
    1- gp -p1e -->SEGV
    2- nfinit([x,1]) --> SEGV
    3- ensure stack large enough [allocatemem(1) painted user in a corner]
    4- make sure mpinl.o is linked (binaries may fail to build otherwise)
    5- make sure sqrt(Mod(a,b)) terminates
    6- memory leak with PARI pointers (issquare(4,&x))
    7- 'make clean' didn't affect doc
    8- Configure didn't detect some SuperSparc + Linux combination
    9- forprime (and friends) could crash when loop index was tampered with
   10- trap(, -1, (1/0)) == -1 ---> -1 (analyseur not reset)
XR 11- bnrstark initializations (incorrect when field not totally real)
   12- member functions not very robust [e.g. ellinit(e,1).roots --> SEGV]
   13- compiler warnings (gcc -O -Wall)
   14- trap() not robust enough in library mode (nested handlers)
   15- (x^2+3)/(2*x)*x --> invalid RFRAC
   16- factorpadic result used too high a precision (+improved handling of
       nonmonic polynomials)
   17- sqrt(Mod(0,1)) --> oo loop (+ improved a bit mpsqrtmod)
   18- no GC in norml2
IZ 19- tex2mail had difficulties with rational functions
   20- (rare) SIGBUS in quadclassunit(non-fundamental discriminant)
   21- g()=f()==0 --> syntax error
   22- } as last char of an input file (missing a final \n) caused problems
   23- ??keyword@ didn't work properly (pattern modified between chapters)
BA 24- bug in galconj.c:corediscpartial (could return half integer)
   25- factorff and ffinit "not random enough"
TH 26- Configure doesn't handle cygwin new directory structure
CW 27- polsturm(x,0,1) = 1 (should be 0)
   28- [library:] gentimer(3) didn't work
PW 29- various bugs in qfminim(,,2) [bound was rounded up + stack corruption]
   30- ellap(e,2) gave wrong result when 2 | e.disc
   31- factorint: isprime() used on factors even within smallfact()
GN 32- SEGV in mpqs main sieving routine (unsigned comparison)
   33- prevent polredabs from keeping small vectors accumulating in a subfield
  
  Changed
    1- renamed .DOC files to .txt (Explorer was getting confused...)
    2- moved MANIFEST to config/MANIFEST
IZ  3- meaning of flags > 1 in plothraw
IZ  4- output of \x (a bit more verbose)
    5- unified basic t_QFR routines (use exponential distance internally)

  Added
BA  1- Pocklington-Lehmer primality prover
BA  2- Fp_isom (library)
BA  3- Mod(a,b)^(c/d) for a,b,c,d integers
    4- flag to vecsort (decreasing order)
BA  5- function sqrtn

===========================================================================
Done for version 2.0.19.beta (released 17/03/2000):
  Fixed
    1- buffer overflow in ploth (when extrema too large)
    2- trap(,"") didn't work
IS+BA 3- various fixes necessary for g++
    4- prototype inconsistency in level1.h (evalexpo/evalvalp)
    5- trouble with pgcc -mk6 + variable k6 in elliptic.c
HC  6- nfnewprec(bnf) could contain objects of low accuracy
XR  7- check subgroup argument in bnrL1
    8- typo in ideal_two_elt (oo loop)
    9- pb with GNU as + preprocessor on Sparc
   10- incorrect result in matdet over Z[1/n] (Gauss-Bareiss) [gdivexact]
   11- solve(x=0,1,deriv(x)) --> SEGV
   12- ??' --> weird error
   13- generic SNF (polynomial entries) couldn't handle 0s on diagonal
   14- incorrect handling of 0 ideals in some functions
XR 15- typos in bnrL1
   16- bad input not handled in rnfcharpoly()
IZ 17- delay rounding in rectplot structures until plotting device
   18- Mod(1,x) / matid(2) --> incorrect object
   19- avoid getrusage on alpha (pb with gp-dyn)
   20- incorrect file inclusions when using gas on Sparc (-->undefined symbols)
   21- massive cancellations in zetak(nfz,) when current prec lower than nfz's
XR 22- bnrstark(): fixed inconsistency between 32bit & 64bit versions +
       check maxprime() before starting the computation
PW 23- hyperu bad input bug
PW 24- intnum(x=1,2,0) --> oo loop
   25- sin(x + y) --> error
   26- next(i > 1) didn't work (part of the last loop could be executed)
   27- typo in polrootspadic(p, 2, *) [singular case]

  Changed
XR  1- bnrL1 now takes a congruence subgroup as second argument
    2- allow some functions to modify bnf/bnr structures (matal + cycgen)
CB  3- modified TeX macros for pdftex
    4- have abs(t_COMPLEX) give an exact result if possible [abs(0*I) was 0.0]
IS  5- improved generic gcc compilation flags
    6- in qfbclassno(), compute in G^2 to get rid of cycli factors
    7- improved bnrdisc/bnrconductor

  Added
BA  1- function galoissubcyclo()
BA  2- (for now internal) function inverseimage_mod_p()
BA  3- optional arguments (vertical range) to plot()
IZ  4- `ticks' on hi-res plots
IZ  5- prettyprinter default and tex2mail file
BA  6- new function Fq_ker

===========================================================================
Done for version 2.0.18.beta (released 20/12/1999):
  Fixed
    1- wrong method chosen in isinexactfield for 0 polynomials
    2- stack corruption in sylvestermatrix(0,...): Mod(x,x)^-1 --> SEGV
    3- garbage left on stack in ginv(1 / n)
    4- typo: carreparfait --> gcarreparfait in nfiso0()
    5- for (A=1, 2, A = -A) --> SEGV
IZ  6- [gnuplot] couldn't set terminal as the first graphing operation
DE  7- typo in kernel/sparcv7/level0.S: err --> pari_err
    8- TeXmacs interface (use new protocol)
    9- call simplify() before applying GP '==' and '!=' operators
      Ex: x;n;k;m; (n+m)==(k+1-k)*(n+m) was false.
   10- sumdiv(N,...) required single precision N
BA 11- bound problems in nfgaloisconj()
   12- infinite loop in do_agm()
   13- "Warning: in Gauss lg(a)=1..." from isprincipalall0
   14- specific error for precision problems with p-adic ell. curves 
IZ 15- ploth() plots are 1/2-pixel off
BA 16- result was not always complete in nfgaloisconj()
   17- type(1/y, RFRACN) --> SEGV + check compatibility before applying type()
   18- made 'secure' safer. Confirm before write, prevent from changing 'help'
   19- gettime() called the wrong timer(): was reset in debug mode
   20- missing case (doubling) in apell1
   21- gmod(x, mod) replaced by gmul(x, gmodulcp(gun,mod)) in poldivres
       [obscure bugs when dividing complicated polynomials with mixed 
        polmods/intmods].
   22- Make sure result is a t_POL before doing a setvarn in caract2_i()
   23- precision problems in ClxModulus (bnrstark()) [check leading term!=0]
   24- elltors() could miss some points: determine needed precision first
   25- clean up files after an error (not only under GP)
   26-  divisors(highly composite integer) --> "cryptic" error message
   27- 'make clean' wasn't thorough
   28- ellpointtoz(e, [0,0]) could correspond to the inverse point
   29- "ideals not coprime" in rnfsteinitz
BA 30- typo in Configure [CPP] (cc --> CC) 
BA 31- member functions for galoisinit
   32- allowed power series in Mod(). Fixed cryptic error messages.
   33- precision problems in zsigne
   34- value of 'gzip' found by Configure overwritten in TOP_Make.SH
XR 35- precision loss in Round 4
XR 36- ensure that fundamental unit is computed in quadray (if D > 0)
XR 37- precision fixes in stark.c (inconsistencies 32/64 bit + early abort)
   38- bug in P*Q for polynomials over (non prime) finite fields if Q is
       defined over the prime field
XR 39- [stark.c]: bugs in RecCoeff3, reduced memory use in ComputeArtinNumber
   40- core dump on infinite recursion under GP
   41- use appropriate precision in torselldoud (could be much too large)
   42- removeprimes(addprimes) didn't work
   43- (at least part of) numerical instability of LLL over R
   44- f() = bug(x, &y) ---> syntax error
XR 45- inefficiencies in ComputeArtinNumber for large modulus
HC 46- no GC in dirmul
   47- meaningless heap count for user functions
   48- setrand(16);quadclassunit(48893) --> infinite loop
   49- rnfpolred(bnfinit(y^2+1),x) --> SEGV
   50- float overflow in polroots (e.g polroots(x^3 + 2^1024*x + 1))
   51- charpoly(Mod(1,x^2+1)) --> SEGV
   52- added GC in polsturm
BA 53- bugs involving rarely used type combinations in generic operations
   54- check x >= 0 in lllgramint(x)
   55- in rnfdedekind: use rnfhermitemod, not rnfhermite (slooow)
XR 56- updated factorpadic to use new Round 4
BA 57- nfgaloisconj: discrepancies between 32/64 bits architectures
   58- random(1 << 32) could have 32 bits
   59- missing newline in error messages on startup (reading .gprc)
   60- silent codeword overflows (e.g. O(x^100000))
IZ 61- updated gnuplot support
   62- x="a"; eval(x) --> error
   63- general flakiness with buffer handling under GP
       (Ex: input() + allocatemem --> SEGV)
   64- [1] == 2 --> error (instead of 0)
   65- lngamma(-0.106) --> SEGV
   66- quadray(-11,3) --> x^2
XR 67- typo in nilord2 (wrong value for modular reduction)
   68- unsafe division t_SER / t_SER with clonable components
   69- polroots(1E-28*I*x^2+1) --> bug in roots (conjugates)
   70- typo in cxlngamma [ lngamma(-7.4927-0.418564*I) --> SEGV ]
   71- polroots(polynomial of very small Norm wrt prec) behaved badly (SEGV)
   72- polylog(1, Mod(1,2)) --> SEGV
   73- zeta(22!/23) --> SEGV
   74- not enough GC in rnformax
   75- over-reactive 'secure' default (+ moved it later in default .gprc)
   76- sqrt(Mod(15,y^2+1) + O(x^5)) --> SEGV
BA 77- typo in isinexactfield
   78- sum(x=1,10, expr1; seq) : seq silently ignored
   79- ellan and elltaniyama didn't check their arguments
   80- simplify(t_POLMOD) could create invalid objects (mod not a t_POL)
   81- primes(-1) --> SEGV
   82- addprimes(0) wasn't rejected
   83- various inconsistant error bessages (e.g. factor("a"))
   84- estimate for the precision of unit embeddings in isprincipalall
   85- global("b") --> polvar corrupt
   86- hnfmod --> hnfmodid whenever possible
   87- check arguments in incgamc
   88- non-rectangular matrices could trigger a SEGV (in error msg!)
   89- qfminim(,,2) didn't like mixed t_REAL/ t_FRAC entries (typo)
   90- inconsistant spacing after GP error messages
   91- regrouped code between idealred and idealmin
   92- prevent 'install' in secure mode
DS 93- typo in bnfisnorm(,,flag > 1) [extraneous gtrans]
   94- don't reset pariErr in err_recover()
   95- highlevel.c had become dependant from gp.c
XR 96- incorrect output of quadray(D,,1) when D>0 and rayclass is trivial
   97- typo in lllall_trivial --> matkerint([0;0]) didn't work
BA 98- incorrect object for gerepileupto in gscalcol
   99- try to detect bad input (e.g quad. form not > 0) in (integral) LLL
XR100- typo in nffactor ("keep the value of i")
IS101- work around an obscure gcc bug (gcc-2.96, alpha-linux) in stark.c
  102- rnfcharpoly(nfinit(y^2+1),1,1) --> SEGV
BA103- tan(t_COMPLEX) gave bogus result
BA104- trace([;]) --> SEGV

  Added
IZ  1- [gnuplot] look up directory tree for gnuplot related files
    2- improved on-line help wrt to defaults and ambiguities
       (? default/some_default, ? some_default)
    3- library functions gentimer, genmsgtimer, get_timer
HC  4- optional argument to direuler (length of result)
    5- low-level kernel function for integer squarings (twice faster)
    6- error trapping in library mode and under GP
    7- break loop to investigate errors under GP
    8- "sprintf-rounding" under GP
IZ  9- string justification in high-res plot
IZ 10- bit operations ( bit[ and | or | neg | negimply | xor ] )
XR 11- add new flag value in bnrstark/quadray: try to find a better modulus

  Changed
    1- default binary produced by Configure -g is now static
    2- improved the heuristics in ellisoncurve
HC  3- extend the range of direuler (maxp was 2^16)
    4- trial divide by the "private primes" before the primality tests
    5- don't double stack automatically
    6- disable ff_poltype correction (for lack of decent finite fields) in gmul
    7- slight optimization to hnf / hnfmod (skip zeroes)
XR  8- nfsqff: choose a prime ideal with few factors + better heuristic bound
IS  9- default CFLAGS on linux-alpha
   10- improved factorcantor / factorff

  Removed
    1- sunview "support" (didn't work, hard to test, X11 is a better standard)

===========================================================================
Done for version 2.0.17.beta (released 24/09/1999):

  Fixed
XR  1- typo in zarchstar (result possibly incorrect when more than two places)
    2- check_unit not severe enough ([;] --> session could die !)
    3- wrong error message when using global var as argument to user function
    4- typo in boundfact(t_FRAC) --> SEGV
    5- buchall: don't compute xarch if not needed
    6- remove limit on string size + silent overflow, e.g Str(10^5000)
    7- "break status" not checked often enough: [break, 1] --> SEGV
    8- rewrote errcontext (use print_text to fit messages on terminal)
BD  9- added workarounds against some MSVC annoyances (Windows version)
IZ 10- typo in Gnuplot.h
   11- typo in Configure ("2>&1 >/dev/null" replaced by ">/dev/null 2>&1")
   12- simplified incgam[23] + typo (mulrr --> gmul)
IZ 13- typo in LD_LIBRARY_PATH setting (benches)
   14- inconsistency in gadd(0., FRAC) (should give 0. if FRAC small enough)
   15- libraries/headers ordering inconsistent in Configure (report: IZ and KO)
   16- typo in ff_poltype [symptom: (Mod(1, y^2 + 1)*x + 1)*x --> garbage]
   17- qfbprimeform(4, [2]) --> SEGV
   18- overflow in  factorcantor(2*x^3+3*x^2+x, 2^31-1)
   19- memory corruption in apell1 + no garbage collection,
       rewrote the function to parallel apell0, replaced hashing by sorting,
       use Montgomery's trick, removed the p < 10^25 limit
IS 20- cc -64 warning in mp.c:vals()
   21- bad free in gp_expand_path
   22- extract([;], "..") --> SEGV
   23- not enough GC in hnfall
   24- recover gracefully when precision too low in lindep/algdep
IS 25- cleaned up unused variables, fixed some missing casts
   26- algdep(x) --> undefined behavior when x exact. Replace by decimal
       approximation
IS 27- C++ keywords (new, class) occurred as variable names
   28- arguments of ideallistarch not checked
   29- Mod(t_FRAC or t_PADIC, t_INT) --> garbage
   30- gcmp1(t_REAL) always false: polylog(2, 1) --> error
   31- (spurious) compiler warnings about variables used before initialization
   32- memory (possibly) freed twice in buchall + unsafe allocation of matcopy 
   33- online help for matsnf not updated
   34- rnfequation() didn't check its arguments correctly
   35- removed spurious special case in compute_class_number()
   36- typo in the compatibility macros mpabsz / mpnegz (missing ;)
   37- "lost pointers in gerepile" in bnfisprincipal(Q, ...)
   38- bnfisprincipal(..., Pol(0)) accepted
   39- [Configure] Makefile name didn't necessarily match object directory
   40- zetak(nfz, integer + 0.) --> stack corruption
   41- for(i=1, ..., zetak(nfz, any complex number)) went slower and slower
   42- poltchebi(.,y), pollegendre(.,y) didn't work
   43- confusing "array index out of allowed range" message (e.g [1-0])
IS 44- fixed obscure compiler optimization bugs in smithall() and eint1()
GN 45- weird results in ellisoncurve() due to misguided precision heuristics
   46- typo in forvec([],...): lisexpr() --> lisseq()
   47- check arguments in ploth()
XR 48- rare bug in bnrL1 (wrong value!)
   49- precision problems in polredabs
   50- division by 0 in rnfordmax [typo in mymod()]
   51- removed all dangerous occurences of constpi/consteuler (cf 41-)
   52- typo in det() [forgot to divide by a pivot]
   53- divide by 0 error in lllgramintern (precision problem)
   54- suminf(k=1,suminf(j=1,.067^(k+j)/k^4/(k+j))) ran forever
   55- factor(2*x + 2) --> [2*x + 2, 1] (instead of stripping the content)
   56- (ultra-rare) stack corruption in mpqs_solve_linear_system()
   57- rl_refresh_line() prototype changed across readline's versions
   58- incorrect handling of INTMODs modulo integers of different magnitude
XR 59- matsnf(3 x 3 matrix, 4) --> SEGV
   60- some pathological bnfinit() computations (strive to get maximal rank)
XR 61- precision problems in nfsqff() [increase precision for T2-norm bound]
   62- time wasted checking generators of the form [x,0,...,0] in polredabs
   63- variables deleted too late in freeall()

  Changed
XR  1- modulus choice in bnrstark
    2- make sure that addii(x,y) returns gzero, not icopy(gzero)
    3- cutoff in ellap to use Jacobi sums (457 --> 100)
    4- pariputsf("%Z",(long)g): removed the casts (not needed)
    5- cleaned up hnfspec
    6- look for at least MIN_EXTRA extra relations in buchall
    7- simplified calling interface to hnfspec/add
    8  Used hnfspec in bnfsunit, changed the way S-units are found
    9- output of bnfsunit modified (removed res[3], made res[2] suitable
       for hnfadd)
   10- listput and listinsert now return the inserted element, not the list
   11- check_break_status rewritten: was very inefficient
   12- Used parser code DG whenever it was possible (moved reorder to init.c)
   13- faster isunit()
   14- added GC in expr()
   15- buchall(): increase subfactorbase without starting over
GN 16- minor tuning in pollardbrent() for huge integers (call ECM sooner)
   17- renamed directories dos -> Odos, o.xxx.xxx --> Oxxx.
       Moved win32/* --> Odos
OR 18- new version of pari.el
XR 19- new modular round 4 implementation (nilord2)
BA 20- improved algorithms in galconj.c

  Added
    1- an optional argument to next()
    2- MANIFEST
YU  3- support for FreeBSD ELF binary format
    4- file CVS.DOC
    5- support for Windows CE (Nigel Smart + coworkers)
BA  6- functions related to Galois theory: galoisinit, galoisfixedfield, etc
    7- [library] trivial function realun()

  Removed 
    1- #define HIGHBITM1 (useless)
    2- files config/tar_[include | exclude] (obsoleted by MANIFEST)

===========================================================================
Done for version 2.0.16.beta (released 29/06/1999):

  Fixed
    1- paricfg.tex (needed to compile INSTALL.tex) missing if Configure is 
       not run. Added a test in parimacro.tex
    2- non-portable casts in galconj.c
    3- 64-bit graph benches (extra spaces)
IZ  4- typos in plotgnuplot.c
    5- unnecessary plothsizes in "graph" bench (fails if no X server)
    6- typo in ff_poltype
IZ  7- check rectwindow in rectcopy and rectclip
IZ  8- /opt/local/lib missing in Configure's library path
IZ  9- [Math::Pari] needs pariErr->die _before_ pariErr->flush
IZ 10- wrong valence code for plotcolor, plotclip
IS 11- obscure inlining bug (pgcc 1.1.3 -O3) in stark.c:ComputeKernel0()
   12- gcc -E doesn't define __GNUC__. Add it explicitly to KERNELCPPFLAGS
   13- whatnow(sigmak) didn't tell the arguments have been swapped
   14- [1]~ * [[1]] --> SEGV
   15- lim=(av+ x * bot) >> y can overflow if large addresses are available
       (e.g Linux...). Use lim_stack() instead
   16- algdep(I,1), lindep([I,1]) entered an infinite loop
   17- removed the maxHastad (= 50) limit in algdep/lindep
   18- typo in polrootspadic(,,1) --> SEGV
   19- GC not frequent enough in idealval
   20- in split_ideal (isprincipal), LLL-reduce first if ideal is big
   21- factorpadic(,,,1) didn't work anymore
   22- round 2 (= nfbasis(,2)) used too much memory
   23- idealval did not accept all types of ideals
GN 24- unsafe stack handling in auxdecomp
   25- polroots[mod|padic] returned a t_VEC, not a t_COL (as polroots)
   26- check coeffs of polynomials with coeffs in nf (rnf* functions)
   27- typos in polredabs0 (get_Bnf + nf_RAW in storeallpols)
BA 28- nfgaloisapply could forget to clean up the stack
   29- typo in gp_rl.c (rl_save_prompt <--> rl_restore_prompt)
DE 30- arch="sun4" non reconnu par Configure
   31- uninitialized variable (prec) in quadhilbertimag
IS 32- pari.el.in was not updated when gphelp was moved from miscdir to bindir
   33- rnfkummer(bnrinit(bnfinit(y^2-y-1),101,1),[1,0;0,2]) --> gerepile error
IZ 34- update gnuplot interface
      a) Strings were put too low in gnuplot terminal;
      b) Allow setting of output file sizes, as in plotterm("gif=300,200");
      c) Allow querying of possible output terminals, via plotterm("?")
      d) Update to newer Gnuplot-interface-layer (Gnuplot.h)
         allows compilation on Linux (stdout was bad as an initializer),
         corrects bugs in processing of terminal options
   35- in buchall, allow minfsb to increase before doubling cbach
       (bnfinit(x^4+5*239*x^2+5*239^2) couldn't be computed)
   36- bnfnewprec can't handle bnf = bnfinit(,2) --> SEGV (now, error)
   37- typo in pseudorem (didn't recognize 0 properly)
GH 38- weird bugs in thue() on alpha: typo int <--> long in thue.c
   39- bnrisconductor assumed moduli had small norm (< VERYBIGINT)
   40- bnfnewprec didn't accept imaginary quadratic fields ("missing units")
   41- inefficiency in zarchstar (VERYBIGINT --> BIGINT)
       (rnfconductor(bnfinit(y^3+972*y-12),x^2+x+1) ran forever)
   42- too much memory used in rnfordmax (+ removed some inefficiencies)
   43- try to recover in nffactormod if input not prime (SEGV)
   44- SEGV in nffactormod if degree(pol) > 100
   45- factornf(p(x), q(x)) was accepted (and produced incorrect objects)
   46- nfisincl / nfisiso made use of the bug above
   47- subgrouplist(bnr) with trivial ray class group --> SEGV
   48- background color was assumed to be "white" (by gphelp and gp)
       Made it "transparent" by default
   49- pages shifted by 1 in User's Manual's table of contents
   50- Mod(x, x^2+1) + x return Mod(2*x, x^2+1), not x + Mod(x,x^2+1)
       (fixed gadd, gmul, gdiv)
   51- for certain flag combinations buchrayall unsuitable for gerepileupto
       (+ cleaned up the code)
   52- ^C in smithclean corrupt existing objects
   53- silent overflow in qfbhclasso
   54- nfreducemodpr didn't check its arguments
   55- confusing error messages when precision too low in initell
   56- polx[0] modified in nfsubfields(P(y))
   57- various memory optimizations in bnrstark
   58- incorrect debugging output in calc_bloc (at \g6)
   59- rare memory corruption when garbage collecting in mppgcd
   60- type t_STR not treated correctly in changevar
   61- C-long overflow in ellan
   62- memory use in the incgam* functions
   63- bad input bug: qfperfection(indefinite matrix) --> SEGV
   64- mateigen dropped some eigenvectors when precision was too low

  Changed
    1- err() --> parierr() [conflict with system library in Redhat 6.0]
    2- use Doud's algorithm in elltors [initial patch: HC]
    3- new (internal) function get_mul_table (for nfinit, padicff)
    4- disable LD_LIBRARY_PATH before running benches
    5- strtoGEN() --> strtoGENstr() + added flag
    6- optimized stack usage in pollardbrent (in place)
    7- don't try to compute units in buchrayall if bnf doesn't contain them
    8- simplified misc/gprc.* (esp. colors)
    9- use C long to keep track of exponent in regula
   10- src/kernel/sparcv7/level0.s --> level0.S + include preprocessing stuff
   11- extended matsnf flags: immediate cleanup (backward compatible)
   12- arguments swapped in veceint1
   13- allow @ markers (??keyword@) in extended help (was apropos only) 
   14- do all computations in mppgcd in place (as in Changed-6)
OR 15- new pari.el (cf emacs/pariemacs.txt)
   16- search multiple lines in apropos extended help (???key)

  Removed
    1- make test duplicated the "make bench" computations. Removed the
       test and dotest targets
    2 -veceint1() function. Can be reached in library mode or using a flag to
       eint1

  Added
    1- default 'secure'
    2- optional flag to Str()
    3- expand environment variables in filenames
    4- TODO file
    5- man page for gphelp
    6- Trivia section in the pari/gp man page

===========================================================================
Done for version 2.0.15.beta (released 21/05/1999):

  Fixed
    1- ?? (TeX mode) didn't work anymore
    2- rl_save_prompt incorrectly detected on a.out systems
    3- allow extra_relation() (bnfclassunit) to abort
    4- allow cbach to double once more before triggering PLEASE REPORT
       (introduced in 2.0.14)
    5- check for non-monic pol in smallbuchinit
    6- vecex<TAB> --> SEGV on some Linux systems (typo in match_concat)
    7- exceedingly rare but possible overflow in forvec(, flag == 1)
    8- factorff(x^7-3,3,y^3+2) --> SEGV
DC  9- ghpelp doesn't exit when problems arise in TeX processing
   10- made idealprimedec random again (also use det_mod_P_n to compute norm)
   11- inefficiencies in nfeltval (computing norm is a waste of time)
   12- did same prime twice when collecting garbage in modulargcd (=> error)
   13- ffinit(huge prime,) output a weird error message
   14- highly inefficient memory use in nfsubfields
IS 15- [cygwin] typo in Makefile generation
   16- file leak in mpqs (COMB)
   17- allow prime_to_ideal to be called with a t_INT argument (for quadray)
   18- typo in nf_shanks (calling Fp_shanks with wrong parameters)
   19- polun (possibly) destroyed in bnrstark
IS 20- keep logfile in synch with screen output
   21- reset DEBUGLEVEL correctly on ^C (was sometimes set to 0)
   22- bnrstark does not require anymore the modulus to be the conductor
   23- check bnrstark's arguments in the right order (bnrstark(1,0) --> SEGV)
   24- inefficiencies in idealval (removed element_mulh)
   25- idealadd unsuitable for gerepileupto
HC 26- quadray should work in all cases now and give better polynomials
XR 27- bnrstark should return smaller polynomials
   28- very inefficient pseudo-remainder routine (psres)
   29- forstep(x=a,b, 1/2, ...) --> SEGV (signe -> gsigne)
IS 30- [Cygwin] Configure fix (use $HOSTTYPE instead of uname -m)
   31- polcoeff(a*x^-1*y^-1+O(x^2)+O(y^2),-1,y) --> 0
HC 32- (false) accuracy problem in mpsc1 ("truncation error")
   33- don't use mpqs_diffptr in mpqs_find_k, set it in mpqs_create_FB
   34- (very rare) "precision loss in truncation" in buchall
   35- C-long overflow in zarchstar
   36- C-long overflow in zprimestar
   37- (old versions of) GNU as not recognized correctly
BA 38- ?? in TeX mode could not process some sections (missing macros)
   39- factor(polynomial with t_PADIC coeffs) didn't work (factorpadic
       assumed coeffs were integers)
   40- T=[1,x; x,1]; charpoly(T,Z) produced object with wrong variable
       ordering
   41- polrootsmod(x^n,p) could corrupt the stack
   42- Warnings/errors from HPUX and AIX native compilers
OR 43- many problems in the emacs interface pari.el (introduced in 2.0.14)
   44- factorpadic treated only monic polynomials
   45- gphelp TeX mode (use general macros instead of a specific file)
   46- under readline, input lines of length > 2048 could trigger SEGV
   47- more thorough check in checkbid (accepted prime ideals->SEGV)
GH 48- possible stack corruption in thueinit(totally real field)
XR 49- various problems in bnrstark (infinite loop in fincke_pohst)
   50- in doc/Makefile: removed GNU-style make macros + put a missing TAB
   51- sloppy garbage collecting in hnfperm
   52- HPUX+cc: work around a compiler bug (wr_float)
   53- warnings in make_emacs_tags (perl5.005)
   54- Configure --static should not disable install()
   55- in rare cases reduction not complete in lllgramall (off-by-1 error)
   56- addshiftw (polynomial case) could produce non-normalized polynomials
   57- take content into account in modulargcd as in srgcd (not normalized)
GH 58- uninitialized variable in poldisc0 (purify warning)
   59- inefficiencies in round 4: modular computations [more needed!]
       (starting from a patch by DF+XR)
GN 60- lllintpartial did not output the right matrix
   61- huge memory leaks in bnrstark
   62- signed int overflow in allocatemem 
   63- parisize (local to gp/gp.c) not updated properly
   64- *sol not properly initialized in subresall
   65- in idealpowred, check whether |n| < 16, not n < 16 (would slow down
       bnfinit a lot when class number is large)
   66- polrootsmod(x^6-10,25) --> SEGV (now error message)
   67- SEGV when renormalizing zero series in gdiv
XR 68- unify precision choice in bnrstark (4 different formulae used...)
GN 69- infinite loop in mpqs (64bits machines + harsh compiler) when more
       factors were found than were hoped for (1 <--> 1L)
GN 70- SIGFPE in buchall (double didn't fit in 32-bit integer)
   71- also check sign in real0 (internal: called by gauss_pivot)
   72- use current realprecision in plot() (was fixed: 28 digits)
   73- memory use in subgrouplist(bnr)
   74- in bnfcertify: "Too many iterations in isprincipal"
   75- auto detect precision in quadhilbertimag ("overflow in I+R")
   76- error message numbers in src/kernel/m68k/mp.s
   77- polroots(x^3-x-422!) --> "impossible R-> dbl conversion"
   78- not enough modular reductions in buchrayall (bnrinit)
   79- technical argument in quadclassunit not read correctly
   80- factor(x^3-1 + 0.*I) --> gerepile error
GN 81- gp -p (close to a p^2) --> p possibly missing in the prime table
   82- until narrow class group in quadclassunit is implemented, non-zero
       flag raises an error
IZ 83- some code numbers in functions_basic (for Math::Pari)
   84- precision problem in initell (AGM)
   85- "impossible assignment I-->S" in ellrootno
   86- missing break in poltype (factor)

  Changed
    1- ?? (no arguments) opens the users'manual in xdvi
    2- print readline version in header on startup
    3- compute multiplication table first in element_mulvec[row]
    4- nf[5][7] is now stored in two-element form (faster ideal inversion)
    5- install gphelp in BINDIR, not MISCDIR
    6- simplified output of trivial matrices
    7- replaced square_free_factorization by mysquare_free_factorization
    8- call LLL before using idealtwoelt
GH  9- choose random elements in idealtwoelt, and allow bigger ones in two_elt
   10- cleaned up lllgramall/lllgramintern + give quality ratio as argument
   11- in rnflllgram, try to survive lllgram errors (findmin)
   12- simplified rnfpolredabs (simple interface to polredabs). Should be
       much more efficient
   13- replace many gdiv by 1 ginv + many gmul in sqred1intern
   14- optimized polredabs (always do the initial polred now: it is for free)
   15- more efficient ideal multiplication in random_relation (bnfinit)
   16- library names nfhermite[mod|basis] <--> nfhnf[mod|basis]
   17- subgrouplist function (use Birkhoff algorithm)
   18- improve recovery in lllgramintern
   19- improved checkgenerator in polredabs (look directly for double roots)
   20- for consistency, return S-units in t_POL format (as fundamental units)
IZ 21- revamp gnuplot autodetection by Configure
BA 22- nfgaloisconj(nf, 4) uses Allombert's algorithm instead of Kluners's

  Added
    1- install-doc target
    2- make install makes a symlink pari.1 --> gp.1
    3- ??tutorial/refcard opens tutorial/refcard.dvi in xdvi
    4- posibility to extract the complement in vecextract
HC  5- Ducos's subresultant algorithm (polresultant(,,2))
HC  6- accept a "vector of steps" in forstep
    7- examples/classno.gp
XR  8- new function bnrL1
    9- new function gdivexact (used in subresultant, Gauss-Bareiss...)
   10- new function bnfnewprec
   11- optional argument to \l and \e shortcut
   12- nfinit,polred[abs] accept input of the form [pol, HNF basis for Z_K]
   13- q-Pascal triangle (matpascal(n,q))
   14- file src/basemath/subgroup.c, new function forsubgroup()
IZ 15- function plotclip
IZ 16- new file examples/taylor.gp (nice example for plotclip)
BA 17- new file galconj.c

===========================================================================
Done for version 2.0.14.alpha (released 05/03/1999):

  Fixed
    1- factormod(2*x+1, 2) --> "factor for general pol. not implemented"
IK  2- gphelp could leak temporary files
BD  3- for native Win32 build: buffer overflow in get_home, incomplete
       paricfg.h, typo in try_pipe (#endif misplaced)
    4- nfsubfields: could miss subfields if index > 1
    5- removed 3 useless setrand(1) in subfields.c
    6- rare and obscure memory bug in inverseimage (lost pointers in gerepile)
    7- memory bug in factorpadic4 (prime not copied before result)
    8- memory consumption in round2 (allbase)
GT  9- m68k version: duplicate symbols from mp.c
IS 10- Cygwin: in mpqs.c, open files in binary mode (otherwise fseek goes crazy)
   11- bnfisprincipal().gen gives the expected answer
IZ 12- signatures for Math::Pari in highlvl.c / init.c + GNUPLOT
       set-output-file problem
   13- if we think readline needs libiberty, check whether it's installed first
DB 14- PowerMac: header inclusion in highlvl.c, lround def'd in system headers
XR 15- rnfkummer makes sure to return an integer
XR 16- rnfconductor accepts polynomials with rational coeffs
   17- polredabs + internal precision change --> nfnewprec forgets nf[5][1]
   18- don't log lines twice when pariecho is set
   19- glitches in content() (e.g content("a") --> SEGV)
   20- get_sep(2) reacted incorrectly to empty strings
   21- rootmod could destroy its argument
   22- Fp_pow_mod_pol(x, 1,...) should return gcopy(x), not x
   23- galoisconj1 computed wrongly the precision needed (+ prototype change)
IZ 24- remove __OPTIMIZE__ dependence (define GCC_INLINE instead)
   25- off-by-1 error in apell1
   26- misleading error message in minimalexponent()
XR 27- in nffactor, forgot to update precision when increasing exponent
       (+ various typos)
   28- sparc + non-gcc --> kernel2 possibly not included: compilation failure
   29- when echo is set don't print prompt if line is empty
   30- ellpointtoz sometimes return -x instead of x
   31- gp -b 1 --> hangs gp
DE 32- many glitches in manual
   33- mathnf(x, 3) when x hasn't maximal rank (SEGV)
   34- differences in buchall 32bit/64bit (PRECREG too high. bnfinit(x^13-6))
   35- various inefficiencies in nfshanks ("module too large in nfshanks")
   36- memory leak in buchall (= bnf*)
   37- "not a definite matrix in lllgram" after a call to bnf*
   38- typo in factorff(x^3+2,3,y^2+1) --> SEGV
   39- [internal] missing tags (e.g zprimestar) after make ctags
   40- idealstar(*, big prime) --> cryptic error msg (more tolerant now)
   41- have Mod(0,1)^-1 return Mod(0,1) (fixes znstar(prime))
   42- ginv(-1/2) --> 2
   43- heap leak when using local()
   44- overflow in addssmod
   45- changed the syntax of round()
   46- sqrt(1. + O(x)) --> infinite recursion
IZ 47- don't create GP variables when expanding strings
   48- internal variable 'parisize' not properly updated after allocatemem()
IS 49- config/display didn't work properly with ActivePerl
IS 50- Configure didn't handle most recent Cygwin
   51- polinterpolate([],[]) --> SEGV
   52- adapted gp_rl.c to readline 4.0
   53- glitches in whatnow database (new file src/gp/whatnow.c)
   54- all warnings from gcc 2.8.1
   55- uninitialized tetpil in gscal() (bnfreg(x^2+1))
   56- precision problems in polgalois (degree > 7)
   57- config/locatelib prompted a lot of useless work (returning too many
       libraries) and could pick up the wrong library
   58- very rare bug in nfbasis (discriminant ok, but wrong basis)
   59- quadclassunit: make sure sub factor base is big enough (oo loop)
   60- more flexible "colors" default (initial work IZ)

  Changed
    1- x.fu outputs polynomials (as all bnf* functions), not polmods
    2- improved mppgcd (including vali)
    3- improved division vector/scalar
    4- \x to print a * in front of out-of-stack moduli (t_[INT|POL]MOD)
IZ  5- better commandline usage message
    6- don't buffer log messages going to pari.log
    7- accept [nf, t_POLMOD] where nf is expected
    8- poldisc() and quadgen() accept an optional variable name
    9- when defining user function check for duplicate variable names
   10- [internal] is_entry always uses function_hash (use is_entry_intern)
OR 11- pari.el updated (see emacs/pariemacs.txt)
   12- removed shiftl from lgcdii
   13- use roots_to_pol in polgalois
   14- precision heuristic in gauss_get_prec
   15- cleaned up lllall and lllgramall
   16- sort the output of nffactor, nfroots, factorff and factornf
   17- nfgaloisconj now guaranteed to find all conjugates (use nffactor)
   18- Removed flag 1 in nfisisom/nfisincl: function checks its arguments,
       and uses the best algorithm (both guaranteed complete). Changed the
       names (nfiso/nfincl) in library mode to match GP usage
   19- gerepile(ltop,lbot,0) no longer returns ltop - lbot
   20- improved floor and round(t_FRAC)
   21- removed some duplicate code from nffactor
   22- passing a pointer to GEN in a GP funciton now explicitly requires an &
IZ 23- more verbose error messages for online help
   24- increased a bit poltschirnaus's period
   25- DOS version: don't use more for external help
   26- cleaned up buchall code
   27- removed unnecessary gres from polarit1.c:to_fq()

  Added
    1- apropos command in gphelp (-k switch), ??? under GP
    2- function global()
    3- function gp_variable to use sums, etc in library mode
    4- [internal] new functions mulmat_real
    5- new functions gerepileupto[leaf|int]
    6- function znlog()
IZ  7- added default(color, "yes" / "no")
    8- --static flag to Configure
GH  9- inline alpha assembler (gcc specific)

  Removed
    1- isinclfast/isisomfast
    2- rounderror

===========================================================================
Done for version 2.0.13 alpha (released 14/12/98):
  Fixed
IK  1- Configure hangs on FreeBSD systems
RD  2- Roland's patch (2.0.11: Fixed- 42) had been incorrectly applied
    3- stack corruption in glcm (if operands > 10^155)
    4- index wrap-around in polsubcyclo (n > sqrt(2^31))
    5- incorrect placement of strings in psdraw
    6- memory corruption in rhoimag0
    7- fix up memory debug mode (\gm) when switching to alternate stack
    8- memory corruption (new_chunk + mulii) in gmul/gdiv (t_FRAC)
    9- escape chars in GP strings sometimes parsed twice (e.g Str("\\") --> "")
   10- nfinit(x^18+16) --> impossible inverse mod(0,2) (bug in eltppm()
       introduced in 2.0.12)
   11- weird SEGVs due to variable handling (changed the 'bloc' structure)
   12- moved highlvl.c to src/gp (libpari was missing symbols from plotport)
   13- polcyclo ignored its second argument (introduced in 2.0.12)
TP 14- minor fixes in paridecl.h (poldivres, gredsp: C++ compiler exits)
HC 15- still sign problems in resultant (see 2.0.12: Fixed-58)
   16- (Solaris):GNU ld doesn't like empty object files: remove kernel2.o
IZ 17- make bench forgot to treat the install() BUG in a special way
   18- factor(x^2 + I) --> SEGV (also with t_QUADs)
   19- factornf(x^3+1,y^2-1) --> stack doubling (now output error msg)
IZ 20- for Math::Pari fix valence of factormod()
IZ 21- outfile rename pari_outfile (conflict with gnuplot headers)
   22- DEBUGLEVEL could be modified and not reset upon interrupt
IK 23- make perl -wc gphelp happy
   24- incorrect use of gettime() in the library (nffactor) --> wrong timings
       (in particular for the 'nfield' bench)
   25- polred/polredabs used different types for output. Made both t_VEC
   26- remove duplicate polynomials in polredabs(x,4) and polred
XR 27- precision fixes in modules/[nffactor|stark].c
   28- in compatible mode, \precision didn't work anymore
   29- typo in Round4 (case "p small" and "p huge" were swapped)
   30- incorrect prototype for conductor in compatible mode
   31- factor((x^2-1)/2) --> SEGV (factpol assumed integer entries)
   32- memory usage in Round2: nfbasis(*, 2) (also cleared some inefficiencies)
IK 33- typo in primitive_pol_to_monic
   34- deplin did not check its arguments
   35- quadray() assumed variable "y" was not in use

  Changed
    1- glength() returns a C-long integer
    2- in hnfmodid(x,d) reduce mod d immediately
    3- allow vector(n), and matrix(n,m)  (filled with 0s)
    4- under GP, wait for input if line ends with '=' (cf \)
    5- wait for input when a line ends with an '=' sign
    6- modified extended help to (potentially) search the whole manual
    7- in nfdisc, specific error message if discriminant is 0
    8- use divide_conquer_prod() in factorback()
IZ  9- in test suite, add setrand(1) in front of poltschirnaus
IZ 10- M-( bound by default
IZ 11- improved gnuplot support
   12- improved gcmp[1|_1](t_REAL)
OR 13- new pari.el (see emacs/pariemacs.txt)

  Added
    1- members e, f, p, gen for prime ideals
    2- mathnf([M, M2]) computes mathnf(M), updating M2 (equivalent to
       v=mathnf(M,1) then M2*v[2], but much faster if M2 is small or over a
       finite field)
    3- local() keyword for user function definitions in GP
IZ  4- new functions plotfile(), plotpointsize()
IZ  5- splines for ploth (flag 256)

  Removed
    1- \k metacommand

===========================================================================
Done for version 2.0.12 alpha (released 06/11/98):

  Fixed
    1- GNU as incorrectly treated by Configure
GN  2- various fixes in mpqs.c (incl. file descriptor leak)
GN  3- [From 2.0.11- Fixed 14] floating point exponents: 1E1 --> possibly 0.1
    4- 1 % Pol(2) still wasn't right [cf 2.0.11- Fixed 31]
    5- src/test/dotest for DOS boxes (running sh)
    6- removed unreachable err() in factor()
    7- system() is defined under EMX, so make it available for DOS
    8- possibly use / as path separator under EMX, check COMSPEC and EMXSHELL
    9- compatible = 3 downcased all the following lines in gprc and caused
       incorrect behaviour of preprocessing statements
   10- unified default commands + better checks (e.g: default(log,0)->SEGV)
   11- memory leak in gp_main_loop: bufferlisit wasn't reset on error
   12- gptimer() not initialized properly if ^C was first command
   13- extra space (sometimes) output by command line completion in DOS
       version
   14- modifying histsize could corrupt the history stack
   15- incorrect error messages in gsqr
   16- not enough garbage collection in rootmod (polgcdnun)
TP 17- compilation using cc -64 on 64-bit SGI
IS+GN 18- "(hit return to continue)" message did not flush stdin
GN 19- ECM rewrite
   20- incorect absi_cmp in buch3.c
   21- useless garbage collecting in sqred2
   22- O(1)^(1/2) --> SEGV
   23- forvec(i=[],...) --> SEGV
GN 24- deriv(x*y, y) --> 0
GN 25- inefficient GC in ispseudoprime()
   26- fixed some (not all) compiler warnings (char * --> unsigned char *)
   27- exp(too large number) now gives a meaningful error message
AW 28- getrusage still not detected on FreeBSD 2.2.5
GN 29- off by 1 error in initprimes() (--> not enough calculated primes)
   30- inefficiencies in factor(t_POL)
HC 31- bug in rnfelementabstorel for Mod(scalar, t_POL)
HC 32- typo in gaussmoduloall
   33- idealred(principal ideal) always returned an archimedean part
HC 34- idealpowprime wrong for negative powers
   35- typo in binomial(n,k) (wrong answer if n<=k)
   36- online help for polinterpolate
   37- incorrect garbage collecting in quickmulii/quicksqri
   38- reformatted the output in test mode (gp -test)
   39- polroots((x-7)*(x-8)*(x+16)) took far too much time
   40- ellap assumed ell was given in characteristic 0
IZ 41- outlook of plot function (better labels, better choice of chars)
RD 42- when factoring over a non prime finite field and found a p-th power,
       forgot about Frobenius
GN 43- rare memory bug in ellfacteur
   44- gscalmat was not suitable for gerepileupto
   45- polredabs(,2) didn't handle non-monic polynomials
   46- check for various overflows (x ^ 1000000, etc.)
   47- printtex(I) --> missing closing brace
   48- setisset() did not check that elements were strings 
   49- typo in gdiv(t_POLMOD, t_POLMOD) with different variables
KO 50- missing ; in level1.h (Windows specific code)
   51- forprime(p=0,10,) indeed started at p=0
   52- (cf 2.0.11 Fixed-1) put back 3 cgeti in galois.c (were necessary)
   53- factorpadic could overstate the precision of the result
   54- (very) rare memory corruption in allhnfmod (when cleaning up)
PM 55- prototypes in paridecl.h (fussy IRIX compiler), cc -64 in MACHINES
   56- factormod implemented for all primes (p = 2 and p > 2^31 called
       factorcantor which was much slower)
   57- check for unsuitable input in [factor|roots] (SEGV for multivar. pol)
   58- polresultant sometimes gave the wrong sign
   59- extraneous space in err(impl,"") (= "sorry,... not implemented")
   60- aliases treated incorrectly during error recovery (--> obscure bugs)
   61- obscure bug when normalizing rational functions with real coeffs
       (corrected content())

  Changed
    1- paricfg.h in dos and win32 extracted by Configure before the release
       (to get version number right)
    2- GPRC logic: try $GPRC, then look in $HOME, /etc (/ and C:/ under EMX)
    3- make sure the output of pari_unique_filename() doesn't exist already
    4- use a stack of files to gracefully handle errors/interrupts without
       leaking file descriptors
    5- replaced fixed-size buffers by dynamically allocated ones (es.c/gp.c)
    6- rename INSTALL.QUICK --> INSTALL.DOC (updated)
              Changelog --> CHANGES (looks better under DOS)
    7- mention ?12 in the header
    8- use ; (instead of :) as PATH separator under DOS, OS/2 or Windows (for
       drive letter)
GN  9- ECM tunings
   10- check for overflow in cget* (instead of silent wraparound)
   11- gp_main_loop cut into (improved) pieces
   13- simplified normalizepol
   14- Warn when trying to replace an existing function with install
       (previously error)
   15- new function mpcopy. replaced some inlined function (rcopy, absi,
       absr, negi, negr) by compatibility macros
   16- gphelp now uses GPDOCDIR and GPTMPDIR
   17- improved rational arithmetic by computing smaller gcds (gredsp removed)
GN 18- improvements in MPQS (use less memory, count relations precisely)
   19- text-mode (non-TeX) extended help printed screen by screen
   20- retuned integer multiplication, and made polkaramul the default
       polynomial multiplication
XR 21- stark.c rewritten
IZ 22- updated the pariperl interface
   23- improved handling of t_INTMODs (less GC)
   24- improved (a lot) factoring/root finding for intmod polynomials
   25- modified poldivres to avoid computing remainder when useless
   26- removed inefficient shiftl/shiftlr from the kernel
   27- from the same sources, Configure can now simultaneously run on
       different architectures
   28- polynomial factorizer now sorts the factors (increasing degree)
   29- ?an_obsolete_function now calls whatnow
   30- .pol operates also on t_POLMOD
   31- random() argument can have arbitrary length
IZ 32- with gnuplot, pick a sensible terminal when X11 is not around
IZ 33- change valences for use with Math::PARI
IZ 34- various interface patches (new file highlvl.c, different prototype
       for foreignAutoload...)
   35- optimized permute()
   36- setrand, getrand, getstack, gettime return a C long, and not a GEN
   37- pari_randseed no longer global. Don't reset random number generator
       when entering certain functions
   38- improved smallvectors() (correcting the "not enough storage" bug)
   39- improved computation of special polynomials ([sub]cyclo,tchebi,legendre)
   40- read() and extern() are timed as a whole now
   41- check if LONG_IS_64BIT is correctly defined in pari_init (in case we
       include the wrong pari.h)
GN 42- use Lehmer-Jebelean to compute inverse mod p (TODO: extended gcd)
   43- moved subcyclo() to bibli2.c
   44- improved polredabs, suppressed flag 8
   45- improved ground(), case t_REAL
   46- modified the internal SMALL nf structure (add matrix M, for polredabs)

  Removed
    1- doc/Makefile.SOS, since make should succeed even if Configure failed
    2- many error messages from the analyzer (referer*, trucer1,
       matvecter...), better handled by talker2
    3- obsolete test %_ in bench
    4- polkaramul(), which is now the default multiplication
    5- factmoder error message
    6- obsolete function polredabsfast

  Added
    1- `pipes' for DOS running EMX, i.e extern() and extended help are
       available (perl needed for the latter)
    2- file handling functions pari_fopen, pari_fclose, pari_unlink
    3- new default `debugfiles'
    4- file README.DOS
IZ  5- target etags in top Makefile
    6- target ctags
IZ  7- gnuplot support
HC  8- elliptic functions package (ellzeta, ellwp, ellsigma)
HC  9- quadray function, extending quadhilbert
   10- files src/basemath/polarit3.c and src/gp/highlvl.c
   11- user-defined member functions
   12- possibility to choose sizeof(long) at Configure time when the
       hardware suports it (eg. MIPS)

===========================================================================
Done for version 2.0.11 beta (released 30/07/98):
  Fixed
    1- removed all dummy cgeti (--> new_chunk)
    2- stack corruption in gcarreparfait (t_INTMOD)
    3- incorrect Fq-loop in apprgen9
    4- removed useless normalize in gdivgs, gdiv
    5- some {} Warnings from gcc -Wall (unjustified, but doesn't hurt)
    6- incorrect zero series return by deriv
    7- gaffsg(, t_PADIC) misused the valuation (symptom: deriv((1+O(2^2))*x^2)
    8- online help for ellinit
GN  9- default gp built without X11 in presence of some versions of xmkmf
   10- ggval: zero series + simplified the code in there
   11- subst(O(q),q,x) --> O(q)
   12- newtonpoly did not treat correctly zero coefficients
IK 13- getrusage incorrectly detected (at least on Linux/FreeBSD machines)
   14- constante() used far too much memory (+ an int should have been a long
       + an lg should have been an lgefint). Reading in a huge bnf needs much
       less memory now
   15- y[2] checked in divri instead of is_bigint (see 2.0.10, Changed 2)
   16- powgi, default case: missing gcopy + incorrect gerepilemany if y==NULL
       Also, uniformized random GC with gpowgs
   17- stack corruption in hil(x,y,p) when typ(x) > typ(y)
   18- SEGV if DISPLAY was unset and hi-res routine under X11 is called
GN 19- ispseudoprime(negative integer)
   20- removed -static from the CFLAGS of profiling version (didn't build)
   21- linear algebra routines involving polynomials with real coeffs
   22- compiles properly under DOS + EMX
GN 23- Warnings from C++ compiler (include unistd.h and sys/ioctl.h where
       needed)
   24- znprimroot(0) --> infinite loop
GN 25- various fixes in mpqs
GN 26- add safety parentheses to macros in paricom.h
   27- polroots needed too much precision (two extra words)
   28- factor(1. * x + I) ---> rubbish or SEGV (bug in polynomialtype automat)
   29- possible address wrapparound in gerepile* (cast to ulong)
   30- in gerepile: useless special case for t_SER
   31- Pol(1) % 1 returned 1, not 0
   32- matdet([x1,1,1/x1; x2,1,1/x2 ; x3,1,1/x3]) returned wrong result
       (call to gdeuc should have been gdiv in all cases in det())
   33- SEGV in powmodulo (access garbage pointer just before exiting)
GN 34- various problems in rho and mpqs

  Changed
    1- simplified detint, fibo
    2- simplified GC and optimized gmul: t_SERxt_SER, t_POLxt_POL, and gsqr
       (same types)
    3- streamlined binomial
    4- replaced all abusive cmpsi by the relevant egalii
    5- prototype for error types [gmuler|gadder|gdiver][fi], assign[ri]
       using new function type_name
    6- uniformized the test suites (make test*,bench,...)
GN  7- add random GC in mppgcd. Use modified plus-minus algorithm (new cgcd)
    8- format of bench files (to reduce size)
    9- cleaned up factor and polynomialtype
   10- matdet tries to return a significant 0 when called with a
       non-invertible argument, e.g
         matdet([1+O(3),1+O(3);O(3),O(3)]) --> O(3), not 0
   11- made the output of make bench/test slightly more informative

  Removed
    1- mpkaramul
    2- error messages expter1 and gaffer13

  Added
    1- misc/gprc.dos a sample gprc for DOS boxes
    2- Configure --prefix=dir is now recognized (in addition to -p)
===========================================================================

Done for version 2.0.10 beta (released 09/07/98):
  Fixed
    1- integer factoring engine (ECM): sisprime killed N
XR  2- file closed twice in MPQS
GN  3- bad argument checking in [next|prec]prime
BD  4- warnings from MSVC compiler
    5- warnings from purify (vpariputs + puissii)
    6- sample program and Makefile in examples/
    7- v=...; forvec(a=v, v=...) ==> SEGV
LG  8- support for HP running NextStep
GN  9- have checkmemory (in cget*) check for overflows
LG 10- avoid a bug in cc compiler (version 4.2) under Solaris (in factmod())
LG 11- some missing prototypes and typecasts (for C++)
GN 12- add LOCAL_HIREMAINDER in mulssmod (factor(17!+1) => SEGV on some PCs)
   13- non portable pari_is_rwxdir
GN 14- lots of typos in the documentation

  Changed
GN  1- add debugging output to ECM
    2- forvec implementation (+ new flags)
GN  3- rewrote the integer factorizer (use Pollard-Brent + improved ECM +
       new MPQS code from 2.0.9)
    4- disabled pari-matched-insert under Emacs
    5- reorganized vecsort & co
    6- in library mode, classno3 --> hclassno
XR  7- improved the nffactor module
HC  8- elllseries (use ellglobalred + ellrootno)

  Added
    1- new function in library mode lisGEN()
HC  2- new GP function ellrootno

  Removed
    1- error message vecsorter2
    2- functions vecindexsort, veclexsort (use vecsort with flag)

===========================================================================
Done for version 2.0.9 alpha (released 16/06/98):

  Fixed
    1- typo in qfbhclassno (SEGV when result in (1/3)Z)
    2- too much memory allocated in factmod /factcantor (use clones)
    3- removed the -DREADLINE_LIBRARY hack, use <readline/readline.h> and
       not <readline.h>
    4- version 2.0.8 did not compile with readline 1.*
    5- after gaffect(0, padic), padic was unsuitable for further gaffect
    6- length(a string) gave number of non code words, not string length
    7- factorpadic(polynomial of degree one) did not convert coeffs to padics
    8- reduction mod p^r forgotten in gaffsg(s,t_PADIC)
    9- default(realprecision,,1) did not return # significant digits
   10- typo in nfmodprinit (return x instead of 1-x)
   11- matinverseimage did not check its arguments
   12- mathess([;]) --> SEGV
   13- matid(-100) --> SEGV
   14- mateigen([;]) --> SEGV
   15- matmultodiagonal([;],Mat(1)) --> SEGV
   16- vecextract([;],"..") --> SEGV
   17- introduced in 2.0.8 (Added 3-): aliases/user function + <TAB> ==> SEGV
GN 18- (t_RFRAC) ^ t_INT took an unreasonable amount of time
   19- prevent quick succession of ^C from corrupting memory in recover()
   20- hyperu could enter an infinite loop due to round-off errors
XR 21- matadjoint(Mat(n)) returned Mat(n), not Mat(1)
   22- matadjoint([;]) returned [[;]] (???)
   22- wrap some long error messages
XR 23- inefficiencies in rnfpolredabs
XR 24- nffactor (wrong format for discriminant computation + problems with
       unseparable polynomials + compute disc only once)
HC 25- typos in kummer.c
GN 26- check environment variable LINES, not ROWS
   27- introduced in 2.0.7 (Fixed 7-): lift(Mod(O(2^0)*x, x^3 - 2)^4) was a
       zero polynomial with non-zero sign (=> pb when normalizing in poldivres)
   28- timer always returned 0 if times() was used (e.g linux-alpha)
   29- kill'ing the argument of a user function corrupted the function
   30- make clean did not remove pariinline.h
   31- incorrect memcopy in identifier, case 's' (removed * sizeof(long))
   32- online help for ?. (nf.nf does not exist)
   33- lisseq0: gnil not respected after break/next. avma=av too brutal
       after return
   34- ellwp assumed precdl > 3
   35- under emacs, \c + hit return froze emacs (Emmanuel Kowalski)
   36- (f()= f()=x); f; didn't set f properly
GN 37- comments in anal.c
   38- qflllgram([;]) --> SEGV
   39- no online help for bernfrac
   40- from 2.0.6 (Fixed-8): in padicff2, forgot to raise ideal to power e

  Changed
    1- improved (trivially) gneg (case t_INTMOD), gtopoly
    2- use macro is_bigint() instead of tests (ulong)x[2] < VERYBIGINT
       (led to typos as in Fixed-4 in 2.0.8)
    3- improved poldivres by replacing many gsub by 1 gneg + many gadd
    4- in pvaluation check for small integer
    5- internal function rnfelement_*mod (prhall=NULL instead of gzero)
    6- improved mathess
    7- added error message "inconsistent data in" in parierr.h
    8- gpui[gs] renamed to gpow[gs]
GN  9- improved probable-primality tests ('end matching')
   10- moved pseudo primality and ECM stuff into ifactor1.c
GN 11- raise to an integer power using left-shift binary (new functions
       powi and powgi)
   12- add some details in the online help headers
GN 13- nextprime, precprime now accept real arguments
TP 14- improved the alpha micro kernel (addllx and subllx)
   15- simplified poltschirnaus
   16- cleaned up identifier(): #ifdef __hpux__ + call_fun() modified
   17- taylor() improved (one gerepile removed)
   18- unified the treatment of zero series
   19- gerepilemany faster and more efficient memory-wise (copy to heap first)
GN 20- improved stack checking in lllgramall

  Removed
    1- global variable defaultpadicprecision
    2- function compute_prhall (nfmodprinit is better)
    3- function [g]pseudopremier (miller[rabin] better)

  Added
    1- function egalii
    2- support for cygwin32 in Configure (Andy Stubbs)
    3- new function gunclone to delete a clone (killbloc should be used by
       the analyser only)
    4- comments in anal.c
TP/XR 5- new function factorint(), using MPQS (_experimental_)

===========================================================================
Done for version 2.0.8.alpha (released 07/05/98):

  Fixed
    1- improved garbage collecting in polroots
    2- zetak did not check its nfz argument properly
    3- warnings from MSVC
GN  4- isprime() did not work for numbers in [2^(BIL-1), 2^BIL-1]
GN  5- precprime sometimes missed a prime
    6- quaddisc(x in Q\Z) did not always work
    7- powering of zero series
    8- factorization of null matrices (SEGV)
    9- mateigen for non-diagonalizable matrices (SEGV)
GN 10- infinite loops in some arithmetical functions when arg = big prime
GN 11- cleaned up paridecl.h
   12- gimag/greal for type t_RFRAC/t_RFRACN (fix: Terje Sparre Olsen)
GN 13- ordinal numbers to number components seen through \x
HC 14- lllgram: incorrect gabage collecting in first "warnmem"
   15- theta(q exact, z) entered infinite loop
   16- typo in gdiventres (x<-->y in last line)
MS 17- gtrunc for p-adics when valp(x) < 0
MS 18- polresultant(u+v,u-v,v) => x + u;  polresultant(u+v,u-v) => 2*u
MS 19- issquare(Pol), where Pol(0) = 0
IZ 20- use 15 points (by default) for recursive plotting as documented
   21- matsnf for singular matrices (supersedes a patch by GN)
LG 22- micro kernel support for HPUX
LG 23- compilation with Sun's C++ compiler (version 4.2)
   24- SEGV when factoring polynomials of huge degree (removed expos[100],etc)
   25- garbage collection in gpuigs
GN/BH 26- micro kernel support for ix86 running SunOS
HC 27- handling of 0x0 matrix in some hnf* functions
HC 28- bug in discrayabslist* (try bnrdisclist(bnfinit(y^2-2),200,,1) in 2.0.7)

  Changed:
    1- moved hnf and snf from base1.c to alglin2.c (base1.c too big)
    2- use gexpo in linear algebra functions when entries contain real
       numbers (work for inexact polynomial entries now). Still does not
       work properly for p-adics
GN  3- in sigma() fall back to numbdiv() or sumdiv() when k < 2
    4- made comments started in file through read("file") local to file
       (not so \r file)
    5- valuation(0) now returns VERYBIGINT instead of raising an error
MS  6- simplified gegal in case t_FRAC
IZ/GN 7- faster initprimes, using less memory
LG  8- improved Configure

  Added:
    1- new function write1
MS  2- new Lisp-like quote operator 'a
IZ  3- readline: electric parentheses, move across balanced expressions,
         add formal arguments to completion of GP command (when unique)
    4- micro-kernel for hppa
    5- quiet mode (gp -q) to suppress headers

===========================================================================
Done for version 2.0.7.alpha (released 21/03/98):

  Fixed
XR  1- SEGV in get_regulator for imag. quad. fields
    2- "beautified" output (still ugly, less buggy, ok for simple objects)
    3- error during "print()" could change output default
    4- SEGV when syntax errors in gprc
    5- make install failed when libpari.$sodest had been removed
    6- moved term_width and term_heigth to es.c
HC  7- inefficiency in mulii (Karatsuba used too easily)
XR  8- many problems in stark.c
XR  9- bugs in rnfpolredabs (+ new flag)
GN 10- _many_ typos in tutorial and user's manual. New, much nicer, layout
   11- whatnow not robust enough + faulty call by err_new_fun ==> SEGV
   12- idealadd treated incorrectly the 0 ideal
   13- default(realprecision) gave wrong value when format had been changed
   14- bnfs structure was inefficient for applications (inverted 2nd comp.)
   15- buffersize was incorrectly updated during complicated read()
   16- one-line comments "ignored" if buffersize too small
   17- using eval on object containing killed variables caused a SEGV
   18- contfrac lost last term when first parameter was rational and
       numerators were supplied
   19- problems when dividing with polynomials/series whose leading coeff is
       non-exact 0
BD 20- missing #ifdef ZCAT in es.c
BD 21- check in paricom.h whether min / max are already defined
BD 22- universal_constants freed early in freeall() (problems on Windows NT)
BH 23- update Makefile.dos (nf.h --> parinf.h)
BH 24- changed kernel/ix86/level0asm.c (FUNBEGIN/FUNEND + ALIGN)
   25- cleaned the gauss_pivot functions + garbage collecting in gauss()
   26- mathnfmod did not check its second argument
   27- since 2.0.4 (item 24) install did not work anymore on FreeBSD + gp-dyn
   28- cleaner malloc in plotX.c (to remove Warnings when debugmem > 0)
   29- slightly optimized matdet (gsub --> gadd(,gneg))
   30- ? x=1; Pol(1)
         ***   variable name expected: x,n,
                                       ^---
       is fixed everwhere (wherever an optional variable name is expected)
       setting "x" to some value is now safe
IZ 31- nicer looking plot() function
   32- warnings while building for m68k arch
   33- sqrt(Mod(1,2)) went into an infinite loop
   34- ?? did not resolve aliases
   35- besselk near integers entered an infinite loop
   36- p-adic sqrt (bad valp)
   37- hnfmodid could output wrong results (wrong diagonal) and wreck the
       powering of prime ideals
   38- added garbage collecting in izeta
   39- ??a_number now works as gphelp
   40- in prettymatrix format, matrices 0xn and nx0 are always printed as [;]
   41- 1 - "a" ==> SEGV

  Changed
    1- reorganized output functions (es.c)
    2- have mulir check if integer is small
    3- part of GENtostr inlined (check_output_length())
HC  4- functions where it makes sense now admit an optional argument for
       "variable number" (intformal, deriv, things having to do with
       polynomials, etc)
    5- lines of any length can be input interactively (previously 1k at most)
    6- remove {} and \ from readline history
    7- improve treatment of sample programs in gphelp -d
    8- uniformized debugmem messages
MSo 9- simplify the coinit function
   10- changing the function set through default(compatible,) no longer
       resets installed functions
   11- renamed nfker-->nfkermodpr, nfgauss-->nfsolvemodpr
   12- simplified/extended dummycopy
   13- listput gives more informative error messages

  Added
    1- default: lines
HC  2- (made known to GP) functions nfmodprinit, nfkermodpr & nfsolvemodpr
XR  3- function bnrstark
    4- install code D& (optional pointer)
    5- function name_var (to use after fetch_var)
    6- concatenation of lists (or row vectors) of objects (overloaded concat)
    7- ranges for vecextract (eg. vecextract(x, "1..3"))

  Removed
    1- useless code 'F' in analyzer
    2- perl directory (moved the files in ./perl to ./doc)
===========================================================================
Done for version 2.0.6.alpha (released 22/02/98):

  Fixed
    1- \x (voir2) did not always print the correct number of words
    2- in changevar, type POLMOD, modulus and polynomial were interchanged
    3- all occurences of former header file names in the documentation
    4- (from 2.0.5. item C5) using allocatemem in a script aborted file reading
    5- expanded the documentation for bnrrootnumber
    6- factor(pol. with rational non integer coeff) could corrupt the stack
    7- Euler gave wrong results when prec > 80502 digits (also cleaned up Pi)
    8- cleaned up ggcd, grando0, tayl and factorpadic2
    9- is_scalar_t --> is_const_t in gvar/gvar2
IZ 10- Configure and example Makefile for OS/2
   11- idealprincipal did not accept n x 1 matrices
   12- idealhnf(nf,a,b) did not work for quadratic fields
   13- matsolve[mod]([;],.) could corrupt the stack or accept incorrect input
   14- modules/galois.c unnecessarily included <sys/stat.h>
BH 15- symbol name problem in level0asm.c (cancels patch by IZ)
XR 16- fixes in stark.c
   17- cleaned all occurences of HIGHVALPBIT and HIGHEXPOBIT
   18- serconvol assumed main variable was "x"
   19- (x + O(x^2))^(3/2) gave a stupid error message
   20- types not checked correctly in gtoser
   21- check more seriously arguments to default()
   22- in Makefile: added some missing $(RM), changed an "ln -s" in $(LN)
   23- extra '\n' after print1 + sequence of warnings
   24- simplified a statement in addii()
   25- typo in classno() (classno(-200183): "division by 0") + cleaned classno
   26- all compiler warnings + most of lint's
   27- make install would not work anymore if emacs was not found
   28- HNF reduction not always complete when rank is small compared to dim
   29- gphelp -d did not handle ~ properly (+ cosmetic changes)

  Removed
    1- unused files src/kernel/ix86/{asmi386.h,asmi386inline.h}
    2- useless macro gcopyifstack and global variable RAVYZARC
    3- useless error message gcder1
    4- useless (undocumented) function fasthnf

  Changed
    1- simplified isonstack
    2- extended valid inputs for matsolvemod
    3- don't output a '\n' before an empty matrix
    4- mpsincos no longer static (so that it can be installed)
    5- reorganized gp_initrc() to cater for for non-UNIX arch
    6- the "obsolete function" message now launches whatnow() directly
       (and caters for the special cases "i" and "o" now)
    7- improved stack management in hnf/allhnfmod/fasthnf
    8- moved powering functions to trans1.c
    9- disable logfile while reading .gprc
   10- (slightly) the output of whatnow()

  Added
BH  1- support for DOS build using EMX (dos directory + fixes)
    2- function cotan() and bernfrac()
    3- a code for pointers (&) for analyzer and install()
    4- ??readline now includes info about completion and online help

===========================================================================
Done for version 2.0.5.alpha (released 07/02/98):

  Fixed
BH  1- LOCAL_HIREMAINDER added twice more in mp.c
LG  2- some symbols declared extern in gp_rl.c to avoid compiler warnings
LG  3- isprime could corrupt the stack (isprime_proto removed)
LG  4- possible redeclaration of macro from system header (MAX in bibli1.c)
    5- typos in the user's manual
    6- removed unused error numbers and fixed their ordering in mp.s
    7- a ; or : after read/extern was not always correctly taken into account
    8- a bug in polroots (possible SEGV in very rare cases) (Paul Zimmermann)

  Changed
LG  1- (huge) reorganization of PARI kernel and headers
    2- logfile example in gprc.dft to take advantage of "time expansion"
XR  3- stark units module rewritten
HC  4- rnfpolredabs improved
    5- errors now cause GP to close any file it was reading instead of going on
    6- increased the static limit for the number of files opened simultaneously

  Added
XR  1- function bnrrootnumber

===========================================================================
Done for version 2.0.4.alpha (released 26/01/98):

  Fixed
    1- recovery on startup was not correctly disabled
GN  2- pari.el (see emacs/pari.el-changes)
    3- "" missing around a DLLD caused Configure to fail if shared library not
       available
    4- component of GEN could be created before its root in gadd(t_SER, t_SER)
    5- nffactormod did not like big primes
    6- removed the `.' binary concat operator introduced in last update
       (broke semantics). Instead Str() argument evaluated in string context
    7- solve did not find some obvious zeroes (solve(x=-2,1,x) for instance)
    8- Configure -pg did not work
    9- 68k version didn't work: corrected mp.s, moved some code & defines
   10- subst(x,variable(x),1) did not work
   11- flag acted contrary to doc in matsolvemod
   12- in rare cases the prompt could still start at column > 1
   13- bnfissunit much faster now
   14- idealval could make mistakes with non-integers
   15- Mat([1])[1,] gave a stack error
   16- zetakinit(x-1) as well
   17- zetakinit(K, even integer) gave a wrong result whenever r1(K)>0
   18- typo in whatnow(hermite) and ?bnfsunit
   19- missing newline in user error after print1
   20- various typos and omissions in chapters 1, 2 and 5 of manual
   21- (x-x)==(y-y) returned FALSE
   22- polfactormod(f,0) gave a SIGFPE
   23- some missing #ifdef UNIX
BH 24- install() now works for gp-sta under Linux and OSF
BH 25- gcc Warnings in gp.c + es.c
BH 26- problems when installing from a different non-priviledged account
BH 27- inefficiencies in mpinline.h (replace memory access by a constant)

  Changed
    1- when logging mode is on, record command line as well as result, and
       flush buffer often
    2- subdirectory lib now called misc. Changed some filenames in it
    3- defaults psfile and logfile are now run through strftime
    4- for benches total time now taken into account ([BUG] was excluded)
    5- noerr is now the LAST error message (for CLISP interface)
    6- cleaned path expansion (default(path,...))
    7- renamed types.h and cast.h (prefixed by "pari")
    8- renamed type Rect to PariRect
DB  9- kernel/kerPPC.s replaced by kernel/kerPPC.c
   10- made static the arrays in check_isin() (for the Mac port)
BH 11- overflow/hiremainder use local variables as much as possible
   12- prompt not printed during a batch job, unless echo is set
       commands not echoed twice in interactive mode

  Added
    1- gplogfilter script in misc
    2- check for strftime in Configure
    3- support for alpha running linux (include portability fix on keralpha.s)
    4- file MACHINES
    5- made message for "array index out of range" error more precise
    6- more frequent garbage collecting in mathnf
BH  7- inline asm for i386
GN  8- support for native compiler on AIX

  Removed
    1- support for dynamic linking on AIX (did not work)

===========================================================================
Done for version 2.0.3.alpha (released 13/01/98):

  Fixed:
    1- rare bug in gadd (PADIC + PADIC) which caused one of the arguments
       to be overwritten
    2- typos in refcard
    3- galois.c still couldn't compile on the HP (_INCLUDE_POSIX_SOURCE)
    4- introduced in 2.0.2: item 14 used gexpo incorrectly (bnfinit sometimes
       did not give units it could have computed)
    5- replaced INFINITY by pariINFINITY in rootpol.c (cancels Warning on OS/2)
    6- on OS/2, target ../gp-$dft in o.xxx/Makefile could not be built
       (extraneous $exe_suff)
    7- command line switches so that one can enter them with or without white
       space (new function read_arg in gp.c)
    8- setdcolors so that it can't unset disable_colors if we are under emacs
   11- random did not check its argument correctly (random(2^32) was accepted)
   12- b=10; for(a=1,b, b=2) exited immediately, whereas the upper bound is
       supposed to be evaluated only once
   13- reorganized the error recovery system (initially because errpile could
       cause SEGV on Linux systems)
   14- typo. problems in doc and refcard (interletter spacing in $nfz$...)

  Changed:
    1- Reorganized Makefile.SH: extraction twice as fast
    2- pari.menu and pariemacs.txt rewritten, pari.el updated
    3- expanded the man gp.1 to mention command line switches
    4- the implied input from non-interactive input command (like extern and
       read) does not go into the GP history (%x) anymore (it never went into
       readline's). The final output (value of last expression evaluated) of
       course still does!
    5- updated chapter 5 of the User's Manual (removed obsolete information)

  Added:
    1- better settings for handling the Meta key under readline in
       examples/Inputrc
YU  2- support for shared libraries under FreeBSD
    3- colors under Emacs
       1) emulate exactly the "colors" default after a M-x gp
       2) .gp files edited get a special highlighting
    4- a flag to default() to get the result under GP
    5- overloaded the "." (member) operator to concatenate as strings if LHS is
       a string
    6- .gprc accepts some limited preprocessing directive (#if READL and
       #if EMACS (and #ifnot as well)). Updated lib/gprc.default to reflect the
       changes

  Removed:
    1- some unused, undocumented functions (allocatemem(), checksqid())
       made static some other (op_ReIm)

===========================================================================
Done for version 2.0.2.alpha (released 15/12/1997):

  Fixed:
    1- typos in the documentation for the random() function
    2- removed an extra -emacs flag in pari.el
    3- decodefactor was incorrectly remembered by whatnow (it's factorback now)
    4- test mode did not prevent all prompt expansion (==> bug in make test)
    5- gphelp stopped abruptly when meeting a cross-referencing macro
    6- zetainit now aborts cleanly when disc. too big (caused memory fault)
    7- exceedingly rare bug in the printing of real numbers (missing decimals)
    8- too early rounding in polroots which in rare cases made GP think some
       error had happened
    9- text overflowed the manual pages (and tutorial) on non-A4 paper
   10- polred incorrectly assumed that nf arguments were totally real (in a non
       critical part: that just led to some unnecessary computations)
   11- polred(f,2) could try to overwrite universal integer gzero
   12- check if we are using GNU as or GNU ld in Configure
   13- empty -R argument to $CC when building GP without graphics (==> link
       failed)
   14- bnfinit acts sensibly when fundamental units are too large (before:
       "overflow in R*R")
   15- cleaned up buch2.c (removed ideallllredpart1, removed gerepile in
       class_group_generators(), not_given now called from getfu)
   16- nfgaloisconj(...,2) was unusable (tried an illegal multiplication)
   17- is_totally_split was very inefficient (==> nfgaloisconj was very slow)
   18- some unimportant typos (gexpo) in polgalois
   19- compiling without readline gave a Warning in gp.c (already_hist)
   20- some make programs don't like $< (suppressed from doc/Makefile)
   21- ellap sometimes assumed wrongly that coeffs of the curve were integers
   22- flag 0 and 1 in ellap had been mixed up
   23- print an extra \n before an error message if last output did not
       include it
   24- component(any non recursive type) gave a SEGV
   25- suminf / prodinf / prodeuler assumed they treated a real expression
   26- lindep / algep had problems with numbers having a rational component
   27- last significant digits of bessel* and hyperu were wrong (now only the
       last one is)
   28- expi now returns a long as documented (expi(gzero) returned 0 on 64-bit
       machines!)
   29- g++ could not compile libpari.a (casts missing, extraneous extern "C",
       faulty inline, etc.)
   30- cleaned up the enums in gp.h
   31- incorrect target veryclean in doc/Makefile

  Changed:
    1- '_' is now valid in GP identifiers
    2- removed subsections from table of contents. pages in the manual are now
       numbered consecutively
    3- gexpo now accepts exact 0 arguments (return -HIGHEXPOBIT)
       gexpo for complex numbers now return max(gexpo(Re), gexpo(Im))
    4- parts of lib/gprc.default
    5- the second argument of subgrouplist is now optional

  Removed:
    1- buggy label/goto functions
    2- (now unused) error messages: labeler, gexpoer2
    3- _ as shorthand for conj()
    4- (useless, undocumented) function gnormalize
    5- some files in the lib directory (functions, gp)

  Added:
    1- some files in the lib directory (README, pari.xbm, xgp)

==============================================================================
Done for version 2.0.1.alpha (released 29/11/1997):

  Fixed:
    1- multiple factors forgotten when factoring univariate pols over Z
    2- extraneous modifications of the random seed (period of random
       generator was ridiculously small for some buchxxx functions). Change
       the bench results (in a non essential way)
    3- bad terminal size determination
    4- aliases incorrectly killed (possible SEGV)
    5- incrementing/decrementing array elements with the (valid) syntax
      v[i]++ / v[i]-- caused a weird error message
    6- subgrouplist() could end up by a SEGV on Linux systems
LG  7- on HP-UX, flag -Aa not taken into account in Configure (caused it to
       fail on has_TIOCGWINSZ.c)
LG  8- added a missing #define _INCLUDE_POSIX_SOURCE in galois.c
       (7 & 8 independently fixed by OV)
GN  9- the script examples/cl.gp called vecconcat() instead of concat()
GN 10- make install-sta rebuilt gp-sta unnecessarily
GN 11- many, many typos in the tutorial
   12- tu / fu applied incorrectly to a bnfclassunit
   13- bnfclassunit did not output a valid object (matrix whose elements were
       rows instead of columns)
   14- conversion bug from t_QUAD to t_REAL/t_COMPLEX
   15- off-by-1 error in the history recovery after an error
   16- in fprintferr() (debug messages), embedded %Z did not work correctly
   17- rnfequation over Q yielded a SEGV
   18- string() in compatibility mode corrupted the stack
   19- it is now safe to have colours in prompt and input line under readline
   20- default colours restored upon exiting
   21- default colors in lib/gprc.default used 0 instead of -1 for "no color"
   22- psi and lngamma could give wrong results when the argument was not real
   23- the make test-graphic bench was missing a newline
   24- Pol(break) gave a SEGV
   25- x=1; Pol(1) gave a stupid error message
IZ 26- tutorial.tex was unnecessarily rebuilt
   27- typos in ggcd (cases nobody will ever access: gcd of a non-reduced
LG     fraction with an intmod, etc.)
LG 28- incorrect handling of integrals of vectors
   29- gcd of polynomials with non-exact coeffs gave stupid results (they are
       still often wrong, since the mathematical notion is rather imprecise)
   30- typos in rnfkummer (incorrect flag handling)
   31- typo in idealpowprime (negative exponent gave wrong denominator)
   32- multiplication t_COMPLEX x t_COMPLEX used 4 mult. instead of 3
   33- some modular functions (j, f, f2) rewritten to take advantage of new eta
       function (trueta)

   Changed:
    1- ?? (gphelp) starts in detex mode (-d) from a console window. tmp files
       now placed according to the $TMPDIR environment variable (in /tmp by
       default)
    2- /usr/local/lib/pari/data is a better place for the Galois resolvents
       (which are not included yet in the standard distribution)
    3- The example for prompt in gprc.default to discuss escape sequences under
       readline
    4- Configure now starts by searching the toplevel directory for a temporary
       readline installation
    5- The output of default(colors) was confusing. It is a string now
    6- third argument of polinterpolate can be arbitrary and is now optional
       ("x" by default) (it had to be numeric)
    7- directory configure renamed config, some of the Makefiles in there as
       well (to avoid confusion)
    8- the low_stack macro to facilitate dynamic stack expansion
    9- if, back to GP main loop, the last command was a print1(), output an
       extra newline. This way the prompt is guaranteed to be anchored on
       column 1 (suppresses a readline display bug as well)
   10- Due to 9, pari.el now supposes the prompt starts in col. 1
   11- Better handling of version numbers (LG)
   12- decodefactor() renamed to factorback()
 
   Removed:
    1- The (unused, undocumented) Malloc_Procs functions and macros
    2- The (now unused) error message numvarer
    3- some (useless, undocumented) targets in the top Makefile
    4- (useless, undocumented) function polgcd()
 
   Added:
    1- This file !
    2- new flags -ch, -cb, -cu (colour support) to gphelp (see its header)
IZ  3- OS/2 (+ enough tools...) supported by Configure
    4- file examples/Inputrc (example of .inputrc for readline)
    5- Weber f1 function implemented
    6- Karatsuba multiplication t_REAL x t_REAL (development code, not used by
       PARI yet). Test it with install if you wish