On Sunday, May 3, 2020 at 11:18:12 PM UTC-7, vdelecroix wrote:
>
> Le 04/05/2020 à 02:27, Michael Orlitzky a écrit : 
> > On 5/3/20 8:09 PM, Matthias Koeppe wrote: 
> >> I propose the following goal for Sage 9.3. 
> >> 
> >> Modularize sagelib so that individual parts of it can be built and run 
> >> with a much smaller set of libraries. 
> > 
> > it's going to be difficult given the widespread use of 
> > lazy_import to create circular references. We're probably looking at a 
> > lot of refactoring before any useful modules can be excised.
> > 
> > A good first step might be to ban new circular imports, but that means 
> > that e.g. parent structures and their element classes would need to be 
> > defined in the same files


My proposal does NOT say that every Python module should become a separate 
Python package. It is not a prerequisite to fight against all circular 
imports.
A parent class and its corresponding element class would certainly not be 
separated into separate packages. 
But of course they can stay in separate modules (source files) as they are 
now. 
 

> The category framework can not really be separated from the 
> Parent/Element/CategoryObject (e.g. coercion is involved in 
> comparisons and binary operations).


Thanks, yes, I am aware of this. That's why in my proposal all of these 
would be in the same package sage_objects.
 

> And the former can not 
> live without the integers (e.g. the output of .cardinality() 
> expects an integer).


Noted. This will need a solution. 
 

> More dramatically, in sage.categories 
>
>   bimodules imports QQ, RR 
>   classical_crystals imports SR 
>   finite_coxeter_groups imports QQbar 
>
> One can try to not populate the whole category system. 
>

Good points. 

Given the current status of the library, I don't think this 
> is reasonable to state it as a milestone goal. But still, it 
> is desirable to introduce modularity. Starting with a 
> sage-core / sage-rest would be nice. 
>

Well, the technical design of this modularization, even if not completely 
implemented within 9.3, will inform work on 
https://trac.sagemath.org/ticket/21507 (Meta-ticket: Make sagelib a 
pip-installable Python source package, listed on PyPI).

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-devel/12452883-76e6-43d3-a085-4a7a1d881d8e%40googlegroups.com.

Reply via email to