Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Module/Class Authoritys

7 views
Skip to first unread message

Stevan Little

unread,
Aug 11, 2006, 12:35:39 AM8/11/06
to perl6language,
Quick question for the group.

Can there be more than one authority?

module Foo-0.0.1-cpan:JRANDOM-http://www.foo.org-mailto:jra...@foo.org

S11 would seem to indicate no (it states that names are made up of 3
parts), but I guess I am wondering if one of those parts can have
multiple sub-parts in it?

Thanks,

- Stevan

Darren Duncan

unread,
Aug 11, 2006, 1:25:24 AM8/11/06
to perl6language,

Perhaps something like what is done with versions; eg:

Foo-0.0.1-(cpan:JRANDOM|http://www.foo.org|mailto:jra...@foo.org)

But certainly, there should be delimiters of some kind surrounding
the group, and not have it in the open with the same separators as
what is used to separate the authority from the version etc.

-- Darren Duncan

Jonathan Scott Duff

unread,
Aug 11, 2006, 2:37:34 AM8/11/06
to Darren Duncan, perl6language,
On Thu, Aug 10, 2006 at 10:25:24PM -0700, Darren Duncan wrote:
> At 12:35 AM -0400 8/11/06, Stevan Little wrote:
> >Quick question for the group.
> >
> >Can there be more than one authority?
> >
> >module Foo-0.0.1-cpan:JRANDOM-http://www.foo.org-mailto:jra...@foo.org
> >
> >S11 would seem to indicate no (it states that names are made up of 3
> >parts), but I guess I am wondering if one of those parts can have
> >multiple sub-parts in it?
> >
> >Thanks,
> >
> >- Stevan
>
> Perhaps something like what is done with versions; eg:
>
> Foo-0.0.1-(cpan:JRANDOM|http://www.foo.org|mailto:jra...@foo.org)

What does it *mean*? In a module declaration it seems out of place. And
this is something that can be solved culturally (the CPAN could provide
a name that aliases multiple authorities, for instance), so you really
only need one authority in a declaration.

In a "use", it would seem that you're saying "use any one of these,
they are equivalent for my purposes" when you say

use Foo-0.0.1-(X|Y);

Though could you imagine tracking down the bug when they *aren't*
equivalent? Seems like a bad idea.

I can see some use for this though:

use Foo-0.0.1-{X,Y};

if it means "try Foo-0.0.1-X and then, if that fails, try Foo-0.0.1-Y"
But that's just moving some information from the normally invisible
@INC into the module name.

And what do we do with the combinatorial explosion of this?

use Foo-(1.2 .. 3.3)-(X|Y|Z);

Suddenly it seems like a really good idea to only have one authority.

-Scott
--
Jonathan Scott Duff
du...@pobox.com

0 new messages