Hello folks, Sage 2.10.3 has been released on March 11th, 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 29 people contributed code to this release: * Michael Abshoff * Antti Ajanki * Martin Albrecht * Nick Alexander * Jonathan Bober * Tom Boothby * Robert Bradshaw * Craig Citro * Timothy Clemans * John Cremona * Didier Deshommes * Burcin Erocal * Gary Furnish * Alex Gitza * Jason Grout * Mike Hansen * David Harvey * David Joyner * Simon King * Emily Kirkman * Robert Miller * Bobby Moretti * Clement Pernet * Jaap Spies * William Stein * Chris Swierczewski * John Voight * Carl Witty * Paul Zimmermann Cheers, Michael Abshoff (release chair), William Stein * Major Features, New Spkgs and Bugfixes * Interactive Functions: Sage now has a first version of its "interact" command. Calling "@interact" before defining a function will construct controls to graphically control the input variables of the function, making it dramatically easier to create interactive functionality that is easy to use. See http://wiki.sagemath.org/interact for details and examples or just type "interact?" in Sage. * Graph theory: Many of the results of Sage Days 7: Combinatorics are included in this release, including Schnyder's algorithm for producing straight-line drawings of planar graphs in linear time (Jonathan Bober and Emily Kirkman), and a new compiled backend for the base graph structures (Robert Miller). This backend will be switched into graphs proper in sage-2.10.4, and the basic functions, such as add edge and has edge, will be sped up by at least 20 times in many cases, and often much more. In addition most of graph.py was refactored and cleaned up, in preparation for the switch. * Plotting: The plot_vector_field function now takes 2-variable functions, allowing for much more complex vector fields. * Linear Algebra: Matrices now have a jordan_form method which computes the Jordan canonical form. * Unified derivative syntax: The derivative function now accepts the same argument format across many different data types, including symbolic objects, polynomials, power series, and Laurent series. * LinBox & Givaro updates: Clement Pernet did fix a large number of issues in LinBox and Givaro in cooperation with Michael Abshoff and we finally updated the code in Sage to clean upstream code. While there are still issues left we will do more work in that direction in 2.10.4 and 2.11. * Known Issues with 2.10.3: * None * Bug Statistics We closed 152 tickets. For details see http://trac.sagemath.org/sage_trac/milestone/sage-2.10.3 or check out the closed ticket section at the end of the announcement. * Upcoming Releases The next release will be 2.10.4, chaired by Robert Miller and Michael Abshoff. The release is planned in about two weeks. Potential features (which is also the goal for 3.0) include: * 47% doctest coverage * 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] * Pexpect interace to R * Doctesting Coverage For 2.10.2 we had: Overall weighted coverage score: 40.1% Total number of functions: 18528 We increased coverage by 4.4% in 2.10.3 while adding 112 functions: Overall weighted coverage score: 44.5% Total number of functions: 18640 * Closed Tickets: Merged in final: #2435: Robert Bradshaw, Michael Abshoff: Fix memory leak from #1337 workaround #2453: William Stein: disable linbox minpoly and charpoly mod p, since they are completely broken. Disabling them removes "space.py segfaults". #2471: William Stein: doctest failures in graph.py and factorization.py (caused by architecture dependence)) Merged in rc5: #2371: William Stein: tut.tex failures for 2.10.3.rc0 #2449: William Stein: interactive functionality for the notebook #2463: Clement Pernet: Linbox static commentator make sage crash on PPC #2464: William Stein: slight change to coverage script to avoid functions named "_" #2465: William Stein: fix bug with phi(I) for I an ideal exposed by groebner_fan. #2466: William Stein: 2.10.3: doctest failure in const.tex Merged in rc4: #2340: Chris Swierczewski, John Cremona: Docstrings and doctests for rings/ring.pyx #2374: Gary Furnish: sage-ptest must run in $SAGE_ROOT #2425: Jason Bandlow: In multipolynomials, the function jacob() should be called gradient() #2433: Robert Miller: Refactor graph code; prepare for backend migration; miscellaneous small things from Waterloo #2438: Martin Albrecht: get the reference manual to build again #2439: Carl Witty: ZZ.random_element() crashes Sage with probability 2^-31 #2440: Chris Swierczewski: Doctests for rings/quotient_ring.py #2441: Robert Miller: fix typo in chromatic number #2442: Timothy Clemans: Clone Mathematica's Differences function #2443: Martin Albrecht: add LaTeX macros like \Singular #2445: John Cremona: algebras module lacks many docstrings and tests #2451: William Stein: plotting - contour_plot and plot_vector_field are REALLY SLOW but it's easy to get a million times speedup #2456: Gary Furnish: fix matrix_symbolic_dense doctest failures #2457: Gary Furnish: fix ideal.py doctest failure #2458: Michael Abshoff: bug in linbox's spkg-install: ${SAGE_LCOAL} Merged in rc3: #1337: Michael Abshoff, Gary Furnish, Robert Bradshaw: tp_new leads to munmap_chunk(): invalid pointer segfault #1711: Burcin Erocal: SIGSEGV in PolyBoRi's BooleSet iterator #1884: Robert Bradshaw: memory leak in real numbers #2305: Chris Swierczewski: Docstrings and doctests for rings/ideal.py #2142: Robert Bradshaw: product of two subdivided matrices should yield a subdivided matrix if it makes sense #2334: Michael Abshoff: $SAGE_LOCAL/include/eclib has wrong permissions #2398: William Stein: new Hermite normal form code returns a zero row at the top of a matrix. #2399: Jason Grout: allow utf8 characters in the notebook cells #2423: Jason Grout: notebook() opens up to the entire world by defaultl #2434: Robert Miller: fix doctest in plot.py Merged in rc2: #277: John Cremona: Add generic_discrete_logarithm and order computation using Pollard's rho algorithm #2155: William Stein: greatly speed up matrix inversion for 1x1 and 2x2 matrices over QQ by a factor of 20!; speed up changing base rings (architecture); hadamard bound #2207: Mike Hansen: fcp for matrices over SR #2310: William Stein: bug attaching files in files that are attached #2356: John Cremona: Bug in discrete_log_generic #2370: Didier Deshommes: unable to coerce bool types to Sage integers #2381: Jason Grout: plot_vector_field: implement ability to plot arbitrary vector fields #2382: Gary Furnish: sage-doctest broken by removal of temp files #2388: Clement Pernet: linbox charpoly crashes on OSX 10.5 Intel - this is a work around fix #2391: William Stein: module docstring bug running filename.sage from the command line #2392: Nick Alexander: generic univariate polynomial has no discriminant function #2395: Simon King: New features for number fields (gap interface, matrix groups) Merged in rc1: #590: Mike Hansen: document extended_rational_field.py #753: David Harvey, Carl Witty: derivative alias for diff #915: Clement Pernet: Make LinBox interface use PID_Integer instead of using old header as workaround #1748: Carl Witty: Passing the ipython argument '-wthread' at startup #1805: William Stein: improve doctest coverage for Factorization; fix several critical bugs #1810: Martin Albrecht: refactoring to improve finite field reference manual #1868: Jaap Spies: New experimental mayavi2 package #1902: John Cremona: mistake in the documentation for gens for Finite field givaro #2099: Nick Alexander, Gary Furnish: Make sage-test execute multiple doctests in parallel #2239: John Voight, William Stein: Leak in totallyreal.py #2245: William Stein, Craig Cigtro: abvar -- increase the doctest coverage to 100% #2254: Clement Pernet:Upgrade linbox and givaro spkg to upstream #2268: Gary Furnish, Robert Bradshaw: has_coerce_map_from_c performance improvements #2275: Mike Hansen: get sloane_functions.py to 100% coverage #2279: Craig Citro: Followup fix due to a typo in a doctestfix #2298: Carl Witty: implement a way to compute a number field containing given algebraic numbers #2326: Robert Miller: compiled sparse and dense graph datastructures #2333: Mike Hansen: hg_sage.apply('http://foo.org/.../bar.patch') should be made to work #2343: Martin Albrecht: for zero-dimensional ideals, allow computation of varieties over arbitrary fields #2345: Mike Hansen: negative indicies in vectors #2349: Martin Albrecht: homogenize does different things in different contexts #2350: Jason Grout: revert show(list) to the The 2.10.2 behavior #2363: Gary Furnish: Integer.pyx mpz structure fix #2365: Carl Witty: with sage -wthread, attach runs code in wrong thread on subsequent loads #2375: Robert Miller: Sage 2.10.3.rc1: graph_isom.py doctest failure in PermutationGroup #2376: Michael Abshoff: Sage 2.10.3.rc1: various doctest failure in abvar #2377: Simon King: Bugfix for the new __copy__ method of SingularElement Merged in rc0: #37: William Stein: preparser doesn't parse hex input #874: Jason Grout: Implement Jordan and Rational Canonical Form #1151: Martin Albrecgh: Bug in creating elements in multivariate quotient rings that cannot be coerced to singular #1186: Alex Gitza, Mike Hansen: Charpoly of a matrix of polynomials sometimes breaks #1209: Mike Hansen: make it so maple.gcd?? shows source code #1320: Emily Kirkman: graph planarity testing #1639: John Cremona: missing documentation P.completion() #1722: Mike Hansen: Symbolic Matrices should be callable #2037: David Joyner, Alex Ghitza: out-of-date tutorial section on errors and exceptions #2050: Nick Alexander: disallow *generic* matrix eigenspaces for inexact fields #2058: Martin Albrecht, Burcin Erocal: PolyBoRi evaluation #2105: Martin Albrecht: Constructor for ntl.GF2X polynomials does not take Polynomials over GF(2) #2279: John Voight: numerical noise? doctest failure in sage.rings.number_field.totallyreal.__selberg_zograf_bound with 2.10.2 #2281: John Cremona: elliptic_curve_finite_field: order caching problem #2283: Jason Grout, Gary Furnish: the coercion code (in __mul__) should call __rmul__ when left or right is not coercible to a Sage element #2284: Bobby Moretti: CallableSymbolicExpression._latex_() has some odd behavior #2286: Carl Witty: create and document a new "fp_rank" concept #2289: Alex Ghitza: make the constructions document prettier and more consistent #2292: David Joyner: segfault in AbelianGroups #2293: David Joyner: word_problem error in AbelianGroup #2299: Nick Alexander: add zero_matrix constructor #2300: Simon King: A copy method for SingularElement #2301: Simon King: Bug in sage_structured_str_list #2315: Jason Grout: Union of Graphs #2323: Yi Qiang: updated tutorial to include dsage section #2324: Carl Witty: RealNumber->QQ coercion fails for NaN, infinity #2327: Michael Abshoff: libgcrypt can't find libgpg-error headers #2336: William Stein: hermite -- this function in sage is broken in more ways than it has lines of code #2337: William Stein: fix typo in save_session #2338: Martin Albrecht: add p.lexLmDeg to PolyBoRi polynomials #2342: Robert Miller: digraphs show axes... Merged in alpha0: #1311: Tom Boothby: graphs: calculate chromatic number #1313: Tom Boothby: graphs: calculate chromatic polynomial #1382: Timothy Clemans, William Stein: conversion of sage matrices to mathematica is completely totally broken #1399: John Cremona, William Stein: improve and document integer is_prime and is_irreducible #1962: Robert Miller: set_edge_label creates edges when multiple edges are allowed #2087: Michael Abshoff: make the final output of "sage -i" more user friendly #2135: Robert Miller: allow for specifying initial position in spring layout #2154: Robert Miller: Infinite memory allocation bug in PermutationGroupElement #2180: William Stein: cython skipping (build optimization) #2206: Jason Grout, Alex Ghitza: some fixes of Factorizations #2240: Chris Swierczewski, Mike Hansen: Docstrings and Doctests: calculus.py #2265: Jason Grout: fix shortest_path_all_pairs #2271: Antti Ajanki, Tom Boothby: Include Antti Ajanki's DLX library #2274: David Joyner: guava->python (Part 1) #2282: Craig Citro: readline currently not building dynamic library on Mac #2285: Michael Abshoff: add "--trace-children=yes" back for memcheck in sage-doctest #2288: David Joyner: tutorial -- fix some typos #2290: Paul Zimmermann, David Joyner: typo in calculus.py #2294: Carl Witty: RealDoubleElement _interface_init_ is very poor #2295: Burcin Erocal: build cache check fails on paths containing symlinks #2297: Simon King: Tensor product of matrices #2307: Robert Miller: has_edge ignores labels #2308: Michael Abshoff: remove SAGE_ROOT/local/bin/sage-server #2309: Carl Witty: The patch from #2267 introduced spurious linebreak commands '\\' #2311: William Stein: remove stupid timeout from sage-location