Re: MM_VMS and File::Spec::VMS.pm intertanglement.

[email protected] ("John E. Malmberg")
Newsgroups perl.perl5.porters,perl.vmsperl
Message-ID <[email protected]>
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.