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


Ignore:
Timestamp:
Sep 29, 2010 3:05:37 PM (4 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?