Changes between Version 1 and Version 4 of Ticket #5891


Ignore:
Timestamp:
05/14/09 21:24:13 (10 years ago)
Author:
nthiery
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #5891

    • Property Cc roed saliola added
  • Ticket #5891 – Description

    v1 v4  
    22design pattern for organizing generic code.
    33
    4 Under development on http://combinat.sagemath.org/patches:
     4(with special thanks to Robert Bradshaw, Mike Hansen, Florent Hivert,
     5William Stein, ... for design discussions).
    56
    6  - categories-nt.patch:    the category framework itself
    7                          + updates to combinatorial free modules (will be split before submission)
     7Under development on combinat.sagemath.org/patches:
    88
    9 Related patches (will need to be applied to recover all previous functionalities):
     9 - categories-nt.patch:
     10   the category framework itself
     11   + updates to the sage library (import fixes, ... see below)
     12   + updates to combinatorial free modules (will be split before submission)
     13
     14Related patches (will need to be applied after to recover 100% doctest pass):
     15 - categories-combinat-nt.patch
     16 - categories-numberfield_homset-nt.patch
    1017 - family_enumset-fh.patch
    1118 - enumset_unions-fh.patch
    1219 - categories-sf-nt.patch       Symmetric functions
     20 - categories-symmetric_group_algebra-nt.patch
    1321 - ncsf-nt.patch                Non commutative Symmetric Functions
    1422 - root_systems-4326-nt.patch
    1523
    16 Small technical patches they depend on:
     24Small technical patches the category patch depends on:
     25 - cached_in_parent_method-5449-submitted.patch
     26 - lazy_attributes-fixes-5783-final.patch
    1727 - unique_representation-5120-submitted.patch
    18  - lazy_attributes-fixes-5783-final.patch
    19  - element_wrapper-nt.patch
     28 - element_wrapper-5967-submitted.patch
     29 - parent-element_constructor-fix-5979-submitted.patch
     30 - explain-pickle-v1.patch
     31 - cPickle-5985-import-submitted.patch
     32 - cPickle-5985-copy_reg_classes-submitted.patch
     33 - cPickle-5986-nested-classes-submitted.patch
     34 - dynamic_class-5991-submitted.patch
    2035 - 5598-coerce-declare.patch
    21  - cached_in_parent_method-5449.new
    22  - explain-pickle-v1.patch
    23  - cPickle-copy_reg_classes-nt.patch
    24  - cPickle-nested-classes-nt.patch
    25  - dynamic_class-nt.patch
    26  - compositions-cleanup-5600-nt.patch
    27  - transitive_ideal-nt.patch
    28 
     36 - explain-pickle-v1.patch                      # probably can get rid of this dependency
     37 - transitive_ideal-6000-submitted.patch
    2938
    3039Current status:
     40* All test pass except for:
     41  sage -t  "devel/sage/sage/geometry/lattice_polytope.py" (apparently caused by categories, though I don't see how)
     42  sage -t  "devel/sage/sage/structure/sage_object.pyx"    (unpickling of old stuff)
    3143
    3244* Documentation:
     
    4254
    4355* Categories:
    44   - All the mathematical categories of Axiom and MuPAD
    45   - EnumeratedSets         (with example)
    46   - Semigroups             (with example, basic methods, subquotients)
    47   - FiniteSemigroups       (with example, cayley graphs, basic representation theory, ...)
    48   - ModulesWithBasis       (with example, morphisms)
    49   - HopfAlgebras & friends (with example)
     56  - All the mathematical categories of Axiom and MuPAD (Courtesy of Teresa Gomez Diaz)
     57  - (Infinite/Finite)EnumeratedSets (with example) (Courtesy of Florent Hivert)
     58  - Semigroups                      (with example, basic methods, subquotients)
     59  - FiniteSemigroups                (with example, cayley graphs, basic representation theory, ...)
     60  - ModulesWithBasis                (with example, morphisms)
     61  - HopfAlgebras & friends          (with example)
    5062  - Cleanup:
    5163    - Have unique representation by default (no need to inherit from Category_uniq)
     
    6476  - Adds morphisms for some categories
    6577  - Some general infrastructure
     78  - Hom:
     79    - Simplification of the logic. Hopefuly completely compatible.
     80    - X._Hom_(Y, category) may now return NotImplemented
     81    - failed attempt at using cached_function (to be pursued)
     82  - Systematic use of category = ... instead of cat =
     83    This may be backward incompatible.
    6684
    6785* Generic test framework
    6886  - Functional, final design clear, needs cleanup (2/3 hours)
    6987
    70 * Combinatorial free modules
    71   * Have unique representation
    72 
    7388* Reorganization of the Sage library to start using the category framework:
     89  * Combinatorial free modules
     90    * Have unique representation, use coercion, are more robust
     91    * Improved _repr_
     92    * Handle combinatorial classes that can't be sorted as indices
     93  * Groups:
     94    * AbelianGroup_class.__init__ was missing a call to Groups.__init__
     95    * NAME CONFLICT: AbelianGroups are *not* in AbelianGroups()
     96      With the current conventions:
     97       - AbelianGroups is about additive abelian groups
     98       - AbelianGroup  is about multiplicative abelian group
     99    * Support for Group.__init__(category = ...)
    74100  * Fixed some import loops
    75101  * Added temporary list() methods to:
     
    80106    - ParentWithMultiplicativeAbelianGens
    81107    They should eventually be inherited from the EnumeratedSets() category
    82   * ...
     108  * Added sage.sets.finite_enumerated_set
    83109
    84110* Todo:
     
    95121    * class.an_instance() ?
    96122    * all_weakly_super_categories -> ?
     123    * move all examples in examples/
     124    * AbelianGroups() versus CommutativeGroups()
     125
    97126  * Category graph picture
    98127
     
    112141* Discussion:
    113142  * Defining new inline operators, at least within the sage interpreter
     143