Currently, Parrot configuration step #32 is gen::cpu, while step #50
is auto:cpu. Let's do a diff between their respective packages (at
r22775):
[parrot] 504 $ diff -w config/gen/cpu.pm config/auto/cpu.pm > ~/learn/
parrot/diff.gen.auto.cpu.txt
1c1
< # Copyright (C) 2001-2006, The Perl Foundation.
---
> # Copyright (C) 2001-2007, The Perl Foundation.
6c6
< config/gen/cpu.pm - CPU specific Files
---
> config/auto/cpu.pm - CPU specific Files
10c10
< Runs C<&run_cpu()> in F<config/gen/cpu/${cpuarch}/auto.pm> if it
exists.
---
> Runs C<&run_cpu()> in F<config/auto/cpu/${cpuarch}/auto.pm> if it
exists.
14c14
< package gen::cpu;
---
> package auto::cpu;
18a19
>
21c22
< use Parrot::Configure::Step qw(copy_if_diff);
---
> use Parrot::Configure::Step;
24d24
<
28c28
< $data{description} = q{Generating CPU specific stuff};
---
> $data{description} = q{Running CPU specific stuff};
44c44,46
< my $hints = "gen::cpu::" . $conf->data->get('cpuarch') . "::auto";
---
> $conf->data->add( ' ', TEMP_atomic_o => '' ); # assure a
default
>
> my $hints = "auto::cpu::" . $conf->data->get('cpuarch') .
"::auto";
Not very much, if you think about it. Both classes exist primarily
to run a subroutine in an OS/platform-specific .pm hints file one
level down in the hierarchy.
config/gen/cpu.pm has hints files for i386 and x86_64. In neither
case are any Makefiles, header files or any other kind of files
generated, so the name 'gen::cpu' for this config step is a misnomer.
config/auto/cpu.pm has hints files for i386, ppc, sun4 and x86_64.
They run C probes of the platform much like any other 'auto'
configuration step.
I haven't yet run Parrot::Configure::Trace to see how the values in
the Parrot::Configure object set by gen::cpu affect the steps between
#32 and #50. Nor have I experimented yet with combining the two
packages into one and running it at step #32.
But does anyone know any reason why that kind of experimentation
should be rejected *a priori*? Does anyone recall anything about
these packages that in the past mandated that their functionality be
split between the two widely separated configuration steps?
Thank you very much.
kid51