# New Ticket Created by  James Keenan 
# Please include the string:  [perl #49364]
# in the subject line of all future correspondence about this issue. 
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=49364 >


The Parrot configuration step classes (config/*/*.pm) each have an  
initializer routine, _init().  Most step classes assign an array ref  
to an 'args' attribute.  Example:

sub _init {
     my $self = shift;
     my %data;
     $data{description} = q{Detecting compiler attributes (- 
DHASATTRIBUTE_xxx)};
     $data{args}        = [ qw( cc verbose define ) ];
     $data{result}      = q{};
     return \%data;
}

In the past, it was thought that at some future point the elements in  
this array would be used somehow by the step's runstep() method.  But  
only two classes ever used this functionality.  They used it only to  
hold a list of relevant command-line options.  And they have not used  
the feature since we refactored it out four months ago.  ($conf- 
 >options->get() does the trick instead.)

So I propose to eliminate the excess baggage.  Recently created  
configuration steps have done without the 'args' attribute, and I  
have eliminated all tests for the 'args' attribute in the tests in t/ 
configure/*.t.

What remains is:
(1) Eliminate code from Parrot::Configure and Parrot::Configure::Step  
that was used to process the 'args' attribute.
(2) Adjust documentation in those modules and in docs/configuration.pod.
(3) Eliminate the $data{args} assignment from each config step class.

I'll take this in stages so that nothing breaks.

Thank you very much.

kid51



Reply via email to