Just to clarify, are we talking about different namespaces from sagecore.rings import Integers from sagemain.modular.all import euler_phi from sagecombinat.combinat import choose_nk
This seems a bit unwieldy. On the other hand, if Sage pulls everything into sage.* then how do I know which library I'm using. On a related note, can the sagecore documentation link to the main sage library documentation? Volker On Oct 27, 2:44 am, William Stein <wst...@gmail.com> wrote: > Hi, > > When I started Sage I viewed it as a distribution of a bunch of math > software, and Python as just the interpreter language I happen to use > at the time. I didn't even know if using Python as the language would > last. However, it's also possible to think of Sage as a Python > library. > > Anyway, it has occurred to me (a few times, and again recently) that > it would be possible to make much of the Sage distribution, without > Python of course, into a Python library. What I mean is the > following. You would have a big Python library called "sagemath", > say, and inside of that would be a huge HG repository. In that > repository, one would check in the source code for many of the > standard Sage spkg's... e.g., GAP, Pari, etc. When you type > > python setup.py install > > then GAP, Pari, etc., would all get built, controlled by some Python > scripts, then installed as package_data in the sagemath directory of > <your python>/site-packages/. > > From a technical perspective, I don't see any reason why this couldn't > be made to work. HG can handle this much data, and "python setup.py > install" can do anything. It does lead to a very different way of > looking at Sage though, and it could help untangle things in > interesting ways. > > (1) Have a Python library called "sagecore", which is just the most > important standard spkg's (e.g., Singular, PARI, etc.), perhaps > eventually built *only* as shared object libraries (no standalone > interpreters). > > (2) Have a Python library which is the current Sage library (we > already have this), and which can be installed assuming sagecore is > installed. > > (3) Have other Python libraries (like > psage:http://code.google.com/p/purplesage/source/browse/), which depend on > (2). Maybe a lot of the "sage-combinat" code could also be moved to > such a library, so they can escape the "combinat patch queue" madness. > Maybe many other research groups in algebraic topology, differential > geometry, special functions, etc., will start developing such > libraries... on their own, and share them with the community (but > without having to deal directly with the sage project until they want > to). > > To emphasize (3), when people want to write a lot of mathematics code > in some area, e.g., differential geometry, they would just make a new > library that depends on Sage (the library in (2)). We do the work > needed to make it easy for people to write code outside of the Sage > library, which depends on Sage. Especially writing Cython code like > this can be difficult and confusing, and we don't explain it all in > any Sage documentation. It actually took me quite a while to figure > out how to do it today (with psage). > > The core Sage library (2) above would continue to have a higher and > higher level of code review, tough referee process etc. However, the > development models for (3) would be up to the authors of those > libraries. > > The above is already how the ecosystem with Python > (http://pypi.python.org/pypi), Perl (http://www.cpan.org/), R, etc., > work. Fortunately, Python has reasonably good support already for > this. > > I think without a shift in this direction, Sage is going to be very > frustrating for people writing research oriented code. > > Fortunately, it's possible to do everything I'm describing above > without disturbing the mainline Sage project itself, at least for > now. > > -- William > > -- > William Stein > Professor of Mathematics > University of Washingtonhttp://wstein.org -- To post to this group, send an email to sage-devel@googlegroups.com To unsubscribe from this group, send an email to sage-devel+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-devel URL: http://www.sagemath.org