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.