[r6rs-discuss] [Formal] Version reference syntax is overly complex.
On Sat, 16 Jun 2007, Shiro Kawai wrote:
>>> Suggested alternative #2
>>> ------------------------
>>>
>>> Drop the whole library versioning idea from r6rs.
I would like to suggest
Suggested alternative #3:
-------------------------
Give <version reference> the same syntax as <version>. A match occurs if
<version reference> matches <version> up to the number of elements provided
in <version reference>.
In other words, (rrs (6 2)) would match versions (6 2), (6 2 3), etc.
I think too much emphasis has been placed on /implementation/ ability to
specify complex version references. This ability invites fragility.
Instead, it would encourage better practice by keeping version references
simple and making it a /user/ responsibility to come up with a
consistent versioning scheme.
For example, the current specification allows one to specify that a client
program will work only with version (6 2) and not with version (6 2 3) of some
library. However, if this is the case, assigning version (6 2 3) to a library
that is not backward-compatible is clearly wrong, and providing the ability to
specify such a constraint will only encourage such errors. Ditto for
examples like (and (>= 6) (<= 7)), where a better way to do this is with
minor versions. For example, if the next Scheme report comes up with a
backward-compatible version of SYNTAX-CASE, the proper version number
of the new library should not be (rrs syntax-case (7)) but instead something
like (rrs syntax-case (6 1)).
Andre
Received on Wed Jun 20 2007 - 08:37:27 UTC
This archive was generated by hypermail 2.3.0
: Wed Oct 23 2024 - 09:15:01 UTC