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) I think these facilities could see a wider use in the mathematical Python community, and in this way we could hope to benefit from a larger developer base. For example, I would hope that sage_objects could be ported for use with PyPy instead of CPython. b) Building and deploying a user package would be easier if it could depend on a small package such as "sage_objects" only instead of the whole multigigabyteness of Sage. I would hope that this can be done without changing the overall structure of the source tree, using the mechanism of native namespace packages introduced in Python 3.3 (see https://trac.sagemath.org/ticket/28925). -- 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/d0f9f658-c863-45da-96d9-30dea7909af1%40googlegroups.com.