August 21, 2007
--------------

Release notes for Sage 2.8.2

The goal of this release was to squash as many known bugs from our
bug tracker as possible. Only a very limited number of features
have been added and to some extend the portability of Sage to
Solaris has been improved. While we haven't crossed the finish
line for Solaris yet we have gotten very close. Unfortunately
some of the fixes caused problems on other architectues, so we
will revisit those problems in the future, hopefully for 2.9

The total number of tickets closed was 47. Considering that now
there are about 217 tickets open (of which many are enhancements
and not defects) Sage's Bug Day 1 can be considered a tremendous
success. Participation was lively (in total 10 people showed up)
and the whole session went on for about 16 hours. Some of the
people  even got together in IRC the next day to sort out some of
the leftovers.

We still think that certain aspects of the way we planned and
handled the bug day can be improved upon (as always) and plan to
do Sage's Bug Day 2 on September 7th 2007 starting at 10 am
Pacific time.

The results from Sage's Bug Day 1 are as follows:

algebraic geometry  4/4
basic arithmetic   12/12
interfaces          5/6
linear algebra      3/3
modular forms       2/2
notebook            5/7
number theory       2/2
packages            7/11
user interface      7/7

x/y denotes that x out of y bugs in that category were fixed.

For the details check out

 http://www.sagemath.org:9002/sage_trac/milestone/sage-2.8.2

and

 http://www.sagemath.org:9001/bug1/Results


2.8.1:
-----
These are the release notes for sage-2.8.1, though there never was an
offical release.  The reason it was never officially released was that
2.8.1 was the basis of the first Sage Bug Squashing day that is about
to be wrapped up.  

The main goal of this release was to get Sage to compile cleanly on a
wider range of platforms, and fix any build-system bugs we discovered
along the way:

 * Linux on Itanium
 * Linux on PPC 64
 * Solaris on Sparc and Opteron

This involved a whole lot of massaging spkg-install scripts and build
options. William Stein did the port for Linux on Itanium and PPC 64
while William Stein, Michael Abshoff, Didier Deshommes and Kate Minola
did work on the Solaris port. They were helped by Martin Albrecht to
sort out some Singular and libSingular build issues. Robert Bradshaw
coded up a patch to sort out some issues with Cython on *BSD based
systems.

While the Itanium port of Sage is now fully working and supported
neither the Linux on PPC not the Solaris on Sparc/Opteron port made it
to the finish line. While the Linux on PPC is close there are still
some issues left with Solaris, but great progress has been made there.

Detailed changes:

* w stein, m abshoff: add stdint.h to local/include/ to work around
                     missing defines in Solaris

* r bradshaw: fix coercion code to compile on *BSD, fix Cython to
             warn about _[A-Z] PyObjects.  [not applied yet.]

* w stein: Make sure that the system-wide gmp doesn't get picked up.

* w stein, d deshommes, m abshoff: linbox build fixes, lround
           workaround, build against gsl blas on solaris

* w stein, k minolta: gfortran binary on Solaris, add SAGE_FORTRAN
                     environment variable.

* w stein: make f2c use gcc instead of cc on Solaris

* w stein: pari build fixes on Solaris and Itanium

* w stein: fix problem wirh matplotlib when linking in the wrong libz
          in /usr/local/lib

* w stein: new mpfi package

* w stein, m abshoff, m. albrecht: many fixes to the singular package
                                  to make it build on Solaris

* w stein, m abshoff, d deshomees: stdint.h fix for Solaris

* w stein: update gmp package, so that the resulting gmp is nuch more
portable  (and possible resolve some other bugs -- old version was
building with certain patches preapplied).

Many of the fixes were a joint effort be several people, some fixes
were discovered twice, i.e. Didier Deshommes had made suggestions on
fixes for Sage 2.5.x on Nexenta which were unfortunately
rediscovered. We will discuss how to deal with that problem in the
report about the first Sage Bug Squashing day.

Cheers,
Michael Abshoff

Sun Aug 12 14:10:37 2007
------------------------
2.8:
       * juan m bello rivas: fix so clisp can be built in the background.
       * m albrecht, c pernet: new version of givaro that fixes some bugs. (gcc-4.2 support)
       * m abshoff, c pernet, w stein: new version of linbox that fixes some bugs. (gcc-4.2 support)
       * d kohel, g nebe, et al.: Genus computation for quadratic forms (not really made public yet 
             but it is there in quadratic_forms/genus).
       * e kirkman, r miller: graph database improvements (which are generally useful).
       * s howe, r miller: bruhat intervals
       * j mohler: programming guide improvement
       * b moretti: cayley graphs
       * w stein: upgraded sympy to version 0.5.1, whose main features included much optimization
       * w stein: implement computing half_integer_weight_modform_basis function for computing 
                 a basis for half-integral modular forms of given weight, level, and character.

Thu Aug  2 21:18:23 2007
------------------------
2.7.3: 
       * r bradshaw: bug fixes
       * j bober: vastly optimized number_of_partitions
       * c citro: bug fixes and optimization of computing eisenstein series. 
       * d kohel: bug fixes; improved free modules
       * w stein: upgraded to jsmath-3.4c
       * w stein: many misc bug fixes; speed up bell_number
       * j walker: notebook bug fixes, etc. 
     

Sat Jul 28 21:47:59 2007
------------------------
2.7.2:
       * m albrecht (refereed by r bradshaw): some tiny bug fixes
       * s behnel, w stein: cython-0.9.6 replaces sagex; this is a merge of lxml-pyrex and sagex.
       * j bobber, b hart, w stein, et al.: fast computation of number_of_partitions
       * w stein, j walker: misc little bug fixes
       * w stein: added "sage -min" option to start sage without defining global vars
       * w stein: some modular forms improvements and bug fixes

Tue Jul 24 16:41:34 2007
------------------------
2.7.1: 
       * m albrecht: misc arithmetic fixes and improvements
       * r bradshaw: matrix subdivisions
       * r bradshaw: lots of p-adic and series optimizations
       * r bradshaw: implementation of the new coercion model (massive amount of work)
       * j kantor and w stein: switch from fortran to g95 and update many build scripts
       * d kohel (ref w stein): improvements to Jacobians and point sets
       * e kirkman and r miller: graph genus module; speed and bugfix 
                                 and documentation improvements to NICE
       * j schmidt: group theory bug fixes
       * w stein & d deshommes: putting all spkg's under revision control; 
               reorganize package structure
       * w stein: upgrade to pari-2.3.2
       * w stein: upgarde to ZODB-3.7.0
       * c wuthrich: supersingular p-adic birch and swinnerton-dyer code

Thu Jul 19 21:45:41 2007
------------------------
2.7:    
        * m albrecht: a huge patch of fast multivariate poly arithmetic code, etc. 
        * r bradshaw: enhancements to sagex; merge with official pyrex.
        * d harvey: generic convolution function
        * d joyner (refereed by n alexander): large permutation group improvements patch. 
        * j kantor: excellent fortran support (e.g., %fortran in the notebook)
        * j kantor and w stein: new standard SAGE packages -- 
               blas: fortran low level linear algebra
               cvxopt: convex optimization, linear programming, sparse linear algebra
               f2c: fortran to c conversion program
               gfortran: binaries
               lapack: fortran high-level linear algebra library
               scipy: latest svn version
        * r miller, e kirkman, t boothby: substantial bug fixes and improvements to graph theory code.
        * w stein: upgrade to latest svn version of scipy (much easier to build, etc.)
        * w stein with b moretti, y qiang, a clemesha, d ramier, t clemans, and t boothby: 
                   rewrite of the SAGE notebook; use twisted; more robust security model, etc. 
        * w stein: removed Mark Watkins's EC completely from SAGE.
        * w stein: upgraded to mercurial-0.9.4
        * w stein: included sympy-0.4.2 standard with SAGE (do "import sympy")
        * g tornaria: improvements to the SAGE base coercion code and free modules
        * c wuthrich: p-adic BSD bounds

  
