HaskellImplementorsWorkshop/2012/Schuster: Difference between revisions
(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.