Difference between revisions of "HaskellImplementorsWorkshop/2012/Schuster"

From HaskellWiki
Jump to navigation Jump to search
(New page: =Making cabal-install non-destructive= ''Philipp Schuster (speaker), Andres Löh'' Recently there have been more and more complaints about "cabal dependency hell". Many of these complai...)
 
(Added Category:Community)
 
Line 29: Line 29:
 
The project is a work in progress, and the talk will be a status
 
The project is a work in progress, and the talk will be a status
 
report.
 
report.
  +
  +
  +
[[Category:Community]]

Latest revision as of 13:43, 17 December 2012

Making cabal-install non-destructive

Philipp Schuster (speaker), Andres Löh


Recently there have been more and more complaints about "cabal dependency hell". Many of these complaints have their root in one limitation: It is not possible to have more than one instance of a certain package version installed per package database. Installing another instance overwrites the existing instance and often breaks other installed packages that depended on the overwritten instance.

During a Summer of Code project we are lifting this restriction by making several instances of the same package version install next to each other. This requires serious changes to ghc-pkg, cabal-install, the Cabal library and their interaction. Specifically we need:

  • A unique install location for each instance
  • An improved way to uniquely identify packages
  • A refined adhoc resolution method for GHC
  • A few changes to the cabal-install solver
  • A garbage collection mechanism for unused packages

In this talk, we are going to describe the changes as well as the improvements possible for the end user. In addition to removing the possibility of breaking installed packages, the new system also promises much more fine-grained dependency tracking.

The project is a work in progress, and the talk will be a status report.