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

Reply via email to