Cabal and GHC

Brandon Allbery allbery.b at gmail.com
Thu Nov 22 18:00:32 CET 2012


On Thu, Nov 22, 2012 at 3:32 AM, Simon Peyton-Jones
<simonpj at microsoft.com>wrote:

> The solution is obvious: we should make it possible to instally
> yesod-platform-2.7 twice,
>   once version depending on data-default-0.4
>   once version depending on data-default-0.5.
>

This sounds great until you have lots of packages installed, with all of
them doing this kind of thing; you have many packages present multiple
times with different (and ultimately nested) cross-dependencies, and a
nightmare on the accounting front.  And the user is watching
already-installed packages being constantly reinstalled again because
there's a little gap *somewhere* in the dependency web.

I am wondering if we're trying to solve the problem in the wrong way.  The
core of the problem is that various things get baked into libraries in the
name of optimization, such that a given binary library has dependencies on
precise versions of other libraries; it's not like C where anything
supporting the ABI can use the same .a/.lib or .so/.dll/.dylib.

Perhaps what we need is some kind of half-compiled state which leaves the
compiler able to do those optimizations at link time.  (This may admittedly
end up meaning whole-program compilation and thereby giving up on binary
libraries completely.)

-- 
brandon s allbery kf8nh                               sine nomine associates
allbery.b at gmail.com                                  ballbery at sinenomine.net
unix/linux, openafs, kerberos, infrastructure          http://sinenomine.net
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/libraries/attachments/20121122/a808bba1/attachment.htm>


More information about the Libraries mailing list