develooper Front page | perl.qa | Postings from December 2009

Re: What's up with "No targets specified and no makefile found"?

Thread Previous | Thread Next
From:
Michael G Schwern
Date:
December 22, 2009 14:24
Subject:
Re: What's up with "No targets specified and no makefile found"?
Message ID:
4B3146EF.4000105@pobox.com
Joshua ben Jore wrote:
> The just-released EU::MM 6.56 repeats this pattern frequently:
> 
>     open my($fh), '>', ...
>         or croak("Can't open ... for writing: $!");
>     ...
>     print $fh ...; # <<< no error checking
>     close $fh ...; # <<< no error checking
> 
> Grepping for code:
> 
>     egrep -rnH 'print '\\'$[^ ;]+ ' ExtUtils-MakeMaker-6.56
> 
> Where is EU::MM's version control? I'd like to submit a patch adding a bunch of:
> 
>     or croak("Can't write '$fn': $!");

Putting in error checking at some key locations is fine, but the prospect of 
adding `or die "Can't print $foo: $!"` to every print and close makes me want 
to claw my eyeballs out.  Its unfortunate MakeMaker can't rely on autodie and 
that autodie can't override print.

Since almost nothing checks for print and close failure, and I don't blame 
them its a pain in the ass, out of disk is a veritable minefield of silent 
errors.  Scattering error checking inside MakeMaker is sort of like checking 
the ground in front of you and then merrily marching forward.  Even full error 
checking inside MakeMaker will still leave you to blow up somewhere else, 
probably in the tests.

Fortunately there is one key location where MakeMaker does almost all its 
writing to disk, ExtUtils::MakeMaker->flush.  A simple patch to check that 
would be lovely.  If you want to write and insert a safe _print() wrapper 
method and scatter that around that's fine, too.

MakeMaker's version control is listed in the META.yml and on search.cpan.org.

Does the CPAN testers code have out of disk checks?  If not, before checking 
each distribution it could try to write a decently sized file to the build 
directory to check.  If it fails, halt the build and inform the admin.


-- 
Stabbing you in the face for your own good.

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About