WARNING: package dependencies

Tony Finch dot at dotat.at
Tue May 10 06:48:06 EDT 2005


On Tue, 10 May 2005, Simon Marlow wrote:
>
>   2. The GHC build could start using -fignore-all-packages to insulate
>      itself from the environment (or, simpler but more hacky:
>      -ignore-package lang).  This isn't a *solution* as such, because
>      the problem affects everyone, not just us.

I'm slightly surprised that this isn't already the default, and that
probably explains the recent argument. In the C world the only libraries
that matter to the build environment are the ones you explicitly pull in.
Overlaps still matter but only within your program. On the other hand
Perl's module namespace is global, and a (usually implicit) search path is
used to resolve conflicts.

I greatly prefer the former model. Perl is a real pain if you want
multiple parallel installations of slightly different versions of the same
code - you effectively need a separate Perl installation for each
installed version of a program that uses Perl.

Perhaps the missing idea is the package configuration step, during which
its dependencies are resolved to installed libraries on the build machine
and any conflicts are dealt with. The package is shipped with abstract
dependencies (module names and perhaps version numbers), but by the time
the compiler gets involved these have been resolved to paths in the file
system.

Tony.
-- 
f.a.n.finch  <dot at dotat.at>  http://dotat.at/
BISCAY: WEST 5 OR 6 BECOMING VARIABLE 3 OR 4. SHOWERS AT FIRST. MODERATE OR
GOOD.


More information about the Libraries mailing list