[EMAIL PROTECTED] wrote:
>> Apparently the plan is to go in the opposite direction, i.e.,
getting that
>> stuff out of the Parrot distribution and into Bundle::Parrot on CPAN.
>
> How would the naming work there?
Not exactly certain what naming you're referring to ...
> I was trying to reduce the amount of
> keying required to invoke functions, and to keep their invocation the
same
> as if they had been installed "normally". That would eliminate the need
> for any additional documentation, (other than perhaps a statement
that "if
> you install this, you will have Foo::Bing, Bar::*, and Bam::Bam
> available", or something similar).
>
Since I only became aware of the existence of Bundle::Parrot a couple of
days ago, I can't speak authoritatively (particle, your cue). But here
is my surmise.
Over the years Parrot developers have, on the one hand, wanted to take
full advantage of the functionality developed by the Perl 5 community
and found on CPAN and, on the other, to avoid piling ever more
dependencies onto Parrot. Of necessity, this means some hard choices
from time to time. Earlier this year, for example, we finally bit the
bullet and said that to build Parrot you need Perl 5.8; Perl 5.6.1 would
no longer suffice.
When it comes to non-core CPAN modules, I know of 3 different situations:
(1) They have more or less been fully included. I think Class::Struct
falls into this category (but since I don't know it that well, don't
quote me).
(2) Significant components have been included as packages under lib/.
For testing purposes, I added Parrot::IO::Capture::Mini, which holds the
key elements of CPAN distribution IO::Capture.
(3) Individual subroutines which are either directly from CPAN modules
or provide similar functionality are stuck in various places in the
Parrot distribution. This is the case with slurp_file(), which is
similar to non-core CPAN module File::Slurp and whose inappropriate
placement in Parrot::Test started this thread/RT out.
We could go in one of two directions:
(4) Either pull all the odds and ends into a Parrot::Util (fka
Parrot::YetToBeNamed) module as Andy and I originally suggested; or
(5) Rip out from the Parrot distribution all Perl 5 code which
unnecessarily replicates functionality found in well tested, non-core
CPAN modules. Place those modules in a CPAN bundle. Tell all Parrot
developers that they need that in addition to Perl 5.8 in order to
configure, build and test Parrot. This was the approach that particle
began (but didn't sufficiently publicize) and, on reflection, I think
it's the direction we should take.
To move forward, we need someone -- who very well could be you, Ms. or
Mr. Newcomer -- to:
(6) Identify all that non-Perl 5 core functionality currently stashed
away in the Perl 5 components of Parrot.
(7) Determine what parts of that functionality are not yet found in
Bundle::Parrot and add them thereto.
(8) Propose a patch to Parrot that shows what parts need deleting, what
changes need to be made in files in docs/, etc. My hunch is that a
branch in our repository would be the best way to proceed.
(9) Pester the committers/core developers to review the patch. (Now
*that's* the hard part!)
HTH
kid51
(Alan: I merged 2 RT tickets; that's why I'm replying to your post in
this thread.)