Differences between revisions 129 and 208 (spanning 79 versions)
Revision 129 as of 2008-06-17 11:03:26
Size: 3590
Editor: robertwb
Comment:
Revision 208 as of 2008-11-14 13:41:56
Size: 4063
Editor: anonymous
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
To start, get a copy of Sage 2.10.1, install the latest cython spkg (available at http://sage.math.washington.edu/home/robertwb/cython/), pull from http://cython.org/coercion/hgwebdir.cgi/sage-coerce/ and build. Merge up at http://cython.org/coercion/hgwebdir.cgi/sage-coerce-3.0.3/ (pull on top of 3.0.3 release candidate) Should build and start without problems.
Line 3: Line 3:
Import [attachment:fix-random.patch] to sage-scripts to ignore random tests.
Line 13: Line 13:
=== Merge Issues ===

 * Matrix constructor rewritten, can't take gens and sequences anymore.
Line 21: Line 17:

 * Integers, Rationals
 * complex, real
 * qqbar
Line 26: Line 18:
 * monoids/modules  * calculus
 * catalogue, dsage, media, stats, server, logic, tests, misc
Line 28: Line 21:
 * monoids
Line 29: Line 23:
 * catalogue, dsage, media, stats, server, logic, tests, misc, numerical
Line 32: Line 25:
 * lfunctions
Line 33: Line 27:
 * lfunctions
 * plot
 * databases
 * sets
 * rings/rational
 * rings/real_lazy
 * finite fields
 * structure/formal_sums
 * rings/padics
 * graphs
Line 37: Line 37:
 * databases
 * matrix (all tests pass except for one sage/matrix/matrix_modn_dense.pyx due to groups)
 * finite fields
 * coding
 * complex, real
 * numerical
Line 42: Line 40:
 * interfaces
 * qqbar
 * combinat
 * gsl
 * abelian_grps
Line 44: Line 47:
 * interfaces
 * sets
 * calculus
 * combinat
 * plot
 * structure
 * modules
 * coding
 * m
atrix
 * rings
Line 49: Line 54:
In progress In Progress
 * schemes (ncalexan, number field problems in elliptic_curves, padic problems in elliptic_curves, total mayhem in generic)
 * modular (craigcitro)
 * invalid free in self_orthogonal_binary_codes (robertwb)
Line 51: Line 59:
 * rings/polynomial, rings (cwitty)
 * misc (latex.py, functional.py, misc.py) (ncalexan)
 * rings/padics (roed)
 * modular (lots :-) )
