Changes between Version 1 and Version 2 of Commentary/Packages/MultiInstances


Ignore:
Timestamp:
Sep 29, 2010 3:05:37 PM (5 years ago)
Author:
simonmar
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Commentary/Packages/MultiInstances

    v1 v2  
    1 = Multi-instance packages
     1= Multi-instance packages =
    22
    33This page is about how to change the package system to allow multiple instances of a package to be installed at the same time.  There are two reasons we want to be able to do this:
     
    77 * To make installing new packages more robust.  When installing a new package, we sometimes need to upgrade packages that are already installed to new versions, which may require recompiling other packages against the new version.  For example, if we have P1 installed, Q1 depends on P (any version), and we need to install R that depends on both P2 and Q1.  We need to build P2, rebuild Q1 against P2, and finally build R against P2 and the new Q1.  We would like to do this without removing P1 or the old Q1 from the package database, because other packages may be depending on the old Q1, and we don't want to break those packages (which is what currently happens with GHC 7.0).
    88
    9 == ToDo list
     9== ToDo list ==
    1010
    11 * ghc-pkg: do not overwrite previous instances in the package DB
     11 * ghc-pkg: do not overwrite previous instances in the package DB
    1212
    13 * GHC: discard conflicting instances during its shadowing phase
     13 * GHC: discard conflicting instances during its shadowing phase
    1414
    15 * GHC: allow specifying a package instance in the -package flags
     15 * GHC: allow specifying a package instance in the -package flags
    1616
    17 * instances of packages must install in a different location
    18   - install directory includes hash?
     17 * instances of packages must install in a different location
     18   * install directory includes hash?
    1919
    20 * ghc-pkg cleanup: remove old/unused instances of packages
    21   - how can we tell when something is unnecessary?
     20 * ghc-pkg cleanup: remove old/unused instances of packages
     21   * how can we tell when something is unnecessary?
    2222
    23 * Add the "way" to InstalledPackageInfo, include the way in the hash
     23 * Add the "way" to InstalledPackageInfo, include the way in the hash
    2424
    25 * GHC: slice the package DB during startup according to the correct way
     25 * GHC: slice the package DB during startup according to the correct way
    2626
    27 * Cabal: fix up the dep resolver
     27 * Cabal: fix up the dep resolver
    2828
    29 * Cabal: ways?
     29 * Cabal: ways?