# New Ticket Created by James Keenan # Please include the string: [perl #45737] # in the subject line of all future correspondence about this issue. # <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=45737 >
This patch is submitted in response to a question which I posed in http://rt.perl.org/rt3/Ticket/Display.html?id=45523 over the weekend, viz., "What do we gain by having some configuration step classes' runstep() methods return $self (the step object itself)? Why can't we simply have a step return 1 upon success and undef otherwise?" The answer is: There is no good reason why some of the configuration steps' runstep() methods return $self instead of 1. It's totally unnecessary. The patch demonstrates this and proposes: 1. Change in the specification for a step's runstep() method in docs/ configuration.pod. 2. In all config/*/*.pm modules, wherever a runstep() method returned $self, it now returns 1. Each such method continues to return undef upon failure -- failure in the sense of "the step didn't accomplish what you wanted it to do." 3. Several test files are modified to reflect the new interface. 4. Parrot::Configure::_run_this_step() is modified to reflect the new interface from the caller's point of view. This is a significant revision both for the number of files it affects and also for the fact that this will help us get to --fatal- step options and logging of unsuccessful steps (two other recently created RT tickets). This was tested on Linux with both 'perl Configure.pl --test' and 'make test'. All tests passed. Please review and comment. Thank you very much. kid51
Index: docs/configuration.pod =================================================================== --- docs/configuration.pod (revision 21533) +++ docs/configuration.pod (working copy) @@ -149,11 +149,12 @@ =item L<runstep> This method is called to actually execute the step. The global -L<Parrot::Configure> is passed in as the first parameter. The return value is -undefined. +L<Parrot::Configure> is passed in as the first parameter. The return +value should be C<1> if the step accomplishes what it is intended to do. +Otherwise, the step should simply C<return>, I<i.e.>, return an +undefined value. -I<XXX> In the near future the return value of this method will be significant -and there will be a means of passing additional parameters. +I<XXX> In the near future there will be a means of passing additional parameters. =back Index: MANIFEST =================================================================== --- MANIFEST (revision 21533) +++ MANIFEST (working copy) @@ -1,7 +1,7 @@ # ex: set ro: # $Id$ # -# generated by tools/dev/mk_manifest_and_skip.pl Mon Sep 24 13:09:40 2007 UT +# generated by tools/dev/mk_manifest_and_skip.pl Tue Sep 25 02:16:39 2007 UT # # See tools/dev/install_files.pl for documentation on the # format of this file. @@ -2988,9 +2988,11 @@ t/configure/testlib/init/beta.pm [] t/configure/testlib/init/delta.pm [] t/configure/testlib/init/epsilon.pm [] +t/configure/testlib/init/eta.pm [] t/configure/testlib/init/foobar.pm [] t/configure/testlib/init/gamma.pm [] t/configure/testlib/init/zeta.pm [] +t/configure/testlib/inter/theta.pm [] t/distro/file_metadata.t [] t/distro/manifest.t [] t/distro/test_file_coverage.t [] Index: lib/Parrot/Configure.pm =================================================================== --- lib/Parrot/Configure.pm (revision 21533) +++ lib/Parrot/Configure.pm (working copy) @@ -186,7 +186,8 @@ C<runstep()> method, followed by any parameters that were registered for that step. -Accepts no arguments and modifies the data structure within the L<Parrot::Configure> object. +Accepts no arguments and modifies the data structure within the +L<Parrot::Configure> object. =cut @@ -194,19 +195,18 @@ my $conf = shift; my $n = 0; # step number - my ( $verbose, $verbose_step, $ask ) = $conf->options->get(qw( verbose verbose-step ask )); + my ( $verbose, $verbose_step, $ask ) = + $conf->options->get(qw( verbose verbose-step ask )); foreach my $task ( $conf->steps ) { $n++; - $conf->_run_this_step( - { - task => $task, - verbose => $verbose, - verbose_step => $verbose_step, - ask => $ask, - n => $n, - } - ); + my $rv = $conf->_run_this_step( { + task => $task, + verbose => $verbose, + verbose_step => $verbose_step, + ask => $ask, + n => $n, + } ); } return 1; } @@ -225,21 +225,22 @@ my $conf = shift; my $taskname = shift; - my ( $verbose, $verbose_step, $ask ) = $conf->options->get(qw( verbose verbose-step ask )); - - for my $task ( $conf->steps() ) { - if ( $task->{"Parrot::Configure::Task::step"} eq $taskname ) { - $conf->_run_this_step( - { - task => $task, - verbose => $verbose, - verbose_step => $verbose_step, - ask => $ask, - n => 1, - } - ); - } + my ( $verbose, $verbose_step, $ask ) = + $conf->options->get(qw( verbose verbose-step ask )); + + my $task = ( $conf->steps() )[0]; + if ( $task->{"Parrot::Configure::Task::step"} eq $taskname ) { + $conf->_run_this_step( { + task => $task, + verbose => $verbose, + verbose_step => $verbose_step, + ask => $ask, + n => 1, + } ); } + else { + die "Mangled task in run_single_step"; + } } sub _run_this_step { @@ -295,7 +296,9 @@ print "\n", $description, '...'; print "\n" if $args->{verbose} && $args->{verbose} == 2; - my $ret; # step return value + my $ret; + # When successful, a Parrot configuration step returns itself, + # i.e., returns its own object. eval { if (@step_params) { @@ -308,42 +311,70 @@ if ($@) { carp "\nstep $step_name died during execution: [EMAIL PROTECTED]"; return; + } else { + # A Parrot configuration step can run successfully, but if it fails to + # achieve its objective it is supposed to return an undefined status. + if ( $ret ) { + _finish_printing_result( { + step => $step, + args => $args, + description => $description, + } ); + # reset verbose value for the next step + $conf->options->set( verbose => $args->{verbose} ); + + if ($conf->options->get(q{configure_trace}) ) { + _update_conftrace( { + conftrace => $conftrace, + step_name => $step_name, + conf => $conf, + sto => $sto, + } ); + } + return 1; + } else { + _failure_message($step, $step_name); + return; + } } +} - # did the step return itself? - eval { $ret->can('result'); }; +sub _failure_message { + my ($step, $step_name) = @_; + my $result = $step->result || 'no result returned'; + carp "\nstep $step_name failed: " . $result; +} - # if not, report the result and return - if ($@) { - my $result = $step->result || 'no result returned'; - carp "\nstep $step_name failed: " . $result; - return; + +sub _finish_printing_result { + my $argsref = shift; + my $result = $argsref->{step}->result || 'done'; + if ($argsref->{args}->{verbose} && $argsref->{args}->{verbose} == 2) { + print "..."; } + print "." x ( 71 - length($argsref->{description}) - length($result) ); + unless ($argsref->{step} =~ m{^inter/} && $argsref->{args}->{ask}) { + print "$result."; + } + return 1; +} - my $result = $step->result || 'done'; - - print "..." if $args->{verbose} && $args->{verbose} == 2; - print "." x ( 71 - length($description) - length($result) ); - print "$result." unless $step =~ m{^inter/} && $args->{ask}; - - # reset verbose value for the next step - $conf->options->set( verbose => $args->{verbose} ); - - if ( $conf->options->get(q{configure_trace}) ) { - if ( !defined $conftrace->[0] ) { - $conftrace->[0] = []; - } - push @{ $conftrace->[0] }, $step_name; - my $evolved_data = { - options => $conf->{options}, - data => $conf->{data}, - }; - push @{$conftrace}, $evolved_data; - { - local $Storable::Deparse = 1; - nstore( $conftrace, $sto ); - } +sub _update_conftrace { + my $argsref = shift; + if (! defined $argsref->{conftrace}->[0]) { + $argsref->{conftrace}->[0] = []; } + push @{$argsref->{conftrace}->[0]}, $argsref->{step_name}; + my $evolved_data = { + options => $argsref->{conf}->{options}, + data => $argsref->{conf}->{data}, + }; + push @{$argsref->{conftrace}}, $evolved_data; + { + local $Storable::Deparse = 1; + nstore($argsref->{conftrace}, $argsref->{sto}); + } + return 1; } =item * C<option_or_data($arg)> Index: t/configure/101-init_manifest.01.t =================================================================== --- t/configure/101-init_manifest.01.t (revision 21533) +++ t/configure/101-init_manifest.01.t (working copy) @@ -5,7 +5,7 @@ use strict; use warnings; -use Test::More tests => 7; +use Test::More tests => 8; use Carp; use Data::Dumper; use lib qw( lib ); @@ -38,9 +38,11 @@ ok( defined $step, "$step_name constructor returned defined value" ); isa_ok( $step, $step_name ); ok( $step->description(), "$step_name has description" ); +ok(! defined ($step->result), "result not yet defined"); my $ret = $step->runstep($conf); -ok( defined $ret, "$step_name runstep() returned defined value" ); -is( $ret->result, q{skipped}, "Because of --nomanicheck, result is 'skipped'." ); +ok(defined $ret, "$step_name runstep() returned defined value"); +is($step->result, q{skipped}, + "Because of --nomanicheck, result is 'skipped'."); pass("Completed all tests in $0"); Index: t/configure/015-no_return.t =================================================================== --- t/configure/015-no_return.t (revision 21533) +++ t/configure/015-no_return.t (working copy) @@ -14,70 +14,68 @@ use Parrot::IO::Capture::Mini; $| = 1; -is( $|, 1, "output autoflush is set" ); +is($|, 1, "output autoflush is set"); -my $args = process_options( - { - argv => [], - mode => q{configure}, - } -); -ok( defined $args, "process_options returned successfully" ); +my $args = process_options( { + argv => [ ], + mode => q{configure}, +} ); +ok(defined $args, "process_options returned successfully"); my %args = %$args; my $conf = Parrot::Configure->new; -ok( defined $conf, "Parrot::Configure->new() returned okay" ); +ok(defined $conf, "Parrot::Configure->new() returned okay"); -my $step = q{init::epsilon}; +my $step = q{init::epsilon}; my $description = 'Determining if your computer does epsilon'; -$conf->add_steps($step); -my @confsteps = @{ $conf->steps }; -isnt( scalar @confsteps, 0, - "Parrot::Configure object 'steps' key holds non-empty array reference" ); -is( scalar @confsteps, 1, "Parrot::Configure object 'steps' key holds ref to 1-element array" ); +$conf->add_steps( $step ); +my @confsteps = @{$conf->steps}; +isnt(scalar @confsteps, 0, + "Parrot::Configure object 'steps' key holds non-empty array reference"); +is(scalar @confsteps, 1, + "Parrot::Configure object 'steps' key holds ref to 1-element array"); my $nontaskcount = 0; foreach my $k (@confsteps) { $nontaskcount++ unless $k->isa("Parrot::Configure::Task"); } -is( $nontaskcount, 0, "Each step is a Parrot::Configure::Task object" ); -is( $confsteps[0]->step, $step, "'step' element of Parrot::Configure::Task struct identified" ); -is( ref( $confsteps[0]->params ), - 'ARRAY', "'params' element of Parrot::Configure::Task struct is array ref" ); -ok( !ref( $confsteps[0]->object ), - "'object' element of Parrot::Configure::Task struct is not yet a ref" ); +is($nontaskcount, 0, "Each step is a Parrot::Configure::Task object"); +is($confsteps[0]->step, $step, + "'step' element of Parrot::Configure::Task struct identified"); +is(ref($confsteps[0]->params), 'ARRAY', + "'params' element of Parrot::Configure::Task struct is array ref"); +ok(! ref($confsteps[0]->object), + "'object' element of Parrot::Configure::Task struct is not yet a ref"); $conf->options->set(%args); -is( $conf->options->{c}->{debugging}, - 1, "command-line option '--debugging' has been stored in object" ); +is($conf->options->{c}->{debugging}, 1, + "command-line option '--debugging' has been stored in object"); -my $rv; -my ( $tie, @lines, $errstr ); { + my $rv; + my ($tie, @lines); $tie = tie *STDOUT, "Parrot::IO::Capture::Mini" or croak "Unable to tie"; - local $SIG{__WARN__} = \&_capture; - $rv = $conf->runsteps; + $rv = $conf->runsteps; @lines = $tie->READLINE; + ok($rv, "runsteps successfully ran $step"); + my $bigmsg = join q{}, @lines; + like($bigmsg, + qr/$description/s, + "Got correct description for $step"); + like($bigmsg, qr/done\.\z/, + "got 'done' in lieu of result set by step"); } -ok( $rv, "runsteps successfully ran $step" ); -my $bigmsg = join q{}, @lines; -like( $bigmsg, qr/$description/s, "Got message expected upon running $step" ); -like( - $errstr, - qr/step $step failed:\s*no result returned/s, - "Got error message expected when config module did not return object" -); +untie *STDOUT; pass("Completed all tests in $0"); -sub _capture { $errstr = $_[0]; } - ################### DOCUMENTATION ################### =head1 NAME -015-no_return.t - see what happens when configuration step does not return object +015-no_return.t - see what happens when configuration step implicitly returns +true value but does not set a result =head1 SYNOPSIS Index: t/configure/016-no_return_but_result.t =================================================================== --- t/configure/016-no_return_but_result.t (revision 21533) +++ t/configure/016-no_return_but_result.t (working copy) @@ -6,7 +6,7 @@ use strict; use warnings; -use Test::More tests => 11; +use Test::More qw(no_plan); # tests => 14; use Carp; use lib qw( lib t/configure/testlib ); use Parrot::Configure; @@ -14,72 +14,74 @@ use Parrot::IO::Capture::Mini; $| = 1; -is( $|, 1, "output autoflush is set" ); +is($|, 1, "output autoflush is set"); -my $args = process_options( - { - argv => [], - mode => q{configure}, - } -); -ok( defined $args, "process_options returned successfully" ); +my $args = process_options( { + argv => [ ], + mode => q{configure}, +} ); +ok(defined $args, "process_options returned successfully"); my %args = %$args; my $conf = Parrot::Configure->new; -ok( defined $conf, "Parrot::Configure->new() returned okay" ); +ok(defined $conf, "Parrot::Configure->new() returned okay"); -my $step = q{init::epsilon}; -my $description = 'Determining if your computer does epsilon'; +my $step = q{init::zeta}; +my $description = 'Determining if your computer does zeta'; -$conf->add_steps($step); -my @confsteps = @{ $conf->steps }; -isnt( scalar @confsteps, 0, - "Parrot::Configure object 'steps' key holds non-empty array reference" ); -is( scalar @confsteps, 1, "Parrot::Configure object 'steps' key holds ref to 1-element array" ); +$conf->add_steps( $step ); +my @confsteps = @{$conf->steps}; +isnt(scalar @confsteps, 0, + "Parrot::Configure object 'steps' key holds non-empty array reference"); +is(scalar @confsteps, 1, + "Parrot::Configure object 'steps' key holds ref to 1-element array"); my $nontaskcount = 0; foreach my $k (@confsteps) { $nontaskcount++ unless $k->isa("Parrot::Configure::Task"); } -is( $nontaskcount, 0, "Each step is a Parrot::Configure::Task object" ); -is( $confsteps[0]->step, $step, "'step' element of Parrot::Configure::Task struct identified" ); -is( ref( $confsteps[0]->params ), - 'ARRAY', "'params' element of Parrot::Configure::Task struct is array ref" ); -ok( !ref( $confsteps[0]->object ), - "'object' element of Parrot::Configure::Task struct is not yet a ref" ); +is($nontaskcount, 0, "Each step is a Parrot::Configure::Task object"); +is($confsteps[0]->step, $step, + "'step' element of Parrot::Configure::Task struct identified"); +is(ref($confsteps[0]->params), 'ARRAY', + "'params' element of Parrot::Configure::Task struct is array ref"); +ok(! ref($confsteps[0]->object), + "'object' element of Parrot::Configure::Task struct is not yet a ref"); $conf->options->set(%args); -is( $conf->options->{c}->{debugging}, - 1, "command-line option '--debugging' has been stored in object" ); +is($conf->options->{c}->{debugging}, 1, + "command-line option '--debugging' has been stored in object"); my $rv; -my ( $tie, @lines, $errstr ); +my ($tie, @lines, $errtie, @errlines); +{ + $tie = tie *STDOUT, "Parrot::IO::Capture::Mini" + or croak "Unable to tie"; + $errtie = tie *STDERR, "Parrot::IO::Capture::Mini" + or croak "Unable to tie"; + $rv = $conf->runsteps; + @lines = $tie->READLINE; + @errlines = $errtie->READLINE; +} +untie *STDOUT; +untie *STDERR; +ok($rv, "runsteps successfully ran $step"); +my $bigmsg = join q{}, @lines; +like($bigmsg, + qr/$description/s, + "Got correct description for $step"); +my $errmsg = join q{}, @errlines; +like($errmsg, + qr/step $step failed:\sGoodbye, cruel world/, + "Got error message expected upon running $step"); -#{ -# $tie = tie *STDOUT, "Parrot::IO::Capture::Mini" -# or croak "Unable to tie"; -## local $SIG{__WARN__} = \&_capture; -# $rv = $conf->runsteps; -# @lines = $tie->READLINE; -#} -#ok($rv, "runsteps successfully ran $step"); -#my $bigmsg = join q{}, @lines; -#like($bigmsg, -# qr/$description/s, -# "Got message expected upon running $step"); -#like($errstr, -# qr/step $step failed:\s*Hello world/s, -# "Got error message expected when config module did not return object"); - pass("Completed all tests in $0"); -sub _capture { $errstr = $_[0]; } - ################### DOCUMENTATION ################### =head1 NAME 016-no_return_but_result.t - see what happens when configuration step returns -something other than object but has a defined result method +undefined value but has a defined result method =head1 SYNOPSIS Index: t/configure/testlib/inter/theta.pm =================================================================== --- t/configure/testlib/inter/theta.pm (revision 0) +++ t/configure/testlib/inter/theta.pm (revision 0) @@ -0,0 +1,45 @@ +# Copyright (C) 2001-2003, The Perl Foundation. +# $Id$ + +=head1 NAME + +t/configure/testlib/inter/theta.pm - Module used in configuration tests + +=cut + +package inter::theta; + +use strict; +use warnings; +use vars qw($description @args); + +use File::Basename qw/basename/; + +use base qw(Parrot::Configure::Step::Base); + +use Parrot::Configure::Step ':inter'; + +$description = 'Determining if your computer does theta'; [EMAIL PROTECTED] = qw(ask theta); + +sub runstep { + my ( $self, $conf ) = @_; + + my $ask = $conf->options->get('ask'); + + my $question = 'Will Perl 6 be out before Christmas?'; + my $response; + if ($ask) { + $response = prompt( $question, q{Y/n} ); + } + return $self; +} + +1; + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 100 +# End: +# vim: expandtab shiftwidth=4: Property changes on: t/configure/testlib/inter/theta.pm ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native Index: t/configure/testlib/init/eta.pm =================================================================== --- t/configure/testlib/init/eta.pm (revision 0) +++ t/configure/testlib/init/eta.pm (revision 0) @@ -0,0 +1,38 @@ +# Copyright (C) 2001-2003, The Perl Foundation. +# $Id$ + +=head1 NAME + +t/configure/testlib/init/eta.pm - Module used in configuration tests + +=cut + +package init::eta; +use strict; +use warnings; +use vars qw($description @args); + +use base qw(Parrot::Configure::Step::Base); + +use Parrot::Configure::Step; + +$description = 'Determining if your computer does eta'; [EMAIL PROTECTED] = (); + +my $result = q|Hello world|; + +sub runstep { + my ( $self, $conf ) = @_; + $self->set_result( $result ); + return; +} + +1; + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 100 +# End: +# vim: expandtab shiftwidth=4: + Property changes on: t/configure/testlib/init/eta.pm ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native Index: t/configure/testlib/init/zeta.pm =================================================================== --- t/configure/testlib/init/zeta.pm (revision 21533) +++ t/configure/testlib/init/zeta.pm (working copy) @@ -12,8 +12,6 @@ use warnings; use vars qw($description @args); -# use vars qw($description @args $step); - use base qw(Parrot::Configure::Step::Base); use Parrot::Configure::Step; @@ -21,14 +19,13 @@ $description = 'Determining if your computer does zeta'; @args = (); -my $result = q|Hello world|; +my $result = q|Goodbye, cruel world|; + sub runstep { my ( $self, $conf ) = @_; $self->set_result($result); - return $self; - - # $self->result(); + return; } 1; Index: t/configure/036_config_steps.t =================================================================== --- t/configure/036_config_steps.t (revision 21533) +++ t/configure/036_config_steps.t (working copy) @@ -32,11 +32,16 @@ @steps = grep { $_ !~ /win32/i } @steps; } -plan tests => scalar @steps; +my $testcount = @steps + 1; +# my $testcount = @steps; + +plan tests => $testcount; foreach my $step (@steps) { require_ok($step); } +pass("Completed all tests in $0"); + # Local Variables: # mode: cperl # cperl-indent-level: 4 Index: t/configure/101-init_manifest.02.t =================================================================== --- t/configure/101-init_manifest.02.t (revision 21533) +++ t/configure/101-init_manifest.02.t (working copy) @@ -62,6 +62,8 @@ } chdir $cwd or croak "Unable to change back"; } +untie *STDERR; +untie *STDOUT; pass("Completed all tests in $0"); Index: t/configure/028-option_or_data.t =================================================================== --- t/configure/028-option_or_data.t (revision 21533) +++ t/configure/028-option_or_data.t (working copy) @@ -6,11 +6,11 @@ use strict; use warnings; -use Test::More tests => 15; +use Test::More tests => 13; use Carp; use lib qw( lib ); -use_ok('config::init::defaults'); -use_ok('config::init::install'); +use config::init::defaults; +use config::init::install; use Parrot::Configure; use Parrot::Configure::Options qw( process_options ); use Parrot::Configure::Test qw( test_step_thru_runstep); Index: config/inter/shlibs.pm =================================================================== --- config/inter/shlibs.pm (revision 21533) +++ config/inter/shlibs.pm (working copy) @@ -42,7 +42,7 @@ $conf->data->set( cc_shared => $cc_shared ); $self->set_result( ( $cc_shared =~ m/^ ?$/ ) ? 'done' : $cc_shared ); - return $self; + return 1; } 1; Index: config/inter/types.pm =================================================================== --- config/inter/types.pm (revision 21533) +++ config/inter/types.pm (working copy) @@ -46,7 +46,7 @@ opcode_t => $opcode ); - return $self; + return 1; } 1; Index: config/inter/encoding.pm =================================================================== --- config/inter/encoding.pm (revision 21533) +++ config/inter/encoding.pm (working copy) @@ -78,7 +78,7 @@ TEMP_encoding_build => $TEMP_encoding_build, ); - return $self; + return 1; } 1; Index: config/inter/lex.pm =================================================================== --- config/inter/lex.pm (revision 21533) +++ config/inter/lex.pm (working copy) @@ -46,7 +46,7 @@ unless ( $conf->options->get('maintainer') ) { $conf->data->set( $util => 'echo' ); $self->set_result('skipped'); - return $self; + return 1; } # precedence of sources for the program: @@ -61,7 +61,7 @@ if ( defined $prog ) { $conf->data->set( $util => $prog ); $self->set_result('user defined'); - return $self; + return 1; } else { $prog = check_progs( [EMAIL PROTECTED], $verbose ); @@ -125,7 +125,7 @@ $conf->data->set( flex_version => $prog_version ); $self->set_result("flex $prog_version"); $conf->data->set( $util => $prog ); - return $self; + return 1; } else { $self->set_result('lex program does not exist or does not understand --version'); Index: config/inter/charset.pm =================================================================== --- config/inter/charset.pm (revision 21533) +++ config/inter/charset.pm (working copy) @@ -78,7 +78,7 @@ TEMP_charset_build => $TEMP_charset_build, ); - return $self; + return 1; } 1; Index: config/inter/progs.pm =================================================================== --- config/inter/progs.pm (revision 21533) +++ config/inter/progs.pm (working copy) @@ -126,7 +126,7 @@ test_compiler($cc); - return $self; + return 1; } sub test_compiler { Index: config/inter/make.pm =================================================================== --- config/inter/make.pm (revision 21533) +++ config/inter/make.pm (working copy) @@ -56,7 +56,7 @@ # fall back to default $self->set_result('no'); - return $self; + return 1; } } @@ -72,7 +72,7 @@ # fall back to default $self->set_result('no'); - return $self; + return 1; } # if '--version' returns a string assume that this is gmake. @@ -100,7 +100,7 @@ $conf->data->set( make_c => $make_c ); } - return $self; + return 1; } 1; Index: config/inter/libparrot.pm =================================================================== --- config/inter/libparrot.pm (revision 21533) +++ config/inter/libparrot.pm (working copy) @@ -72,7 +72,7 @@ $self->set_result( $parrot_is_shared ? 'yes' : 'no' ); - return $self; + return 1; } 1; Index: config/inter/pmc.pm =================================================================== --- config/inter/pmc.pm (revision 21533) +++ config/inter/pmc.pm (working copy) @@ -229,7 +229,7 @@ TEMP_pmc_classes_pmc => $TEMP_pmc_classes_pmc, ); - return $self; + return 1; } 1; Index: config/inter/yacc.pm =================================================================== --- config/inter/yacc.pm (revision 21533) +++ config/inter/yacc.pm (working copy) @@ -46,7 +46,7 @@ unless ( $conf->options->get('maintainer') ) { $conf->data->set( $util => 'echo' ); $self->set_result('skipped'); - return $self; + return 1; } # precedence of sources for the program: @@ -61,7 +61,7 @@ if ( defined $prog ) { $conf->data->set( $util => $prog ); $self->set_result('user defined'); - return $self; + return 1; } else { @@ -128,7 +128,7 @@ $conf->data->set( bison_version => $prog_version ); $self->set_result("bison $prog_version"); $conf->data->set( $util => $prog ); - return $self; + return 1; } else { $self->set_result('yacc program does not exist or does not understand --version'); Index: config/inter/ops.pm =================================================================== --- config/inter/ops.pm (revision 21533) +++ config/inter/ops.pm (working copy) @@ -62,7 +62,7 @@ $conf->data->set( ops => $ops ); - return $self; + return 1; } 1; Index: config/init/miniparrot.pm =================================================================== --- config/init/miniparrot.pm (revision 21533) +++ config/init/miniparrot.pm (working copy) @@ -35,7 +35,7 @@ unless ( $conf->options->get('miniparrot') ) { $self->set_result('skipped'); - return $self; + return 1; } $conf->data->set( @@ -80,7 +80,7 @@ $conf->data->set( "i_$_" => 1 ); } - return $self; + return 1; } 1; Index: config/init/hints.pm =================================================================== --- config/init/hints.pm (revision 21533) +++ config/init/hints.pm (working copy) @@ -60,7 +60,7 @@ print "]" if $verbose; - return $self; + return 1; } 1; Index: config/init/install.pm =================================================================== --- config/init/install.pm (revision 21533) +++ config/init/install.pm (working copy) @@ -130,7 +130,7 @@ doc_dir => $datadir . "/doc/parrot", ); - return $self; + return 1; } sub assign_dir { Index: config/init/manifest.pm =================================================================== --- config/init/manifest.pm (revision 21533) +++ config/init/manifest.pm (working copy) @@ -31,7 +31,7 @@ if ( $conf->options->get('nomanicheck') ) { $self->set_result('skipped'); - return $self; + return 1; } my @missing = ExtUtils::Manifest::manicheck(); @@ -48,7 +48,7 @@ return; } - return $self; + return 1; } 1; Index: config/init/defaults.pm =================================================================== --- config/init/defaults.pm (revision 21533) +++ config/init/defaults.pm (working copy) @@ -231,7 +231,7 @@ # remember corrected archname - jit.pm was using $Config('archname') $conf->data->set( 'archname', $archname ); - return $self; + return 1; } sub find_perl_headers { Index: config/init/headers.pm =================================================================== --- config/init/headers.pm (revision 21533) +++ config/init/headers.pm (working copy) @@ -44,7 +44,7 @@ TEMP_nongen_headers => $TEMP_nongen_headers, ); - return $self; + return 1; } 1; Index: config/init/optimize.pm =================================================================== --- config/init/optimize.pm (revision 21533) +++ config/init/optimize.pm (working copy) @@ -65,7 +65,7 @@ print "(none requested) " if $conf->options->get('verbose'); } - return $self; + return 1; } 1; Index: config/auto/msvc.pm =================================================================== --- config/auto/msvc.pm (revision 21533) +++ config/auto/msvc.pm (working copy) @@ -45,7 +45,7 @@ unless ( defined $msvc{_MSC_VER} ) { $self->set_result('no'); $conf->data->set( msvcversion => undef ); - return $self; + return 1; } my $major = int( $msvc{_MSC_VER} / 100 ); @@ -54,7 +54,7 @@ print " (no) " if $verbose; $self->set_result('no'); $conf->data->set( msvcversion => undef ); - return $self; + return 1; } my $msvcversion = "$major.$minor"; @@ -75,7 +75,7 @@ $conf->data->add( " ", "ccflags", "-D_CRT_SECURE_NO_DEPRECATE" ); } - return $self; + return 1; } 1; Index: config/auto/aio.pm =================================================================== --- config/auto/aio.pm (revision 21533) +++ config/auto/aio.pm (working copy) @@ -64,7 +64,7 @@ $self->set_result('no'); } - return $self; + return 1; } 1; Index: config/auto/gdbm.pm =================================================================== --- config/auto/gdbm.pm (revision 21533) +++ config/auto/gdbm.pm (working copy) @@ -35,7 +35,7 @@ if ($without) { $conf->data->set( has_gdbm => 0 ); $self->set_result('no'); - return $self; + return 1; } my $cc = $conf->data->get('cc'); @@ -90,7 +90,7 @@ } $conf->data->set( has_gdbm => $has_gdbm ); # for gdbmhash.t and dynpmc.in - return $self; + return 1; } 1; Index: config/auto/cgoto.pm =================================================================== --- config/auto/cgoto.pm (revision 21533) +++ config/auto/cgoto.pm (working copy) @@ -29,7 +29,7 @@ if ( $conf->options->get('miniparrot') ) { $self->set_result('skipped'); - return $self; + return 1; } my ( $cgoto, $verbose ) = $conf->options->get(qw(cgoto verbose)); @@ -84,7 +84,7 @@ $self->set_result('no'); } - return $self; + return 1; } 1; Index: config/auto/headers.pm =================================================================== --- config/auto/headers.pm (revision 21533) +++ config/auto/headers.pm (working copy) @@ -31,7 +31,7 @@ if ( $conf->options->get('miniparrot') ) { $self->set_result('skipped'); - return $self; + return 1; } # perl5's Configure system doesn't call this by its full name, which may @@ -96,7 +96,7 @@ $conf->data->set( $flag => $pass ? 'define' : undef ); } - return $self; + return 1; } 1; Index: config/auto/inline.pm =================================================================== --- config/auto/inline.pm (revision 21533) +++ config/auto/inline.pm (working copy) @@ -64,7 +64,7 @@ $conf->data->set( inline => $test ); - return $self; + return 1; } 1; Index: config/auto/backtrace.pm =================================================================== --- config/auto/backtrace.pm (revision 21533) +++ config/auto/backtrace.pm (working copy) @@ -52,7 +52,7 @@ $self->set_result("no"); } - return $self; + return 1; } 1; Index: config/auto/funcptr.pm =================================================================== --- config/auto/funcptr.pm (revision 21533) +++ config/auto/funcptr.pm (working copy) @@ -54,7 +54,7 @@ $self->set_result('yes'); } - return $self; + return 1; } 1; Index: config/auto/socklen_t.pm =================================================================== --- config/auto/socklen_t.pm (revision 21533) +++ config/auto/socklen_t.pm (working copy) @@ -36,7 +36,7 @@ $self->set_result( $has_socklen_t ? 'yes' : 'no' ); $conf->data->set( has_socklen_t => $has_socklen_t, ); - return $self; + return 1; } 1; Index: config/auto/python.pm =================================================================== --- config/auto/python.pm (revision 21533) +++ config/auto/python.pm (working copy) @@ -50,7 +50,7 @@ } $conf->data->set( has_python_2_4 => $has_python_2_4 ); - return $self; + return 1; } 1; Index: config/auto/jit.pm =================================================================== --- config/auto/jit.pm (revision 21533) +++ config/auto/jit.pm (working copy) @@ -32,7 +32,7 @@ if ( $conf->options->get('miniparrot') ) { $self->set_result('skipped'); - return $self; + return 1; } my $verbose = $conf->options->get('verbose'); @@ -232,7 +232,7 @@ ); } - return $self; + return 1; } 1; Index: config/auto/cpu.pm =================================================================== --- config/auto/cpu.pm (revision 21533) +++ config/auto/cpu.pm (working copy) @@ -31,7 +31,7 @@ if ( $conf->options->get('miniparrot') ) { $self->set_result('skipped'); - return $self; + return 1; } my $verbose = $conf->options->get('verbose'); @@ -50,7 +50,7 @@ print "(no cpu specific hints)" if $verbose; } - return $self; + return 1; } 1; Index: config/auto/perldoc.pm =================================================================== --- config/auto/perldoc.pm (revision 21533) +++ config/auto/perldoc.pm (working copy) @@ -64,7 +64,7 @@ new_perldoc => $version == 2 ? 1 : 0 ); - return $self; + return 1; } 1; Index: config/auto/format.pm =================================================================== --- config/auto/format.pm (revision 21533) +++ config/auto/format.pm (working copy) @@ -67,7 +67,7 @@ nvsize => $nvsize ); - return $self; + return 1; } 1; Index: config/auto/isreg.pm =================================================================== --- config/auto/isreg.pm (revision 21533) +++ config/auto/isreg.pm (working copy) @@ -41,7 +41,7 @@ print( $test ? " (Yep) " : " (no) " ) if $conf->options->get('verbose'); $self->set_result( $test ? 'yes' : 'no' ); - return $self; + return 1; } 1; Index: config/auto/signal.pm =================================================================== --- config/auto/signal.pm (revision 21533) +++ config/auto/signal.pm (working copy) @@ -38,7 +38,7 @@ ); if ( defined $conf->options->get('miniparrot') ) { $self->set_result('skipped'); - return $self; + return 1; } cc_gen('config/auto/signal/test_1.in'); @@ -88,7 +88,7 @@ } close $O; - return $self; + return 1; } 1; Index: config/auto/pack.pm =================================================================== --- config/auto/pack.pm (revision 21533) +++ config/auto/pack.pm (working copy) @@ -100,7 +100,7 @@ AARGH } - return $self; + return 1; } 1; Index: config/auto/m4.pm =================================================================== --- config/auto/m4.pm (revision 21533) +++ config/auto/m4.pm (working copy) @@ -54,7 +54,7 @@ $conf->data->set( has_gnu_m4 => $has_gnu_m4 ); $self->set_result( $has_gnu_m4 ? 'yes' : 'no' ); - return $self; + return 1; } 1; Index: config/auto/gmp.pm =================================================================== --- config/auto/gmp.pm (revision 21533) +++ config/auto/gmp.pm (working copy) @@ -34,7 +34,7 @@ if ($without) { $conf->data->set( has_gmp => 0 ); $self->set_result('no'); - return $self; + return 1; } my $cc = $conf->data->get('cc'); @@ -96,7 +96,7 @@ $self->set_result('no'); } - return $self; + return 1; } 1; Index: config/auto/readline.pm =================================================================== --- config/auto/readline.pm (revision 21533) +++ config/auto/readline.pm (working copy) @@ -91,7 +91,7 @@ $self->set_result('no'); } - return $self; + return 1; } 1; Index: config/auto/attributes.pm =================================================================== --- config/auto/attributes.pm (revision 21533) +++ config/auto/attributes.pm (working copy) @@ -51,7 +51,7 @@ for my $maybe_attr (@potential_attributes) { $self->try_attr( $conf, $maybe_attr ); } - return $self; + return 1; } sub try_attr { Index: config/auto/env.pm =================================================================== --- config/auto/env.pm (revision 21533) +++ config/auto/env.pm (working copy) @@ -66,7 +66,7 @@ $self->set_result('no'); } - return $self; + return 1; } 1; Index: config/auto/warnings.pm =================================================================== --- config/auto/warnings.pm (revision 21533) +++ config/auto/warnings.pm (working copy) @@ -96,7 +96,7 @@ for my $maybe_warning (@potential_warnings) { $self->try_warning( $conf, $maybe_warning ); } - return $self; + return 1; } =item C<try_warning> Index: config/auto/gc.pm =================================================================== --- config/auto/gc.pm (revision 21533) +++ config/auto/gc.pm (working copy) @@ -123,7 +123,7 @@ } print(" ($gc) ") if $conf->options->get('verbose'); - return $self; + return 1; } 1; Index: config/auto/memalign.pm =================================================================== --- config/auto/memalign.pm (revision 21533) +++ config/auto/memalign.pm (working copy) @@ -33,14 +33,14 @@ if ( $conf->options->get('miniparrot') ) { $conf->data->set( memalign => '' ); $self->set_result('skipped'); - return $self; + return 1; } if ( defined $conf->data->get('memalign') ) { # already set; leave it alone $self->set_result('already set'); - return $self; + return 1; } my $test = 0; @@ -84,7 +84,7 @@ print( $test ? " (Yep:$f) " : " (no) " ) if $verbose; $self->set_result( $test ? 'yes' : 'no' ); - return $self; + return 1; } 1; Index: config/auto/va_ptr.pm =================================================================== --- config/auto/va_ptr.pm (revision 21533) +++ config/auto/va_ptr.pm (working copy) @@ -46,7 +46,7 @@ $self->set_result($va_type); $conf->data->set( va_ptr_type => $va_type ); - return $self; + return 1; } 1; Index: config/auto/gcc.pm =================================================================== --- config/auto/gcc.pm (revision 21533) +++ config/auto/gcc.pm (working copy) @@ -48,7 +48,7 @@ # which should have been caught by the 'die' above. unless ( exists $gnuc{__GNUC__} ) { $conf->data->set( gccversion => undef ); - return $self; + return 1; } my $major = $gnuc{__GNUC__}; @@ -59,7 +59,7 @@ print " (no) " if $verbose; $self->set_result('no'); $conf->data->set( gccversion => undef ); - return $self; + return 1; } if ( $major =~ tr/0-9//c ) { undef $major; # Don't use it @@ -379,7 +379,7 @@ gccversion => undef ); - return $self; + return 1; } $conf->data->set( @@ -391,7 +391,7 @@ $conf->data->set( HAS_aligned_funcptr => 0 ) if $^O eq 'hpux'; - return $self; + return 1; } 1; Index: config/auto/sizes.pm =================================================================== --- config/auto/sizes.pm (revision 21533) +++ config/auto/sizes.pm (working copy) @@ -50,7 +50,7 @@ float8_t => 'double', ); $self->set_result('using miniparrot defaults'); - return $self; + return 1; } cc_gen('config/auto/sizes/test_c.in'); @@ -198,7 +198,7 @@ cc_clean(); - return $self; + return 1; } 1; Index: config/auto/byteorder.pm =================================================================== --- config/auto/byteorder.pm (revision 21533) +++ config/auto/byteorder.pm (working copy) @@ -52,7 +52,7 @@ die "Unsupported byte-order [$byteorder]!"; } - return $self; + return 1; } 1; Index: config/auto/alignptrs.pm =================================================================== --- config/auto/alignptrs.pm (revision 21533) +++ config/auto/alignptrs.pm (working copy) @@ -31,7 +31,7 @@ if ( $conf->options->get('miniparrot') ) { $self->set_result('skipped'); - return $self; + return 1; } $self->set_result(''); @@ -67,7 +67,7 @@ $self->set_result( $self->result . " $align byte" ); $self->set_result( $self->result . 's' ) unless $align == 1; - return $self; + return 1; } 1; Index: config/auto/snprintf.pm =================================================================== --- config/auto/snprintf.pm (revision 21533) +++ config/auto/snprintf.pm (working copy) @@ -44,7 +44,7 @@ } print " ($res) " if $conf->options->get('verbose'); - return $self; + return 1; } 1; Index: config/gen/languages.pm =================================================================== --- config/gen/languages.pm (revision 21533) +++ config/gen/languages.pm (working copy) @@ -46,7 +46,7 @@ expand_gmake_syntax => 1, ); - return $self; + return 1; } 1; Index: config/gen/parrot_include.pm =================================================================== --- config/gen/parrot_include.pm (revision 21533) +++ config/gen/parrot_include.pm (working copy) @@ -176,7 +176,7 @@ } $conf->data->set( TEMP_gen_pasm_includes => join( "\t\\\n\t", @generated ) ); - return $self; + return 1; } 1; Index: config/gen/core_pmcs.pm =================================================================== --- config/gen/core_pmcs.pm (revision 21533) +++ config/gen/core_pmcs.pm (working copy) @@ -30,7 +30,7 @@ $self->generate_c($conf); $self->generate_pm($conf); - return $self; + return 1; } sub generate_h { Index: config/gen/config_h.pm =================================================================== --- config/gen/config_h.pm (revision 21533) +++ config/gen/config_h.pm (working copy) @@ -139,7 +139,7 @@ move_if_diff( "$hh.tmp", $hh ); - return $self; + return 1; } 1; Index: config/gen/icu.pm =================================================================== --- config/gen/icu.pm (revision 21533) +++ config/gen/icu.pm (working copy) @@ -98,7 +98,7 @@ icu_dir => '', ); $self->set_result("no") unless defined $self->result; - return $self; + return 1; } my $ok = 1; @@ -166,7 +166,7 @@ $self->set_result("yes"); - return $self; + return 1; } 1; Index: config/gen/platform.pm =================================================================== --- config/gen/platform.pm (revision 21533) +++ config/gen/platform.pm (working copy) @@ -280,7 +280,7 @@ copy_if_diff( "config/gen/platform/platform_interface.h", "include/parrot/platform_interface.h" ); - return $self; + return 1; } 1; Index: config/gen/cpu.pm =================================================================== --- config/gen/cpu.pm (revision 21533) +++ config/gen/cpu.pm (working copy) @@ -31,7 +31,7 @@ if ( $conf->options->get('miniparrot') ) { $self->set_result('skipped'); - return $self; + return 1; } my $verbose = $conf->options->get('verbose'); @@ -48,7 +48,7 @@ print "(no cpu specific hints)" if $verbose; } - return $self; + return 1; } 1; Index: config/gen/PodText.pm =================================================================== --- config/gen/PodText.pm (revision 21533) +++ config/gen/PodText.pm (working copy) @@ -87,7 +87,7 @@ $self->set_result( $count ? 'done' : 'no files to process' ); - return $self; + return 1; } 1; Index: config/gen/revision.pm =================================================================== --- config/gen/revision.pm (revision 21533) +++ config/gen/revision.pm (working copy) @@ -38,7 +38,7 @@ $self->set_result("done"); } - return $self; + return 1; } 1; Index: config/gen/makefiles.pm =================================================================== --- config/gen/makefiles.pm (revision 21533) +++ config/gen/makefiles.pm (working copy) @@ -71,7 +71,7 @@ $self->makefiles($conf); $self->cflags($conf); - return $self; + return 1; } sub cflags { Index: config/gen/config_pm.pm =================================================================== --- config/gen/config_pm.pm (revision 21533) +++ config/gen/config_pm.pm (working copy) @@ -94,7 +94,7 @@ close $IN or die "Can't close config_lib.in: $!"; close $OUT or die "Can't close config_lib.pasm: $!"; - return $self; + return 1; } 1;