[r6rs-discuss] [Formal] Version reference syntax is overly complex.
> Another way to see it is to think of version numbering
> systems as a kind of topological mistake. They assume
> that it is meaningful to say that a program depends
> on whatever version of a given library is both present
> and has the highest version number within some range.
> Yet, since we can not ever know what future versions of
> the library will exist or what code they might contain,
> we can't say anything definite about the meaning of a
> program that tries to import from any of some (non-point)
> range of version numbers.
I don't agree with that. Requiring a version equal to or higher than
a given number often makes sense, since responsible library authors
will try to keep their libraries downwards compatible at least for
minor revisions. Restricting version specifications to single points
might force implementors and users to maintain outdated versions,
make automated library updating harder, and might make code harder to
maintain. Past versions often disappear or become umaintained. Just
imagine you have to update every program each time a minor revision
is made in some library.
I believe the following features are both needed:
(a) The library istelf decides whether it is suitable for a requested
version. (normal case)
(b) The user explicitly overrides (a) and requires a specific library
version. (to work around bugs in (a))
That's why I've suggested earlier to let the library test whether a
user-supplied version matches the library *or* let the user provide a
test predicate that checks the version of the library. However, with
the current syntax test predicates would become clumsy. Using plain
version numbers would fix this. But I suppose there are compile time
issues that speak against the use of arbitrary test predicates...?
--Erich
Received on Thu Jun 21 2007 - 03:49:03 UTC
This archive was generated by hypermail 2.3.0
: Wed Oct 23 2024 - 09:15:01 UTC