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

Re: merging make_ext and make_ext_cross

Thread Previous | Thread Next
From:
Nicholas Clark
Date:
January 29, 2009 14:02
Subject:
Re: merging make_ext and make_ext_cross
Message ID:
20090129220154.GG95022@plum.flirble.org
On Fri, Jan 09, 2009 at 09:08:36AM -0600, Craig A. Berry wrote:

> FWIW, on VMS we currently generate a make_ext.com on the fly within
> configure.com.  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/FindExt.pm.

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

$ grep ::XSSymSet vms/ext/XSSymSet.pm 
package ExtUtils::XSSymSet;
VMS::XSSymSet - keep sets of symbol names palatable to the VMS linker
  use VMS::XSSymSet;
  $set = new VMS::XSSymSet;
  $safesym = VMS::XSSymSet->trimsym($onesym);
names can become quite long.)  C<VMS::XSSymSet> provides functions to


(actually, does it matter? If it goes in ext/VMS/XSSymSet it doesn't matter
what package it actually installs.)

Nicholas Clark

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About