Craig A. Berry wrote:
On Wed, Nov 12, 2008 at 10:13 PM, Michael G Schwern <[EMAIL PROTECTED]> wrote:
John E. Malmberg wrote:
Putting a print STDERR statement shows that is not the case, that the
methods of those names contained in File::Spec::VMS are used unless they
are called by MM_VMS.
The internal calls to eliminate_macros() and fixpath() should simply be
removed from File::Spec::VMS. They're only used to deal with make macros, its
a very MakeMaker specific thing.
They were left in place so that new versions of File::Spec would continue to
work with older (pre 6.11 which is from perl 5.8.0 and older) versions of
MakeMaker. That was five and a half years ago. It's safe to remove them.
Whether it's safe or not it's certainly worth a try. There are a
*lot* more tests now for MM, File::Spec, and all the core modules that
use File::Spec than there were five and half years ago, so if removing
these breaks something I think we'd know pretty quickly.
I am not planning on removing those routines for the default mode of
VMS, but will not be using them when the DECC$EFS_CHARSET mode is enabled.
In addition to eliminating macros, they can change the file
specification, and existing scripts ported to VMS may expect this file
spec change.
My goal with the EFS_CHARSET and REPORT_UNIX modes is to be able to run
generic Perl scripts with out having to modify them specifically for
VMS, as that is what I am encountering on open source build procedures.
Now about MM_VMS, based on previous e-mail discussions, these routines
exist because VMS PERL by default does not map the %ENV hash to DCL
shell symbols.
If those specific $ENV values put in the makefile where exported using
the DCLsym module in the format MMK/MMS could use, then MM_VMS would not
need to be eliminating the macros.
Now with the macros elimninated on VMS, the resulting makefile can be
run outside of the script that generated it, and it will still work.
But if it were changed to have the environment variables set by perl,
then the resulting makefile would probably only be runnable by the
script that generated it, because that is also what set the environment
variables. But that should also be the case with UNIX.
Or am I missing something here?
Also, MMK/MMS should be able to use UNIX filename syntax, as long as
every file reference is in UNIX format. That should be able to simplify
the work in getting mm_vms to support the extended character set mode.
-John
[EMAIL PROTECTED]
Personal Opinion Only