Bug numbers refer to the BTS at http://pari.math.u-bordeaux.fr/Bugs/

Done for version 2.20.0 (released ??/??/2027):

Fixed
BA   1- z=ffgen(23^3,'z);hyperellcharpoly(t^3+z*t+4) -> SEGV [#2703]
     2- localbitprec(53); lfun(ellinit([1,2]), 100) -> FPE [#2704]
BA   3- rnfisabelian could return wrong result for complex fields [#2707]
     4- nfislocalpower: error when argument not an algebraic integer
     5- x==0 incorrect for t_COMPLEX x (defined as |x| == 0)
     6- logint(t_REAL, 2, &z); z was uninitialized
MJ   7- matdet(qfbredsl2(Qfb(2,-1,2^10000))[2])-> -1 instead of 1 [#2711]
MJ   8- e.tate inaccurate at p=2 [#2710]
     9- polrootsreal(P, [a,b]) inaccurate for large (a-b) [#2714]
BA  10- setrand(2); hyperellisisom(x^5+x+1, x^5+x+1) -> SEGV [#2718]
BA  11- ellrank(E) could fail at low accuracy [#2719]
BA  12- b = ffgen(5^3,'b); hyperellcharpoly(x^5+4*x+b^2) ->SEGV [#2720]
    13- ellpointtoz(E/Qp, P) accuracy issues
MJ  14- bnfinit: typo making Grenie-Molteni's residue bound larger [#2706]
SL  15- qfminimize([-5,0,-2;0,-1,0;-2,0,1]->div by 0 [#2721]

Added

Changed
     1- normalization for 2-adic sqrt so that sqrt(1 + 4Z_2) = 1 + 4Z_2
BA   2- [pthread] Use sched_getaffinity to get number of cores.
BA   3- use sigsetjmp instead of setjmp for bsd/darwin [#2715]
     4- charpoly(matrix over p-adic fields): use Berkowitz in all cases
        (much stabler that former default = Hessenberg form)
