>> I wish all forks could be as amicable as the Pyrex/Cython one, but
>> understandably that is rarely the case. I support the reasons behind
>> MPIR, but I think it's a very good thing to provide a GMP spkg for
>> Sage--it gives users the choice.
>
> But Robert, that choice is illusory. Already it's impossible to
> install the gmp-4.3 spkg without breaking all those doctests. Over
> time, it's inevitable that the APIs of the two packages will diverge,
> unless the projects can come to some kind of agreement. I can't see
> how this can be a good thing.
>

I also would like to see both a gmp and mpir spkg available. Even if
someone never wanted to use gmp (for whatever reasons, be they
licensing or other), I think it would be good to have both easily
available -- for consistency checks, benchmarking, etc. Probably the
vast majority of Sage users just want to use whatever is fastest for
the problem on hand -- and as Robert pointed out, that probably varies
from problem to problem ...

It seems like having an optional gmp spkg that was intended for
"advanced" users could be a reasonable goal. By advanced, all I really
mean is that it won't be thoroughly tested as part of the release
process, maybe just on sage.math and by interested parties -- much
like the interfaces to Maple, Magma, and Mathematica, I think. There
are definitely maintenance issues with trying to make gmp build
correctly on all of the supported platforms for Sage, since gmp
doesn't support all those OS/hardware configurations. The spkg-install
could just spit an error and exit if the configuration isn't correct.
I think this should be (1) not too hard to maintain, especially if we
just use upstream gmp, and (2) very useful for some people (such as
David). This should work until the two projects really start to
diverge (in terms of API, etc), which may not happen for a while (if
ever?).

This leaves the issue of checking that gmp works -- and in particular,
the doctests getting different results with gmp vs. mpir. I don't
think the doctesting issue is an insurmountable hurdle -- we already
have a system set up to change doctests on 32 vs. 64 bit systems; it
would take a little doing, but I don't see why we couldn't set
something up to have # gmp and # mpir for certain results. It seems
like both the gmp and mpir devs would get some use out of this -- both
would be able to check that they return consistent results across all
of the doctests in sage that use their code, which is a good thing.
Plus, one would have a list of known places where gmp and mpir have
different behavior -- again, good for both camps. (Especially when
end-users switching from gmp to mpir or vice-versa get different
results with their code, for instance.)

I just want to recognize an obvious objection to this: it could be
hard to maintain this over the course of several years, especially if
gmp and mpir really start to diverge. But at least for the parts of
sage that use the common functionality (I don't see either of them
*dropping* any of that functionality, no matter which direction the
projects go), this seems workable for the short to medium term.

-cc

--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to