To Do
 * rings/polynomial
   * many segfaults for mhansen, probably due to libsingular invalid read
 * [[http://trac.sagemath.org/sage_trac/ticket/3516|#3516]] libSingular segfault related to the new coercion code [causes segfaults on startup on sage.math]
 * categories (category_types.py -- 1 failure due to Spec in schemes)
Line 56: Line 65:
Todo
 * graphs (graph.py, graph_bundle.py)
 * schemes (a mess)
 * rings/number_field (lots)
 * rings (integer_ring.pyx, J-Z?)
 * categories (category_types.py)
{{{
This should fail:
            sage: x, y = var('x,y')
            sage: parent(ZZ[x][y](1)*vector(QQ[y],[1,2]))
            sage: parent(ZZ[x](1)*vector(QQ[y],[1,2]))
}}}
Line 63: Line 72:
Todo (after merge):
 * abelian_grps
 * gsl ( dft.py -- abelian group failures )
Line 69: Line 75:
Useful script to list all parents in a given module that still need work: [attachment:list_parents.sage] Useful script to list all parents in a given module that still need work: [[attachment:list_parents.sage]]
Line 77: Line 83:
 * matrix [http://sage.math.washington.edu/home/robertwb/coerce/coerce-all.hg]
 * complex, real [http://sage.math.washington.edu/home/robertwb/coerce/coerce-real-complex.hg]
 * modules [attachment:coerce-free-module.patch]
 * matrix [[http://sage.math.washington.edu/home/robertwb/coerce/coerce-all.hg]]
 * complex, real [[http://sage.math.washington.edu/home/robertwb/coerce/coerce-real-complex.hg]]
 * modules [[attachment:coerce-free-module.patch]]
Line 133: Line 139:


=== Old notes ===

To start, get a copy of Sage 2.10.1, install the latest cython spkg (available at http://sage.math.washington.edu/home/robertwb/cython/), pull from http://cython.org/coercion/hgwebdir.cgi/sage-coerce/ and build.

Import [[attachment:fix-random.patch]] to sage-scripts to ignore random tests.

Merge up at http://cython.org/coercion/hgwebdir.cgi/sage-coerce-3.0.3/ (pull on top of 3.0.3 release candidate) Should build and start without problems.

Hint: If something doesn't work, try typing

sage: coercion_traceback()

which will give a listing of all errors caught in the coercion model.

Doctests

Done

  • integer_mod
  • calculus
  • catalogue, dsage, media, stats, server, logic, tests, misc
  • probability
  • monoids
  • games
  • algebras
  • libs
  • lfunctions
  • quadratic forms
  • databases
  • sets
  • rings/rational
  • rings/real_lazy
  • finite fields
  • structure/formal_sums
  • rings/padics
  • graphs
  • ext
  • functions
  • complex, real
  • numerical
  • crypto
  • interfaces
  • qqbar
  • combinat
  • gsl
  • abelian_grps
  • geometry
  • groups
  • plot
  • structure
  • modules
  • coding
  • matrix
  • rings

In Progress

  • schemes (ncalexan, number field problems in elliptic_curves, padic problems in elliptic_curves, total mayhem in generic)
  • modular (craigcitro)
  • invalid free in self_orthogonal_binary_codes (robertwb)

To Do

  • rings/polynomial
    • many segfaults for mhansen, probably due to libsingular invalid read
  • #3516 libSingular segfault related to the new coercion code [causes segfaults on startup on sage.math]

  • categories (category_types.py -- 1 failure due to Spec in schemes)

This should fail: 
            sage: x, y = var('x,y')
            sage: parent(ZZ[x][y](1)*vector(QQ[y],[1,2]))
            sage: parent(ZZ[x](1)*vector(QQ[y],[1,2]))

Files to fix (Make all parents conform to the spec)

Useful script to list all parents in a given module that still need work: list_parents.sage

Nothing to do

  • catalogue, dsage, databases, ext, games, media, stats, server, plot, logic, tests lfunctions, misc, numerical,gsl, quadratic_forms

Done

In progress

  • groups
  • modular

Little to do

  • categories

Lots to do

Base classes

  • structure

Coercion doctesting

Comment from William:

teragon:sage was$ sage -coverage categories/action.pyx
structure/element.pyx structure/coerce.pyx |grep SCORE
SCORE categories/action.pyx: 0% (0 of 22)
SCORE structure/element.pyx: 18% (28 of 153)
SCORE structure/coerce.pyx: 2% (1 of 39)

I tried to understand and use the coercion model code to trac down the issue with #2079 and
was amazed at how nonexistent the doctesting and documentation of
functions is there.
In order for people to write lots of coercion code all of Sage, it's critical that they can
read the coercion model code so they can track down -- for themselves -- what is going
wrong when they run into trouble.  I would put getting the coverage of the above files
(and whatever else is related to coercion) up to 100% as the first step in your coercion
model stuff.   Seriously.   And don't say it can't be doctested, since even though there are
a lot of things not easily accessible now from the interpreter, such as the coercion model

Categories to implement

Old notes

To start, get a copy of Sage 2.10.1, install the latest cython spkg (available at http://sage.math.washington.edu/home/robertwb/cython/), pull from http://cython.org/coercion/hgwebdir.cgi/sage-coerce/ and build.

Import fix-random.patch to sage-scripts to ignore random tests.

days7/coercion/todo (last edited 2009-07-29 19:16:15 by robertwb)