[Haskell-cafe] Re: Backwards-Compatibility

Nils Anders Danielsson nad at cs.chalmers.se
Fri Jul 1 09:45:16 EDT 2005

On Wed, 29 Jun 2005, Sven Moritz Hallberg <pesco at gmx.de> wrote:

> Am 29. Jun 2005 um 11.03 Uhr schrieb Simon Marlow:
>> On 28 June 2005 14:11, Bulat Ziganshin wrote:
>>> [...] how about using Pesco's library versioning scheme? (see
>>> http://www.haskell.org/tmrwiki/EternalCompatibilityInTheory)
>> I've read that article, and I think it's an interesting idea.  I can't
>> disagree with the arguments put forward, but somehow, the cure seems a
>> bit painful.
> [...]
> What am I missing?

I agree that the benefits of your scheme are desirable. However, in
some sense the method amounts to manual version control. We have nice
tools that take care of version control, and I wouldn't want to do
that by hand.

As a simple (but perhaps contrived) example, if a project consists of
50 modules, then after on average 10 changes per module the project
will consist of at least 500 modules. If a feature from the first
version of some module turned out to be buggy, and all versions needed
to be fixed, then ~10 modules might need to be split into two (as per
your A_3_9 and A_4_1 example). With a revision control system it
should suffice to patch one module, and then users could choose
whether to include that patch or not. (Of course, a basic revision
control system has other drawbacks compared to your scheme.)


More information about the Haskell-Cafe mailing list