On Sep 7, 2009, at 9:42 PM, Andrew Dougherty wrote:

On Mon, 7 Sep 2009, Nicholas Clark wrote:
Would it be possible to augment the configure.com code that finds extensions
to correctly partition "nonxs_extensions" from "known_extensions"?
(being the rather bonkers way that Configure partitions XS and non- XS
extensions)

Coming late to this discussion . . .

The "bonkers way" that Configure "works" now is indeed a hodge-podge
growth representing the way stuff grew "organically". I've no time right
now, but will try to look Tuesday afternoon (US, Eastern time) and see
what's up here.

Unless you've already "solved" the problem by then!


Thanks. I'm pretty sure, if doing exactly the same thing in configure.com that's done in Configure is a solution (or at least consistently bonkers), we have solved it as of:

http://perl5.git.perl.org/perl.git/commitdiff/d1ce36d

and

http://perl5.git.perl.org/perl.git/commitdiff/63d5291

On VMS we were not populating nonxs_ext at all, and we were treating dynamic_ext and extensions as the same thing and including everything in them. I think that was just a side effect of the organic growth you referred to plus my inattention during certain parts of it.

Part of the evolution probably has to do with nomenclature. I'm quite sure I've been told at some point in the distant past that it's not proper to call a module an "extension" unless it has XS code in it. If that was ever a valid or consistent convention, the current mass migration from lib/ to ext/ buries it pretty deep.

Using the extensions.pl Nicholas posted elsewhere in this thread, I now see:

$ perl extensions.pl
extensions              static  dynamic nonxs   known

Archive/Extract                         nonxs
Archive/Tar                             nonxs
Attribute/Handlers                      nonxs
B                               dynamic         known
B/Debug                                 nonxs
B/Deparse                               nonxs
B/Lint                                  nonxs
CGI                                     nonxs
CPANPLUS                                nonxs
CPANPLUS/Dist/Build                     nonxs
Compress/Raw/Bzip2              dynamic         known
Compress/Raw/Zlib               dynamic         known
Cwd                             dynamic         known
Data/Dumper                     dynamic         known
Devel/DProf                     dynamic         known
Devel/PPPort                    dynamic         known
Devel/Peek                      dynamic         known
Devel/SelfStubber                       nonxs
Digest                                  nonxs
Digest/MD5                      dynamic         known
Digest/SHA                      dynamic         known
Encode                          dynamic         known
Errno                                   nonxs
Fcntl                           dynamic         known
File/Fetch                              nonxs
File/Glob                       dynamic         known
FileCache                               nonxs
Filter/Simple                           nonxs
Filter/Util/Call                dynamic         known
Hash/Util                       dynamic         known
Hash/Util/FieldHash             dynamic         known
I18N/LangTags                           nonxs
I18N/Langinfo                   dynamic         known
IO                              dynamic         known
IO/Compress                             nonxs
IO/Zlib                                 nonxs
IPC/Cmd                                 nonxs
IPC/Open2                               nonxs
IPC/Open3                               nonxs
List/Util                       dynamic         known
Log/Message                             nonxs
Log/Message/Simple                      nonxs
MIME/Base64                     dynamic         known
Math/BigInt/FastCalc            dynamic         known
Module/CoreList                         nonxs
Module/Load                             nonxs
Module/Load/Conditional                 nonxs
Module/Loaded                           nonxs
Module/Pluggable                        nonxs
Net/Ping                                nonxs
Object/Accessor                         nonxs
Opcode                          dynamic         known
POSIX                           dynamic         known
Package/Constants                       nonxs
Params/Check                            nonxs
Parse/CPAN/Meta                         nonxs
PerlIO/encoding                 dynamic         known
PerlIO/scalar                   dynamic         known
PerlIO/via                      dynamic         known
Pod/Plainer                             nonxs
SDBM_File                       dynamic         known
Safe                                    nonxs
SelfLoader                              nonxs
Shell                                   nonxs
Socket                          dynamic         known
Storable                        dynamic         known
Switch                                  nonxs
Sys/Hostname                    dynamic         known
Term/ANSIColor                          nonxs
Term/Cap                                nonxs
Term/UI                                 nonxs
Test/Harness                            nonxs
Text/Balanced                           nonxs
Text/Soundex                    dynamic         known
Thread/Queue                            nonxs
Thread/Semaphore                        nonxs
Tie/File                                nonxs
Tie/Memoize                             nonxs
Time/HiRes                      dynamic         known
Time/Piece                      dynamic         known
Unicode/Normalize               dynamic         known
VMS/DCLsym                      dynamic         known
VMS/Stdio                       dynamic         known
XS/APItest                      dynamic         known
XS/Typemap                      dynamic         known
attributes                      dynamic         known
autodie                                 nonxs
autouse                                 nonxs
base                                    nonxs
mro                             dynamic         known
re                              dynamic         known
threads                         dynamic         known
threads/shared                  dynamic         known



________________________________________
Craig A. Berry
mailto:craigbe...@mac.com

"... getting out of a sonnet is much more
 difficult than getting in."
                 Brad Leithauser

Reply via email to