This, admittedly, is an edge case.

I was testing the html_cleanup branch tonight and, after getting PASS on 'make test', proceeded to 'make codetest'. I got one failure in t/codingstd/perlcritic.t:

# Code before strictures are enabled at tools/docs/make_html_docs.pl line 25

The reason why code is appearing in this file before strictures are enabled is that strictures are never *explicitly* enabled in this program. Instead, we have:

  use 5.12.0;

... which, IIRC, enables strictures by default. But our Perl::Critic policy probably (haven't peered underneath the hood), probably expects and explicit

  use strict;

... and, in fact, adding that one line right after use 5.12.0 causes t/codingstd/perlcritic.t to PASS.

The question then arises, why are we requiring Perl 5.12 for this program. AFAICT, there is no Perl 5.10 or 5.12 syntax in the program. The program does, however, use File::Path::make_path() which is from a version of File::Path not found as core in earlier Perls. (The file uses JSON, but that's a non-core requirement.)

(Granted, I would love to be able to write Perl 5.12 code in Perl components of the Parrot distribution. But that's a discussion for another day.)

So, I feel we either must make this program Perl 5.8.4-compliant or must modify our Perl::Critic policy to not look for 'use strict' if a program is running under Perl 5.12 or later.

Suggestions?

Thank you very much.
kid51

_______________________________________________
http://lists.parrot.org/mailman/listinfo/parrot-dev

Reply via email to