[r6rs-discuss] Library version numbers

From: Michael Sperber <sperber>
Date: Tue Oct 31 12:25:04 2006

[I'm not speaking for the R6RS editors.]

Marcin 'Qrczak' Kowalczyk <qrczak_at_knm.org.pl> writes:

> For example it's not possible to say "version (3 n) for n>=2 or
> version (m n) for m>=4" (i.e. "3.2 or newer"), nor even "(3 2 . m)
> for any tail m".
>
> Perhaps I misunderstood how version numbers would typically be used in
> practice. But wouldn't it be better if "and" and "or" were applicable
> to version conditions as a whole, rather than individual subversion
> fields?

While the above disclaimer applies, I wrote the original versioning
spec, and this seems like a clear omission.

Here's how I'd like to fix it:

<version reference> -> <empty>
                     | <version spec> ; new

<version spec> -> (<subversion reference> ...)
                | (and <version spec> ...)
                | (or <version spec> ...)
                | (not <version spec> ...)

This would allow saying:

(or (3 (>= 2))
    ((>= 4)))

which would match:

3.2, 3.3, 3.2.1, 3.5.2, etc., 4, 4.0, 4.1.1, etc.

I believe the dual occurrence of `and', `or', and `not' is
unambiguous, as crossing from <version spec> to <subversion reference>
always involves an additional open paren, and there's no way back up.

Would that address your concern?

-- 
Cheers =8-} Mike
Friede, V?lkerverst?ndigung und ?berhaupt blabla
Received on Tue Oct 31 2006 - 12:24:48 UTC

This archive was generated by hypermail 2.3.0 : Wed Oct 23 2024 - 09:15:01 UTC