> On Dec 1, 2010, at 8:38 PM, Antoine Latter wrote: > > > If you're doing user installations of packages with 'cabal-install' it > > will take care of everything - all of the things that it installs are > > in per-GHC-version directories. > ... > > Except for the haddock documentation that cabal-install installs - > > different versions of GHC/haddock are pretty much always breaking each > > other when I switch back and forth. > > This is because cabal's default layout *doesn't* install everything in > per-GHC-version directories. The layout is: > > <prefix> -- /usr/local if --global, ~/.cabal if --user > bin -- binaries ($bindir) > lib -- ($libdir) > <pkgid> > <compiler> -- libraries & .hi files ($libdir/$libsubdir, $dynlibdir) > include -- include files ($includedir) > libexec -- private binaries ($libexecdir) > share -- ($datadir) > <pkgid> -- data files ($datadir/$datasubdir) > doc > <pkgid> -- documentation ($docdir) > html -- html doc ($htmldir, $haddockdir) > man -- man pages ($mandir) > > Notice that only libraries, .hi files and includes are uner a per-compiler > directory. All the other things aren't, and as you notice they clobber each > other. > > I propose that the default in Cabal be changed to: > > <prefix> -- /usr/local/haskell if --global, ~/.cabal if --user, > <compiler> > <pkgid> > bin -- binaries ($bindir) > lib -- libraries & .hi files ($libdir, $libdir/$libsubdir, > $dynlibdir) > include -- include files ($includedir) > libexec -- private binaries ($libexecdir) > share -- data files ($datadir, $datadir/$datasubdir) > doc -- documentation ($docdir) > html -- html doc ($htmldir, $haddockdir) > man -- man pages ($mandir) > bin -- symlinks to binaries > doc > html -- master index of html doc > man -- symlinks to man pages > current -- symlink to current <compiler> > bin -- symlink to current/bin > doc -- symlink to current/doc > > This would put everything under a per-compiler top level dir, which is how > most other language systems install (for example perl and python both do it > this way) This would also allow very easy removal of an old compiler and > everything that was installed for it. Removing packages is also easier: you > just one <pkgid> dir per <compiler> to find and get rid of -- and you can do > it with a wildcard! > +1
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe