Hello folks, Sage 2.10.2 has been released on February 23nd, 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, sage-support, You can also drop by in #sage-devel or #sage-support infreenode. We have closed the Google Groups sage-newbie and sage-forum so that we can deal with support questions in sage-support only. We decided to close those two groups since we had various inquiries left unanswered due to people posting to the wrong group. --------------------------------------------------------------------- The following 35 people contributed to this release: * Tim Abbott * Michael Abshoff * Martin Albrecht * Nick Alexander * Jen Balakrishnan * Karim Belabas * Jonathan Bober * Tom Boothby * Robert Bradshaw * Nils Bruin * Craig Citro * John Cremona * Burcin Erocal * Gary Furnish * Alex Ghitza * Rob Gross * Jason Grout * John Hanke * Mike Hansen * David Harvey * Peter Jipsen * David Joyner * Kiran Kedlaya * Robert Miller * Kate Minola * Joel Mohler * Bobby Moretti * Willem Jan Palenstijn * Clement Pernet * David Roe * Jaap Spies * William Stein * John Voight * Justin Walker * Carl Witty Cheers, Michael Abshoff (release chair), William Stein * Major Features, New Spkgs and Bugfixes * John Voight's fast new code for enumeration of totally real fields is now included. * David Roe's code for unramified and Eisenstein extensions of Qp and Zp is now included. * Clement Pernet, Burcin Erocal and William Stein have implemented an optimized p-adic/modular algorithm for computing Hermite normal forms of matrices over the integers. For random square nonsingular matrices with small entries it is similar to Magma in speed, and vastly faster than the implementations in Gap, NTL, and PARI. For matrices with large entries (e.g., 16 bits or more), it is faster than anything else in the world. For nonsquare matrices it is also reasonably good, though more optimization is needed since Magma is much better in some cases. We also implemented related code for computing determinants over QQ and ZZ, which is again the fastest in the world especially when the matrix entries are large. The main reasons for the speed of our implementation are (1) IML is fast, and (2) we found some tricks that are not in the literature. * Tim Abbott and Michael Abshoff worked on the Debianization of the build process. Due to a lot of work done by Project Athena at MIT Tim Abbott contributed many build scripts for chroot environments. He also contributed build scripts for nearly all of the SPKGs not yet in Debian. Michael Abshoff did set up a test build server and while it has been shut down for now the Sage project will set up another 64 bit build server in the near future top provide Debian packages for a wide variety of Debian based distributions. * Graph Theory: Robert Miller has implemented edge-labeled graph isomorphism, and eliminated many bugs in the main backtrack algorithm. He also made a few minor optimizations, and added an option which visualizes the structure that is searched during the running of the algorithm. This should make it easier to see what the algorithm is actually doing. Jason Grout refereed, and found another bug in the process, which has also been fixed. Also every permutation of every graph on seven or fewer vertices has been verified to give correct output. * Assorted bug and build fixes all over the map. * Known Issues with 2.10.2: * None * Bug Statistics We closed 156 tickets. For details see http://trac.sagemath.org/sage_trac/milestone/sage-2.10.2 or check out the closed ticket section at the end of the announcement. * Upcoming Releases The next release will be 2.10.3, chaired by Michael Abshoff and Robert Miller. The release is planned post Sage Days 8, but details are sketchy at the moment. Potential features include: * OSX 10.5 support in 64 bit mode [this will depend on fixing a vexing segfault in libSingular and getting disutils to play nice with numpy] * gcc 4.3 support out of the box * FreeBSD support out of the box * Improved experimental Solaris support * Doctesting Coverage For 2.10.1 we had: Overall weighted coverage score: 38.3% Total number of functions: 18290 We increased coverage by 1.8% in 2.10.2 while adding 238 functions: Overall weighted coverage score: 40.1% Total number of functions: 18528 * Closed Tickets: Merged in final: #2257: Craig Citro: re-fix doctest failures for 2.10.2.rc0 in sage/rings/number_field/ #2259: David Roe: Fix doctest in pow_computer #2261: Michael Abshoff: setup.py: Don't add empty Debian directory to scripts section #2263: Michael Abshoff: numerical noise doctest failure in calculus/calculus.py #2264: Michael Abshoff: 2.rc0: numerical noise doctest failure in rings/real_rqdf.pyx #2267: Michael Abshoff: Sage 2.10.2: fix latex errors when generating the documentation Merged in rc0: #1946: John Cremona, William Stein: Tate's algorithm has NO DOCTESTS! /schemes/elliptic_curves/ell_number_field.py #2049: William Stein: symbolic matrix exp #2075: William Stein, Martin Albrecht: very serious bug in modules over QQ[x] -- they shouldn't "work" #2223: David Joyner: bessel_J -- precision errors #2224: William Stein: strange show doctest bug in group.pyx #2225: William Stein: sage-2.10.2.alpha1 -- genus2reduction is now completely broken #2226: William Stein: sage-2.10.2.alpha1 -- integral is now wrong (imho) for polynomials #2230: William Stein: sage-2.10.2.alpha1 -- linear algebra hash not implemented #2246: William Stein: sage-2.10.2.alpha2: special.py -- fix it and several bugs etc #2247: Craig Citro: comment out long doctest in totallyreal_rel.py #2248: Michael Abshoff: sage-2.10.2.alpha2: multi_polynomial.pyx doctest failure #2249: William Stein: comments to indicate in docstrings that log is not finished in some cases for p-adics #2250: Robert Bradshaw: elliptic_curves/monsky_washnitzer.py doctest failure with -long #2251: Craig Citro: rings/number_field/number_field.py doctest failure #2252: Craig Citro: rings/number_field/number_field_ideal.py failure #2253: William Stein: timeit doctests not robust enough Merged in alpha2: #1961: Robert Miller: Fix graph_isom bug #2186: Robert Miller: verbosity for graph_isom - visualize the tree that is traversed during search #2211: Robert Miller: another segfault issue in graph_isom #2213: Robert Miller: misc graph theory fixes #2218: Mike Hansen: assuming an expression is not equal to another expression doesn't work #2221: Gary Furnish: Silent failure of sage-env #2227: William Stein, Michael Abshoff: doctest broken in sageinspect.py because I added a new option #2228: William Stein, Michael Abshoff: fractional ideal doctest failure -- output is equivalent #2229: Craig Citro: breakage in new totally_rel.py #2231: Mike Hansen, William Stein: doctest failure in partition_algebra.py #2233: Willem Jan Palenstijn: "valuation too large" in padics on 64bit #2234: Martin Albrecht: typo fix in doctest #2236: Jason Grout: plot randomizes the endpoints of the interval and causes wiggling in the graph #2238: William Stein, Alex Ghitza: doctest failure in const.tex Merged in alpha1: #174: William Stein: Implement a modular Hermite Normal Form algorithm #506: William Stein: add %timeit support to the notebook #521: David Harvey, Alex Ghitza: increase the doctest coverage for schemes/elliptic_curves/monsky_washnitzer.py #1116: Michael Abshoff: sage -sdist recreates certain empty files in $SAGE_LOCAL/bin #1130: John Cremona, Nick Alexander: point counting for elliptic curves over non-prime finite fields #1171: Robert Bradshaw: _new() method for quadratic field elements #1304: Robert Miller: edge-labeled graph isomorphism #1601: Rob Gross, Michael Abshoff: issue with noclobber and building sage #1651: David Joyner: bug in decode #1857: David Joyner: examples of parametric surfaces in 3d #1971: Jason Grout: notebook/jsmath -- make an optional spkg with the image fonts #1987: Nils Bruin: "forall" and "exists" need pointers in docstring to "all" and "any #2004: David Harvey: padic_height_via_multiply #2041: Alex Ghitza: tutorial: long lines in verbatim environments get cut off in pdf file #2063: William Stein: sage -q is broken #2079: Robert Bradshaw: /= does not work for univariate polynomials #2085: Robert Miller: bug in graph_isom and binary_code #2089: Martin Albrecht: major finite field printing bug #2107: Clement Pernet, Michael Abshoff: serious malloc problem triggered by Hecke operator computation #2126: Alex Ghitza: small fixes to eisenstein_series_qexp() #2127: Clement Pernet: Mod n determinant and LinBox/FFPACK #2128: Kate Minola, Alex Ghitza: bug in random_prime #2133: Alex Ghitza: running dimension_modular_forms on weight 0 should return 1 (trivial to fix) #2146: Burcin Erocal: PolyBoRi random_element is broken #2172: Michael Abshoff: sage -sdist loses debian build infrastructure #2176: Tim Abbott: debianize tachyon.spkg #2177: Tim Abbott: debianized jmol.spkg #2178: Carl Witty: latex2html does not like $+$ #2182: Jason Grout: undefined symbol: gzopen64 when starting the notebook() #2183: David Joyner: scipy and special functions, better doctesting #2184: Robert Miller: readjust xmin...ymax for plotting digraphs with arrows #2185: Robert Miller: improvement to plotting digraphs with fixed heights #2187: Carl Witty: improve refman autogeneration; add and rewrite much reference manual text #2190: William Stein: implement a ZZ-module saturation algorithm: this is the key thing needed to compute kernels over ZZ, etc. #2191: Tim Abbott: Debianize gfan spkg #2193: Burcin Erocal: doctest framework should check for keywords only in comments #2194: Carl Witty, William Stein: Elliptic curves over QQbar: point creation fails #2196: John Cremona: Elliptic Curve quadratic/quartic/sextic twists: unhelpful error message when D=0 #2201: Craig Citro: doctest failure: number_field.py #2202: Tim Abbott: Debianize rubiks spkg #2204: William Stein, Michael Abshoff, Karim Belabas: Integrate Karim Belabas's HNF bug fix for pari, add 64 bit OSX support for pari.spkg Merged in alpha0: #1014: Alex Ghitza: there should be an Integer.number_of_digits() function #1085: John Voight, Craig Citro: code for enumerating totally real fields #1366: Bobby Moretti: speed up "sage -br" - cache the dependency diagram instead of computing it every time #1371: John Hanke: hg_sage.pull/push() to non-default server with multiple branches #1413: Joel Mohler: added _sig_on/_sig_off to mpolynomial_libsingular #1714: Martin Albrecht: allow keyword arguments for remote sage methods (sage0) #1793: Martin Albrecht: Hilbert series, Hilbert polynomial, Laurent series expansion #1824: Martin Albrecht: *huge* memory leak in PolyBoRi iteratiors #1908: Jason Grout: Make it so that show plots a list as a grid #1927: Mike Hansen: dots in symbolic variable names should not be allowed, etc. #1963: David Roe: unramified and eisenstein extensions [Credit also goes to Craig Citro, Kiran Kedlaya, Robert Bradshaw, Jen Balakrishnan, Nick Alexander for extensive review and bug fixes, especially during Bug Day 7] #2003: Justin Walker, Michael Abshoff: gnutls configure script finds local copy of guile when it shouldn't #2032: William Stein: bug in bundle script for sage hg repo #2036: Jason Grout: maxima is off by -1 with its charpoly #2046: Carl Witty: save(srange(3), './foo') fails #2047: Carl Witty: new fast float evaluation framework does not work with multivariate polynomials #2051: Martin Albrecht: added documentation for parameters of groebner_basis method of boolean ideals #2053: William Stein: creating symbolic matrices is insanely slow #2055: Martin Albrecht: MPolynomialRing(BooleanPolynomial) #2056: Peter Jipsen: 3d graphics examples: include two very nice examples in the sage docstrings #2057: William Stein: followup to #1983 -- 0^0 for 0 a rational #2068: Michael Abshoff: zlib -- not picking up the right zlib when building libpng #2073: Willam Stein, Mike Hansen: calculus -- get doctest coverage above 50% #2074: Tom Boothby: PermutationGroupElement constructor bug. #2077: Jason Grout: matrix.column(i) should throw error when i is larger than the number of columns in the matrix (minus 1). #2080: William Stein: notebook -- create eval_asap cells; fix bug in checkbox functionality #2081: Mike Hansen: Add .coefficients() and .exponents() to univariate polynomials and power series #2082: Robert Miller: plot loops #2083: Nick Alexander: Make number_field .galois_closure require a name and .galois_conjugates take an explicit field. #2097: Bobby Moretti, Carl Witty: aspect_ratio option to show() for function plots does not work correctly #2098: Tim Abbott: rudimentary debian package build support #2101: Tim Abbott: debianize various spkgs #2104: Tim Abbott: missing dependency: lcalc on mpfr #2111: Martin Albrecht: Gröbner bases over any field #2112: Mike Hansen: __contains__ sometimes fails with SR elements due to == returning an equation #2115: Mike Hansen: add native python implementation of multiset combinations #2116: Jason Grout: is package installed function #2123: Craig Citro: bug in modular symbols setting sign on subspace #2124: Craig Citro: minor bug in f.root_field() #2125: Jonathan Bober: bober's name is spelled wrong #2132: Carl Witty, Michael Abshoff: disable "padlock" support in libgcrypt #2134: Robert Miller: arrows for digraphs #2139: Mike Hansen: set partitions iterator not working #2140: Nick Alexander: enhance search_src and add search_def for easier source navigating. #2144: Robert Bradshaw: hex constants do not work as expected #2147: Nick Alexander: Make default cyclotomic polynomial be defined over ZZ. #2156: Robert Bradshaw: update cython to 0.9.6.12 release #2158: Jaap Spies: Fix some typos in matrix/matrix2.pyx #2160: Jaap Spies: leftovers from python to cython translation #2161: Joel Mohler: some speed improvements for mpolynomials over ZZ #2162: William Stein: pari stack -- ability to resize at runtime #2164: Mike Hansen: add fast iterator for partitions #2166: Michael Abshoff: matrix/matrix_symbolic_dense.pyx doctest failure #2168: Mike Hansen: add native implementation for PartitionTuples #2169: William Stein: magma <--> sage conversions: first step to more systematic conversions back and forth