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

Reply via email to