At 12:05 PM -0500 9/29/07, John E. Malmberg wrote: >Ken Williams wrote: >> >>On Sep 28, 2007, at 11:42 PM, Craig A. Berry wrote: >> >>>It applied cleanly against blead, where I've checked it in as 31995. >>>I wonder if we've had some drift between blead and the independent >>>version. >> >> >>Indeed we have, here are the VMS-related outstanding differences. >>Could someone verify that the blead version is correct, and let me know who >>to assign credit to in the Changes file? >> >> -Ken >> >>diff -ur /Users/ken/Downloads/perl/bleadperl/lib/Module/Build/Base.pm >>lib/Module/Build/Base.pm >>--- /Users/ken/Downloads/perl/bleadperl/lib/Module/Build/Base.pm >>2007-09-28 23:43:35.000000000 -0500 >>+++ lib/Module/Build/Base.pm 2007-09-28 20:57:28.000000000 -0500 >>@@ -447,7 +446,10 @@ >> my $exe = $c->get('exe_ext'); >> foreach my $thisperl ( @potential_perls ) { >> >>- if (defined $exe and $proto->os_type ne 'VMS') { >>+ if ($proto->is_vmsish) { >>+ # VMS might have a file version at the end >>+ $thisperl .= $exe unless $thisperl =~ m/$exe(;\d+)?$/i; >>+ } elsif (defined $exe) { >> $thisperl .= $exe unless $thisperl =~ m/$exe$/i; >> } > >The the newer code "+" is correct, as there may be a file version present, and >if so, it should be preserved.
The code preceded by plus signs is actually the older code that is not in blead and it was cut out intentionally. I forget the exact details but attempting to parse version numbers causes more problems than it solves. >>diff -ur /Users/ken/Downloads/perl/bleadperl/lib/Module/Build/ >>Platform/VMS.pm lib/Module/Build/Platform/VMS.pm >>--- /Users/ken/Downloads/perl/bleadperl/lib/Module/Build/Platform/ VMS.pm >>2007-09-28 23:43:35.000000000 -0500 >>+++ lib/Module/Build/Platform/VMS.pm 2007-09-28 20:51:56.000000000 -0500 >>@@ -195,9 +195,8 @@ >> >> # Need to create with the same name as DynaLoader will load with. >> if (defined &DynaLoader::mod2fname) { >>- my $file = $$spec{module_name} . '.' . $self->{config}->get ('dlext'); >>- $file =~ tr/:/_/; >>- $file = DynaLoader::mod2fname([$file]); >>+ my $file = DynaLoader::mod2fname([$$spec{base_name}]); >>+ $file .= '.' . $self->{config}->get('dlext'); >> $$spec{lib_file} = File::Spec->catfile($$spec{archdir}, $file); >> } > >Apparently mod2fname on VMS for deals with conversion of the ":". This >appears to be one of Craig's fixes. > >>@@ -220,36 +219,6 @@ >> return $result; >> } >> >>-=item dist_dir >>- >>-Inherit the standard version but replace embedded dots with underscores >>because >>-a dot is the directory delimiter on VMS. >>- >>-=cut >>- >>-sub dist_dir { >>- my $self = shift; >>- >>- my $dist_dir = $self->SUPER::dist_dir; >>- $dist_dir =~ s/\./_/g; >>- return $dist_dir; >>-} > >This is right for ODS-2 volumes, I think it will need to be fixed on ODS-5 as >dots are allowed inside of directory specifications. The fact that on ODS-5 you can have a dot in a directory name does not mean that you should or that you have to. Since dot is the directory delimiter, that would be like having a slash in a directory name on UNIX; probably possible with proper escaping, but gosh what a pain. >>-=item man3page_name >>- >>-Inherit the standard version but chop the extra manpage delimiter off the >>front if >>-there is one. The VMS version of splitdir('[.foo]') returns '', 'foo'. >>- >>-=cut >>- >>-sub man3page_name { >>- my $self = shift; >>- >>- my $mpname = $self->SUPER::man3page_name( shift ); >>- my $sep = $self->manpage_separator; >>- $mpname =~ s/^$sep//; >>- return $mpname; >>-} > >That one was first added by Craig in: > >http://public.activestate.com/cgi-bin/perlbrowse/p/31619 > >I could not get it to work until I broke it up to assign the manpage_separator >to a separate variable, and then put the variable in the regex. Yes, John's change on top of mine is what's needed and is what's now in blead. -- ________________________________________ Craig A. Berry mailto:[EMAIL PROTECTED] "... getting out of a sonnet is much more difficult than getting in." Brad Leithauser