Changing the -package dependency resolution algorithm
Edward Z. Yang
ezyang at mit.edu
Fri Jul 25 00:09:08 UTC 2014
Good question. I think package environments are the right answer here:
GHCi should come preloaded with some special global package environment.
Excerpts from John Lato's message of 2014-07-25 00:52:12 +0100:
> How would this work with ghci? If I'm understanding correctly, the
> proposal means users could no longer do:
> $ ghci SomeFile.hs
> and have it work without manually specifying all -package flags. Did I
> miss something?
> I think it would work in conjuction with the package environments stuff,
> provided that were available on all platforms ghc supports.
> John L.
> On Thu, Jul 24, 2014 at 11:12 PM, Edward Z. Yang <ezyang at mit.edu> wrote:
> > Excerpts from Edward Z. Yang's message of 2014-07-24 15:57:05 +0100:
> > > - It assumes *-hide-all-packages* at the beginning. This scheme
> > > probably works less well without that: now we need some consistent
> > > view of the database to start with.
> > Actually, thinking about this, this dovetails nicely with the "package
> > environments" work the IHG is sponsoring. The idea behind a package
> > environment is you specify some set of installed package IDs, which
> > serves as the visible slice of the package database which is used for
> > compilation. Then, ghc called without any arguments is simply using
> > the *default* package environment.
> > Furthermore, when users install packages, they may or may not decide
> > to add the package to their global environment, and they can be informed
> > if the package is inconsistent with a package that already is in their
> > environment (mismatched dependencies). A user can also request to
> > upgrade a package in their environment, and Cabal could calculate how
> > all the other packages in the environment would need to be upgraded
> > in order to keep the environment consistent, and run this plan for the
> > user.
> > Cheers,
> > Edward
> > _______________________________________________
> > ghc-devs mailing list
> > ghc-devs at haskell.org
> > http://www.haskell.org/mailman/listinfo/ghc-devs
More information about the ghc-devs