develooper Front page | perl.perl5.porters | Postings from January 2009

Re: merging make_ext and make_ext_cross

Thread Previous | Thread Next
Craig A. Berry
January 30, 2009 07:55
Re: merging make_ext and make_ext_cross
Message ID:
On Thu, Jan 29, 2009 at 4:01 PM, Nicholas Clark <> wrote:
> On Fri, Jan 09, 2009 at 09:08:36AM -0600, Craig A. Berry wrote:
>> FWIW, on VMS we currently generate a on the fly within
>>  It's about 70 lines of DCL that basically runs
>> miniperl and the make utility a bunch of times.  I don't see anything
>> offhand that would prevent its replacement with a pure Perl
>> equivalent.  No doubt we would have to add a wrinkle or two, such as
>> grabbing extensions under vms/ext/ as well as ext/.
> I think that the better solution to this would be to move them from vms/ext to
> ext/ as Win32, which started with change 29483 and was completed by change
> 30379. All it *should* take is an analogous patch to Configure to
> ==== //depot/perl/Configure#636 (xtext) ====
> @@ -21090,6 +21090,11 @@
>                         esac
>                esac
>                ;;
> +       Win32)
> +               case "$osname" in
> +               cygwin) avail_ext="$avail_ext $xxx" ;;
> +               esac
> +               ;;
>        XS/APItest|xs/apitest)
>                # This is just for testing.  Skip it unless we have dynamic loading.
> plus similar logic at the top of win32/

I know folks were keen on this when it was done for Win32 but I never
understood why.  It doesn't make a lot of sense to me to put
platform-specific code in a common place where all platforms but one
have to go out of their way to avoid tripping over it and their build
capability is broken until they get around to explicitly avoiding it.
But I'm in dense mode today so maybe there's some sense in it I can't

> Except, sadly, vms/ext/ has an identity crisis, with the
> documentation saying "VMS::XSSymSet" but the code disagreeing:

The internal pod is wrong and probably has been for a decade or more
with no one noticing.  It gets installed under lib/ExtUtils and is
loaded from there by ExtUtils::Mksymlists and ExtUtils::ParseXS.  I'll
fix the pod.

Thread Previous | Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About