On Sunday, May 3, 2020 at 5:09:28 PM UTC-7 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.
>
> In particular, create a package "sage_objects" that makes Sage objects, 
> the element/parent framework, categories, the coercion system and the 
> related metaclasses available. This package would, for example, not provide 
> or know about integers, polynomials, or matrices (thus avoiding all the 
> dependencies on the various libraries implementing these). Ideally it would 
> only have a build dependency on Cython and no runtime dependencies. 
>
> (Doctesting sage_objects would still need more of Sage, but some it could 
> also be done by mocking instead of with the real classes.)
>
>
A quick update on this.

1) There is now a branch on https://trac.sagemath.org/ticket/29865  that 
can build a pip-installable source distribution "sage-objects", providing a 
small core of sagelib. It has only minimal dependencies (Cython, cysignals, 
gmpy2, pkgconfig; and I hope to reduce the dependencies further) and can 
load sage.categories.all. I could use help from developers familiar with 
the lazy_import facility to solve some remaining problems.

2) Work has also progressed on sagelib's build system to support 
modularization. Tickets leading to https://trac.sagemath.org/ticket/29701 move 
most code from setup.py to sage_setup, remove the use of module_list and 
replace the OptionalExtension facility.


 

-- 
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/88e20106-bbf2-427d-9f66-71619d497858n%40googlegroups.com.

Reply via email to