Sat Jun  2 22:37:01 2007
------------------------
2.6   
        * m albrecht: greatly improve handling of term orders; 
                              commutative algebra bugfixes
        * m albrecht, w stein, and j kantor: added a "backslash solve 
                              operator" like in Octave/Matlab. 
        * t boothby (ref by r bradshaw): major optimization of univariate polynomial evalution
        * r bradshaw: massively speed up point enumeration on curves over finite fields;  
                      hyperelliptic curve point counting; sqrt improvements;
                      2-descent over number fields (via Denis Simon's program)
        * c citro: greatly optimized computing q-exp of eisenstein series E_k and sigma. 
        * n dunfield: sagex section of tutorial improvements
        * d harvey: bug fix in alternating group g kobold found; 
                    speed up delta_qexp
        * d joyner (refereed by n alexander): improvements to rubik's 
                    cube and linear codes
        * d kohel: fixes for basic Jacobian curve arithmetic.
        * r miller: elliptic curve congruence graph
        * b moretti (refereed by n alexecan): fibonaci_sequence and fibonaci_xrange
        * y qiang: substantial update to dsage.
        * y qiang and w stein: add gnutls and dependencies and removed openSSL (and pyopenssl) from SAGE.
        * d simon: new version of his pari 2-descent program
        * w stein: upgrade ipython to version 0.8.1
        * w stein: removed predefines from "from sage.all import *".
        * w stein: sagex improvements; added a few page to beginning of tutorial
        * m van den bergh: fix echelon / ZZ bug that t gegenberg reported. 
        * c witty: square-free decomposition over ZZ (wrapping NTL); an ntl optimization

Tue May 22 14:29:58 2007
------------------------
2.5.3:  * m albrecht: misc bugfixes
        * r bradshaw (and k kedlaya): finished implementing fast all sqrt's mod N.
                      bug fixes involving p-adics
        * b moretti (and b harris): numerical_approx method for calculus objects
        * y qiang: fix to expect interface output
        * w stein (and b barker): fix to save_session / load_session command
        * w stein (+ all linbox developers): include svn 2007-05-21 version of linbox in SAGE;
               this has c pernet's *very* fast charpoly / QQ and ZZ algorithm. 
        * w stein: lots and lots of build fixes to get closer to supporting SAGE on solaris.
        * w stein: notebook -- optimizations to make it feel much snappier (!?)

Sun May 20 10:05:31 2007
------------------------
2.5.2:   * r bradshaw: new SageX package -- many optimizations, improvements, etc. 
         * j cremona: install doc improvement
         * d harvey and w stein: updated ntl and switched to using an optimized build: 
            building takes longer, but the result is much much better
         * e kirkman: new sqllite graph database functionalikty
         * w stein: misc bug fixes
         * m vandenbergh (refereed by w stein): greatly improved functionality for 
                  multivariate polynomials over number fields; bug fixes
         * c witty: improvements to algebraic reals (minpoly, etc.)

Sat May 19 09:49:49 2007
------------------------
2.5.1:   * m albrecht: massively speed up multivariae polynomial arithmetic over QQ and GF(p)
         * d roe (refereed by r bradshaw): massively speed up the p-adics
         * d harvey: massively speed up computation of matrix of frobenius for hyperelliptic curves.
         * m abshoff: build improvements
         * n alexander: bug fixes
         * n dunfield: added "orbits" to permutation groups
         * j kantor: bug fixes
         * y qiang: dsage improvements
         * w stein: some little bug fixes
         * j walker: bug fix

Tue May  8 20:29:40 2007
------------------------
2.5:     * new packages:
             - flintqs
             - ipython-0.8.0 (w stein)
             - maxima-5.12.0 (w stein)
             - python-2.5.1 (y qiang) -- important bug fixes
             - tachyon3d-0.98beta (w stein)
         * m abshoff:  cputime bugfix for cygwin; *many* build fixes and improvements
         * m albrecht: major new singular library mode interface for SAGE which
                       provides the world's fastest polynomial arithmetic to SAGE (not
                       yet enabled by default!);  *many* build fixes and improvements
         * r bradshaw: tons of polynomial and power series optimizations;
                       Coleman p-adic integration; Kedlaya for genus > 1
         * t clemans:  source browser bugfix
         * p de napoli:fix some bugs in rationals and integers
         * d deshomme: (refereed by r bradshaw and w stein) very good support 
                       for Hida's quad-double field RQDF.
         * w hart:     quadratic sieve update (SAGE's qsieve command): "It is MUCH faster, 
                       especially for large factorizations, on account of having implemented the
                       large prime variant. it will factor an 81 digit number in under 30 minutes.
                       It is miles ahead of LiDIA, MAGMA and Pari, etc."
                       Another example: n = next_prime(2^110)*next_prime(2^120) has these
                       times on 32-bit 2Ghz linux: qsieve (107s), PARI (223s), Magma 2.13 (336s).
         * d harvey:   improvements, bug fixes. 
         * d kohel:    quaternion algebra improvements
         * r miller:   graph theory bug fixes
         * k minola:   tmp file clean bugfix; misc build fixes.
         * k minola, d joyner:  updated the conway polynomial table
         * y qiang:    important dsage bug fixes; improved unit testing. 
         * w stein and b moretti: major new symbolic calculus functionality
         * w stein:    rewrite of SAGE/maxima interface.
         * c witty:    (refereed by n alexandar) a new algebraic reals field 
                       (Qbar meet RR!).  mpfr improvements

Thu Apr 12 23:08:01 2007
------------------------
2.4.2:
         * r bradshaw: very very fast sagex new implementation of graph plotting code.
         * t boothby: added compression of javascript so notebook loads more quickly.
         * r miller: optimization to graph automorphism code
         * k minola and m albrecht: build fixes to linbox and sage_c_lib.
         * y qiang: transitioned dsage to use sqlite; many minor bugfixes
         * w stein: wrote a MuPAD interface for SAGE.
         * w stein: added restore and reset commands to SAGE, to (mostly) 
                    reset the state of SAGE and all interfaces very very 
                    quickly without having to quit and restart SAGE.
         * w stein: p-adic L-series (numerous improvements)
         * c witty (referee by r bradshaw): improvements to floating 
           point <---> rational conversions.

Tue Mar 27 09:21:10 2007
------------------------
2.4.1:   * j mohler: sped up number field arithmetic by a factor of 10 or so.
         * r bradshaw (with input from k kedlaya and d harvey): tons and tons of stuff, 
                      culminating in Coleman integration
         * d roe: hugely updated p-adics 

Sun Mar 25 18:13:00 2007
------------------------
2.4:
         * m albrecht: c-library wrapper for linbox that is seperate from main sage library.
         * m albrecht and g bard: implementation of the method of 4
           russians, i.e., fast dense echelon form and matrix
           multiplication over GF(2).
         * n alexander: misc; docstring-related things; lots of refereeing
         * b antieau: updates to programming guide
         * j bober (refereed by n alexander): improvement to random_prime, lcm, and gcd
         * t boothby and w stein: *syntax highlighting* in the notebook,
           use div when input cell not in focus; notebook bugfixes;
           marker in title when notebook is running.
         * r bradshaw: rationals from a tuple
         * b granger: updated package: numpy and libpng
         * m hansen: improvement to how sets work (symmetric difference, etc.)
         * d harvey: optimized [n] on formal group; misc speedups and bugfixes
         * d joyner: updated sage constructions guide.; improved piecewise functions
         * r miller (refereed by r bradshaw): graph plotting improvements, digraphs
         * r miller: open source 'nauty' -- the first every open source
                     implementation of Brendan McKay's isomorphism algorithm
         * j mohler (refereed by m albrecht): poly iter, misc.; move ntl wrapper to separate library
         * c citro, d roe, j balakrishan: misc stuff at arizona winter school
         * w stein: full text search of docs and source (use search_src and search_doc); best from the notebook.
         * w stein: first version of new modular abelian varieties package
         * w stein: extensive improvements to modular forms package
         * w stein: a new field, the ContinuedFractionField(), or CFF for short.
         * w stein: lots and lots of misc bugfixes and new doctests
         * w stein and a clemesha: moin moin wiki now uses twisted by default (for new moin moin installs)

Tue Mar  6 12:06:34 2007
------------------------
2.3:     * inclusion and integration into SAGE of IML 
           -- Integer Matrix Library; this allows for
           computing nullspaces.  E.g., if A is a 300x301 matrix with
           32-bit integer entries it finds the kernel (a single vector)
           in about 1-2 seconds.  
         * David Roe et al.: a completely new implementation of p-adics
         * W Stein, Clement P, Soroosh Y, and Martin A.: lots of optimization 
           work on linear algebra over QQ and GF(p); new optimized compiled
           sparse linear algebra over QQ and ZZ.  Speedups to multimodular,
           rational reconstruction, etc. 
         * W. Stein: lots of optimization of modular symbols computation. 
         * Carl Witty: many many improvements to how floating point 
           arithmetic works in SAGE.
         * David Harvey: improvements to p-adics heights code

Tue Feb 27 07:37:47 2007
------------------------
2.2:     * package upgrades:
            -- bzip2: upgrade from 1.0.3 to 1.0.4
            -- GSL: upgraded from 1.8 to 1.9
            -- SageX (Robert Bradshaw): Major update to SageX, including conditional 
                        expressions, massively optimized list indexing, etc. 
            -- IPython: upgrade to svn version for 2007-02-26
            -- matplotlib: upgrade to 0.90.0
            -- moin moin wiki: upgrade to 1.5.7
            -- gd: upgrade to 2.0.34
            -- libpng: upgrade to 1.2.16

        * software / patches:
            -- carl witty: improvements to mpfi interface; extra pari functions
            -- robert miller: code related to tachyon3d and plotting graphs. 
            -- bruin: rational enum
            -- deshommess: n-th root
            -- hansen: permgroup
            -- harvey: faster ntl interface
            -- kantor: numpy/sage improvements
            -- miller: implement raytraced 3d plotting for networks
            -- witty: new mpfi code

Fri Feb  9 00:57:45 2007
------------------------
2.1:     * william stein -- elliptic curve p-adic L-functions 
         * didider deshommes -- quad double real field
         * david harvey -- substantial update to p-adic height code.
         * david kohel -- misc bugfixes
         * stein, pernet, albrecht -- inclusion of linbox in SAGE, which vastly
            improves echelon, minpoly, charpoly in certain cases (over 
            ZZ, QQ, GF(p)).  This is turned off on linux/windows in some cases
            because of bugs that will be worked out later. 

Sat Feb  3 12:22:53 2007
------------------------
2.0.1:   * include ipython1 (parallel ipython)

Sun Jan 28
------------------------
2.0:     * released after much polishing and bug fixing.

Sat Jan 27 00:08:26 2007
------------------------
1.9:     * dorian raymer (and alex) -- click the "Documentation" link in the upper
           right of the notebook for interactive SAGE notebook browsing of the 
           full SAGE documentation!
         * carl witty -- mpfi updates
         * robert bradshaw -- fixed subtle bug in sagex; matrix arithmetic. 
         * stein -- notebook: stylistic changes; tons of doctests;
                    sagex'd integer_ring; sparse power and laurant series.
         * ifti b -- improve programming guide 
         * yi qiang -- dsage improvements

Wed Jan 24 16:49:31 2007
------------------------
1.8.2:   * sagex polynomials
         * mpfi -- optimized compiled implementation
         * reference manual -- expanded coverage.

Tue Jan 23 19:53:55 2007
------------------------
1.8.1:   * many small improvements to distributed SAGE: it's now braindead to 
           setup distributed SAGE and try it out! Just type dsage? to get going.
         * More graph theory (labels, tutorial)
         * update to real matrices.
         * nearly 10 misc bug fixes
         * optimization of sage startup (should be > twice as fast as in 1.8)

Mon Jan 22 14:09:24 2007
------------------------
1.8:     * Added sqlite. 

Mon Jan 22 13:20:22 2007
------------------------
1.8:     * New sage-cleaner: Greatly improved cleanup of tmp and killing of orphaned pro
cesses.
         * lots of updates to David Kohel's crypto package.

Wed Jan 17 18:55:33 2007
------------------------
1.8:     * sagex-- Robert Bradshaw added support for list comprehension
                   and +=, -=, etc. to SageX.

Mon Jan 15 14:58:42 2007
------------------------
1.7:     * moinmoin -- updated to ver 1.5.6; add jsmath support by default;
                       now is a standard component of sAGE
Sun Jan 14 02:51:45 2007
------------------------
1.7:     * openssl
         * pyopenssl
         * palp -- lattice and reflexive polytopes.

Sat Jan 13 13:12:47 2007
------------------------
1.7:     * Yi Qiang and Alex Clemesha: Added twistedweb2

Fri Jan 12 15:08:09 2007
------------------------
1.7:     * fix lots of little bugs listed in trac
         * optional package: upgraded trac package (which includes sqllite and clearsilver); for a long
           time this package couldn't build on python 2.5, i.e., sage >= 1.4. 

Thu Jan 11 22:53:00 2007
------------------------
1.6:     * Twisted-2.5.0
         * Stein: several bugfixes
         * Moretti: first version of calculus module
                    (not official yet -- try with from sage.calculus import *)
         * Kantor: ode solver improvements; dense matrices over real floats
         * Stein and Boothby: Misc notebook and tachyon improvements, e.g.,
                robots.txt; huge output link
         * Andrey Novoseltsev: Fixed some bugs in Sequences that 
         * Get SAGE to build on cygwin
         * upgrade ecm
         * Joel Mohler, William Stein: faster arbitrary precision complex numbers

Fri Jan  5 11:01:31 2007
------------------------
1.5.3    * upgraded to maxima-5.11.0
         * upgraded to numpy-1.0.1
         * upgraded to mercurial-0.9.3
         * partially ported SAGE to Cygwin (!) -- all but ecm 
           build automatically now: what remains: maxima interface issues

Sun Dec 31 22:21:28 2006
------------------------
1.5.2:   * added a sudoku command

Fri Dec  1 12:10:19 2006
------------------------
1.5.0:   * MPFR 2.2.1

Sat Nov 25 16:54:05 2006
------------------------
1.5.0:   * NUMPY -- included Numpy 1.0  (removed Numeric)
         * WEAVE -- included scipy's weave

Sat Nov 25 10:41:56 2006
------------------------
1.5.0:   * GAP 4.4.9.
         * Notebook facelift and robustness improvements
         * version 0.87.7 of matplotlib.
         * T. Boothby: Include libgd (fast graphics C library) and a Python interface (gdmodule)
         * Kate Minola's readline bugfix -- so SAGE now supports Itanium.
         * Jason Martin's GMP-for-Mac-core2 patch:  
                  http://www.math.jmu.edu/~martin/

Fri Nov 24 16:22:35 2006
------------------------
1.5.0:   * included Martin A's improved signal handling code.
         * notbook improvements:
               - faster switching between worksheets (doesn't pop up new tab or start new SAGE session)
               - Got rid of boxes around everything</li>
               - When cursor enters new box it is at *top* instead of bottom
               - Worksheets are now referred to in the url using their name rather than their number, just like in a wiki; go to an unused url to make a new worksheet.

Wed Nov  8 01:02:51 2006
------------------------
1.5.0:   * added a great new subprocess monitor features, so now even
           if you kill -9 the master, then subprocesses are all 
           properly killed off.  Awesome!

Tue Nov  7 23:35:17 2006
------------------------
1.5.0:   * GMP ecm-6.1.1
         * clisp-2.41
         * readline-5.2

Fri Nov  3 09:28:15 2006
------------------------
1.5.0:   * introduced variant of Pyrex called SageX
         * tons of matrix restructuring.

Fri Oct 27 23:11:20 2006
------------------------
1.4.2:   * truncate real number printing slightly to avoid confusion

Fri Oct 27 22:48:36 2006
------------------------
1.4.2:   * Removed R.<x,y> = ... notation.  Now, e.g., QQ['x,y'] automatically sets x, y.

Fri Oct 27 22:45:06 2006
------------------------
1.4.2:   * Added raw literals, 9392034r and 90283940R are raw integer literals, i.e., not preparsed; similar for floats

Thu Oct 26 15:33:12 2006
------------------------
1.4.2:   * Upgrade to gfan-0.2.2

Tue Oct 24 23:47:36 2006
------------------------
1.4.2:   * Added dependency resolution for Pyrex code to "sage -br".

Sun Oct 22 11:27:29 2006
------------------------
1.4.2:   * SAGE now has extensive graph theory; added networkx as 
         a standard component

Wed Oct 18 08:01:59 2006
------------------------
1.4.1:   * instead of the SAGE library build being HUGE, it now 
           takes about 40MB.  
         * building SAGE from scratch uses < 500MB during the whole process
         * upgrading Python package forces upgrade of all packages that rely on Python
         * revamped programming guide
         * greatly reduced overheading in starting doctests (esp on OS X)
         * upgraded Ipython
         * upgraded Macaulay2
         * matlab interface 
         * axiom interface
         * upgraded to clisp 2.40
         * upgraded to maxima 5.10
         * upgraded to pari 2.3.1
         * many trac-listed bug fixes and improvements
         * hg_sage, etc. 
          
Oct  1-5
------------------------
1.4:     * Create hg_sage, hg_doc, hg_scripts, etc., for working 
           with HG repositories easily from within SAGE.
         * Upgraded to gap-4.4.8.
         * IPython new 20061005 svn version (works with Python 2.5)
         * SAGE code: put the .pyx files where they belong (not in ext)
           VERY IMPORTANT NOTE:
              This is a *big* change to the internal structure of the
              library.  Unfortunately it breaks unpickling many things
              that may have been saved.  This had to be done; I
              couldn't organize things correctly at the beginning
              because of defficienies in Pyrex (that I fixed).
              There will be one more break when I switch to the new matrix
              class hierarchy that we recently wrote.  In general, since
              the thrust for SAGE 2.0 is pyrexing all types, pickling
              data to save it long-term is not stable until SAGE 2.0.
              I hate this, but don't see an easy way around it.  
         * mpfr -- upgraded to latest patch set.
         * pyrex -- new patch that adds support for __index__ method
           Also, now any type (e.g., Integer now) with an __index__
           method can be used to index into lists.
         * W.Stein -- Python 2.5 (!) (painful!)
         * matplotlib 0.86.7
         * New version of mwrank 08-23-06

Thu Sep 28 21:40:49 2006
------------------------
1.4:     * W. Stein -- Complex double field (CDF)
         * D. Harvey -- improvements to elliptic curve arithmetic
         * T. Boothby -- Implementd Real double field  (RDF)
         * Make PARI library always build the shared version mode,
           so Pyrex modules can share a single running instance of PARI.

Thu Sep 21 14:16:30 2006
------------------------
1.3.7.3:  * switched to mercurial for all source code tracking
          * added support for multiple branches of the SAGE library.
            Use 'sage -br branch_name' (or 'sage -b branch_name') to
            switch to using a given branch. 

Wed Sep  6 21:23:30 2006
------------------------
1.3.7:  * added to the core SAGE distribution:
             gsl - gnu scientific library
             twisted -- web networking framework
        * added dozens of patches from David Harvey, Martin Albrecht,
          David Joyner, etc., etc.!
          E.g., Z/nZ is in Pyrex; computation of p-adic E_2 without MAGMA. 

Tue Sep  5 12:24:32 2006
------------------------
        * upgraded numarray optional package to 1.5.2

Fri Jul 28 11:33:31 2006
------------------------
1.3.6:  * Added Givaro finite field package (not yet used by SAGE directly)
        * stein: Fixed many many bugs.
        * stein: Upgrade to gmp-4.2.1 (and got assembler support for GMP
          working on OSX Intel! -- quite tricky).
        * stein: moinmoin wiki interface for SAGE
        * david harvey -- added bernoulli_mod_p
        * tom boothby -- lots of improvements to notebook 
        * martin albrech -- some givaro wrapper code; restructing matrix code,etc.

Thu Jul 20 12:26:56 2006
------------------------
1.3.6   * Stein/Boothby/Kantor -- added tachyon raytracer to SAGE.

Wed Jul 19 10:59:53 2006
------------------------
1.3.6   * Stein/Hanke -- added mrange and xmrange multirange iterators.

Tue Jul 18 22:55:56 2006
------------------------
1.3.6   * upgrade to matplotlib-0.87.4

Thu Jul 13 23:05:55 2006
------------------------
1.3.5.2 * John Jones -- added bugfix for build process.
        * many many tiny bugfixes founded when preparing my talk.
        * Josh Kantor -- plot3dsoya package

Tue Jul  4 19:03:36 2006
------------------------
1.3.5.1 * added jsMath -- javascript Math rendering for the Notebook.

Sun Jul  2 23:41:25 2006
------------------------
1.3.5:  * Change range back -- too many problems, e.g., with efficiency,
           and one can always use "srange". 
         * maxima-5.9.3
         * Albrecht -- Matrix class: moved to Pyrex
         * magma interface -- misc improvements
         * notebook -- misc improvements
         * plotting -- improvements

Tue Jun 27 00:46:13 2006
------------------------
1.3.4.2: * modular symbols bugfix
         * notebook -- major robustness improvements
         * replaced range and srange in sage by SAGE variants (that return, 
           e.g., Integers) -- this is slower than the Python variants, of
           course, but much more sensible.  Use __builtin__.range for Python's
           range, which returns int. 
         * new documentation from david joyner.

Sun Jun 25 09:31:09 2006
------------------------
1.3.4: * martin albrecht: patched pyrex to properly deal 
                          with modules in different directories
       * notebook -- lots of work by Stein and Boothby
       * groups -- improvements by D. Joyner
       * misc bugfixes -- inspired by emails from Jon Hanke
       * pari -- builds without requiring X11 (Blair Kelly)

Mon Jun 12 02:42:53 2006
------------------------
1.3.3.3: * used profiler to reduce startup time
       * rewrote "sage <filenames> ... " so it directly
         runs via python (so faster), and gives sensible
         error messages when files don't exist or options
         are bad.

Mon Jun 12 00:31:22 2006
------------------------
1.3.3.3: * new version of matplotlib (0.83)

Sun Jun 11 22:33:23 2006
------------------------
1.3.3.3: * reorganized ipythonrc and matplotlibrc to be in 
           DOT_SAGE and have sensible defaults, which gets 
           around a major nuisance...


Wed Jun  7 17:27:37 2006
------------------------
1.3.3.1: * added GMP Elliptic Curve Factorization to the core SAGE distro
           Robert Bradshaw also made the SAGE/GMP-ECM interface much
           more user friendly. 

1.3.3: * new notebook interface (alpha test version!)

Mon May 22 13:15:37 2006
------------------------
1.3.2: * PARI 2.3.0 stable!

Mon May 22 09:08:14 2006
------------------------
1.3.2 * Tim Dokchitser: update to ComputeL.

Sun May 21 12:04:57 2006
------------------------
1.3.2 * documented dirichlet.py; fixed many issues with dirichlet characters

Sat May 20 14:03:36 2006
------------------------
1.3.2 * added autoload of $HOME/.sage/init.sage or SAGE_STARTUP_FILE
        User's need autoload of some customization file.
        Now if $HOME/.sage/init.sage exists, it will be autoloaded.
        Alternatively, if the environment variable SAGE_STARTUP_FILE
        is set then that file will be loaded.  The SAGE startup
        file can contain load and attach commands as well, and
        is fully preparsed.
        Removed the obscure 2-letter shortcuts from the SAGE 
        shell, e.g., "EC" for "EllipticCurve".  (These should go
        in user startup files).

Wed May 17 21:40:23 2006
------------------------
1.3.2: * pari 2.2.13  (lots of library code changes needed to make this work)
       * Martin Albrecht: new code for pari and singular
       * misc bug fixes
       * maxima -- added maxima.function 

Tue May 16 23:35:41 2006
------------------------
1.3.1: * Steven Sivek -- fractional ideals
       * Tom Boothby, Alex Clemesha, and W. Stein --
                some improvements to http_server1
                (e.g., embedded graphics--use plot(...).save('any_filename.png'))
       * Steven Sivek -- relative number fields code.
       * official colinux distro of SAGE (a "binary" for windows)
       * David Joyner -- tons more work on groups
       * W. Stein -- SAGE libdist "library distribution" (needs testing!); 
                     use "sage -ldist <version>" to make a library distribution
                     for install into existing Python install.
       * A. Gaer and W. Stein -- install_scripts() command in SAGE that 
                     makes scrips that start gap, singular, etc., 
                     Also, "sage -gap", "sage -singular", etc., start gap, singular, etc.
       * A. Klemm and W. Stein -- basic foundation for mathml output of objects

Mon May  8 08:58:56 2006
------------------------
1.3.0: * J. Cremona: new mwrank which contains the patches necessary for gcc 4,
         and fixes problem with pari factoring

Sun May  7 22:09:08 2006
------------------------
1.3.0: * D. Joyner: updated and re-organized groups code
                    (WARNING: much in here is half-way done, so dangerous!)
       * M. Watkins: new version of sympow; ver 1.018
       * M. Albrecht: 
            ** large patch to singular's "factory"
            ** include pyrexembed standard with SAGE.
            ** new CF -- pyrex interface between SAGE and factory
              (note: you must install the new patched version
               of singular before the cf code will build correctly;
               if not automatic, type
                   sage -f singular-3-0-1-2-2006-05-07.spkg)
       * M. Albrecht: Added pyrexembed to base SAGE install
       * W. Stein: improved darcs/sage integration:
             (1) now "sage -upgrade" uses darcs to upgrade
                 your sources and docs if you have darcs repos
                 for those.
             (2) type darcs_src? and darcs_doc? to see how to 
                 very easily use darcs directly from within SAGE;
                 also, using these *completely automates* setting
                 up your own local repository.
       * J. Hanke & W. Stein: fixed bug in fraction field element  
                 constructor.
       * W. Stein: if G is a plot, line, circle, etc., and you type
            sage: G
            ...
            then the log_html() will show G visually.  Click to get 
            big version. 
       * W. Stein and A. Clemesha: Wrote an html web server to include 
            with SAGE;
            to run it just type server_http1() at the SAGE prompt.
            This could be greatly improved.  Control-C works by
            pressing control-c in the SAGE window.
       * W. Stein and A. Clemesha: Added server_http1 (a web server for
           SAGE; hopefully there will be many and we'll see which is best.)
       * didier deshommes: some patches and improvements to log_*


Thu May  4 22:37:23 2006
------------------------
1.2.5: * Alex Clemesha: major update to plotting functionality.
       * W. Stein: added ecm-6.0.1.spkg optional package (for GMP-ECM),
         and added an ECM class; type "ECM?" for help.

Tue May  2 18:16:52 2006
------------------------
1.2.5: * W. Stein: doctests can now have for loops, e.g., 
    """
    sage: for i in range(3):
    ...    print i^2
    ...
    0
    1
    4
    """

Tue May  2 03:04:11 2006
------------------------
1.2.4: * David Joyner: piecewise functions
       * Joe Wetherell: preparser R.<x,y,z,w> = PolynomialRing(QQ,2^2) 
                        now works (bug due to W. Stein; fix due to Joe)
       * Martin Albrecht: made f.monomials() vastly more efficient
       * W. Stein: ZZ(5).is_square_free(); fix bug in save_session;
       * W. Stein: fixed major problem in mwrank interface; now ctrl-c, alarm,
                   etc., will work right.
       * W. Stein: wrote a minimal "polymake" interface

Tue Apr 25 16:52:39 2006
------------------------
1.2.4: * small fixes so clisp, gfan, and sympow build on Cygwin/Windows.

Fri Apr 21 08:27:55 2006
------------------------
1.2.4: * upgrade to pyrex 0.9.4.1 (trivial bugfix release)

Thu Apr 20 20:26:47 2006
------------------------
1.2.3: * Alex Clemesha: Plotting -- axis/labels are now much nicer
       * modular symbols bugfixes and improvements
       * Cygwin -- modified build process for gmp 4.2 and ntl so works.
       * gfan -- fix path problem that prevented gfan building
       * groebner_fan() function for multivariate-ideals; provides
         very nice access to most of the functionality of Groebner Fan,
         which is now included by default with SAGE.
       * Changed so that multi-variate polynomials rings get numered
         variables called x0,x1,x2,x3 (or whatever) instead of 
         x_0,x_1,x_2,x_3.  This is because (1) there were some
         problems with _ variables and Singular, and (2) in ASCII
         the underscores do not look good.  Note that latex typesetting
         still correctly includes _'s.  This change required changing
         hundreds of examples all over the source tree.
       * Numerous little improvements to multivariate polynomials, etc.,
         while making the Groebner Fan interface.

Sun Apr 16 23:03:56 2006
------------------------
1.2.2: * Upgraded to official Pyrex 0.9.4, which has many improvements.
         In the end, this meant numerous small changes to .pyx files.
         (Note -- overflow checking when coercing from sage/python ints
          to C ints disappeared in this new version of Pyrex, and I'm
          not sure I've put enough tests in yet to make up for it. I intend to.)
       * Added a number of patches, e.g., Joe Wetherell's:
            R.<x,y> = PolynomialRing(QQ,2)
       * tons of examples of polygon and line plotting.
       * switched to factorials.

Thu Apr 13 16:28:42 2006
------------------------
1.2.1: * Added non-gui matplotlib to SAGE core (and 
         dependencies: freetype and libpng); this will support
         SAGE's in-development mathematica-like graphing functionality.

       * Additions to the install guide based on mailing list discussions

Fri Apr  7 13:13:48 2006
------------------------
1.2.0: * Upgraded to Gap-4.4.7

Fri Apr  7 00:17:34 2006
------------------------
1.2.0: * Upgraded to Python-2.4.3

Thu Apr  6 14:42:05 2006
------------------------
1.2.0: * Added support for compiling SAGE from source on the new 
         Intel-based Macs. 
         This required changes to clisp-2.38.spkg, gmp-4.2.spkg,
         pari-2.2.12.beta.spkg, and singular-3-0-1-2.spkg, among
         other things.

1.2.0: * Upgraded optional matplotlib to version 0.87.2.
         (matplotlib will be included standard very soon)
         

Fri Mar 31 2006
------------------------
1.2.0: * GMP 4.2 bug fixes fix problems with huge integers crashing SAGE;
         now can convert huge integers to base 10 strings, etc.

Mon Mar 27 20:13:57 2006
------------------------
1.2.0: * added gmp-4.2 to standard SAGE

Sat Mar 18 11:43:23 2006
------------------------
1.2.0:  * added gfan to standard distribution of SAGE

March 2006:
1.1.1-2:  * Martin Albrecht -- added support to use poly rings of extensions
                               of finite fields via singular; etc. 
          * Didier Deshommes -- added ntl random numbers: 
                                ntl.ZZ_random  and ntl.ZZ_random_bits
          * Gonzalo Tornario -- wrote a "darcs with SAGE" howto
          * W. Stein -- improvement to prime enumeration using PARI
          * W. Stein -- fixed mpfr rounding mode creation bug (and 
                        changes lots of examples to reflect this)
          * W. Stein -- change real number behavoir some
          * Gonzalo Tornario -- fixed randomness in ZZ hash; also some linalg,
             smith forms for nonsquare matrices, ZZ.quotient( ... ) fix.


Thu Mar  9 04:15:34 2006
------------------------
1.1.0:  * Tentatively adopted darcs as revision control system.
        * W. Stein -- add Tim Dokchitser's L-functions package.  Type
           "Dokchitser?" for details and examples.  Also E.Lseries_dokchitser.
          If you're into computing L-series this package is *amazing*!
        * improvements to magma/gp/pari interfaces
        * real number precision now determined by digits of input, like
          in mathematica (and unlike in magma,pari,etc., etc.)  this is
          what people most preferred on the mailing lists.

Tue Mar  7 03:54:48 2006
------------------------
1.0.9: * Gonzalo Tornari -- large numbers of patches to improve performance,
         especially PARI <--> SAGE number conversions, etc.

Mon Mar  6 20:33:19 2006
------------------------
1.0.8: * Stein: maple; added tab completion, e.g., maple.[tab],
         and help, e.g, maple.sin?

Mon Mar  6 01:51:10 2006
------------------------
1.0.8: * Mike Rubinstein's Lcalc is now part of SAGE.  Type "lcalc?"  
         for more details.   This also adds a bunch of functions
	 for elliptic curves; type "L.Lseries_[tab]" to see.
       * Kevin Buzzard's program for computing conjectural slopes
         of Hecke polynomials; Type buzzard_tpslopes? for details.
       * examples and improvement of height, sqrt behavior for QQ.
       * added Qing Liu's genus2reduction C program;  
         type "genus2reduction?" from the SAGE prompt for details. 
       * numerous small bugfixes 

Sun Mar  5 11:55:25 2006
------------------------
1.0.8: * bugfixes and optimization for modular symbols
       * put much sparse linear algebra over Q into Pyrex (compiled)
       * Jaap Spies: added rising_factorial and falling_factorial.
       * optimized permanents of matrices over Q

Fri Mar  3 03:11:19 2006
------------------------
1.0.8: * improvements to ctrl-c handling (added _sig_check macro)

Thu Mar  2 23:10:18 2006
------------------------
1.0.7: * Gonzalo Tornaria: vastly improved hashing and python<-->SAGE 
         integer conversions.

Thu Mar  2 03:06:05 2006
------------------------
1.0.7: * Gonzalo Tornaria: use Python's int/long hash for SAGE integers
         and rationals.

Thu Mar  2 02:56:06 2006
------------------------
1.0.7: * added tab completion and help for gap and gp interfaces, e.g., 
               gap.[tab], gp.[tab],   gp.matkerint?.

Wed Mar  1 22:46:11 2006
------------------------
1.0.7 * Stein: fixed bug in gap interface (data/extcode/gap/sage.g was trying 
        to write to /tmp/gapsage.log, which froze gap interface on some systems).

Wed Mar  1 18:46:10 2006
------------------------
1.0.7 * Stein: upgraded to PARI 2.2.12 (this entailed a large number of
        changes to the outputs of doctests that in any way use pari reals;
        also one line of the the mwrank source had to be changed).

Wed Mar  1 06:40:50 2006
------------------------
1.0.7 * Stein: expect -- get rid of infinite loop on startup in some
                  cases when client system is missing.

Tue Feb 28 01:12:11 2006
------------------------
1.0.7: * Stein: For MAGMA interface: added extensive tab completion
         and interactive IPython documentation support -- type
         "magma.[tab]" for list of all Magma intrinsics (takes a while
         the first time, then instant); type "magma.function?" for
         help on that function.  If x=magma(...)  is a MagmaElement,
         type x.[tab] for the functions that can take x as first
         argument, and x.FunctionName? for help on a given function.
         Implementing this is a template for how to do this for other
         systems, e.g., PARI, Macaulay, Singular, etc.  Volunteers?

Sun Feb 26 20:14:16 2006
------------------------
1.0.7 * Jaap Spies -- found that PARI "gen" type name is confusing,
        since it clashes with X.0 "is" gen(X).  So I changed it to pari_gen.
        This required changing a lot of other code that used "gen" all over.

Fri Feb 24 23:42:29 2006
------------------------
1.0.6 * Stein/Tornaria: vast speedups of integer and rational hashing
      * improved robustness of maxima interface
      * change ordering of polynomials; now compares degrees then coefficient
        of highest degree term then down (since higher degree terms are
        "more significant").
      * refactoring/restructing of constants and adding template
        for functions
      * doctest don't leave tons of directories in .sage/tmp; also
        added "sage -cleantmp", which deletes all directories in 
        .sage/tmp not actively in use on current machine.  (NOTE:
        we do *not* do this automatically since if your home directory
        were NSF exported to a cluster, then starting SAGE on and node
        would kill the .sage/tmp for all processors on other nodes).

Mon Feb 20 17:34:55 2006
------------------------
1.0.5 * unified and improved coercion of objects to interface;
        now just defined "def _xxx_init_(self):" for system xxx
        to return a string repn of that object that creates it
        in system xxx.  Caching is done automatically, unless
        otherwise requested.

1.0.5 * Alex Clemesha: new version of misc/constants.py; improved texing,
        added twinprime, merten, and brun's constants. 


Sun Feb 19 16:40:23 2006
------------------------
1.0.5 * fixed bug when attaching/loading .py files from .sage files.
      * Joe Weening -- new GMP spkg-install script.

Fri Feb 17 14:43:20 2006
------------------------
1.0.5 * added a bunch of new code by Gonzalo Tornaria (mostly improvements
        to PARI c library functionality)
      * added matrix permanent computation for possibly non-square matrices
        by Jaap Spies

Thu Feb 16 00:50:33 2006
------------------------
1.0.4 * removed autoconf prereq
      * documented sets/set.py and greatly improved code (examples for
        every function, etc.)

Wed Feb 15 22:14:12 2006
------------------------
1.0.4 * fixed bug that Justin Walker found in doctest where
        it wouldn't work when giving multiple input files in different directories
      * added load and attach support for .py file (in addition
        to .sage and .spyx files). 
      * Naqi Jaffery: fixed problem in sparse linear algebra 
        constructor

Mon Feb 13 13:06:19 2006
------------------------
1.0.4 * added maxima online help interface ('? command'),
        maxima.help(...), maxima.example(...), maxima.demo(...)

Mon Feb 13 07:42:13 2006
------------------------
1.0.3 * some small modification to logging (control-d known
        to mess up sequence) and latex'ing
      * Kiran Kedlaya -- rings, ideals, etc. that use Macaulay2
         (create using MPolynomialRing(..., macaulay2=True);
          can be used to compute Groebner basis over Z).
      * Martin Albrecht (sage.libs.ntl update): 
         - ntl.GF2X() and all dependent types (GF2E,GF2E_modulus,mat_GF2E) now 
           additionally accept:
           - Polynomials__mod_p now, int, Integers
         - added mat_GF2E.transpose()
         - ntl.mat_GF2E(<size>,1) may be used as a row vector now, e.g.:
               m = ntl.mat_GF2E(10,1)
               m[1]=ntl.GF2E("0x1")
           no tuple required
         - BUGFIX: check for modulus when constructing a mat_GF2E

Sun Feb 12 18:08:46 2006
------------------------
1.0.3  * added a very primitive "search_sage" command for searching 
         the SAGE source code from within SAGE. 


Sun Feb 12 17:41:32 2006
------------------------
1.0.3  * added "<string>?" and "?<string>" for searching of help
         when using one of the interfaces (via %gap, etc.).

Sun Feb 12 00:49:45 2006
------------------------
1.0.2   * fixed bug found by Justin Walker in loading .spyx files
          not in the current directory.
        * improved reloading of attached .spyx files (no blankline needed)
        * new "iload" interactive loading feature: 
               iload "filename.sage"
          loads it line by line (almost?) exactly as if you typed it in.

Sat Feb 11 23:58:26 2006
------------------------
1.0.2   * macaualy2 interface bugfixes
        * created a new latex and html session log facility.  
          type "log_dvi?" and "log_html?" for more details.
          (using this led to many improvements in the latexing
           methods for objects all over sage).

Fri Feb 10 03:36:19 2006
------------------------
1.0.1   * sage-mindist; first "minimal" sage tarball for install
          into an existing Python environment.

Fri Feb 10 03:35:18 2006
------------------------
1.0.1   * fixed -5*P for P on elliptic curve bug. 
1.0.1   * improvements to mathematica interface; e.g., good saving and
          loading of objects; support for latex output.
1.0.1   * maple latex output
1.0.1   * added ability to pull data from SAGE into other command-line sessions
           (1) type %magma, %maple, %singular, %gp, or whatever
           (2) E.g., if you're in gp, type gp(sage expr) to evaluate
               the sage expr and bring it into your gp session:
                  sage: E = EllipticCurve([1,2,3,4/5,1/191])
                  sage: %gp
                  gp: E
                  E
                  gp: gp(E)
                  [1, 2, 3, 4/5, 1/191, 9, 23/5, 1723/191, ...
                  gp: %magma
                  magma: E:=magma(E)
1.0.1    * elliptic curve ranks now computed with mwrank shell program
           by default.
                  

Thu Feb  9 11:10:47 2006
------------------------
1.0.1    * Kiran Kedlaya and David Roe: Interface to Macaulay2 (use
           via macaulay2('stuff')). 

Wed Feb  8 00:19:43 2006
------------------------
1.0.1    * Steve Linton: new gap interface
         * Stein & Fernando Perez: magic interaction modes with 
                         interfaces (via %blah)
         * David Kohel: lots of new schemes code (e.g., jacobian arith)
         * Steven Sivek: new sloane's tables of integer sequences code
         * Joe Wetherell and Gonzalo Tornaria: SAGE_ROOT/examples/latex_embed

Thu Feb  2 22:32:57 2006
------------------------
0.10.13: * improvements to base_ring behavior for rings and schemes
           (all suggested by David Kohel)
         * improvement to sqrt suggested by David Joyner
         * added Gregg Musiker's Maple tutorial (to reference manual)
         * implemented "sage -t filename.sage".  
         * environment fix to sage-doctest (Wilson Cheung)

Tue Jan 31 19:11:13 2006
------------------------
0.10.13: added use of killpg in interfaces/expect.py to much much 
         more robustly kill child processes (this was a major
         problem until now)

Mon Jan 30 02:43:09 2006
------------------------
0.10.12: much testing and documentation improvements; 
         added "make test"; tests should not take into account
         64-bit computers and pass on them too.

Sat Jan 28 04:50:05 2006
------------------------
0.10.11: minor fixes to watkins-ec to work with newest cygwin/windows.

Sat Jan 28 03:02:00 2006
------------------------
0.10.11  Eliminated gnuplot from inclusion with SAGE (bad license), and libpng.
         Upgraded clisp
         Upgraded IPython

Fri Jan 27 01:14:48 2006
------------------------
0.10.11   I've added a new option for sage0.10.11 to make it easier to hunt
          down something you remember from the SAGE source code.  Just type
                "sage -grep <string>"
          to find all occurences of <string> in the SAGE source code. 


Thu Jan 26 20:49:24 2006
------------------------
0.10.10 -- totally rewrote complex numbers and added a wide range of
           transcendental member functions for complex numbers (via
           PARI, but with care taken to get precision right).  Also
           rewrote the functions/transcendental.py to use this.

Thu Jan 26 13:04:14 2006
------------------------
0.10.10  -- fixed problem in real number coercion precision.

Wed Jan 25 14:51:26 2006
------------------------
0.10.9 -- schemes: affine patches, projective_embedding for affine space.


Wed Jan 25 14:27:13 2006
------------------------
0.10.8 -- schemes -- much more flexible (Projective/Affine)Space constructors.

Wed Jan 25 14:26:25 2006
------------------------
0.10.8 -- PARI; fixed missing "make install-data", so can compute Galois
          groups for degree > 7.

Wed Jan 25 02:02:00 2006
------------------------
0.10.7 -- adding ability to run SAGE/Mathematica/etc. via ssh and 
          a remote server, just because it would be interesting
          to see it work.  Uses files to move arbitrarily complicated
          SAGE data back and forth to remote sessions on other computers.

Tue Jan 24 23:27:23 2006
------------------------
0.10.7 -- naming cleanup -- all pyrex files that started with _
          (underscore) now don't.  changing this meant changes all
          over the system, etc.  better now than later. 

Tue Jan 24 21:19:32 2006
------------------------
0.10.7 -- Martin Albrecht: ntl library interface update.

Tue Jan 24 16:08:37 2006
------------------------ 
0.10.6 -- made maple interface more robust.

Tue Jan 24 15:12:39 2006
------------------------
0.10.6 - i/o speedup and robustness improvement for following interfaces:
         magma, Gap, maxima, kash, mathematica, maple

Tue Jan 24 15:04:38 2006
------------------------
0.10.6 - gap (changed memory command line option for startup) to depend
         on 64-bit/32-bit


Tue Jan 24 03:05:32 2006
------------------------
0.10.6 -- file i/o tricks to vastly increase efficiency of inputing
          large strings into GP and Singular under SAGE.  (GAP might
          also be possible, in some important cases, etc.)


Mon Jan 23 23:49:45 2006
------------------------
0.10.6 -- fixed problem where interfaces would continue to
          run even after SAGE terminated (esp, maple, kash, maxima).
          Now this isn't a problem at all, since they're all sent their
          respective "quit" commands on exit.   

Mon Jan 23 20:48:18 2006
------------------------
0.10.6 -- fixed problem in  gap_gpl_packages-4.4.6_2.spkg install script;
          it wasn't actually loading the packages after installing them,
          since the lines were gap() instead of gap.eval()


Mon Jan 23 12:32:18 2006
------------------------
0.10.5 -- martin albrecht's improvments to finite field coercion 

Sun Jan 22 20:30:18 2006
------------------------
0.10.4 -- added Joyner's examples: crt_basis, free_abelian_monoid_element,
          free_module_element, integer_ring_mod, etc., etc.
       -- added unit part to factorizations.   
       -- many small bug fixes related to factorization, square free parts.
       -- added R[['t']]  notation for constructing power series rings.
                
Sun Jan 22 20:24:25 2006
------------------------
0.10.4 -- added GL -- general linear group with a very little amount
          of functionality. 

Sun Jan 22 19:37:20 2006
------------------------
0.10.4 -- created a GapRep class in interfaces/gap.py to make it easy
          to make objects that *robustly* wrap objects whose underlying
          implementation is in Gap (e.g., permutation groups, linear
          groups, etc.).


Sun Jan 22 18:24:17 2006
------------------------
0.10.4 -- * improvement to Sequence type so default universe is chosen from
            whole collection of elements instead of just first. 


Sat Jan 21 12:25:14 2006
------------------------
0.10.4 -- * new ipython: version 0.7
          * new zodb: version 3.6 

Fri Jan 20 23:02:52 2006
------------------------
0.10.3 -- * added a *bunch* to the reference manual
          * added to constructions and the tutorial, and fixed
            problems (esp., regarding singular interface).

Fri Jan 20 15:32:17 2006
------------------------
0.10.3 -- * doctest: fixed line numbers in doctest errors
          * singular 3-0-1-2

Fri Jan 20 11:45:46 2006
------------------------
0.10.3 -- * more on schemes
          * replaced all _add, _sub, _mul, _div's by 
            _add_, _sub_, _mul_, and _div_, which is more systematic. 


Wed Jan 18 22:47:33 2006
------------------------
0.10.3 -- * add first version of new facility for *very* easy use of 
            compile-able code for users.   Just make a .spyx file and 
            load or attach it as usual.  It's compiled and will execute 
            really quickly if you know how to use Pyrex (e.g., cdef
            ints, etc.).  See examples/pyrex.

Wed Jan 18 03:31:20 2006
------------------------
0.10.3 -- * new shorthand notation for constructing polynomial rings:
              sage: Q['x,y,w']
              Polynomial Ring in x, y, w over Rational Field

Mon Jan 16 17:23:53 2006
------------------------
0.10.3 -- * Martin Albrecht <malb@informatik.uni-bremen.de>: 
              - NTL GF(2^e) linear algebra interface
              - more functions for multivariate polynomials
          * David Joyner -- update to maxima ODE solver
          * Added gnuplot plot3d_parametric with examples.

Sun Jan 15 17:05:44 2006
------------------------
0.10.3 -- * added Sequence class.  Type help(Sequence) for more information.
       -- * added support for homomorphisms of (some) rings.
             If R is a ring, type R.homomorphism? for more info.
       -- * new mathematical constants classes with symbolic manipulation: 
              pi, e, etc.  Type help(sage.misc.constants) for more details.

Thu Jan 12 13:00:41 2006
------------------------
0.10.1 -- * added mwrank (interpreter) interface (not C++ library).

Thu Jan 12 02:45:50 2006
------------------------
0.10.0 -- * modified moved a number of optional packages into standard:
             - maxima, numeric (upgrade), clisp (new), 
               gnuplot (new), gnuplotpy (new)
          * upgraded singular build scripts a little


Wed Jan 11 01:03:14 2006
------------------------
0.9.34 -- basic constants (e and pi)
       -- coercion to interfaces takes an argument (e.g., _gap_, 
          _singular_ functions)
       -- re-organized website

Tue Jan 10 02:56:27 2006
------------------------
0.9.33 -- polynomial factorization over general finite fields (via pari);
          also slighly changed representation of elements of general finite
          fields for robustness.


Mon Jan  9 22:55:04 2006
------------------------
0.9.32 -- *finally* got object saving and loading working wonderfully!!   
          Added a self.db method for sage objects that 
          saves objects to SAGE_ROOT/db.  Use db_load to reload them.   
          Added a handy save_session command for saving all named variables 
          defined in the current session to a .sobj file dictionary.
          You could save multiple sessions and bring in all the variables
          defined from all sessions into one session (you get a bunch
          of dictionaries, one for each session).  cool.
          

Sun Jan  8 03:24:14 2006
------------------------
0.9.31 -- more improvements of object persistence 
             (BUT -- object persistence is *not* done and is not yet supported)
       -- rewrite of reference manual style; hopefully clearer
       -- new optional package "extra_docs-2006-01" with 
          documentation for many of the systems that are
          accessible from SAGE and libraries included with SAGE.


Sat Jan  7 02:55:18 2006
------------------------
0.9.30 -- object persistence: save, dump, etc. methods;
          added a huge amount of these all over SAGE; required
          modifying almost every single file in SAGE.  Also
          added lots of __cmp__ methods. 

Fri Jan  6 08:14:37 2006
------------------------
0.9.29 -- same as 0.9.28, to avoid (or create?) potential confusion


Fri Jan  6 07:13:19 2006
------------------------
0.9.28: * Object Persistence started: 
            added save (=dump) and dumps methods to all SAGE objects, and 
            support for more of them.    Also, load method to recover objects.
 
0.9.28: * computation of galois groups of number fields and polynomials
          using both PARI and KASH.

Thu Jan  5 04:53:02 2006
------------------------
0.9.28: * new versions of code from David Kohel:
            - monoids (whole directory): A bit more documentation
            - algebras (whole directory): A bit more documentation
	    - rings.arith.py: hilbert_symbols moved from 
                              algebras.quaternion_algebra to rings.arith
            - rings.padics: New directory of p-adic ring and 
                            field functionality (incomplete)
            - schemes -- total rewrite  !! WARNING !! -- schemes (except
               for elliptic curves, are seriously broken right now)

Wed Jan  4 03:18:46 2006
------------------------
0.9.28: * changes and improvements to groups and maxima interface.
        * improved the programming/developers guide

Tue Jan  3 12:49:42 2006
------------------------
0.9.27: * misc bug fixes and robustness improvements to interfaces.

Tue Jan  3 03:31:35 2006
------------------------
0.9.27: * upgraded to pexpect version 2.0 (from 0.999); this entailed
          minor changes to interfaces/expect.py

Mon Jan  2 23:16:30 2006
------------------------
0.9.27: * added latex'ing for maxima object (using latex(f) of f._latex_(),
          and preview with view(f)).

Mon Jan  2 09:21:59 2006
------------------------
0.9.27: * made maxima optional package (requires user has a lisp interpreter)
        * removed ascii art from maxima interface
        * made maxima interface more robust

Sat Dec 31 16:56:39 2005
------------------------
0.9.27: * sage (shell) eval command now calls _eval_(self) method before
          calling builtin eval command.  Thus, e.g., eval(s) makes sense
          for expect interface objects.

Sat Dec 31 12:24:12 2005
------------------------
0.9.27: * upgraded to ipython-0.7.0.rc4

Fri Dec 23 11:15:03 2005
------------------------
0.9.27: * fixed bug Joyner found in comparison of laurent
          and power series (not symmetric)

Thu Dec 22 20:30:13 2005
------------------------
0.9.26: * added SloaneEncyclopedia object, which is a local on-disk
          version of Sloane's encyclopedia.  AUTHOR: Steven Sivek.

Thu Dec 22 16:37:01 2005
------------------------
0.9.26: * rewrote the install guide (w. stein)
        * fix zlib build problem (thanks to Gary Zablackis <gzabl@yahoo.com>)

Tue Dec 20 20:20:48 2005
------------------------
0.9.25: * misc/functional.py; categories/* 
           -- updated (many examples) by David Joyner

Tue Dec 20 19:04:06 2005
------------------------
0.9.25: * Created an interface to Maxima

Mon Dec 19 23:06:24 2005
------------------------
0.9.25: * new singular examples (submitted by David Joyner)

Mon Dec 19 19:04:44 2005
------------------------
0.9.25: * fixed memory leak in integer/rational --> string conversion
0.9.24: * improved build system; many more doctests (submitted by D. Joyner)

Sat Dec 17 19:52:53 2005
------------------------
0.9.23: * fixed all known ctrl-c causes infinite loops problems; this
          involved modifying the pari C library and changing the
          pexpect interfaces.

0.9.23: * many small fixes so all the doctests pass on OS X.

Sat Dec 17 11:58:51 2005
------------------------
0.9.23: * switched back to readline 5.0.1, since pressing [delete]
          would crash python under readline 5.1 on most platforms. 

Wed Dec 14 16:16:37 2005
------------------------
0.9.22: * Windows -- fixed bug in PARI build on Cygwin, so now the Windows
                     PARI is compiled with GMP (faster) and readline (nicer)

Wed Dec 14 02:03:10 2005
------------------------
0.9.21: * Much enhancement of flexibility of the build system.  
          (Note: This temporarily breaks "sage -upgrade" on currently 
           installed systems.  The fix is easy: type 
           "sage -f sage_scripts-0.9.21", ignore the error, 
           then type "sage -upgrade" twice.)

0.9.21: * fixed bug in ngens -- returned 0 by default instead of len(self.gens()).

0.9.21: * included galois groups tables in PARI distro.

Upgraded to readline 5.1

Tue Dec 13 01:04:49 2005
------------------------
0.9.20: * "sage -upgrade" and optional package installation now 
          supported for pre-built (binary) versions of SAGE.


Mon Dec 12 15:02:08 2005
------------------------
0.9.19:  * many improvements to the build process, so SAGE (almost?) builds on 
           (some) Solaris platforms.   
         * upgraded to new version of mpfr: 2.2.0

Wed Dec  7 11:18:42 2005
------------------------
0.9.17: * Added integral_hecke_matrix for modular symbols spaces.
        * Improved cardinality function for elliptic curves over finite fields.

Tue Dec  6 20:41:23 2005
------------------------
0.9.17: * index command for free modules
        * intersection of free modules over Z.

Mon Dec  5 20:44:08 2005
------------------------
0.9.16: * added "R^n" notation for creating the free module of rank n over R.
        * many additions to free_module.py docs and code improvements

Mon Dec  5 10:35:23 2005
------------------------
0.9.16: * added algorithm='kash' option to n.factor for n an integer.


Sun Dec  4 23:35:06 2005
------------------------
------------------------
0.9.15: * made "sage -t path/to/file.ext" work for nontrivial paths
        * free modules -- submodule, span, etc. now work in a sensible way;
                          more documentation; inner products on 
                          non-ambient modules
        * better error handling when mathematica or other slave processes
          "halfway" starts, e.g., because of missing license information.
        * singular polynomials now print with *'s and ^'s (short mode off 
          by default).

Tue Nov 29 20:34:49 2005
------------------------
0.9.14: * added "-np" no output prompt option to sage. 

Tue Nov 29 01:40:56 2005
------------------------
0.9.14: * Now interrupt.pxi and interrupt.h are all the same (via cp during build)
        * Also fixed bug that lead to hangs when using alarm() function.


Sun Nov 27 21:58:39 2005
------------------------
0.9.13: * greatly modified the pexpect interfaces code so now, e.g.,
          gap('2+2') makes a new gap object, whereas gap.eval('2+2') 
          evaluates the expression and returns a string. 
          Also fixed bugs in the interfaces that caused infinite loops.

0.9.13: * added KASH/Kant interface and optional packages.


Tue Nov 22 00:59:40 2005
------------------------
0.9.12: * fixed alarm command so it works even when calling C code
        * rewrote the Stein-Watkins database interface so startup
          is immediate (using Python's bz2.BZFile module).

Mon Nov 21 01:19:02 2005
------------------------
0.9.11: implemented q_expansion_basis and q_eigenform for 
        modular symbols spaces; added q_eigenform for elliptic curves also

Sun Nov 20 16:03:07 2005
------------------------
0.9.11: added "sage -optional" command that lists installed and
        available optional packages.

Sun Nov 20 04:16:45 2005
------------------------
 0.9.11: made sage not preparse lines beginning with "!".

Thu Nov 17 06:06:11 2005
------------------------
 0.9.11: added Joyner's updated permgroup.py

Wed Nov 16 18:09:17 2005
------------------------
 0.9.9b: * fixed bug in multi-modular charpoly computations (insufficient bound)
         * Added Heilbronn* commands for listing Heilbronn matrices 

Wed Nov 16 01:09:44 2005
------------------------
 0.9.9: Incorporated David Joyner's "SAGE Constructions" documentation.

Tue Nov 15 04:53:49 2005
------------------------
 0.9.8: added hilbert_class_field and hilbert_class_polynomial for quadratic number fields


Tue Nov 15 03:37:38 2005
------------------------
 0.9.8: Fixed bug so that ctrl-c in mwrank crashed SAGE. The problem
        was that I was using signal interrupts in a Pyrex constructor,
        which is not safe.

Tue Nov 15 02:35:15 2005
------------------------
 0.9.8: SAGE now build with readline support on OS-X; SAGE maybe no longer
        supports building on OSX 10.3  (?)

Tue Nov 15 02:34:34 2005
------------------------
 0.9.8: improved E.gens() (better error messages, raises exception, uses two_descent results)


Tue Nov 15 00:18:14 2005
------------------------
 0.9.7d: added linear_code_bound command, which looks up
         minimum distances bounds on linear codes from a website.

Mon Nov 14 21:57:05 2005
------------------------
 0.9.7c: new version of Singular: Singular-3-0-1


Mon Nov 14 17:59:40 2005
------------------------
 0.9.7b: Added heegner index computation for odd rank curves.


Sun Nov 13 21:52:54 2005
------------------------
 0.9.7: Hyperelliptic and plane curves (some functionality)
 0.9.7: Access to Sloane's tables of integer sequences (via the internet)

Sun Nov 13 16:15:24 2005
------------------------
 0.9.7: Added maple interface. 


Sun Nov 13 03:44:19 2005
------------------------
 0.9.7: some modular symbols optimizations


Fri Nov 11 04:29:33 2005
------------------------
 0.9.6: * added "-update and -update-build" options to sage
        * added "-gdb" option to sage to run under the GNU debugger (the
          idea/trick to implement this came from Joe Wetherell). 
        * gap_reset_worspace(n) sets the size of the default workspace to n.


Tue Nov  8 19:50:29 2005
------------------------
 0.9.5: * slightly modified prereq script.
        * made "sage" the name of sage that appears in the process list.

Tue Nov  8 19:00:19 2005
------------------------
ntl-5.4.1: Fixed OSX bug in NTL build process (no dylib) that made anything
           in SAGE that used NTL worthless (e.g., polynomials over finite 
           fields).

Mon Nov  7 20:48:36 2005
------------------------
 0.9.5: * Switched from IPython time command back to my own, so it will
          work in .sage scripts.
        * Fixed bug in preparser in that it was not completely ignoring
          comment lines.
        * Made it so attach reloads files whenever a file is changed, 
          not only when you enter a blank line at the SAGE prompt. 
          The reload occurs *before* your line of code is executed.
        * If there is a file "attach.sage" in the current directory,
          SAGE will *automatically* attach that file at startup.

Sun Nov  6 22:33:12 2005
------------------------
 0.9.4: Changed .ipythonrc to ipythonrc, since it was confusing
        having it as a dot file in the SAGE directory.
 0.9.4: Added an examples directory, where I'll regularly put
        more and more examples of .sage scripts.    These
        will regularly be updated.
 0.9.4: spkg's can now be either tar.bz2 or tar files (no compression).

Sun Nov  6 16:06:05 2005
------------------------
 0.9.3: Improved the sage testing scripts.
 0.9.3: Switched to using PARI 2.2.11.alpha instead of the CVS version.
        This fixes a bug in computing the conductor of the curve 3006d,
        and avoids other possible stability problems.

Sun Nov  6 14:25:16 2005
------------------------
 0.9.3: moved the $SAGE_ROOT/sage script to local/bin/sage-sage and
        made a much simpler $SAGE_ROOT/sage script, which shouldn't
        ever change.  Now you can copy $SAGE_ROOT/sage to e.g.,
        /usr/local/bin/, make one change at the top.

Sat Nov  5 17:41:39 2005
------------------------
singular-3.0.9.1: Fixed a problem in the install that made Singular 
    fail on Microsoft Windows when one moves the install directory
    (this bug also broke Singular for the Windows binary).  This
    did not affect Linux or OS X.

Fri Nov  4 16:04:59 2005
------------------------
 0.9.1: Complete restructing of the entire SAGE build system.


Mon Oct 31 10:49:21 2005
------------------------
 0.8.5: * changed sage install scripts to touch files when extracting
          from archive, to avoid infinite recursions in the build process
          if the clock on your computer is messed up.

Thu Oct 27 01:31:30 2005
------------------------
 0.8.4: * Added some functions submitted by Dadid Joyner.
        * Fixed x^n when x is a float and n is an integer. 

Tue Oct 25 06:09:05 2005
------------------------
 0.8.3: Added Denis Simon's 2-descent program for curves over Q.
        If E is an elliptic curve over Q, this is the function
        E.simon_two_descent

Tue Oct 25 04:54:01 2005
------------------------
 0.8.3: Wrote a nice mathematica <--> SAGE interface
 0.8.3: Greatly improved error handling in all interfaces.
 0.8.3: Improved calling functions via MAGMA interface


Mon Oct 24 06:00:08 2005
------------------------
 0.8.3: Added a "rename" feature, as suggested by Joe Wetherell. 
        On many sage objects X you can use X.rename(new_name) to
        make X print as new_name.  Use X.reset_name() to reset X
        back to its original printing value.   (Implementing this
        requires changing a lot of code, so it doesn't work for 
        everything yet.)

Sat Oct 22 16:09:02 2005
------------------------
 0.8.1: small bugfixes to the build process on various machines. 

Sat Oct 22 05:04:08 2005
------------------------
 0.8.0: *Singular*: The Singular computer algebra system is now a part of 
        the standard SAGE distribution.
 0.8.0: Added interface to Octave (useful if you have octave installed).
 0.8.0: Improved interfaces to Singular, GAP, PARI, Magma, etc., to
        simulate limited wrapping and python notation for accessing
        objects and their methods. 

Fri Oct 21 15:07:26 2005
------------------------
 0.8.0: fixed small bug in preparser (error found by Kyle Schalm) 
        where certain ints wouldn't be wrapped in ZZ().

Fri Oct 21 14:02:29 2005
------------------------
 0.8.0: Fixed expect interface so works on OS X (needed to decrease timeout).

Fri Oct 21 07:00:36 2005
------------------------
 0.8.0: Upgraded to PARI 2005-10-21 CVS.

Fri Oct 21 06:33:28 2005
------------------------
 0.8.0: *GAP*: The core of GAP is now a part of the standard 
        SAGE distribution.  The group databases are a separate download
        from the database website.

Mon Oct 17 23:47:28 2005
------------------------
0.7.14: Upgraded to ZODB3-3.5.1 final.

Mon Oct 17 12:55:50 2005
------------------------
0.7.14: Changed behavior of elliptic curve gens command to print warning
        and set flag if computation of generators is not certain, but
        not to raise an exception.  This is good because *often* one just
        needs one generator or knows that in fact the mwrank answer is
        correct anyways.

Mon Oct 17 03:51:48 2005
------------------------
0.7.13: Rewrote the tutorial (now the examples work as advertised, because 
        of my new documentation testing system).

0.7.13: Added a few minor changes so the tutorial made more sense.

0.7.13: Fixed bug in SAGE call to SEA.    

Fri Oct 14 11:00:08 2005
------------------------
0.7.12: Added David Joyner's PermutationGroup package (first version).


Fri Oct 14 10:35:05 2005
------------------------
0.7.12: included new version of David Kohel's (non)-commutative 
        algebra code.


Thu Oct 13 21:38:47 2005
------------------------
0.7.12: changed meaning of "x in S" again; now it means S(x) succeeds.
        This agrees with the meaning as defined in Alex Martelli's
        "Python in a Nutshell".

Tue Oct 11 17:11:02 2005
------------------------
0.7.10: * minor bugfix in printing code

Mon Oct 10 03:44:47 2005
------------------------
0.7.10: * added "hensel_lift" method for elements of Q[x], via
          corresponding PARI C-library function.

Sun Oct  9 18:34:27 2005
------------------------
0.7.9: * changed the standard meaning of "x in S" in SAGE, 
         (for the most part).  Now it means "there is a *canonical*
         map that sends x to an element of S".  This is intermediate
         between the meaning of "in" in MAGMA (which is S!x doesn't 
         crash) and what it was in SAGE before (basically 
         x.parent() == S).

       * lots of little changes that were needed to make
         all examples work after making changes. 


Sun Oct  9 17:14:01 2005
------------------------
0.7.9: * more work on implementing separate additive and
         multiplicative orders
       * made gcd, xgcd, lcm more uniform (only defined
         for EuclideanDomainElements; use _gcd, etc. in derived
         class just like for arithmetic)

Fri Oct  7 13:30:19 2005
------------------------
0.7.9: * changed "order" to mean additive order
         for module and ring elements, and 
         multiplicative_order for the multiplicative order.


Thu Oct  6 22:58:08 2005
------------------------
0.7.9: * Upgraded to Python 2.4.2 (bugfix release)


Wed Oct  5 04:49:01 2005
------------------------
0.7.8: * Added Iftikhar's interface to Cremona's C++ allisog
       * L-ratio bugfix (when input elliptic curve has denominators)
       * changed printing of 0 in elliptic curve to "0"
       * better latex printing of subscripts 


Tue Oct  4 23:20:23 2005
------------------------
0.7.8: * Added computation of p-adic heights of points 
         on elliptic curves over Q; This functionality requires
         that MAGMA be installed to work.  (This is partially
         a test of using expect to access nontrivial functionality
         provided by scripts I wrote for a commercial system.)

Tue Oct  4 05:03:36 2005
------------------------
0.7.7: * Improved efficiency of use of pexpect (by increasing
         maxread buffering parameter).  
       * Made it so user scripts can be included in 
         data/scripts/sys/user, where sys is one of gp, magma, 
         singular, and gap.  Also have other subdirectories
         for scripts supported by SAGE.
       * Included some of Cremona's GP scripts
         in data/scripts/gp/cremona for computing
         analytic rank, finding isogenous curves over Q, and
         group structure of elliptic curves modulo p.
       * Included SEA point-counting GP script with SAGE. 
       * Made GF(p).gen() be 1.
       * Added new SAGE shell commands: 
             gp, gap, singular, magma
         that execute commands in one of those four systems via
         a pseudo terminal.  (NOTE: Only gp is included with SAGE.)

Sun Oct  2 20:55:31 2005
------------------------
0.7.6: * Moved __ arithmetic operations to base element class,
         so derived classes only have to defined _add, _sub, etc.
         on operands with the same parent. 
       * Removed ZEN from SAGE; benchmarks show NTL to be 
         significantly faster for polynomial arithmetic over GF(p).
       * Implemented polynomials over GF(p) using NTL
         (Use PARI for factorization still, since NTL is slow
          for factorization over GF(p).)


Sat Oct  1 01:06:29 2005
------------------------
0.7.6: Removed gmpy from SAGE (no longer used).


Fri Sep 30 23:33:03 2005
------------------------
0.7.6: Added source and building of ZEN-3-0r7 to SAGE 
       source distribution.   (This addes 2-3 minutes
       to the total build time.)


Thu Sep 29 04:39:17 2005
------------------------
0.7.5: (David Kohel) Added free algebras, quotients of free algebras,
       and quaternion algebras.    Construction and basic arithmetic
       is now supported but not much more yet. 


Thu Sep 29 03:14:15 2005
------------------------
0.7.5: (David Kohel) Added monoids -- FreeMonoid and FreeAbelianMonoid


Thu Sep 29 00:35:10 2005
------------------------
0.7.5: fraction field __call__; latex printing of multivariate polys

Tue Sep 27 17:25:48 2005
------------------------
0.7.5: fixed sqrt; improved parameter choices for mwrank;
       modified gens to only compute analytic rank if 
       conductor is small.

Mon Sep 26 02:55:05 2005
------------------------
0.7.4: (David Kohel) Multivariate poly __call__

Mon Sep 26 01:07:49 2005
------------------------
0.7.4: Upgraded to mwrank version "2005-09-25".


Mon Sep 26 01:02:56 2005
------------------------
0.7.4: Added building of MPC (GMP complexes) to SAGE distro.  No 
       nontrivial interface to it though.

Sun Sep 25 22:54:42 2005
------------------------
0.7.4: Fixed the preparser so it doesn't munge comments in
user-defined functions when loading files. 


Sun Sep 25 20:57:27 2005
------------------------
0.7.3: Factored out generic "Hecke modules" functionality.  This was
       a *massive* restructuring of the modular symbols code, and 
       separation of code that is specific to modular symbols from
       code that is completely general. 

0.7.3: Added categories, homspaces, functors, morphisms, etc.  Every
       object lies in a category: type "category(x)" or, in most
       cases, "x.category()" for the category of x.  If C is a
       category and x is an object, C(x) tries to make an object in C
       from x (much support is not done yet).  Morphisms, Hom spaces,
       are also in categories.
       

Fri Sep 23 08:16:26 2005
------------------------
0.7.3: Fixes to the tutorial (since so much of SAGE has changed)


Fri Sep 23 07:07:23 2005
------------------------
0.7.3: upgraded to Python2.4.2c1 (a bigfix candidate for python)


Thu Sep 22 20:27:29 2005
------------------------
0.7.3: 0.7.2 broke "n*P" for P a point on an elliptic curve; fixed by
making points derive from ModuleElement.

Thu Sep 22 05:53:39 2005
------------------------
0.7.2: Complete rewrite of the implicit coercion system.  Now it is
commutative and unambiguous, hence much more rigorous.  If an
arithmetic operation can be interpreted in two ways by SAGE (via
_coerce_ methods), then a TypeError is raised.  Making this change was
easy, but making the rest of SAGE work afterward wasn't, since it
required modifying lots of little bits of code throughout the SAGE
system that relied on the old behavior (left to right coercion).


Thu Sep 22 02:40:33 2005
------------------------
0.7.2: Fixed it so sage path is correct after startup (this is only a
problem when one uses "make install").


Wed Sep 21 06:51:28 2005
------------------------
Work on the Reference Manual.


Wed Sep 21 05:17:17 2005
------------------------
0.7.0: Finished implementation of free modules (first version) and
matrices over general rings.  Renamed tables directory to database.


Tue Sep 20 05:46:51 2005
------------------------
Made a factorization classes, so factorizations of 
polynomials and integers looks nicer.  Lots of work
on rings.


Mon Sep 19 20:13:53 2005
------------------------
Upgraded to PARI CVS 09-19-2005.

Mon Sep 19 16:21:00 2005
------------------------
Greatly reorganized matrices over general rings.


Mon Sep 19 16:20:14 2005
------------------------
Improved latex display.  Added a "view" command to display
a typeset version of any SAGE object using xdvi and latex.
(Of course not all necessary support for this command is
implemented, so it may or may not work for a particular object.)


Mon Sep 19 06:26:38 2005
------------------------
v0.6.5: Added the "alarm" command to SAGE:
    alarm(seconds): Raise a KeyboardInterrupt exception in a given
    number of seconds, which is useful for automatically interrupting
    long computations, and can be trapped using exception handling.

Sun Sep 18 20:31:59 2005
------------------------
v0.6.5: factoring out lots of code from vector_space and putting
it in free_module.  Created a "matrix" directory.  Eliminated
the "linalg" directory and vector* files, since they are part
of modules/free_module*. 


Sun Sep 18 17:29:48 2005
------------------------
v0.6.5: 
Changed many constructors to be factory functions instead
of __new__ in the abstract base class.   This is much more
flexible and robust.

------------------------
v0.6.5:
Massive reorganization of rings. 
 * Changed sage.rings.rings to sage.rings.all, which meant making
   changes all over.
 * Split polynomial quotient rings into two files
 * Switched to using a unified system for naming generators
   of rings, which meant changing how generators are named
   in all code. 
 * Made rings conform to the class hierarchy for rings. 

Sun Sep 18 05:25:23 2005
------------------------
v0.6.5:
 * Added very basic infra-structure for schemes and algebraic geometry.
 * Bugfixes, e.g., [1,2,3][2^1]
 * Introduced new ring: FractionField of integral domain.


Sat Sep 17 20:36:44 2005
------------------------
v0.6.4: reorganized Generators and Rings in Pyrex.  


Sat Sep 17 14:28:49 2005
------------------------
Fixed segfaults which were caused by the PARI C-library changing the
GMP malloc funciton.  (More precisely: Comment out the call to
mp_set_memory_functions in pari_kernel_init in the file
src/kernel/gmp/mp.c).  I also switched SAGE's GMP to use Python's malloc
instead of the C malloc, by adding an line in sage/ext/_integer.pyx
to do this.

Sat Sep 17 13:18:36 2005
------------------------
New real numbers: Replaced use of Python reals and GMP's mpf with MPFR.

Sat Sep 17 03:15:54 2005
------------------------
v0.6.4: Upgraded to MPFR cvs version, as of 2005-09-17.


Fri Sep 16 20:14:54 2005
------------------------
v0.6.3: Added SAGE_PATH environment variable, so user code in 
personal directories can be easily imported.

Fri Sep 16 14:51:57 2005
------------------------
v0.6.3: Fixed bug in sage startup script that is distributed with binaries.
When the ROOT wasn't manually edited, and the SAGE script was run but
not in the path (i.e., with ./sage), then ROOT was set to the relative
path instead of the absolute path.  

Also fixed annoyance in creation of sage script when building from
source, then the ROOT path is blah/source/.., instead of just blah.


Thu Sep  8 18:07:54 2005
------------------------
v0.6.2: Included the new Cremona database of curves of conductor up to 100000.
The labeling format now uses Cremona's new format, i.e.,
"<number><*lower* case letter>[number]".

Thu Sep  8 18:01:19 2005
------------------------
Implemented "factorization" for modular symbols spaces, and also
q_expansion and system_of_eigenvalues for simple modular symbols
spaces.  (Not optimized yet! But provides interesting functionality.)

Thu Sep  8 15:42:50 2005
------------------------
Fixed pickling of SAGE rings, which was broken by putting the ring
abstract base class into Pyrex.

Thu Sep  8 11:42:50 2005
------------------------
Implemented a vastly more efficient level raising map directly
using MANIN symbols (this is a theoretical improvement over anything
I've implemented before for this). 


Wed Sep  7 03:24:33 2005
------------------------
Modular Symbols: Implemented degeneracy maps in general in both
directions and all that was needed for this, including conversion
between manin and modular symbols (via continued fractions, etc.)

Mon Sep  5 09:37:58 2005
------------------------
Upgraded SAGE (0.6.alpha3) to include new 
versions of ZODB and bzip2:
   * ZODB3.5 (instead of ZODB3.4)
   * bzip2-1.0.3 (instead of bzip2-1.0.2)


Fri Sep  2 23:07:09 2005
------------------------
Wrote lots of new modular symbols code. 

Fixed major bug in charpoly of matrix over Q (it was wrong in
some cases when there are denominators).

Many many small linear algebra and ring bugs found and fixes prompted
by automated testing of new modular symbols code (which is part of a
new automated testing framework that will be used to greatly increase
the robustness of SAGE).


Fri Sep  2 13:34:18 2005
------------------------
Fix bug in SAGE interpreter where typing e.g., VectorSpace(Q,2).1
gave an error instead of giving generator 1.

Wed Aug 31 19:21:44 2005
------------------------
Added preliminary "detexing" of interactive documentation
accessed via "object?". 


Wed Aug 31 17:39:04 2005
------------------------
Lots more documentation for reference manual.  Added change_ring
to vector_spaces.


Tue Aug 30 22:22:49 2005
------------------------
Added complete class for computing with quotients of univariet
polynomial rings in general.  E.g., 
    sage: R = PolynomialRing(RationalField(), 'x'); x = R.gen()
    sage: S = R.quotient(x^3-2, 'a'); a = S.gen()
create R[x]/(x^3-2) as a quotient polynomial ring.

Tue Aug 30 17:55:37 2005
------------------------
Changed vectors so they print with commas between entries,
since otherwise vectors with entries in, e.g., number fields,
are unreadable (like in MAGMA). 


Tue Aug 30 01:15:32 2005
------------------------
Lots on modular symbols!


Mon Aug 29 01:33:25 2005
------------------------
Fixed bug where SAGE would fail to start if, e.g., a file
named "code.py" was defined in the directory where you 
started SAGE.  (Fix: Change directory then change back.)


Sat Aug 27 18:37:23 2005
------------------------
Lots of work on the SAGE reference manual. 


Wed Aug 24 00:22:54 2005
------------------------
Implemented power series and laurent series.


Thu Aug 18 23:58:51 2005
------------------------
Lots of additions to the PARI module (by Justin Walker and William
Stein).


Thu Aug 18 13:19:52 2005
------------------------
Added a build and rebuild command, and link to sage-src so that users
who install SAGE from source can easily modify and compile SAGE to
their liking.


Tue Aug 16 23:22:04 2005
------------------------
Lots of minor changes to various build scripts to get SAGE to build on
OS X.  Slightly modified sage/libs/interrupt.h to support OSX signals.


Fri Aug 12 17:07:15 2005
------------------------
Moved the Ring base class into Pyrex.   Added the mpfr C-library to the
distribution.  Created a first very rudimentary interface to mpfr.


Sun Aug  7 16:47:48 2005
------------------------
Modified sage/libs/interrupt.h to allow for compilation on FreeBSD.


Sun Aug  7 00:41:05 2005
------------------------
Finally made a useable windows version of SAGE!  
Added incomplete Gamma at complex arguments via the
PARI C library.   This removes use of mathematica.


Wed Aug  3 23:30:33 2005
------------------------
Upgraded to PARI 2005-08-03 version.  Upgrade to mwrank-2005-08-01.


Wed Aug  3 23:05:38 2005
------------------------
Fixed bug in L(E,s) (the precision defaulted to 0, which PARI
didn't like).


Sun Jul 31 11:23:32 2005
------------------------
Slightly modified pexpect.py so doctests that involve pexpect will
work.


Sun Jul 31 10:37:09 2005
------------------------
Changed MPolynomialRing base class to a "factory function".  This
is a lot simpler.


Mon Jul 25 22:18:14 2005
------------------------
Complete rewrite from scratch of PARI library interface.  Now PARI is
in sage.libs._pari like the other libraries.  I made many improvements
to the wrapping so it should be faster.  I also wrote excellent
_sig_on, _sig_off  macros for signal handling.

Added galois data to PARI distro, so can compute Galois groups of
fields up to degree 11.


Sun Jul 24 11:28:36 2005
------------------------
Made it so polynomials over Z use the NTL wrapper.  Now arithmetic
with them in SAGE is very fast.


Sun Jul 24 10:58:15 2005
------------------------
Added complete wrapper of NTL's very fast Z[x] polynomial class.
(This is the class sage.libs.ntl.ZZX.)


Thu Jul 21 02:29:54 2005
------------------------
Upgraded to current PARI cvs version.  

Wed Jul 20 11:53:01 2005
------------------------
New mwrank version that uses PARI C-library for factoring


Wed Jul 20 11:21:02 2005
------------------------
Fixed bug in CremonaDatabase, where it reported
the wrong number of isogeny classes.


Jul 19 00:51:40 2005
------------------------
Split up ellcurve implementation into separate files.  Added mwrank
conductor computation.  Added Mark Watkin's EC program, which
computes, e.g., the modular degree.



Sat Jul 16 23:11:20 2005
------------------------
Many many small changes to the build system and some source files
in order to get SAGE 0.4.beta3 to build on a wide range of systems.

I also added sage/misc/functional.py and moved a bunch of code
from sage/all.py in there, and documented it.  I also documented
sage/misc/misc.py.


Thu Jul 14 18:07:34 2005
------------------------
Fixed bug in rational.pyx (Q(7)^(-1) was getting confused because
of signed / unsigned ints.)

Eliminated all usage of SWIG.  Now C++ libraries are wrapped using
Pyrex.


Sun Jul 10 02:55:25 2005
------------------------
Figured out how to use sigsetjmp, etc., so that ctrl-c breaks out of
long-running C/Pyrex - level compiled code.  This will make it much
easier to immediately quit out of computations using "Ctrl-C".  (This
does not yet apply to C++ libraries.)


Sat Jul  9 20:06:47 2005
------------------------

I investigated the bug in which "s=str(2^100000000)" terminated SAGE.
It turns out there seems to be a bug in the string representation
function in GMP, so it only works on numbers with up to about 4
million digits in bases other than a power of 2.  I've added proper
checking for this condition along with a helpful error message.  Maybe
it's not so much a bug as GMP doesn't have a good way of informing me
when it runs out of memory, and really what is happening is an out of
memory condition.  


Sat Jul  9 09:22:50 2005
------------------------
Made many many small changes to SAGE and some of its dependencies so
that SAGE now compiles with GCC 4.0.x.  SAGE should continue to
compile with GCC 3.x.


Sat Jul  9 02:49:10 2005
------------------------
Fixed the bug in which existing from help system pager crashed SAGE.
(Added signal.signal(signal.SIGPIPE, _my_empty_sigint) to py_pari.pyx)

Implemented a "make install" that install to /usr/local (or any other
prefix).


Sat Jul  9 01:10:13 2005
------------------------
Added logging to the build-from-source process.  Now if you build from
source, all the output is recorded to the file install/install.log.  If
the build process fails, you can send me this file, which will be very
helpful in debugging. 


Sat Jul  9 00:25:46 2005
------------------------
Fixed this bug:
 sage: e=EllipticCurve('37A')
 No handlers could be found for logger "ZODB.FileStorage"


Fri Jul  8 09:48:57 2005
------------------------
Created a sensible system for creating new version numbers of SAGE.
Now on my local system I just have to change the SAGE_VERSION
environment variable.

Unified the documentation system.  Got rid of the autogenerated API
docs, and made the Manual contain similar information, but in a much
more usable form.

Added allowing of pasting leading >>>'s into SAGE.  It said in
the manual that this was allowed, but it wasn't.

Simplified and rewrote the installation guide. 
Updated the tutorial a little (not much) -- added that ?foo? in
SAGE gives the source code for a function (a *great* feature
of IPython -- but need to extend to also handle pyrex code...?!)


Thu Jul  7 14:30:49 2005
------------------------
Added *lots* of new documentation in the Manual.


Sun Jul  3 03:22:29 2005
------------------------
Wrote multivariate-polynomial class over arbitrary bases with bost a
list and dict representation.


Sat Jul  2 21:12:05 2005
------------------------
Refactored finite fields class so prime fields are implemented
separately from extension of prime fields.  Also added an issquare
function (via PARI) to IntegerMod, FiniteField and Integer rings.
Modified PARI issquare so works in more generality (optional to return
a square root).


Sat Jul  2 18:50:26 2005
------------------------
Improved doctest script so it only tests modified files.
(This affects development only.)


Sat Jul  2 18:29:48 2005
------------------------
Added several new databases to SAGE and unified old ones.  Now
everything uses the bzip2 compressed ZODB.  I also fixed doctesting so
that the databases can be tested, at least on my local install.


Sat Jul  2 16:04:33 2005
------------------------
Upgrade SAGE distribution to include ZODB 3.4.0 (where ZODB is the
Zope Object Database).  

Sat Jul  2 15:52:29 2005
------------------------

* Rewrote the Cremona elliptic curves database from scratch, still using
ZODB so that it is very fast. Now the database is simpler, cleaner,
and easier to use and understand.  Also, it now can be automatically
built from cremona's ftpdata.tgz file.  I also added all Cremona's
data up to level 70000.  Note that now the database is 36MB.  There
was some data in the old elliptic_curves database that wasn't in
Cremona's (e.g., individual Tamagawa numbers), and now that is not in
the new database, which will always be kept the same as Cremona's.

* Added a table of Conway polynomials (for finite fields).


Fri Jul  1 08:48:51 2005
------------------------
Improved doctests so they are more flexible and work on all files.
Now docstrings can use "sage:" instead of ">>>" as the prompt.

Fri Jul  1 08:47:31 2005
------------------------
New modular symbols code and making old code work.  In particular, I
implemented degeneracy_maps, new_subspace, and cuspidal_subspace (in
some cases).


Mon Jun 27 13:34:44 2005
------------------------
Added to modular symbols code.


Thu Jun 23 18:00:55 2005
------------------------
Improvements to py_pari.  (Defined more functions and added
documentation.)
Starting to develop multivariate polynomials with David Joyner.


Thu Jun 16 07:46:25 2005
------------------------
Changed behavior of integer square root to raise an error if the
integer is not a perfect square.  Added the isqrt member function of
Integer to return the floor of the square root.


Fri Jun  3 07:21:23 2005
------------------------
Fixed mistake in sage.rings.arith.prev_prime documentation.


Thu Jun  2 23:43:21 2005
------------------------

* Fixed a bug in rings.arith.is_square, where it gave wrong results
  when the input is a rational number. 

* Fixed a bug in the sage binary startup script, where it removed the
  old path, which caused rm and other commands to fail, which I think
  are used by ZODB.


Mon May 16 11:37:40 2005
------------------------

Added mwrank, ntl, SWIG to install tarball.  More exposing of
functionality of mwrank and functions on elliptic curves related
to Heegner points.


Sat May  7 10:21:49 2005
------------------------
Now SAGE includes the html documentation in the release.  After
installing with "make install" it's in a subdirectory called "doc".
I've also created a binary installer, which is easy to move around
after install.


Wed May  4 17:15:07 2005
------------------------

Switched back to PARI 2.2.10-alpha after learning of bad bugs in
previous versions, and after *fixing* the bug in root number
calculations.


Sun May  1 19:12:37 2005
------------------------
Refactored elliptic curves class.  Now there's a generic base
class and a derived class with special functionality for curves
over Q. 


Sat Apr 30 16:49:36 2005
------------------------
Changed matrix printing to include a space before the
matrix.  This makes lists of matrices print correctly.

Sat Apr 30 16:28:20 2005
------------------------
Some finite field and linear algebra optimizations.  Finished
writing "coordinates" for vector subspaces with basis. 


Thu Apr 28 21:48:55 2005
------------------------

Added "PariRing", which is a standard SAGE ring with SAGE elements,
which wraps arbitrary PARI objects.  Thus, e.g., 
>>> M = MatrixSpace(PariRing(),2)
>>> a = M([2,'3+w', 'y', 10])
>>> a

[    2 w + 3]
[    y    10]
>>> a^(-1)
[      10/((-w - 3)*y + 20) (-w - 3)/((-w - 3)*y + 20)]
[      -y/((-w - 3)*y + 20)        2/((-w - 3)*y + 20)]



Wed Apr 27 03:41:36 2005
------------------------
Added lots of BSD related things to ellcurve.py.

Added a new interval arithmetic class under sage.rings.  The interval
arithmetic ring is named IntervalRing().  This is useful in
computations related to the BSD conjecture.

After "upgrading" to PARI 2.2.10-alpha, which fixed some annoying bugs
in PARI2.2.9-alpha, I discovered that 2.2.10-alpha is also too bugy.
For example, it computes the Lseries at 1 and sign of functional
equation for the curve defined by [0,1,0,-6,4] incorrectly.  So, I
switched to PARI 2.2.7-alpha, which has none of the bugs I've
discoved, and for some reason seems to be the last "stable" 2.2.x
release.  Even the documentation is messed up in 2.2.n for n > 7,
i.e., the C-library sections are missing. But in 2.2.7-alpha they're
there.   

Added David Kohel's function for computing division polynomials
of elliptic curves.


Sun Apr 24 09:33:03 2005
------------------------
Improved prime iteration and enumeration in sage/rings/arith.py
by incorporating the function from 
   http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/366178
and polishing some releated code.  

Sat Apr 23 15:21:24 2005
------------------------
Added termcap to the SAGE distro.  This is so readline will work
right with Python on SUSE and certain other distributions.   I tried
using ncurses, but it didn't improve matters at all, and uses a lot
more space and takes longer to compile. 
(Even with ncurses or termcap, Ipython gets some formatting
wrong on SUSE.)


Fri Apr 22 18:28:25 2005
------------------------
* Upgraded to PARI 2.2.10 and made sage work with new version.
This fixes a bug in conductor computation.

* Changed PARI to compile with GMP support. 

* Separated databases, so users can download just
the ones they need.

* Upgraded to new version of ZODB. (V 3.3.1)

* Improved Makefile (some things were confused, which led to
non-fatal errors).



Thu Apr 21 15:42:58 2005
------------------------
Switched to using bzip2 for most of the packages included with SAGE.
This saves 3 MB, so the distribution is 16MB instead of 19MB.  We
don't worry about whether bzip2 is installed on the target computer,
since we include bzip2 and build it from source as part of the SAGE
build process anyways (it's needed for compressed databases).

Changed the automatic update from the web command to:
    "make update-web"

Found serious bug in ellcurve conductor in PARI; added example to
automatic tests, so this bug will get fixed soon.




Thu Apr 21 15:29:56 2005
------------------------
Add many functions related to the BSD conjecture to the elliptic
curves package for computing with elliptic curves.  E.g., analytic
order of Sha, Kolyvagin and Kato bounds, L'(E,1), etc.

Made 4/2 be a rational number. 


Mon Apr 18 12:57:16 2005
------------------------
Bug fix for interpreter.py, where "5. + 2." would crash it.  
That is parsed correctly, and if the parser runs into a problem,
it just prints and error and executes the unparsed line. 


Sat Apr 16 23:29:44 2005
------------------------
Added general finite fields.  Improved the commmand-line preprocessor
further.


Fri Apr 15 06:52:56 2005
------------------------
Rewrote the command-line preprocessor so it changes all integer tokens
to actual ZZ objects, all numbers with decimals to RR's, correctly
parses ^'s, and allow for the <identifier>.num MAGMA notation.  This
likely breaks some thing, e.g., functions that expect an int as
input, suddenly now receive a ZZ.  To be fixed...


Thu Apr 14 05:24:31 2005
------------------------
Upgraded Python in sage distro to version 2.4.1.


Wed Apr 13 12:38:55 2005
------------------------

Worked on improving support for Windows.  Improved emacs
support.


Sun Apr 10 17:56:57 2005
------------------------
Wrote the tutorial with David Joyner.  


Sat Apr  9 11:44:42 2005
------------------------
Fixed printing of annoying log messages on start of sage by
removing log option.  The history is in ~/.ipython/history
anyways.


Fri Apr  8 02:13:39 2005
------------------------

Adding charpoly, trace, matrix, etc. to py_pari, and used them to add
a bunch of nontrivial linear algebra over number fields.  E.g.,
kernels, charpolys of matrices, etc.  In the long run multi-modular
methods are needed, but PARI's number field matrix algebra does work
reasonably, and will allow me to focus on developing modular symbols
code.


Thu Apr  7 15:59:18 2005
------------------------

Added factorization of polynomials over number fields. 
Fixed bug in charpolys of matrices over number fields.