Re: Perl 5.12.1 build report

"Craig A. Berry" <[email protected]>
Newsgroups gmane.comp.lang.perl.ports.vms
Message-ID <[email protected]>
On Jun 24, 2010, at 10:45 AM, Mark Berryman wrote:

> At the end of this message is a list of the extensions I have  
> installed so far.  These are the issues I encountered with this  
> installation:
>
> 1. The file SV.C has an uncorrected questionable compare left in its  
> UTF8 code.  This can be changed to a simple compare to zero.

Yeah, and there are some more in the Encode extension.  They are  
informationals and haven't been a top priority to stomp on.

> 2. The file git_version.h is not copied to the installation  
> directory.  It is referenced by some extensions, HTML::Parser being  
> an example.

That sounds like a genuine bug.  I think it should get installed.

> 3. Extensions that use inc::Module::Install fail to build an MMS  
> file.  I have to rewrite them to use ExtUtils::MakeMaker.

Right. Module::Install pulls filenames from File::Spec in native  
syntax and then pastes them together with slashes.  That obviously  
doesn't work and I haven't had the time and energy to fight that battle.

> 4. Too many extensions like to use labels that differ only in case  
> or reference external libraries that are built with / 
> names=(as_is,short).  By editing 3 include files in Perl, extern.h,  
> perl.h, and xsub.h in PERL_ROOT:[.LIB.VMS_arch.5_12_1.CORE], to set  
> the NAMES pragma to uppercase at the beginning of the file and  
> restore it at the end, I am able to modify the generated DESCRIP.MMS  
> file of the extension being built to include the names=(as_is,short)  
> switch and build the extension without difficulty.  I believe this  
> would be worth doing as part of the standard installation.  It would  
> also be nice if there were an option to add this switch into the  
> generated DESCRIP.MMS automatically.

You can get /NAMES=AS_IS by configuring the Perl build with:

$ @configure -"Dbe_case_sensitive=Y" -"des"

xsubpp should do its own name shortening, but that can cause trouble  
with external libraries.  I'd consider making /NAMES=(AS_IS,SHORTENED)  
the default for 5.14.0, but need to give some thought to what will  
break.

> 5. The extension build process still believes any file that does not  
> conform to ODS-2 syntax has been renamed using underscores.  Since  
> my home directory is on an ODS-5 disk, and cpanplus places its work  
> files in the home directory, I frequently get reports of missing  
> files while processing makefile.pl.  The error appears to be  
> cosmetic, however, and the build still completes successfully.

I've seen that too -- the manifest checker defaults to the legacy  
behavior.  Like a lot of things, it could be changed with some effort.

>
> In all cases, cpanplus was used to start the build of the  
> extension.  In many cases, that was all it took.  When the build  
> aborted, usually due to reason 3, I stepped into the directory,  
> corrected the problem (editing makefile.pl, editing the resulting  
> descrip.mms when necessary, adding in any necessary external  
> libraries), then manually completed the install of the extension in  
> question, then reissued the cpanp command if the extension that  
> aborted was a prerequisite.  This allowed all the extensions I use  
> to be installed very quickly and I did not have to do any manual  
> fetching (except for VMS::Logical) and walking of the prerequisite  
> tree on my own.  Again, thanks very much for making this process  
> much easier than it used to be.
>
> For reference, here is the list of extensions I have added to my  
> system.


Very impressive list snipped.

________________________________________
Craig A. Berry
mailto:[email protected]

"... getting out of a sonnet is much more
  difficult than getting in."
                  Brad Leithauser
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.