On Mon, Sep 07, 2009 at 05:15:51PM -0500, Craig A. Berry wrote:
>
> On Sep 7, 2009, at 4:46 PM, Nicholas Clark wrote:
>
> >On Mon, Sep 07, 2009 at 08:55:29PM +0100, Nicholas Clark wrote:
> >>This might be rather a big favour request.
> >
> >This might be easier than I first thought
>
> It occurred to me we ought to revisit this after getting vms/ext into
> ext. I don't think it will be huge, but it does involve grokking some
> DCL that has to work rather hard to do what it's doing. I'll take a
> look.
> >
> >>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)
> >>
>
> There's also dynamic_ext, right? Shouldn't dynamic_ext plus
> nonxs_extensions equal known_extensions?
Well, probably it should, but what actually happens is:
$ cat extensions.pl
#!perl -w
use strict;
use Config;
printf "%-24s", 'extensions';
my @types = qw(static_ext dynamic_ext nonxs_ext known_extensions);
my %lookup;
my %short;
foreach (@types) {
my $short = $_;
$short =~ s/_.*//;
$short{$_} = $short;
printf "%-8s", $short;
$lookup{$_} = {map {$_, 1} split/ /, $Config{$_}};
}
print "\n\n";
foreach my $ext (sort split / /, $Config{extensions}) {
printf "%-24s", $ext;
foreach (@types) {
printf "%-8s", $lookup{$_}{$ext} ? $short{$_} : '';
}
print "\n";
}
__END__
$ ./perl -Ilib 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
DB_File 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 dynamic known
IO/Zlib nonxs
IPC/Cmd nonxs
IPC/Open2 nonxs
IPC/Open3 nonxs
IPC/SysV dynamic known
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
Sys/Syslog 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
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
"extensions" is everything.
"known_extensions" = "static_ext" + "dynamic_ext"
"extensions" = "nonxs_ext" + "known_extensions"
which isn't logical, but I suspect is due to something historical.
Nicholas Clark