From: Curtis Jewell Date: Mon, 17 May 2010 07:55:28 +0000 (-0600) Subject: Adding script used for recent perlhist changes. X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=6a23a794407f48284e219ad5f67a95bebc011e8c;p=p5sagit%2Fp5-mst-13.2.git Adding script used for recent perlhist changes. --- diff --git a/Porting/perlhist_calculate.pl b/Porting/perlhist_calculate.pl new file mode 100644 index 0000000..437628e --- /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;