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