This patch transfers one aspect of Configure.pl's functionality --
its listing of the steps in the configurati0n process -- out of that
script and places it in a new package:
Parrot::Configure::Step::List exports a single subroutine on demand:
By placing this functionality in a subroutine exported by a class, we
can write tests for it using Perl's standard testing apparatus.
Accordingly, a test file is supplied as part of this patch:
This is the third in a series of patches a number of Parrot hackers
and I have submitted which refactor Configure.pl and the various
Parrot::Configure::* classes. This refactoring is focused primarily
on increasing the testability -- and, by extension, the long-term
maintainability -- of Parrot's configuration code.
Assuming that our refactoring is correct, the end result of the
configuration process should not change in the least. (To confirm,
do a 'diff' on lib/Parrot/Config/Generated.pm versus an unpatched
version.) However, if in the future you are proposing revisions to
functionality originally found in Configure.pl (e.g., adding a new
configuration step), you may have to look in a new place to make such
Assuming no objection, I will apply this patch to trunk in
approximately three days. Thank you very much.
Also, in r18158 applied some small changes in docs/configuration.pod to point to
Parrot::Configure::Step::List as new location for list of configuration steps used in Configure.pl.