On Sun, Jan 3, 2010 at 9:28 AM, brian d foy <brian.d....@gmail.com> wrote: > The crux of the problem is how the tools translate a module that you > want to install and discover which distro to download.
brian is right about issue we already have with Perl 5 and Perl 6 only complicates things further from what I understand of how it supports modules from multiple authorities. (At least, that last time I looked at the spec which was probably at YAPC::NA) There is a fundamental decision to be taken -- should we try to have a common indexing system across both languages? Or should we design the indexing specific to the unique semantics of each? For Perl 5, we now have a single index that maps a Perl 5 namespace to a distribution file. (It's slightly more complicated in that there's an indication of the version number of that namespace provided by the distribution, but that's for convenience and is not essential.) Moreover, we have a toolchain that specifies dependencies only terms of namespaces and (usually) minimum version numbers. This means there is no way (ignoring Bundles) to specify *particular* distributions as dependencies or to specify non-indexed distributions or namespaces as dependencies. Changing that requires massive rewrites to the entire toolchain (without breaking backwards compatibility) -- a feat that I don't see happening anytime soon. My suggested approach is to modify CPAN/CPANPLUS to support alternate index files that function the same way but provide different mappings. David Cantrell's CP5XXXAN mirrors are an example of this -- though using the *current* index locations on custom mirrors. Allowing new index files means there could be "latest dev" indices, EPO-certified indices, etc and so on that provide specific namespace-distribution mappings that someone is curating. This seems to me like the most pragmatic way forward for *Perl 5*. I think Perl 6 will probably need the more complete distribution mapping for any combination of namespace, version and authority and then will need to build its toolchain around that. -- David