# 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