Closed p5pRT closed 11 years ago
I think that we should change Configure so that known_extensions includes non-XS extensions. Currently\, not having the non-XS modules in known_extensions means that unlike XS modules\, you can't skip building any non-XS module\, as t/TEST and t/harness will always run their tests (which will fail)\, because the extension-test-skip logic uses known_extensions.
This means that
1) you can't elect not to build to-be-evicted modules 2) we can't put any platform-specific modules in ext (eg VMS::Filespec)
If we change things so that known_extensions includes the nonxs_ext\, then both of the above are solved.
I don't think that it will break anything - grep.cpan.me suggests that there are only 10 non-core mentions of known_extensions\, and none of them rely on this existing behaviour.
Right now we have the wonderfully inconsistent situation (for Configure-generated config.sh) of
dynamic_ext: built dynamically linked XS modules static_ext: built statically linked XS modules nonxs_ext: built pure-Perl modules (from ext/\, dist/ and cpan/) extensions: "$dynamic_ext $static_ext $nonxs_ext" known_extensions: *just* the XS modules shipped in ext/\, dist/ and cpan/
ie "extensions" is typically much larger than "known_extensions"
Moreover\, I believe that we're inconsistent between platforms\, in that on Win32\, "known_extensions" has everything.
This situation has come about through "organic growth"\, rather than design. I guess it's summarised as
0) Perl 5 predates CPAN
1) Originally Perl 5 only shipped with XS code in ext/
2) Originally there was no concept of dual-life - if you wanted the
extensions in ext/\, you had to build them with perl
3) 15 years ago (today)\, Configure was patched to add nonxs_ext
(commit 4318d5a0158916ac) ready to support Errno
(Errno was added about two weeks later in commit eab60bb1f2e96e20)
[curiously that commit adds Errno to known_extensions but not to
extensions]
4) A few days later commit bfb7748a896459cc updates Configure so that
nonxs_ext *are* in extensions\, but are *not* in known_extensions.
The description of the change is:
Explicitly split list of extensions into 3 kinds: dynamic\, static\,
and non-xs. The Configure variable $extensions now holds all three.
(The only current non-xs extension is Errno).
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/1998-07/msg00136.html
It also updates Porting/Glossary\, explicitly changing the description of known_extensions from "list of all extensions included" to "list of all XS extensions included"\, and extensions from "all extension files linked into the package" to "all extension files (both XS and non-xs linked into the package."
[oooh\, that lack of closing ) is still present today]
[Note that Errno *is* architecture specific\, so gets installed into the same directory subtree as all the shared object]
Fast forward from 1998 to 2006
5) Commit 1d8961043b9b86e1 (or thereabouts) in April 2006 regenerates the sample config.sh to this:
nonxs_ext='Compress/IO/Base Compress/IO/Zlib Compress/Zlib Errno'
at which point\, we have 3 more non-XS extensions\, all of which are architecture independent.
Subsequent re-arranging of dual-life modules in 2009 means that we've got a lot more.
Effectively\, the term "extensions" has been meaning "things we build via Makefile.PL" for at least 7 years\, if not 15.
Even though perlfaq7 says:
=head2 What's an extension?
An extension is a way of calling compiled C code from Perl. Reading
L\
which was added when the FAQ was added by commit 68dc074516a6859e back in March 1997 in the run-up to 5.004\, and has only had style changes since then. That must be one of the most Infrequently Asked Questions out there.
(the above is partly based on explanations from Craig Berry in http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2009-09/msg00688.html )
So I think it's sane to apply the attached 3 patches (which have been on a smoke-me quite happily)\, amended with this change to the Glossary:
I believe that the behaviour is win32/FindExt.pm is already this way. I don't know enough to edit configure.com to change it.
Nicholas Clark
Nicholas Clark (via RT) wrote on 2013-06-19:
Right now we have the wonderfully inconsistent situation (for Configure-generated config.sh) of
dynamic_ext: built dynamically linked XS modules static_ext:
built statically linked XS modules nonxs_ext: built pure-Perl modules (from ext/\, dist/ and cpan/) extensions:
"$dynamic_ext $static_ext $nonxs_ext" known_extensions: *just* the XS modules shipped in ext/\, dist/ and cpan/ie "extensions" is typically much larger than "known_extensions"
Moreover\, I believe that we're inconsistent between platforms\, in that on Win32\, "known_extensions" has everything.
I've just checked and 'known_extensions' doesn't have everything on Windows. It actually has the same bizarre situation that you describe for *nix\, which has bugged me before. I would be in favour of changing it if nobody can think of anything that would be broken by it.
FYI\, I've attached the output of the relevant "perl -V:..." options in a default build\, and again in an ALL_STATIC=define build\, on Windows.
Default build:
C:\Dev\Git\perl>perl -V:dynamic_ext dynamic_ext='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd Data/Dumper Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/DosGlob File/Glob Filter/Uti l/Call Hash/Util Hash/Util/FieldHash IO List/Util MIME/Base64 Math/BigInt/FastCa lc Opcode POSIX PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via SDBM_File S ocket Storable Sys/Hostname Tie/Hash/NamedCapture Time/HiRes Time/Piece Unicode/ Collate Unicode/Normalize Win32 Win32API/File XS/APItest XS/Typemap arybase attr ibutes mro re threads threads/shared';
C:\Dev\Git\perl>perl -V:static_ext static_ext='Win32CORE';
C:\Dev\Git\perl>perl -V:nonxs_ext nonxs_ext='Archive/Tar Attribute/Handlers AutoLoader B/Debug B/Deparse CGI CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Config/Perl/V Devel/SelfStu bber Digest Dumpvalue Env Errno ExtUtils/CBuilder ExtUtils/Command ExtUtils/Cons tant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/ParseXS File /Fetch File/Path File/Temp FileCache Filter/Simple Getopt/Long HTTP/Tiny I18N/Co llate I18N/LangTags IO/Compress IO/Zlib IPC/Cmd IPC/Open3 JSON/PP Locale/Codes L ocale/Maketext Locale/Maketext/Simple Math/BigInt Math/BigRat Math/Complex Memoi ze Module/Build Module/CoreList Module/Load Module/Load/Conditional Module/Loade d Module/Metadata NEXT Net/Ping Package/Constants Params/Check Parse/CPAN/Meta P erl/OSType PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage Safe Search/Dict SelfLoader Term/AN SIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/ Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie /File Tie/Memoize Tie/RefHash Time/Local XSLoader autodie autouse base bignum co nstant encoding/warnings if lib libnet parent perlfaq podlators';
C:\Dev\Git\perl>perl -V:extensions extensions='Archive/Tar Attribute/Handlers AutoLoader B B/Debug B/Deparse CGI CP AN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Compress/Raw/Bzip2 Compr ess/Raw/Zlib Config/Perl/V Cwd Data/Dumper Devel/PPPort Devel/Peek Devel/SelfStu bber Digest Digest/MD5 Digest/SHA Dumpvalue Encode Env Errno ExtUtils/CBuilder E xtUtils/Command ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/M anifest ExtUtils/ParseXS Fcntl File/DosGlob File/Fetch File/Glob File/Path File/ Temp FileCache Filter/Simple Filter/Util/Call Getopt/Long HTTP/Tiny Hash/Util Ha sh/Util/FieldHash I18N/Collate I18N/LangTags IO IO/Compress IO/Zlib IPC/Cmd IPC/ Open3 JSON/PP List/Util Locale/Codes Locale/Maketext Locale/Maketext/Simple MIME /Base64 Math/BigInt Math/BigInt/FastCalc Math/BigRat Math/Complex Memoize Module /Build Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/ Metadata NEXT Net/Ping Opcode POSIX Package/Constants Params/Check Parse/CPAN/Me ta Perl/OSType PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via PerlIO/via/Q uotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage SDBM_File Safe Search/Dict SelfLoader Socket Storable Sys/ Hostname Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness T est/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thre ad/Semaphore Tie/File Tie/Hash/NamedCapture Tie/Memoize Tie/RefHash Time/HiRes T ime/Local Time/Piece Unicode/Collate Unicode/Normalize Win32 Win32API/File Win32 CORE XS/APItest XS/Typemap XSLoader arybase attributes autodie autouse base bign um constant encoding/warnings if lib libnet mro parent perlfaq podlators re thre ads threads/shared';
C:\Dev\Git\perl>perl -V:known_extensions known_extensions='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/DosGlob File/Gl ob Filter/Util/Call GDBM_File Hash/Util Hash/Util/FieldHash I18N/Langinfo IO IPC /SysV List/Util MIME/Base64 Math/BigInt/FastCalc NDBM_File ODBM_File Opcode POSI X PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Tie/Hash/NamedCapture Time/HiRes Time/Piece Unicode/Col late Unicode/Normalize VMS/DCLsym VMS/Stdio Win32 Win32API/File Win32CORE XS/API test XS/Typemap arybase attributes mro re threads threads/shared';
Build with ALL_STATIC=define:
C:\Dev\Git\perl>perl -V:dynamic_ext dynamic_ext='SDBM_File';
C:\Dev\Git\perl>perl -V:static_ext static_ext='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd Data/Dumper Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Encode/Byte Encode/CN Encode/EBCDIC Enco de/JP Encode/KR Encode/Symbol Encode/TW Encode/Unicode Fcntl File/DosGlob File/G lob Filter/Util/Call Hash/Util Hash/Util/FieldHash IO List/Util MIME/Base64 Math /BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/v ia Socket Storable Sys/Hostname Tie/Hash/NamedCapture Time/HiRes Time/Piece Unic ode/Collate Unicode/Normalize Win32 Win32API/File Win32CORE XS/APItest XS/Typema p arybase attributes mro re threads threads/shared';
C:\Dev\Git\perl>perl -V:nonxs_ext nonxs_ext='Archive/Tar Attribute/Handlers AutoLoader B/Debug B/Deparse CGI CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Config/Perl/V Devel/SelfStu bber Digest Dumpvalue Env Errno ExtUtils/CBuilder ExtUtils/Command ExtUtils/Cons tant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/ParseXS File /Fetch File/Path File/Temp FileCache Filter/Simple Getopt/Long HTTP/Tiny I18N/Co llate I18N/LangTags IO/Compress IO/Zlib IPC/Cmd IPC/Open3 JSON/PP Locale/Codes L ocale/Maketext Locale/Maketext/Simple Math/BigInt Math/BigRat Math/Complex Memoi ze Module/Build Module/CoreList Module/Load Module/Load/Conditional Module/Loade d Module/Metadata NEXT Net/Ping Package/Constants Params/Check Parse/CPAN/Meta P erl/OSType PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage Safe Search/Dict SelfLoader Term/AN SIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/ Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie /File Tie/Memoize Tie/RefHash Time/Local XSLoader autodie autouse base bignum co nstant encoding/warnings if lib libnet parent perlfaq podlators';
C:\Dev\Git\perl>perl -V:extensions extensions='Archive/Tar Attribute/Handlers AutoLoader B B/Debug B/Deparse CGI CP AN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Compress/Raw/Bzip2 Compr ess/Raw/Zlib Config/Perl/V Cwd Data/Dumper Devel/PPPort Devel/Peek Devel/SelfStu bber Digest Digest/MD5 Digest/SHA Dumpvalue Encode Encode/Byte Encode/CN Encode/ EBCDIC Encode/JP Encode/KR Encode/Symbol Encode/TW Encode/Unicode Env Errno ExtU tils/CBuilder ExtUtils/Command ExtUtils/Constant ExtUtils/Install ExtUtils/MakeM aker ExtUtils/Manifest ExtUtils/ParseXS Fcntl File/DosGlob File/Fetch File/Glob File/Path File/Temp FileCache Filter/Simple Filter/Util/Call Getopt/Long HTTP/Ti ny Hash/Util Hash/Util/FieldHash I18N/Collate I18N/LangTags IO IO/Compress IO/Zl ib IPC/Cmd IPC/Open3 JSON/PP List/Util Locale/Codes Locale/Maketext Locale/Maket ext/Simple MIME/Base64 Math/BigInt Math/BigInt/FastCalc Math/BigRat Math/Complex Memoize Module/Build Module/CoreList Module/Load Module/Load/Conditional Module /Loaded Module/Metadata NEXT Net/Ping Opcode POSIX Package/Constants Params/Chec k Parse/CPAN/Meta Perl/OSType PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/v ia PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Par ser Pod/Perldoc Pod/Simple Pod/Usage SDBM_File Safe Search/Dict SelfLoader Socke t Storable Sys/Hostname Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Th read/Queue Thread/Semaphore Tie/File Tie/Hash/NamedCapture Tie/Memoize Tie/RefHa sh Time/HiRes Time/Local Time/Piece Unicode/Collate Unicode/Normalize Win32 Win3 2API/File Win32CORE XS/APItest XS/Typemap XSLoader arybase attributes autodie au touse base bignum constant encoding/warnings if lib libnet mro parent perlfaq po dlators re threads threads/shared';
C:\Dev\Git\perl>perl -V:known_extensions known_extensions='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Encode/Byte Encode/CN Enco de/EBCDIC Encode/JP Encode/KR Encode/Symbol Encode/TW Encode/Unicode Fcntl File/ DosGlob File/Glob Filter/Util/Call GDBM_File Hash/Util Hash/Util/FieldHash I18N/ Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc NDBM_File ODBM_F ile Opcode POSIX PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Tie/Hash/NamedCapture Time/HiRes Time/Pi ece Unicode/Collate Unicode/Normalize VMS/DCLsym VMS/Stdio Win32 Win32API/File W in32CORE XS/APItest XS/Typemap arybase attributes mro re threads threads/shared' ;
The RT System itself - Status changed from 'new' to 'open'
On Wed\, Jun 19\, 2013 at 12:15:36PM +0100\, Steve Hay wrote:
Nicholas Clark (via RT) wrote on 2013-06-19:
Moreover\, I believe that we're inconsistent between platforms\, in that on Win32\, "known_extensions" has everything.
I've just checked and 'known_extensions' doesn't have everything on Windows. It actually has the same bizarre situation that you describe for *nix\, which has bugged me before. I would be in favour of changing it if nobody can think of anything that would be broken by it.
Oh\, I'm a muppet. You're right - it doesn't. Well\, it didn't\, until I changed it in one of the patches I attached. (It's hiding behind a wall of Configure code)
FYI\, I've attached the output of the relevant "perl -V:..." options in a default build\, and again in an ALL_STATIC=define build\, on Windows.
Thanks
Nicholas Clark
On Wed\, Jun 19\, 2013 at 02:25:32AM -0700\, Nicholas Clark wrote:
# New Ticket Created by Nicholas Clark # Please include the string: [perl #118537] # in the subject line of all future correspondence about this issue. # \<URL: https://rt-archive.perl.org/perl5/Ticket/Display.html?id=118537 >
I think that we should change Configure so that known_extensions includes non-XS extensions. Currently\, not having the non-XS modules in known_extensions means that unlike XS modules\, you can't skip building any non-XS module\, as t/TEST and t/harness will always run their tests (which will fail)\, because the extension-test-skip logic uses known_extensions.
This means that
1) you can't elect not to build to-be-evicted modules 2) we can't put any platform-specific modules in ext (eg VMS::Filespec)
If we change things so that known_extensions includes the nonxs_ext\, then both of the above are solved.
I don't think that it will break anything - grep.cpan.me suggests that there are only 10 non-core mentions of known_extensions\, and none of them rely on this existing behaviour.
Broadly speaking\, I think it should be safe to change it to whatever works.
I think t/TEST and t/harness are wrong. Their extension-test-skip logic should just use $extensions. Nothing running after Configure should use $known_extensions. It was not intended to be useful for anything after Configure time\, though the documentation isn't explicit about that. $known_extensions lists all the extensions Configure 'knows' about. Only the subset in $extensions was actually selected by the user to be included with perl. The user is not required to install every extension shipped with the perl tarball.
Right now we have the wonderfully inconsistent situation (for Configure-generated config.sh) of
dynamic_ext: built dynamically linked XS modules static_ext: built statically linked XS modules nonxs_ext: built pure-Perl modules (from ext/\, dist/ and cpan/) extensions: "$dynamic_ext $static_ext $nonxs_ext" known_extensions: *just* the XS modules shipped in ext/\, dist/ and cpan/
ie "extensions" is typically much larger than "known_extensions"
Yes\, but the intent was you wouldn't care\, since known_extensions wasn't intended to be used.
This situation has come about through "organic growth"\, rather than design.
Yes\, that's undoubtedly true.
I guess it's summarised as
0) Perl 5 predates CPAN 1) Originally Perl 5 only shipped with XS code in ext/
Yes. libraries were in lib/. In perl4\, you had to relink against uperl.o
and build a new executable (e.g. curseperl) to link in other C libraries.
In perl5\, you could use dynamic loading to load in the extensions.
2) Originally there was no concept of dual-life - if you wanted the extensions in ext/\, you had to build them with perl
There were outside modules; they just didn't have a ready toolchain. Tk was one of the first big ones that I recall. If you dropped them in the ext/ directory\, Configure was supposed to handle them automatically\, but if you wanted to build them later\, that was ok too.
3) 15 years ago (today)\, Configure was patched to add nonxs_ext (commit 4318d5a0158916ac) ready to support Errno (Errno was added about two weeks later in commit eab60bb1f2e96e20) [curiously that commit adds Errno to known_extensions but not to extensions] 4) A few days later commit bfb7748a896459cc updates Configure so that nonxs_ext *are* in extensions\, but are *not* in known_extensions. The description of the change is:
Explicitly split list of extensions into 3 kinds​: dynamic\, static\, and non\-xs\. The Configure variable $extensions now holds all three\. \(The only current non\-xs extension is Errno\)\.
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/1998-07/msg00136.html
It also updates Porting/Glossary\, explicitly changing the description of known\_extensions from "list of all extensions included" to "list of all XS extensions included"\, and extensions from "all extension files linked into the package" to "all extension files \(both XS and non\-xs linked into the package\." \[oooh\, that lack of closing \) is still present today\]
Yeah\, I tend to do that.
Anyway\, feel free to fix and document it however makes sense in the new era. However\, I'd recommend documenting that nobody should actually be *using* known_extensions for anything. They should be using $extensions.
-- Andy Dougherty doughera@lafayette.edu
I've patched Configure (and related files) to do this.
commit f7b3892b9e45c6994685c9a625d3ea2b52642167 Author: Nicholas Clark \nick@​ccl4\.org Date: Fri Jun 14 16:56:28 2013 +0200
Add non-XS extensions to known_extensions.
Previously "known_extensions" was misnamed\, as it only contained known XS
extensions. grep.cpan.me suggests that there are only 10 mentions of it
outside the core\, and none of them rely on this existing behaviour.
Update the descriptions of extensions\, known_extensions and nonxs_ext in
Porting/Glossary.
These changes need replicating into configure.com.
On Fri\, Jun 21\, 2013 at 05:11:01PM -0400\, Andy Dougherty wrote:
On Wed\, Jun 19\, 2013 at 02:25:32AM -0700\, Nicholas Clark wrote:
I think that we should change Configure so that known_extensions includes non-XS extensions. Currently\, not having the non-XS modules in known_extensions means that unlike XS modules\, you can't skip building any non-XS module\, as t/TEST and t/harness will always run their tests (which will fail)\, because the extension-test-skip logic uses known_extensions.
This means that
1) you can't elect not to build to-be-evicted modules 2) we can't put any platform-specific modules in ext (eg VMS::Filespec)
I haven't done either of these. I will move VMS::Filespec. I'm not proposing to do (1) myself.
Broadly speaking\, I think it should be safe to change it to whatever works.
I think t/TEST and t/harness are wrong. Their extension-test-skip logic should just use $extensions. Nothing running after Configure should use $known_extensions. It was not intended to be useful for anything after Configure time\, though the documentation isn't explicit about that. $known_extensions lists all the extensions Configure 'knows' about. Only the subset in $extensions was actually selected by the user to be included with perl. The user is not required to install every extension shipped with the perl tarball.
I haven't done this. I guess I should open a new ticket in RT for this. For me it's a "nice to have" but there's a bunch of other stuff that is nicer. But it's a pure-Perl task\, so anyone on the list could take it on.
Anyway\, feel free to fix and document it however makes sense in the new era. However\, I'd recommend documenting that nobody should actually be *using* known_extensions for anything. They should be using $extensions.
I made these changes to Porting/Glossary:
I don't think that this RT can be considered resolved until configure.com has been updated to be consistent with Configure.
Nicholas Clark
On Tue\, Jul 2\, 2013 at 8:14 AM\, Nicholas Clark \nick@​ccl4\.org wrote:
nonxs_ext (Extensions.U): - This variable holds a list of all non-xs extensions included - in the package. All of them will be built. + This variable holds a list of all non-xs extensions built and + installed by the package. By default\, all non-xs extensions + distributed will be built\, with the exception of platform-specific + extensions (currently only one VMS specific extension).
This statement is true for non-VMS platforms\, but there is a potential confusion here in that VMS::Filespec is an XS extension on VMS (with the XS bits living in vms/vms.c)\, but if you attempt to use it on another platform\, you get (very out-of-date) pure-Perl overrides.
I don't think that this RT can be considered resolved until configure.com has been updated to be consistent with Configure.
Working on it. My initial attempt put VMS::Filespec in nonxs_ext\, which I think made it get the wrong arguments to TestInit.pm (in any case the test failed). It doesn't really belong in dynamic_ext since it's not dynamic\, nor does it really belong in static_ext since it's not built the way a statically linked extension would be. For now\, keeping it out of nonxs_ext is probably good enough. Until it got moved to ext/\, it didn't appear in any of the lists\, not even known_extensions.
On Wed\, 3 Jul 2013 10:45:28 -0500\, "Craig A. Berry" \craig\.a\.berry@​gmail\.com wrote:
On Tue\, Jul 2\, 2013 at 8:14 AM\, Nicholas Clark \nick@​ccl4\.org wrote:
nonxs_ext (Extensions.U): - This variable holds a list of all non-xs extensions included - in the package. All of them will be built. + This variable holds a list of all non-xs extensions built and + installed by the package. By default\, all non-xs extensions + distributed will be built\, with the exception of platform-specific + extensions (currently only one VMS specific extension).
This statement is true for non-VMS platforms\, but there is a potential confusion here in that VMS::Filespec is an XS extension on VMS (with the XS bits living in vms/vms.c)\, but if you attempt to use it on another platform\, you get (very out-of-date) pure-Perl overrides.
I don't think that this RT can be considered resolved until configure.com has been updated to be consistent with Configure.
Working on it. My initial attempt put VMS::Filespec in nonxs_ext\, which I think made it get the wrong arguments to TestInit.pm (in any case the test failed). It doesn't really belong in dynamic_ext since it's not dynamic\, nor does it really belong in static_ext since it's not built the way a statically linked extension would be. For now\, keeping it out of nonxs_ext is probably good enough. Until it got moved to ext/\, it didn't appear in any of the lists\, not even known_extensions.
For the record\, the changes have all been backported to meta already.
-- H.Merijn Brand http://tux.nl Perl Monger http://amsterdam.pm.org/ using perl5.00307 .. 5.19 porting perl5 on HP-UX\, AIX\, and openSUSE http://mirrors.develooper.com/hpux/ http://www.test-smoke.org/ http://qa.perl.org http://www.goldmark.org/jeff/stupid-disclaimers/
On Wed\, Jul 3\, 2013 at 10:45 AM\, Craig A. Berry \craig\.a\.berry@​gmail\.com wrote:
On Tue\, Jul 2\, 2013 at 8:14 AM\, Nicholas Clark \nick@​ccl4\.org wrote:
I don't think that this RT can be considered resolved until configure.com has been updated to be consistent with Configure.
Working on it.
Now done as 86ad859eff07e4c550.
@cpansprout - Status changed from 'open' to 'resolved'
Migrated from rt.perl.org#118537 (status was 'resolved')
Searchable as RT118537$