On 02/19/2015 11:24 AM, Jeroen Demeyer wrote:
> On 2015-02-19 16:55, Michael Orlitzky wrote:
>> It's not incompatibility with Debian that's the problem. Having
>> dependencies like "whatever was in the git repo at 11:00 on 2015-02-19
>> UTC-5" leads to madness.
> Why madness?

If you try to have sage coexist with *any* other piece of software on
the system, it's going to conflict. Every other package in the ecosystem
depends on something like >=pari-1.0 and <pari-2.0. But sage requires
EXACTLY commit (say) 02a793ab4325. First of all, nobody knows how to
resolve that (is 02a793ab4325 bigger than 1.0?). Second, it restricts
the solution space so much that an installation plan will be impossible
once a few packages are involved.

Dependency resolution is usually a set of overlapping intervals. If the
intersection is nonempty, some version works and you install that. If
not, you're stuck. Depending on exactly one specific commit is
intersecting with a point. Unless you're *very* lucky, you're going to
wind up with an impossible constraint.


> 
> It has been done before (#9343) and it worked just fine.
> 

This presupposes that the status quo is not madness. My sage builds work
for about two weeks before some invisible dependency update breaks them.
There's a line in sage beyond which we just don't care about
dependencies. We ship gcc, some utilities, and a bunch of math software.
But we don't ship e.g. glibc. Guess what happens when I rebuild glibc on
my machine? Sage breaks. What happens if I rebuild gd on my machine?
Sage breaks. What happens if I rebuild dvipng on my machine? Sage breaks.

I no longer use sage for my day-to-day work, but when I was and I had to
e.g. give a presentation, it was infuriating to find sage broken AGAIN
at 8am. Sage-on-gentoo fixes this, but not if I want to submit patches,
because the official sage has a gigabyte of junk bundled with it and
whoever reviews my patch will be using that.

Nobody wants to bundle *everything* because that'd be crazy, right? But
unless we do, bundling *anything* is going to lead to breakage. If we
were forced to fix the regular breakage by bundling everything, we'd all
agree that it was madness to maintain an entire distro. It's too much
work and time that would be better spent writing math software.


> We can't tell PARI to make a new stable release for us, it just doesn't 
> work that way.

We can't make them, but we can ask nicely. Especially if we're willing
to help. If they're like every other project on Earth, their limiting
factor is manpower.

There are alternatives, anyway. If the new pari just fixes some minor
bug, who cares. We can say "this is fixed upstream" and if users want to
upgrade their pari to some bleeding-edge commit, so be it.

If the change is big, we should probably wait for a full release anyway
to make sure we're working against the real, eventual API. We don't need
to be responsible for every line of code that we depend on at any level.

If it comes down to it, we could always fork pari and make a release.
But we have to call it sage-pari or something else; otherwise pretending
to be pari is going to cause problems with other packages that expect
the real pari.

-- 
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 post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to