Hello,
Show quoted text> The one thing I did not do is to rename Twig.pm.slow. Is this really
> necessary? (the file is not used in installing the module, Twig.pm is
> generated from it, and it is there for people who want to send
> patches as they should be done on Twig.pm.slow instead of Twig.pm).
> What does having this file in the distribution cause on VMS?
> mirod
Valid charcacters for VMS filenames are /[A-Z0-0$_-]/, they are of the
format name.extension;version (max length for name and extension are
39 characters). perlport also mentions the 8.3 convention, for
maximum portability, onerous a burden though this may appear.
I can't actually remember why I changed Twig.pm.slow, it's likely
it was just because I wanted to 'fix' the manifest errors. It's
also likely that I know if any file in a dist is an invalid
filename on VMS, I know that 99% of the time I'm going to need
to change the filename to get things to build and test.
I just downloaded 3.24, and it's failing a couple of tests, (nothing
to do with Twig.pm.slow).
t/test_errors.......................
%DCL-W-IVVERB, unrecognized command verb - check validity and spelling
\}\
-e syntax OK
cannot slurp 't/error.log': no such file or directory
%RMS-E-FNF, file not found
dubious
Test returned status 98962 (wstat 512, 0x200)
(VMS status is 98962)
DIED. FAILED test 110
Failed 1/110 tests, 99.09% okay
From line 290 of test_errors.t
290 { my $error="t/error.log";
I edited this to:
{ my $error=File::Spec->catfile('t','error.log');
use Config;
my $secure_perl_path = $Config{perlpath};
if ($^O ne 'VMS') {
$secure_perl_path .= $Config{_exe} unless $secure_perl_path
=~ m/$Config{_exe}$/i;
}
my $q= ( ($^O eq "MSWin32") || ($^O eq 'VMS') ) ? '"' : "'";
my $cmd;
if ($^O eq 'VMS') {
$cmd = "$secure_perl_path ${q}-CSDAL${q} ${q}-
MXML::Twig${q} -e $q close STDERR; open( STDERR, qq{>$error}) or die qq
{cannot open $error (for STDERR)}; open( FH, qq{$secure_perl_path -p -
e 1 t/test_new_features_3.22_xml |}) or die qq($!); XML::Twig->nparse(
\\*FH); die qq{OK};$q";
} else {
$cmd = "$^X -CSDAL -MXML::Twig -e'close STDERR; open(
STDERR, qq{>$error}) or die qq{cannot open $error (for STDERR)}; open(
FH, qq{$^X -p -e1 t/test_new_features_3.22.xml |}) or die $!;
XML::Twig->nparse( \\*FH); die qq{OK\n};'";
}
system $cmd;
matches( slurp( $error), "^cannot parse the output of a
pipe", 'parse a pipe with perlIO layer set to UTF8 (RT #17500)');
NOTE the filename change: test_new_features_3.22_xml due to only one
period being allowed. I've only tested this on VMS.
After this change test 110 fails thus:
not ok 110
parse a pipe with perlIO layer set to UTF8 (RT #17500): expected to
match /^cannot parse the output of a pipe/, got 'OK at -e line 1.
'
I've not had a chance to read and fully understand
http://rt.cpan.org/Public/Bug/Display.html?id=17500 yet.
But thought I'd let you know.
Thanks,
Peter (Stig) Edwards