[r6rs-discuss] [Formal] Version reference syntax is overly complex.
From: Thomas Lord <lord at emf.net>
Subject: Re: [r6rs-discuss] [Formal] Version reference syntax is overly complex.
Date: Thu, 21 Jun 2007 13:26:52 -0700
> Shiro Kawai wrote:
>
>
> > Even in the above scenario, you can still declare
> > that you won't support anything before foo-2.3.
>
>
> Yes, you can say that, but it is a crazy thing to say.
>
> It may be that, at the time you write your program, it
> relies on features only found in foo-2.3 but no prior
> version. Yet, backporting is a common occurance.
> A year from now, someone may release 1.45 which
> contains both desirable features that were dropped
> in foo-2, plus a backport of the features your program
> needs from foo-2.3. Why should it be necessary to
> modify the source of your program just to run it with
> library version 1.45?
I think you worry too much. Of course it depends, but
in many cases the minimum version requirement serves as
a way to say "I know the library prior to this version is
not compatible at this moment, and I have no intention to
support the old one for the time being." If the new
feature gets backported and there are people desperately
want to use the older one, they'll make change and provide
the patch.
An example. Here's an excerpt of my Gauche.spec file:
%package gdbm-%{encoding}
Summary: gdbm binding for Gauche Scheme system
Group: Development/Languages
License: GPL
Provides: Gauche-gdbm
Requires: gdbm >= 1.8.0, Gauche-%{encoding}
I already forgot the details, but I think gdbm changed
API in 1.8, and I knew my code wouldn't work with gdbm 1.7.x
or before. Now, I haven't checked whether gdbm 1.7.x gets
new API, but I bet not. I also knew gdbm 1.8 have
already been widely used so requiring >= 1.8 wouldn't
be a showstopper for most cases.
Is it crazy? Should I open the door for the possibility
that gdbm 1.7.x gets a 1.8 compatible API?
> In addition to being
> late bound and extensible, linkage should be kept
> separate from the source files to which it applies
> in support of the separate compilability of modules.
Actually, I second for this. Plus the extensibility,
software nowadays may link components written in
many different languages, so you will have to check
version consistency outside of r6rs world anyway,
whether or not r6rs has its own versioning system.
It may be worth to try to design a "right" versioning
system that covers not only programs written in r6rs
Scheme but other components as well. But that'd
better be outside of the scope of r6rs.
--shiro
Received on Thu Jun 21 2007 - 17:39:25 UTC
This archive was generated by hypermail 2.3.0
: Wed Oct 23 2024 - 09:15:01 UTC