patch applied (packages/regex-base): Make setup script compileagain after recent Cabal changes

apfelmus apfelmus at quantentunnel.de
Sun Sep 2 04:19:38 EDT 2007


Claus Reinke wrote:
> does anyone else feel that there is something wrong in haskell library
> land? i'm picking on cabal here as one of  "the usual suspects", but it 
> seems to have become the rule that otherwise stable code has to be fixed 
> every so often, to accomodate new compiler versions, new library 
> dependency versions, new cabal versions, new xyz versions,..

Wouldn't the fundamental solution to backward compatibility simply be to 
install old versions of a library? I mean, if the code only compiles 
with foo-1.0 but no longer with foo-2.2 then we'll just link against 
this old dependency foo-1.0. Viewed this way, backward compatibility of 
the API of foo-2.2 with foo-1.0 is just an optimization to save disk 
space since you don't have to keep two separate packages foo-1.0 and 
foo-2.2 around then.

In general, I think that the notions "install" and "uninstall" are wrong 
for package management. IMHO, the right way is a purely functional one, 
along the lines of Nix

   http://nix.cs.uu.nl/index.html

In essence, Nix treats every "package" (= populated directory tree) as a 
cell in some kind of _immutable_ memory (= disk space in this case). A 
set of installed packages corresponds to a set of allocated cells in 
memory. This is entirely analogous to storing Haskell values in memory. 
And not surprisingly, package contents can then be generated as values 
in a purely functional language, dependencies are just function arguments.

Regards,
apfelmus



More information about the Libraries mailing list