This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Adding script used for recent perlhist changes.
authorCurtis Jewell <perl@csjewell.fastmail.us>
Mon, 17 May 2010 07:55:28 +0000 (01:55 -0600)
committerDavid Golden <dagolden@cpan.org>
Wed, 19 May 2010 22:03:26 +0000 (18:03 -0400)
Porting/perlhist_calculate.pl [new file with mode: 0644]

diff --git a/Porting/perlhist_calculate.pl b/Porting/perlhist_calculate.pl
new file mode 100644 (file)
index 0000000..437628e
--- /dev/null
@@ -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;