Craig A. Berry wrote:
I've checked the attached into blead as #31619.  It gets a few more
things working, mostly with platform overrides.  There are still
about 10 test scripts that fail, but fewer individual failures within
those. Here's a summary of some of the remaining issues with Module::Build.

The home-grown glob() implementation does not know what a tilde is,
and it returns VMS-format filespecs as absolute, not relative specs.
<snip>
It also is not able to properly identify UNIX format filespecs with regex that contains [].

A number of the tests call is_deeply() to compare an array of
case-preserved filenames with another array of (by default)
non-case-preserved filenames. Obviously they don't match and the
tests fail.  What's needed is a like_deeply() or similar where you
can pass a regex qualifier such as "?i:" to wrap around each of the
comparisons.  So maybe I'll add that to MBTest one of these days.

Both VMS and Microsoft Windows can be in either a case sensitive or case insensitive mode, so this should follow the case_tolerant setting.

The ppm test appears to be creating a tarball of a binary
distribution and then unpacking it to see if the bits are still
recognizable.  They aren't.  There are a lot of invalid header errors
thrown by Archive::Tar.  Not sure if the problem is in Archive::Tar
or Module::Build, or both.  But tar isn't really a good format for
distributing VMS object code and executables as it doesn't, as far as
I know, have a way to preserve VMS file attributes.  It is just
possible we could get it working by having it guess the right
attributes  based on file extension.

There is probably a need to have the ability to have a platform specific method for building and verifying a distribution kit.

This brings up another issue. Perl on VMS is not binary compatible with past versions by design. The flags in building the shared images are set so that code needs to be linked directly against the exact perlshr.exe that is in use.

Being able to distribute pre-built binary extensions from multiple sources would require changing this.

Part of the issue requiring this is all the build options that control the types of the parameters that are passed. And in the case of threaded/non-threaded control the number of parameters.

Resolving this looks like it would require either standardizing on specific set of options for each VMS platform as official, putting multiple images in a Perl binary kit which complicates the build a bit, or putting many variants of the routines in the perlshr.exe like the CRTL does to handle the various floating point options.

<snip>

So, there's more work to do.  If anyone has time or interest to dig
into one or more of these issues, they might get fixed sooner than if
it's left to me.

-John
[EMAIL PROTECTED]
Personal Opinion Only

Reply via email to