On Fri, Jul 15, 2005 at 12:49:01AM -0400, John E. Malmberg wrote:
> >Ya know, if there's this many differences between your flavor of VMS 
> >and the more traditional flavor rather than trying to wedge them both
> > into File::Spec::VMS and MM_VMS you should probably make a new 
> >subclass. File::Spec::VMS::Unix or something.
> 
> Unfortunately making such a change is beyond my skill set.  I do not
> know how to make such a modification to Perl.

Unless a white knight comes in to clean this all up, I can't see how it could
be applied to the mainline. :(


> Actually it is not "what sort of VMS am I on?" but how has VMS been told 
> to behave for this running of Perl.

You're running smack into a flawed assumption throughout much Perl code
which trying to nail down things about the operating environment based
solely on $^O.  Breaking that assumption opens a barrel of worms.  Its
a barrel that needs to be opened, just letting you know what you're getting
into.


> Careful of what you ask for.  :-)  The main missing piece seems to be 
> that a template is missing for GNU MAKE, and that MakeMaker needs to 
> know that for that flavor of VMS it needs to make sure that all the 
> filenames are in UNIX format.  Of course the Mutant variant that I have 
> now will give it the names that way.
> 
<snip>
> 
> Since I do not think that MakeMaker can generate anything other than 
> MMK/MMS files on VMS right now, as IIRC, I saw that the description file 
> name was driven by the $^O and not by the make program name in at least 
> one place.
> 
> Now with the version of Perl that can run with UNIX emulation mode, all 
> MakeMaker needs to know that if the make program is MMK or MMS it should 
> output the files in VMS format, but be prepared that filenames could be 
> returned in UNIX or VMS format.
> 
> But when outputting to other make programs it could assume that it would 
> be supplied all the file names in UNIX format and not need VMS specific 
> actions at all.

You're right, MakeMaker currently cannot output anything but MMS/K on VMS.
As far as its concerned when $^O eq 'VMS' you're using MMS/K.  And when
$^O eq 'MSWin32' you're using nmake or dmake.  This is a deep assumption in
the code.  Breaking this assumption will require a whole lot more code 
change than I'd like, MakeMaker is very fragile and time consuming to test.

That said, its something I've been wanting to do for a long time but it
has a high probability of breaking existing code and will be an enormous 
time suck.

Doom doom doom doom.


-- 
Michael G Schwern     [EMAIL PROTECTED]     http://www.pobox.com/~schwern
You are wicked and wrong to have broken inside and peeked at the
implementation and then relied upon it.
        -- tchrist in <[EMAIL PROTECTED]>

Reply via email to