So I have a question about versioning, either/especially about compilation
units, but also Perl 6 itself.
For context I refer to http://design.perl6.org/S11.html#Versioning .
With regard to "use" statements and specifying 'auth' or 'ver' to restrict
between versions, it seems to me that the spec defines them interacting in a
cross-product fashion.
For example, given this possibly incorrect syntax:
use Dog:auth<cpan:TPF cpan:JRANDOM>:ver(4-6, 10-15);
... that would be satisfied by any of TPF versions 4-6,10-15 or JRANDOM versions
4-6,10-15.
However, what I want is to restrict the 'ver' differently depending on the
'auth', treating them more as the hierarchy they are, assuming that different
authorities may go off and use different versioning schemes.
The question I have is how to 'or' the following into a single 'use Dog' that
isn't any less restrictive:
use Dog:auth<cpan:TPF>:ver(v1.2.1..v1.2.3);
use Dog:auth<cpan:JRANDOM>:ver(v14.3..v16.2);
That is, the cross-product answer is not restrictive enough.
I don't know if this hypothetical use case has been discussed before, but if
not, I hope that the Perl 6 specification has or can gain a clean way to say how
its done.
Thank you.
-- Darren Duncan