Michael G Schwern wrote:
On Wed, Sep 28, 2005 at 12:55:47AM -0400, John E. Malmberg wrote:
From my tests on Perl 5.8.7, the modules that need to be changed to test
for the existence of these new methods and if they are defined to act on
the results are:
Just looking at that list of modules that need VMS-specific code, without
even knowing what has to be changed, leaves me feeling its untenable. Folks
can't be expected to put in that much platform specific code, particularly
a platform most people don't have access to and cannot test against. If
this is just for the core, I'd hate to see what would be necessary for CPAN.
There's got to be a better way.
Generally the user will set the mode that Perl runs in before they start
it up, and this since the default is the traditional behavior, existing
scripts and CPAN modules will continue to work.
It the user needs a CPAN module to work in the newer mode, then they
will either have to fix it, or convince someone else to.
One of the intents of the new VMS::Filespec::unix_report and unix_only
modes is so that less or no modifications are needed for CPAN modules
and Perl scripts that have not yet been ported to VMS to get them there.
There may be ripple effects for VMS Perl maintainers for some time to
get the CPAN modules that they care about to take advantage of the new
modes. But because these new modes are not the default, a rapid change
is not forced to them.
The main reason for updating the core modules is because they are core,
and should be expected to work in any mode that VMS is in.
This also makes it simpler to just change one of the VMS modes and rerun
the entire set of tests to make sure that it is properly exercised.
What sort of patching is necessary to take into account the new VMS::Filespec
work? Can it instead be done by making File::Spec smarter?
Most of the changes are in File::Spec to make it smarter. Cwd also
needs an big assist, particularly to support symbolic links on VMS.
Is it simply adding more VMS hacks to work around older VMS hacks?
Except for the MakeMaker code, it is usually more a case of
conditionally disabling the older VMS hacks for when they are not needed.
The MakeMaker code is special because of it's overrides of the
File::Spec module, and that the resulting DESCRIP.MMS file needs to have
the file specifications in VMS new or traditional syntax.
In some cases, new tests may need to be added to both test the new
modes, and to make bugs that I needed to fix more visible, in case a
later change re-introduces them.
-John
[EMAIL PROTECTED]
Personal Opinion Only