[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