Module versions

Manuel M. T. Chakravarty chak@cse.unsw.edu.au
Wed, 28 Feb 2001 11:01:29 +1100


Dylan Thurston <dpt@math.harvard.edu> wrote,

> On Tue, Feb 27, 2001 at 03:35:31PM +0000, Malcolm Wallace wrote:
> > > > The implication of the Std. namespace is that all such "standard"
> > > > libraries will be distributed with all Haskell systems.  In other
> > > > words, you can rely on a standard library always being there, and
> > > > always having the same interface on all systems.
> > > 
> > > What's about version changes? How can anybody garantee that a library is
> > > stable?  Some functions or instances may become obsolete or even disappear.
> > > Other may be needed in later versions of the library.
> > 
> > We can't provide absolute guarantees of course.  But this is no
> > different from the situation with standard libraries in other languages
> > - witness the difficulties with libc versions etc.  I think the best
> > we can do realistically is to aim for maximum stability.
> 
> But note that there is a well-defined "soname" mechanism in the Unix
> world to deal with this issue.  This usually works on the object level
> rather than the source level; it is usually hard to compile against an
> old version of the library (without renaming the library to include a
> version number).

Like with soname, we could have optional version numbers at
the end of each name, which defaults to the latest version
if no version is given. 

Manuel