[Haskell-cafe] Re: [Haskell] Re: Trying to install binary-0.4

Daniel McAllansmith dm.maillists at gmail.com
Tue Oct 16 06:54:37 EDT 2007


On Tuesday 16 October 2007 21:16, Simon Marlow wrote:
> > - when GHC 6.8 comes out containing base-3, will it be possible to
> >   additionally install something calling base-2 with both being
> >   available to packages?
>
> In theory yes - the system was designed to allow this.  In practice we've
> never tried it, and base-2 might not compile unmodified with GHC 6.8.
>
> > - If so, will existing Cabal packages automatically pick up the
> >   compatible base-2 despite base-3 being available?
>
> Only if they specify an upper bound on the base dependency, which most
> don't, but it's an easy change to make.

It seems more sensible to me for dependencies to always have an upper bound of 
the next major version.  foo-3.y.z won't satisfy foo-2.3.4.

If it so happens that a package depends on the subset of foo's interface that 
was retained from foo-2.3.4 through to foo-3.0.0 then the dependency can be 
changed to foo-2.3.4,3.0.0 (modulo syntax) once it has been tested.

If dependencies on foo often end up like this due to use of a distinct subset 
of the interface it's probably a good sign that foo is too coarse-grained.


If a major version increment, by definition, implies a removal of 
functionality from a package then having no upper bound on the dependency 
pushes work out to the user that would be better done by the maintainer.  
With an upper bound users are still able to try and get the package going 
with a later version of a dependency if they want.

Dan


More information about the Haskell-Cafe mailing list