#1263: Determine configuration value for 'platform' prior to gen::platform
-----------------------+----------------------------------------------------
Reporter: jkeenan | Owner: jkeenan
Type: cage | Status: new
Priority: normal | Milestone:
Component: configure | Version: 1.7.0
Severity: medium | Keywords: platform
Lang: | Patch:
Platform: all |
-----------------------+----------------------------------------------------
This ticket picks up an idea originally discussed in
[https://trac.parrot.org/parrot/ticket/1194#comment:8 TT #1194]. Parrot
configuration step `gen::platform` creates platform-specific files. It
contains logic to determine what value the string for ''platform'' should
hold.
{{{
65 sub _get_platform {
66 my $self = shift;
67 my ($conf, $verbose) = @_;
68 my $platform = lc ( $conf->data->get_p5('OSNAME') );
69
70 $platform = "win32" if $platform =~ /^msys/;
71 $platform = "win32" if $platform =~ /^mingw/;
72 $platform =~ s/^ms//;
73
74 if ( ( split m/-/, $conf->data->get_p5('archname'), 2 )[0] eq
'ia64' ) {
75 $platform = 'ia64';
76 }
77
78 $platform = 'generic' unless -d "config/gen/platform/$platform";
79
80 print " platform='$platform' " if $verbose;
81 return $platform;
82 }
}}}
The fact that we are only determining this value in the second-last
configuration step is inconsistent with the design (such as it is) of our
configuration system. Parrot configuration values ought to be determined
in `init`, `inter`, or `auto` steps. The `gen` steps should not be making
any determinations of config values. Rather, they should simply be
spitting out files based on values determined in steps of the first three
types.
It would be better if a value for ''platform'' were determined much
earlier in the configuration process -- most likely in
''config/auto/arch.pm'', as that is the place where `cpuarch` and `osname`
get their final determination. (True, there may be shortcomings in the
way `auto::arch` determines those values; cf. TT #423. But that does not
gainsay the point of this ticket.)
I will create a branch to develop and test this feature revision.
Thank you very much.
kid51
--
Ticket URL: <https://trac.parrot.org/parrot/ticket/1263>
Parrot <https://trac.parrot.org/parrot/>
Parrot Development
_______________________________________________
parrot-tickets mailing list
[email protected]
http://lists.parrot.org/mailman/listinfo/parrot-tickets