diff options
author | Curtis Jewell <perl@csjewell.fastmail.us> | 2010-05-17 01:55:28 -0600 |
---|---|---|
committer | David Golden <dagolden@cpan.org> | 2010-05-19 18:03:26 -0400 |
commit | 6a23a794407f48284e219ad5f67a95bebc011e8c (patch) | |
tree | 5a77507412620f2d74d6e2af7130a265022ec9dd /Porting/perlhist_calculate.pl | |
parent | e2a10790c2b85350c73e9bbc3bbafe0b27b2ec02 (diff) | |
download | perl-6a23a794407f48284e219ad5f67a95bebc011e8c.tar.gz |
Adding script used for recent perlhist changes.
Diffstat (limited to 'Porting/perlhist_calculate.pl')
-rw-r--r-- | Porting/perlhist_calculate.pl | 159 |
1 files changed, 159 insertions, 0 deletions
diff --git a/Porting/perlhist_calculate.pl b/Porting/perlhist_calculate.pl new file mode 100644 index 0000000000..437628e775 --- /dev/null +++ b/Porting/perlhist_calculate.pl @@ -0,0 +1,159 @@ +#!perl +# Generates info for perlhist from this perl tree +# run this from the root of a perl tree +# +# Data is on STDOUT. + +use 5.010000; +use File::Find; +use warnings; +use strict; + +sub calc_core { + + my @core; + push @core, glob '*.h'; + push @core, glob '*.c'; + push @core, glob '*.y'; + my $coresize = 0; + + foreach my $corefile (@core) { + $coresize += (-s $corefile) / 1000; + } + + my $corenumber = scalar @core; + $coresize = int $coresize; + + say "core: $coresize $corenumber"; +} + +sub calc_lib { + + our $libsize = 0; + our $libnumber = 0; + sub wanted_lib { + $File::Find::name =~ /[.] (?:pm|pl)\z/msx or return; + $libsize += (-s $_) / 1000; + $libnumber++; + } + + find(\&wanted_lib, 'lib'); + $libsize = int $libsize; + + say "lib: $libsize $libnumber"; +} + +sub calc_ext { + + our $extsize = 0; + our $extnumber = 0; + sub wanted_ext { + $File::Find::name =~ /[.] (?:h|c|y|t|xs|pm)\z/msx or return; + $extsize += (-s $_) / 1000; + $extnumber++; + } + + if (-d 'dist') { + find(\&wanted_ext, 'ext', 'dist', 'cpan'); + } else { + find(\&wanted_ext, 'ext'); + } + + $extsize = int $extsize; + + say "ext: $extsize $extnumber"; +} + +sub calc_t { + + our $tsize = 0; + our $tnumber = 0; + sub wanted_t { + $File::Find::name =~ /[.] t\z/msx or return; + $tsize += (-s $_) / 1000; + $tnumber++; + } + + find(\&wanted_t, '.'); + + $tsize = int $tsize; + + say "t: $tsize $tnumber"; +} + +sub calc_doc { + + my @doc; + push @doc, 'INSTALL'; + push @doc, 'README'; + push @doc, glob 'README.*'; + our $docsize = 0; + + foreach my $docfile (@doc) { + $docsize += (-s $docfile) / 1000; + } + + our $docnumber = scalar @doc; + + sub wanted_doc { + $File::Find::name =~ /[.] pod\z/msx or return; + $docsize += (-s $_) / 1000; + $docnumber++; + } + + find(\&wanted_doc, 'pod'); + + $docsize = int $docsize; + + say "doc: $docsize $docnumber"; +} + +sub calc_dir { + my $dir = shift; + + return if ! -d $dir; + + our $dirnumber = 0; + our $dirsize = 0; + + sub wanted_dir { + $dirsize += (-s $_) / 1000; + $dirnumber++; + } + + find(\&wanted_dir, $dir); + + $dirsize = int $dirsize; + + say "$dir: $dirsize $dirnumber"; +} + + +sub calc_longtable { + + print "\n\nTable\n"; + + foreach my $dir (qw(apollo beos)) { + calc_dir($dir); + } + + my $configure_size = int ((-s 'Configure') / 1000); + + say "Configure: $configure_size 1"; + + foreach my $dir (qw(Cross djgpp emacs epoc h2pl hints mad mint mpeix NetWare os2 plan9 Porting qnx symbian utils uts vmesa vms vos win32 x2p)) { + calc_dir($dir); + } +} + +say "Selected release sizes for perl tarball:"; +print "\n"; + +calc_core(); +calc_lib(); +calc_ext(); +calc_t(); +calc_doc(); +calc_longtable(); + +exit; |