Skip Menu |

Preferred bug tracker

Please visit the preferred bug tracker to report your issue.

This queue is for tickets about the PPI CPAN distribution.

Report information
The Basics
Id: 26591
Status: resolved
Priority: 0/
Queue: PPI

People
Owner: Nobody in particular
Requestors: PEdwards [...] factset.com
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



Subject: VMS patch for PPI 1.118
Date: Mon, 23 Apr 2007 17:47:15 -0400
To: bug-PPI [...] rt.cpan.org
From: Peter Edwards <PEdwards [...] factset.com>
Hello and thanks for PPI, To get PPI 1.118 to pass it's tests on VMS with Perl 5.87 I needed to make the following changes: ==== ppi-1_118/lib/ppi/cache.pm ==== 227c227,231 < Storable::lock_nstore( $object, $file ); --- Show quoted text
> if($^O eq 'VMS'){ > Storable::nstore( $object, $file ); > } else { > Storable::lock_nstore( $object, $file ); > }
238,239c242,247 < my $object = Storable::lock_retrieve( $file ); < --- Show quoted text
> my $object = undef; > if($^O eq 'VMS'){ > $object = Storable::retrieve( $file ); > } else { > $object = Storable::lock_retrieve( $file ); > }
There is no lock support for Storable on VMS, it might be better to check Config, Storable has CAN_FLOCK VMS Config 'd_fcntl_can_lock' => undef, 'd_flock' => undef, 'd_flockproto' => undef, 'd_lockf' => undef, ==== ppi-1_118/t/15_transform.t ==== 19c19,21 < unlink $_ if -e $_; --- Show quoted text
> if(-e $_){ > 1 while(unlink $_); > }
80,82c82,84 < my $output = "$input.out"; < my $copy = "$input.copy"; < my $copy2 = "$input.copy2"; --- Show quoted text
> my $output = $input."_out"; > my $copy = $input."_copy"; > my $copy2 = $input."_copy2";
The above change should probably have been more helpful for other OS's, I think perlport suggests if you want to be very safe to stick with 8.3 for filenames, I just needed to remove the 2nd period/dot. VMS also has file versioning, so the "1 while(unlink $_)" is for that. ==== ppi-1_118/t/18_cache.t ==== 18,19c18,19 < my $this_file = catdir( 't', 'data', '03_empiric', 'test.dat' ); < my $cache_dir = catdir( 't', 'data', '18_cache' ); --- Show quoted text
> my $this_file = File::Spec::Unix->catfile( 't', 'data', '03_empiric',
'test.dat' ); Show quoted text
> my $cache_dir = File::Spec::Unix->catdir( 't', 'data', '18_cache' );
This last change is a bit odd, I should have wrapped the use of File::Spec::Unix in a "if($^O eq 'VMS')", I needed to use UNIX style file and dir so that File::Remove worked, this is required because of the behaviour of some of the File modules File::Remove uses. Perl on VMS supports both UNIX and VMS file syntax (very confusing). Line 18 also has a change from "catdir" to "catfile". I did read, http://search.cpan.org/~adamk/PPI-1.199_02/lib/PPI.pm#SUPPORT , I do have a CPAN id, it's STIGPJE (non published), I'm happy to clean up these patches and apply them if you wish to grant access to the repository. Cheers, Peter (Stig) Edwards
I've applied an modified version of your patches in 1.211, if there's any further issues on VMS let me know.