Pierre Phaneuf wrote:

> Ari Heitner wrote:

>> That's the whole point. In the COM framework, you don't know what libraries
>> the code you depend on resides in until runtime. This has a key problem: you
>> can't tell if you've resolved your dependencies at install time!
>> 
>> The result: software that doesn't run because of evil dependency errors.
> 
> As I already explained, this is both a curse (as you describe) and a
> feature.
> 
> For example, my Quadra game can run both using Xlib or Svgalib. It
> shouldn't require both or one specifically, it should just use what is
> there. If I linked explicitly with Xlib, then it wouldn't be able to run
> in an Svgalib-only environment, and the reverse.
> 
> You could call these "soft dependencies", or something similar.

This may be out of scope, but isn't this one of the concepts behind some 
Debian packages?  For example, sendmail implements the prerequisite of a 
"mail transport agent" as does postfix and qmail.  A program that needs 
a "mail transport agent" (usually a sendmail executable in the path -- 
UNIX version of a generic interface?) will have its dependency satisfied 
by any of the above choices.

I don't have an answer for this -- especially for cross-platform use, 
but maybe the concept can be extrapolated?  Default implementations of 
an interface (through ProgID?) and checks at install time for default 
registered implementations of interfaces?  By no means trivial but...

- Miles Elam


Reply via email to