Changes between Version 1 and Version 4 of Ticket #5891
- Timestamp:
- 05/14/09 21:24:13 (12 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Ticket #5891
- Property Cc roed saliola added
-
Ticket #5891 – Description
v1 v4 2 2 design pattern for organizing generic code. 3 3 4 Under development on http://combinat.sagemath.org/patches: 4 (with special thanks to Robert Bradshaw, Mike Hansen, Florent Hivert, 5 William Stein, ... for design discussions). 5 6 6 - categories-nt.patch: the category framework itself 7 + updates to combinatorial free modules (will be split before submission) 7 Under development on combinat.sagemath.org/patches: 8 8 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 14 Related patches (will need to be applied after to recover 100% doctest pass): 15 - categories-combinat-nt.patch 16 - categories-numberfield_homset-nt.patch 10 17 - family_enumset-fh.patch 11 18 - enumset_unions-fh.patch 12 19 - categories-sf-nt.patch Symmetric functions 20 - categories-symmetric_group_algebra-nt.patch 13 21 - ncsf-nt.patch Non commutative Symmetric Functions 14 22 - root_systems-4326-nt.patch 15 23 16 Small technical patches they depend on: 24 Small technical patches the category patch depends on: 25 - cached_in_parent_method-5449-submitted.patch 26 - lazy_attributes-fixes-5783-final.patch 17 27 - 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 20 35 - 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 29 38 30 39 Current 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) 31 43 32 44 * Documentation: … … 42 54 43 55 * 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) 50 62 - Cleanup: 51 63 - Have unique representation by default (no need to inherit from Category_uniq) … … 64 76 - Adds morphisms for some categories 65 77 - 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. 66 84 67 85 * Generic test framework 68 86 - Functional, final design clear, needs cleanup (2/3 hours) 69 87 70 * Combinatorial free modules71 * Have unique representation72 73 88 * 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 = ...) 74 100 * Fixed some import loops 75 101 * Added temporary list() methods to: … … 80 106 - ParentWithMultiplicativeAbelianGens 81 107 They should eventually be inherited from the EnumeratedSets() category 82 * ...108 * Added sage.sets.finite_enumerated_set 83 109 84 110 * Todo: … … 95 121 * class.an_instance() ? 96 122 * all_weakly_super_categories -> ? 123 * move all examples in examples/ 124 * AbelianGroups() versus CommutativeGroups() 125 97 126 * Category graph picture 98 127 … … 112 141 * Discussion: 113 142 * Defining new inline operators, at least within the sage interpreter 143