Greetings,
I found a problem with the main descrip.mms file and
its handling of perly.c and perly.h (the additional /NoConfirm
qualifier change was a bit too aggressive about getting
rid of the $(MMS$TARGET) macros). I've also included
a potential fix for the test failure in:
ext/Filter/t/call....................FAILED at test 30
Here it is:
diff -ru perl_18376/ext/Filter/t/call.t perl/ext/Filter/t/call.t
--- perl_18376/ext/Filter/t/call.t Sun Dec 8 19:26:42 2002
+++ perl/ext/Filter/t/call.t Tue Dec 31 16:43:30 2002
@@ -806,10 +806,12 @@
my $a = `$Perl "-I." $Inc -e "no ${module6}; print q{ok}"`;
ok(29, ($? >>8) == 0);
+chomp( $a ) if $^O eq 'VMS';
ok(30, $a eq 'ok');
$a = `$Perl "-I." $Inc $filename2`;
ok(31, ($? >>8) == 0);
+chomp( $a ) if $^O eq 'VMS';
ok(32, $a eq 'ok');
}
diff -ru perl_18376/vms/descrip_mms.template perl/vms/descrip_mms.template
--- perl_18376/vms/descrip_mms.template Wed Dec 11 04:57:06 2002
+++ perl/vms/descrip_mms.template Tue Dec 31 16:42:42 2002
@@ -1174,9 +1174,9 @@
# VMS uses modified perly.[ch] with tags for globaldefs if using DEC compiler
perly.c : [.vms]perly_c.vms
- Copy/NoConfirm/Log $(MMS$SOURCE) []
+ Copy/NoConfirm/Log $(MMS$SOURCE) $(MMS$TARGET)
perly.h : [.vms]perly_h.vms
- Copy/NoConfirm/Log $(MMS$SOURCE) []
+ Copy/NoConfirm/Log $(MMS$SOURCE) $(MMS$TARGET)
.ifdef LINK_ONLY
.else
End of Patch.
Would there be any objection to sending that in
to the proper authorities?
I also found a way to work around the problem with this failure:
lib/ExtUtils/t/Constant..............FAILED at test 27
but I am not too certain about which MakeMaker is in perl@18376
and also I am not certain if our "clean" target should or should not
be removing the descrip.mms file (or even if it can). Hence I'd appreciate
receiving some commentay on this patch before I proceed:
--- perl_18376/lib/ExtUtils/t/Constant.t Thu Aug 29 07:26:11 2002
+++ perl/lib/ExtUtils/t/Constant.t Tue Dec 31 16:45:04 2002
@@ -44,7 +44,7 @@
# Renamed by make clean
my $makefile = ($^O eq 'VMS' ? 'descrip' : 'Makefile');
my $makefile_ext = ($^O eq 'VMS' ? '.mms' : '');
-my $makefile_rename = $makefile . ($^O eq 'VMS' ? '.mms' : '.old');
+my $makefile_rename = $makefile . ($^O eq 'VMS' ? '.mms_old' : '.old');
my $output = "output";
my $package = "ExtTest";
@@ -217,7 +217,12 @@
}
$realtest++;
- check_for_bonus_files ('.', @$files, $output, $makefile_rename, '.', '..');
+ if ( $^O eq 'VMS' ) {
+ check_for_bonus_files ('.', @$files, $output, "${makefile}${makefile_ext}",
+$makefile_rename, '.', '..');
+ }
+ else {
+ check_for_bonus_files ('.', @$files, $output, $makefile_rename, '.', '..');
+ }
rename $makefile_rename, $makefile
or die "Can't rename '$makefile_rename' to '$makefile': $!";
End of Possible patch.
By the way is anyone else upset that on Unix you can escape
perl's globbing, e.g. in the perl source tree:
unix_prompt% ./perl -e 'print join("< >",@ARGV),"\n"' perl.*
perl.c< >perl.h< >perl.h.orig< >perl.o
unix_prompt% ./perl -e 'print join("< >",@ARGV),"\n"' "perl.*"
perl.*
But that on VMS you cannot?
$ perl -e "print join('< >',@ARGV),""\n"";" perl.*
perl.c< >perl.exe< >perl.h< >perl.h_orig< >perl.obj
$ perl -e "print join('< >',@ARGV),""\n"";" "perl.*"
perl.c< >perl.exe< >perl.h< >perl.h_orig< >perl.obj
I have a patch to perl 5.8.0 that allows skipping the call
to expand_wild_cards() within the argv loop in getredirection() in vms.c
but unfortunatelty it does so via a new -g switch for perl.
I think a better approach would be to make expand_wild_cards()
just a bit smarter about double quotation mark stripping in the case
of file spec globs. Unfortunately I've not yet had time to code it
up. Would anyone else be interested?
Peter Prymmer