On 2/8/2012 10:47 AM, Thomas Leonard wrote:
Sorry, I'm still not clear about this. For example, I wrote a simple
GTK text editor that uses the GtkSourceView library. By "handle
disagreeing-diamonds", do you meaning that
a) my program and GtkSourceView see a single version of GTK,
compatible with both of them, or
b) they each see a version of GTK they are compatible with, but not
necessarily the same one (so I cannot embed the GtkSourceView widget
into my GtkWindow)?
A "disagreeing" diamond would be one where there's no single version
that satisfies both. If they can be made to agree -- if there's a
solvable constraint-set -- then it's just a matter of choosing the right
one. Which is tricky, as you point out (might need a constraint-solver)
but at least doesn't require additional machinery once you've chosen a
version.
If the application and the library really do require different
versions of GTK (e.g.<2 and>2) then you can't solve it.
IME this sort of situation is quite common too and it's what our
versioning mechanisms are built to accommodate. You can't usually solve
it in GTK-land because of the way PLTs on unversioned C symbols work,
and the general lack of symbol-versioning within C libraries. Our
symbols are all versioned.
I don't think I ever claimed any such thing (I only asked how Rust
plans to handle dependencies).
Sorry, my tone was too negative and full of hyperbole. I apologize for
putting words in your mouth.
I just can't help the feeling that this conversation is geared towards
trying to convince me that there's some aspect of baseline correctness
that is so hard to get right that we can't grow it ourselves (or copy
from 0install, or apt, or any other dependency-resolver) as we encounter
it, but should instead give up now and just use it.
I don't really feel that's a good option, for a bunch of cognitive
complexity and UI / role reasons I've pointed out already. I don't
debate that 0install does more (and more correctly) than cargo currently
does. I hope it's ok if we crib logic from it when and if we need to.
But I don't feel that's a conclusive argument that we ought to adopt it
wholesale as a system dependency.
-Graydon
_______________________________________________
Rust-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/rust-dev