Hello folks, Sage 3.0 has been released on April 21st, 2008. It is available at http://sagemath.org/download.html * About Sage (http://www.sagemath.org) Sage is developed by volunteers and combines 71 open source packages. It is available for download from sagemath.org and its mirrors in source or binary form. If you have any questions and/or problems please report them to the google groups sage-devel or sage-support. You can also drop by in #sage-devel or #sage-support in freenode. --------------------------------------------------------------------- The following 48 people contributed to this release: * Tim Abbott * Michael Abshoff * Martin Albrecht * Nick Alexander * Tom Boothby * Robert Bradshaw * Jason Brandlow * Michael Brickenstein * Dan Bump * Craig Citro * Ondrej Certik * Timothy Clemans * John Cremona * Didier Deshommes * Nathan Dunfield * Dan Drake * Alexander Dreyer * Burin Erocal * Gary Furnish * Alex Ghitza * Andrzej Giniewicz * Jason Grout * Marshall Hampton * Mike Hansen * David Harvey * Geert Heldager Nielsen * David Joyner * Michael Kallweit * Josh Kantor * Simon King * Emily Kirkman * Robert Miller * Minh Nguyen * Willem Jan Palenstijn * Clement Pernet * Steffan Reidt * David Roe * Ryan Hinton * Anne Schilling * Harald Schilly * William Stein * Chris Swierczewski * Nicolas Thiery * Gonzalo Tornaria * John Voight * Yi Qiang * Justin Walker * Carl Witty Cheers, Michael Abshoff (release chair), William Stein * Major Features, New Spkgs and Bugfixes * Random Numbers * GCC 4.3 Support * New Default Binaries * Boolean Polynomials * Modular Abelian Varieties * Increased Doctest Coverage * R Pexpect Interface * Crystals * Laurent Polynomials For details see the Sage 3.0 Release Tour at http://wiki.sagemath.org/sage-3.0 * Known Issues with 3.0: #2983: Singular interface problems in matrix_group.py on Itanium/Linux: We see a segfault in the doctest and will hopefully fix this in 3.0.1. #2985: rubik.py's OptimalSolver() problem on Itanium/Linux: the doctest also segfaults with the "-long" option. This will hopefully be fixed in 3.0.1. * Bug Statistics We closed a record number of 277 tickets. For details see http://trac.sagemath.org/sage_trac/milestone/sage-3.0 or check out the closed ticket section at the end of the announcement. * Upcoming Releases The next release will be 3.0.1, chaired by Michael Abshoff. The release is planned in about a week. It will be mostly a bug fix release to clear up issues from the 3.0 release. * Doctesting Coverage For 2.11 we had: Overall weighted coverage score: 48.9% Total number of functions: 18853 We increased coverage by 2.6% in 3.0 while adding 661 functions: Overall weighted coverage score: 51.5% Total number of functions: 19514 * Closed Tickets: Merged in final: #2979: Michael Abshoff, Andrzej Giniewicz: force "-O0" for clisp with gcc 4.3 #2987: Tim Abbott: Debian build support for zn_poly #2988: William Stein: notebook -- issues with the CSS for the print display #2989: William Stein: notebook -- issue with how the notebook is run that breaks it sometimes; also fix a typo in pid. #2990: William Stein: sage-3.0.rc1: calculus/functions.py segfault on debian64 xeon vmware image #2991: William Stein: fix dsage testdoc problem #2994: Michael Abshoff: polybori.spkg - fix permission issue of the headers Merged in rc1: #2419: William Stein, Simon King: Gap interface and resultant destroy the Singular interface on some machines #2553: Yi Qiang, William Stein: dsage unit tests fail on linux #2928: Willem Jan Palenstijn: another p-adic extension segfault #2934: William Stein: doctesting files outside of sage repo is completely broken #2972: William Stein: libSingular related segfault in laurent_polynomial_ring.py #2973: Michael Abshoff: RDF doctest failures on arch linux #2974: Mike Hansen: interfaces/r.py doctest failures on many linux machines #2975: William Stein: opening ports too conservative -- breaks on some os x systems #2977: Alex Ghitza: wronskian is broken on constants #2984: William Stein, Michael Abshoff: ITANIUM (RHEL 5) -- turn off all unaligned access messages #2986: Gonzalo Tornaria: Add atlas pretuning for Pentium D/64 bits (ARCH=P4D64SSE3) Merged in rc0: #34: Craig Citro: Factoring for a subspace of ModularSymbols in general #839: Harald Schilly, Mike Hansen, William Stein: R pexpect interface #1642: William Stein: search for common Fortran compiles if no binary is present #2344: Michael Abshoff: python -- upgrade to version 2.5.2 #2955: Michael Abshoff: GFortran autodection on Linux/Itanium #2958: William Stein: twist.py -- doctest failures in sage-3.0.alpha6 on some test machines #2959: Craig Citro: bug in DirichletGroup over a finite base ring #2960: William Stein: remove devel/sage/sage/server1 from sage; it's old and crufty demo code #2961: William Stein: add doctest for alarm function #2964: Dan Bump, Mike Hansen: Improvements to weyl_group.py #2965: Tim Abbott: extcode spkg build failure on Debian #2966: Tim Abbott: Debian Singular spkg upgrade #2967: Tim Abbott: Debian package lcalc spkg fixes #2968: Tim Abbott: Debian package ntl fixes #2969: Tim Abbott: Autocomputing Debian package version numbers #2970: Michael Abshoff: Permissions on spkg-debian scripts Merged in alpha6: #903: Nick Alexander, Alex Ghitza: charpoly of matrices over number fields is ridiculously slow right now #2592: Willem Jan Palenstijn: NTL abort in Integers(125)[] #2615: Mike Hansen: compute the jordan basis together with the jordan canonical form #2886: Mike Hansen: change an error message when Sage crashes #2895: David Roe, Mike Hansen, Jason Brandlow: add support for Laurent polynomials in Sage #2903: David Harvey: make NTL error messages propagate to RuntimeError messages #2933: Mike Hansen: calculus -- substitution of a dict for SymbolicFunctionEvaluation is broken (but **kwds works) #2941: Ondrej Certik: update sympy.spkg to 0.5.13 #2944: David Harvey: add E2 parameter to padic_height_via_multiply #2945: Michael Abshoff: gcc 4.3: libfplll needs small fix to compile #2946: Willem Jan Palenstijn: bug in jordan_form #2947: Willem Jan Palenstijn: block_matrix([]) fails #2949: Mike Hansen: change slightly the docstring for assume #2951: William Stein: checkbox is not defined in interact #2953: Michael Abshoff: fix Givaro gcc 4.3 issue on Itanium #2954: Michael Abshoff: ATLAS: detection of Itanium 2 is broken Merged in alpha5: #449: Michael Abshoff: lcalc Solaris build fixes #848: Alex Ghitza: Using strings for infinity in GSL #1626: Michael Abshoff: update lcalc to 20080205, add gcc 4.3 support #1763: Alex Ghitza, Didier Deshommes: implement norms for matrices #1766: Dan Drake, Harald Schilly, Mike Hansen: enhancing latex embedding with plots #2195: Willem Jan Palenstijn: odd Givaro-related crash in finite fields #2219: Alex Ghitza: docs for root_field should say the polynomial needs to be irreducible #2347: Robert Bradshaw: better parsing for symbolics #2616: Didier Deshommes: Replace all matrix.submatrix() instances #2704: Martin Albrecht: bug in lcm(a,b) for a,b polynomials in QQ[] if a is constant #2850: Chris Swierczewski: Docstrings and doctests for permgroup.py #2851: William Stein: clean binary install of sage followed by "sage -br" is broken #2857: Didier Deshommes: numerical_approx for matrices #2875: William Stein: notebook -- save_session is completely brokenin the notebook #2879: John Voight: Bug fix in totallyreal_rel #2880: John Cremona: Special code for elliptic curve cardinality for j=0 and j=1728 #2901: William Stein: rewrite load_session and save_session to use much better modern techniques (in particular merge the notebook and non-notebook implementations) #2904: Didier Deshommes: sage/matrix/matrix_misc.py has no copyright info #2905: Gary Furnish: Various speedups #2911: Michael Abshoff: Use "$@" instead of "$*" in sage-* local/bin #2912: Martin Albrecht: M4RI should be built with -O3 #2913: William Stein: notebook -- deleting a running cell results in a bug #2914: William Stein: integers are immutable but set_str breaks that; having this function is a *major* bug. #2915: Mike Hansen, William Stein: bug in symbolic integration or "stupid bug in the sage/maxima interface"? #2916: Willem Jan Palenstijn: invalid coercion between non-prime finite fields #2917: William Stein: internal server error in notebook 3.0.alpha4 #2919: Michael Abshoff: gcc 4.3: compilation issues in partitions_c.cc #2920: Michael Abshoff: gcc 4.3: fix rubiks.spkg build #2921: Michael Abshoff: gcc 4.3: Fix flintqs.spkg build #2923: Michael Abshoff: gcc 4.3: matplotlib build fix #2924: William Stein: programming guide section on style is terrible #2925: Michael Abshoff: gcc 4.3: givaro-3.2.10.rc3 is broken #2927: Michael Abshoff: gcc 4.3: make Singular.spkg compile #2929: Michael Abshoff: gcc 4.3: fix gmp.spkg #2931: Michael Abshoff: gcc 4.3: fix linbox.spkg compilation Merged in alpha4: #1689: William Stein, Michael Abshoff: document SAGE_FORTRAN_LIB #1948: John Cremona, Alex Ghitza: K.factor_integer needs a name change, since now it does much more #2199: Tim Abbott, Michael Abshoff: Copyright files for Debian packages #2394: Tom Boothby: Wrap Cremona's newforms class #2590: Jason Grout: plotting a line with no points throws a nonsensical error #2643: Tim Abbott, Michael Abshoff: Fix Debian Sections #2682: Robert Bradshaw: balanced product for generators/iterators #2780: Alex Ghitza: factorisation over number field has wrong unit part #2814: Carl Witty: sage-3.0-alpha1 on ppc -- new randstate code doesn't work right at all #2822: Michael Abshoff, Michael Brickenstein, Alexander Dreyer: fix "Invalid read in libgroebner.so", fix memleak in BoolPolyRing destructor #2833: Clement Pernet: Linbox build failure on OSX 10.4 intel #2843: Willem Jan Palenstijn, David Roe: p-adic extension segfault #2864: Dan Bump, Mike Hansen: Weyl groups are mplemented in rootsystem.py #2865: Michael Abshoff: PolyBori fails to build on OSX 10.4 intel #2866: Yi Qiang: DSage - use tempfile.NamedTemporaryFile for unit tests #2867: Yi Qiang: DSage - allow load_files parameter in __call__ #2868: Dan Bump, Mike Hansen: Weight revision for fastcrystals #2869: Tom Boothby: Cell sizing is broken #2870: Gary Furnish: Various files poorly import calculus.py #2871: Didier Deshommes: matrix: M[range(2,-1,-1),:] returns junk #2874: Dan Bump: add tests for type E root system, correct some misinformation in root_system.py, add Justin Walker credit #2876: Yi Qiang: sage/server/notebook/twist.py doctest fails when dsage certificates are not present #2878: William Stein: notebook -- cython .c and .html links should open in new links (use target="_new") #2882: Tom Boothby: resize cells on window resize #2883: Tom Boothby: notebook -- typing in safari is sluggish! #2885: William Stein: make a knoboo optional package #2887: Tom Boothby: notebook -- greatly optimize something in the notebook by implementing a cached version of get_element #2888: Didier Deshommes: matrix slicing fails in degenerate cases #2889: William Stein: notebook -- huge output cells crash firefox #2890: William Stein: html.py --fix up documentation a little and a small bug #2892: William Stein: notebook -- traceback shrinking/expanding in the notebook is broken in an obscure case #2893: William Stein: notebook -- make it explicitly clear which systems are optional #2897: David Joyner: GAP: replace guava 3.4 by new and improved guava 3.4 Merged in alpha3: #1761: Tom Boothby, Nick Alexander: Graphviz output for graphs #2242: Jason Grout: optional nauty package #2379: Gary Furnish, Michael Abshoff: Merge sage-ptest into sage-test #2748: Dan Drake: Permutation constructor does not accept lists of tuples #2802: Josh Kantor: Sage 3.0.alpha1: sage/misc/inline_fortran.py doctest failure #2820: William Stein: notebook -- turn off the jsmath warning; fix other misc polish issues and bugs resulting from #2840 #2826: William Stein: notebook -- in safari, pressing enter after showing the list of completions doesn't work. You have to click #2834: Martin Albrecht: PyLint import cleanup for sage.rings.polynomial #2835: Nick Alexander: primes_of_degree_one iterator for NumberField_generic #2839: Mike Hansen: bug in conversion from symmetrica's longint #2840: William Stein: notebook -- remove ALL unused javascript from js.py and DOCUMENT every single function #2842: Martin Albrecht: PyLint - unused variable cleanup for sage.rings.polynomial #2844: Marshall Hampton: Polyhedral improvements, round 2 #2845: Martin Albrecht: fix PolyBoRi assertion errror #2846: Robert Bradshaw: no need for bitset.h with new Cython #2847: Robert Bradshaw: more speedups to cyclotomic polynomials #2848: Michael Abshoff: numerical noise in sage/misc/prandom.py on MacIntel OSX 10.5 #2849: John Cremona, Alex Ghitza: Bug in elliptic curve cardinality for j=0 in char. 3 #2852: Tom Boothby: ctrl-enter broken in firefox/linux #2853: Dan Bump: A correction to the weight of crystal elements for type A and a speedup for all types #2856: Martin Albrecht: PyLint unused variable cleanup for sage.rings.polynomial - Part 2 #2859: Jason Grout: arrow3d((0,0,0), (0,0,-1)) plots an *upward* pointing arrow #2862: Michael Abshoff: Sage 3.0.alpha2: fix tex problems #2863: Dan Drake: Integer() does not specify that numbers beginning with 0 and 0x are treated specially Merged in alpha2: #358: John Cremona: padic_height_pairing_matrix computes too many heights #530: Martin Albrecht: leak in Matrix_integer_dense__solve_iml exposed by matrix/strassen.pyx #2316: Yi Qiang: dsage.start_all() can leave zombie workers around #2346: Robert Bradshaw: Sage needs a simple api for interaction with other applications #2497: David Harvey: crash in polynomial remainder #2680: Craig Citro: Modular forms for Gamma1(N) have wrong Sturm bound #2743: Jason Grout: make symbolic equalities and inequalities callable #2745: Yi Qiang: upgrade twisted to 8.0.1 #2772: Martin Albrecht: Update Singular to 3-0-4-2 #2775: Martin Albrecht: multivariate factoring over some rings gives incorrect results [this is a limitation of Factory, so instead of returning an incorrect result throw an exception] #2799: Didier Deshommes: matrix's __getitem__ doesn't respect slice object's step attribute #2804: Clement Pernet: fix ssmod.py failure [linbox related] #2805: Emily Kirkman: Add maximal parameter to Graph genus computation #2806: Michael Abshoff: Sage 3.0.a2: numerical noise in sage/misc/prandom.py doctest #2807: David Harvey: line 26 of c_lib/src/interrupt.c is wrong #2808: Daniel Bump: G2 fundamental weights were the negative of what they should be #2810: John Cremona: Use new generic code in elliptic_curve_finite_field #2811: Michael Abshoff: make check is broken due to #2746 #2812: Timothy Clemans: increase notebook.py doctests coverage #2813: Tom Boothby, William Stein: Add keycodes to split / join cells #2815: David Joyner: add more coding theory to the reference manua #2818: William Stein: notebook: document most functions in js.py #2819: Jason Grout: edge_style option for directed graphs #2823: William Stein: notebook -- safari 3.1 introspection completely broken #2824: Craig Citro: sturm_bound incorrect for GammaH #2825: William Stein: notebook -- document js.py some more #2828: Mike Hansen, Martin Albrecht: get doctest coverage for combinat/ to 100% #2829: Martin Albrecht: PyLint cleanup of crypto.mq.sr #2830: Nathan Dunfield: ace-5.0.spkg fails to install #2831: William Stein: speed up plotting when using floor() #2832: Geert Heldager Nielsen, William Stein: fix mistake in tutorial #2836: Yi Qiang: twisted.conch.ssh deprecated functions #2837: Yi Qiang: use twisted-8.0.1's blockingCallFromThread #2838: Gary Furnish: _PyList_Extend missing Merged in alpha1: #210: John Cremona: discrete log and other generic functions #778: John Cremona: Finite Field __call__ doesn't accept polynomials over F_p #1138: Steffan Reidt, Robert Bradshaw: add implementation of Tonelli-Shanks to sage #2232: Michael Kallweit: Bug in 'digits' function for Integers #2525: Clement Pernet: update Linbox to 1.1.5 final upstream release #2526: Michael Abshoff: switch charpoly mod p back to linbox as default #2544: William Stein, Craig Citro, Robert Bradshaw: modabvar, i.e. rewrite of modular abelian varieties #2654: Robert Bradshaw: Cyclotomic polynomials speed #2655: Gary Furnish: Robert Bradshaw: Cython circular cdef imports, update to Cython 0.9.6.13.rc1 #2659: John Cremona: Elliptic curve cardinality sometimes Rationalwith bad consequences for efficiency #2670: Didier Deshommes: implement a matrix.find() command #2713: Carl Witty: sage-doctest applies backslash handling to expected outputs #2746: Tim Abbott, Michael Abshoff: Support for writing test related files in SAGE_TESTDIR #2751: Martin Albrecht: multivariate polynomials is_homogeneous #2753: Carl Witty: new "randstate" framework for a global Sage random number seed #2764: Minh Nguyen, Mike Hansen: fix typos in documentation #2765: Robert Miller: bug in graph_isom, Hoffman-Singleton constructor #2766: Jason Grout, Michael Abshoff: graph adjacency matrix defaults to sparse #2767: Carig Citro: error in elem.matrix(F) and elem.norm(F) for F == elem.parent() a number field #2771: Martin Albrecht: PolyBoRi doctest coverage at 54% #2774: Martin Albrecht: conversion from PolyBoRi to Singular #2776: Martin Albrecht: simplify BooleanPolynomialRing constructor for enduser #2784: Chris Swierczewski: Doctests for rings/complex_number.pyx #2786: David Harvey: update zn_poly to 0.8 #2788: David Harvey: update hypellfrob to 2.1 #2790: Michael Abshoff: fix very annoying output of new parallel doctesting #2791: Tim Abbott: Build symmetrica with -fPIC on Debian #2792: Martin Albrecht: remove workaround for non-existing Cython bug #2793: William Stein: Bug in the sage preparser! "\"Yes,\" he said." #2794: Martin Albrecht: PolyBoRi to Magma conversion #2795: Martin Albrecht: add QuotientRing -> Magma conversion #2797: David Harvey: fix memleaks in zn_poly #2798: Gary Furnish: probably easy-to-fix ptest issue Merged in alpha0: #1452: Robert Miller: Guava - in gap-4.4.10, Leon's code is never compiled #1863: Martin Albrecht: implement f.change_ring(R) for f a multivariate polynomial #2060: Martin Albrecht, Burin Erocal: Update PolyBoRi interface and spkg to 0.3.1 #2200: Tim Abbott: copyright documentation for various spkgs #2477: Robert Miller, Jason Grout: 3d plotting of graphs -- need to force aspect_ratio=[1,1,1] by default #2620: Martin Albrecht: generator generator support for ideal #2641: David Joyner: GAP: replace guava 3.1 by guava 3.3 #2651: Jason Grout, Ryan Hinton, Martin Albrecht: rewrite matrix() constructor #2667: Ryan Hinton, Carl Witty, Mike Hansen, Robert Bradshaw: transform.pyx calls matrix() with an RDF vector inside of a list instead of a flat list. #2698: John Cremona, Alex Ghitza: Small improvements to integer lcm, gcd on lists and a new xlcm function #2726: Tim Abbott: SAGE debian build system update #2729: Robert Bradshaw: tiny jmol spheres have holes #2735: Tim Abbott: minor eclib build system improvements #2738: Martin Albrecht: LaTeX description environment in docstrings #2742: Jason Bandlow, Dan Bump, Mike Hansen, Anne Schilling, Nicolas Thiery, Justin Walker: add crystals to the main branch of Sage #2747: Tim Abbott: fix SAGE doctest import errors due to introdution of $SAGE_TESTDIR #2752: Michael Kallweit: Speedup for all_paths() #2756: Tim Abbott: Debianize GAP spkg #2757: Tim Abbott: Debianize scipy_sandbox package #2758: Tim Abbott: iml and linbox updates for Debian gfortran transition #2759: Tim Abbott: SAGE debian/ directory update #2760: Tim Abbott: Debian amd64 fixes for NTL #2761: Tim Abbott: Debian amd64 fixes for tachyon #2762: Tim Abbott: Debian amd64 fixes for FLINT #2763: Tim Abbott: Debian amd64 fixes for rubiks