diff options
author | Nicholas Clark <nick@ccl4.org> | 2013-06-19 13:37:25 +0200 |
---|---|---|
committer | Nicholas Clark <nick@ccl4.org> | 2013-07-01 11:13:02 +0200 |
commit | f01ecde888eb7fbeac3d61f1428d7a2e3f3e930f (patch) | |
tree | a71230c451d3a4aaa7debdc44a6437dc83700d69 | |
parent | 499cea6bb2a524e77c3c7bbe334bac90b130b3b6 (diff) | |
download | perl-f01ecde888eb7fbeac3d61f1428d7a2e3f3e930f.tar.gz |
Remove Makefile targets and tools related to Irix and Tru64 debugging tools.
Remove the targets:
perl.pixie perl.pixie.atom perl.pixie.config perl.pixie.irix perl.third
perl.third.config
It's still possible to run the actions these targets "by hand", if desired.
This commit removes the convenience targets from the Makefile, reducing its
complexity. It also removes the related support scripts testall.atom and
thirdclean from Porting/
pixie is a performance analysis tool for Irix and Tru64
Third Degree is a memory checker tool for Tru64
Given that Tru64 went out of support at the end of 2012, and Irix goes out
of support at the end of 2013, it's very unlikely that anyone is still
actively profiling or debugging perl on either platform, and hence using
these targets. It's been several years since we've even had a regular bug
report from either platform.
-rw-r--r-- | MANIFEST | 2 | ||||
-rwxr-xr-x | Makefile.SH | 37 | ||||
-rw-r--r-- | Porting/README.pod | 9 | ||||
-rw-r--r-- | Porting/testall.atom | 91 | ||||
-rw-r--r-- | Porting/thirdclean | 91 | ||||
-rw-r--r-- | pod/perlhacktips.pod | 6 | ||||
-rwxr-xr-x | t/TEST | 23 |
7 files changed, 4 insertions, 255 deletions
@@ -4692,8 +4692,6 @@ Porting/release_schedule.pod Schedule for future releases Porting/rt_list_patches A tool to help you apply patches from RT Porting/sort_perldiag.pl Keep our diagnostics orderly Porting/sync-with-cpan Sync with CPAN -Porting/testall.atom Cumulative profile with Third Degree -Porting/thirdclean Cleanup Third Degree reports Porting/timecheck2.c Test program for the 2038 fix Porting/timecheck.c Test program for the 2038 fix Porting/todo.pod Perl things to do diff --git a/Makefile.SH b/Makefile.SH index e7ee13f377..41ee6db3b5 100755 --- a/Makefile.SH +++ b/Makefile.SH @@ -949,44 +949,11 @@ esac $spitshell >>$Makefile <<'!NO!SUBS!' -# Third Degree Perl (Tru64 only) - perl.config.dashg: @echo "Checking optimize='-g' in config.sh..." @grep "^optimize=" config.sh @egrep "^optimize='(.*-g.*)'" config.sh >/dev/null || exit 1 -perl.third.config: config.sh - @echo "To build perl.third you must Configure -Doptimize=-g -Uusemymalloc, checking..." - @$(MAKE) perl.config.dashg - @echo "Checking usemymalloc='n' in config.sh..." - @grep "^usemymalloc=" config.sh - @grep "^usemymalloc='n'" config.sh >/dev/null || exit 1 - -perl.third: /usr/bin/atom perl.third.config perl - atom -tool third -L. -all -gp -toolargs="-invalid -uninit heap+stack+copy -min 0" perl - @echo "Now you may run perl.third and then study perl.3log." - -# Pixie Perls (Tru64 and IRIX only) - -perl.pixie.config: config.sh - @echo "To build perl.pixie you must Configure -Doptimize=-g, checking..." - @$(MAKE) perl.config.dashg - -perl.pixie.atom: /usr/bin/atom perl - atom -tool pixie -L. -all -toolargs="-quiet" perl - -perl.pixie.irix: perl - pixie perl - -perl.pixie: /usr/bin/pixie perl.pixie.config perl - if test -x /usr/bin/atom; then \ - $(MAKE) perl.pixie.atom; \ - else \ - $(MAKE) perl.pixie.irix; \ - fi - @echo "Now you may run perl.pixie and then run pixie." - # Gprof Perl perl.config.dashpg: @@ -1294,9 +1261,7 @@ _mopup: -@test -f vms/README_vms.pod && rm -f vms/README_vms.pod -rm -f perl.exp ext.libs $(generated_pods) uni.data opmini.o perlmini.o pod/roffitall -rm -f perl.export perl.dll perl.libexp perl.map perl.def - -rm -f perl.third lib*.so.perl.third perl.3log t/perl.third t/perl.3log - -rm -f perl.pixie lib*.so.perl.pixie lib*.so.Addrs - -rm -f perl.Addrs perl.Counts t/perl.Addrs t/perl.Counts *perl.xok + -rm -f *perl.xok -rm -f cygwin.c libperl*.def libperl*.dll cygperl*.dll *.exe.stackdump -rm -f $(PERL_EXE) $(MINIPERL_EXE) $(LIBPERL) libperl.* microperl -rm -f config.arch config.over $(DTRACE_H) diff --git a/Porting/README.pod b/Porting/README.pod index e77c80d283..2bd612d688 100644 --- a/Porting/README.pod +++ b/Porting/README.pod @@ -323,15 +323,6 @@ and case are ignored, as explained in L<perldiag>. Script to help out with syncing cpan distros. -=head2 F<testall.atom> - -Test suite profiling on Tru 64. - -=head2 F<thirdclean> - -Script for cleaning out the "known noise" from Third Degree reports: either -noise caused by F<libc> itself, or F<Perl_yyparse> leaks. - =head2 F<timecheck2.c> A little program to test the limits of your system's time functions. See diff --git a/Porting/testall.atom b/Porting/testall.atom deleted file mode 100644 index 8796f08f2b..0000000000 --- a/Porting/testall.atom +++ /dev/null @@ -1,91 +0,0 @@ -#!/bin/sh - -# -# testall.atom - test suite profiling on Tru 64 -# -# This script creates all.Counts file that can be fed to prof(1) -# to produce various basic block counting profiles. -# -# This script needs to be run at the top level of the Perl build -# directory after the "make all" and "make test" targets have been run. -# -# You will also need to have perl.pixie built, -# which means that you will also have Configured with -Doptimize=-g. -# -# After the script has been run (this will take several minutes) -# you will have a file called all.Counts, which contains the cumulative -# basic block counting results over the whole Perl test suite. -# You can produce various reports using prof(1); -# -# prof -pixie -all -L. perl all.Counts -# prof -pixie -heavy -all -L. perl all.Counts -# prof -pixie -invocations -all -L. perl all.Counts -# prof -pixie -lines -all -L. perl all.Counts -# prof -pixie -testcoverage -all -L. perl all.Counts -# prof -pixie -zero -all -L. perl all.Counts -# -# io/openpid and op/fork core on me, I don't know why and haven't -# taken a look yet. -# -# jhi@iki.fi -# - -if test ! -f /usr/bin/atom -then - echo "$0: no /usr/bin/atom" - exit 1 -fi - -if test ! -f perl; then echo "$0: no perl"; exit 1; fi -if test ! -f perl.pixie; then echo "$0: no perl.pixie; exit 1; fi -if test ! -f t/perl; then echo "$0: no t/perl; exit 1; fi - -LD_LIBRARY_PATH=`pwd` -export LD_LIBRARY_PATH - -cd t || exit 1 - -ln -sf ../perl.pixie . - -if test $# = 0; then - the_t=`echo base/*.t comp/*.t cmd/*.t run/*.t io/*.t; echo op/*.t uni/*.t pod/*.t x2p/*.t; find ../ext ../lib -name '*.t' -print` -else - the_t=$@ -fi - -PERL_DESTRUCT_LEVEL=2 -export PERL_DESTRUCT_LEVEL -PERL_CORE=1 -export PERL_CORE - -rm -f all.Counts - -for t in $the_t -do - case "$t" in - ext/*|lib/*) t=../$t ;; - t/*) t=`echo $t|sed 's:^t/::'` ;; - esac - echo $t|sed 's:\.t$::' - sw='' - case "`head -1 $t|egrep -e '^#.* -.*T'`" in - *-*T*) sw="$sw -T" ;; - esac - case "`head -1 $t|egrep -e '^#.* -.*t'`" in - *-*t*) sw="$sw -t" ;; - esac - ./perl.pixie -I../lib $sw $t > /dev/null - if cd .. - then - if test -f all.Counts - then - prof -pixie -merge new.Counts -L. -incobj libperl.so perl t/perl.Counts all.Counts - mv new.Counts all.Counts - else - mv t/perl.Counts all.Counts - fi - cd t - fi -done - -exit 0 diff --git a/Porting/thirdclean b/Porting/thirdclean deleted file mode 100644 index 8f1d3f894b..0000000000 --- a/Porting/thirdclean +++ /dev/null @@ -1,91 +0,0 @@ -#!./perl - -# DAPM: this description is from the original commit message: -# this appears to be a HP leak detection thing: -# -# Add a script for cleaning out the "known noise" -# from Third Degree reports: either noise caused -# by libc itself, or Perl_yyparse leaks. - -local $/; -$_ = <ARGV>; - -my @accv = /(^-+ \w+ -- \d+ --(?:.(?!^-))+)/msg; -my @leak = /(\d+ bytes? in \d+ leaks? .+? created at:(?:.(?!^[\d-]))+)/msg; - -$leak[ 0] =~ s/.* were found:\n\n//m; # Snip off totals. - -# Weed out the known access violations. - -@accv = grep { ! /-- ru[hs] --.+setlocale.+Perl_init_i18nl10n/s } @accv; -@accv = grep { ! /-- [rw][ui]s --.+_doprnt_dis/s } @accv; -@accv = grep { ! /-- (?:fon|ris) --.+__strxfrm/s } @accv; -@accv = grep { ! /-- rus --.+__catgets/s } @accv; -@accv = grep { ! /-- rus --.+__execvp/s } @accv; -@accv = grep { ! /-- rus --.+tmpnam.+tmpfile/s } @accv; -@accv = grep { ! /-- rus --.+__gethostbyname/s } @accv; -@accv = grep { ! /-- ris --.+__actual_atof/s } @accv; -@accv = grep { ! /-- ris --.+__strftime/s } @accv; - -# Weed out untraceable access violations. -@accv = grep { ! / ----- /s } @accv; -@accv = grep { ! /-- r[ui][hs] --.+proc_at_/s } @accv; -@accv = grep { ! /-- r[ui][hs] --.+pc = 0x/s } @accv; - -# The following look like being caused by the intrinsic inlined -# string handling functions reading one or few bytes beyond the -# actual length. -@accv = grep { ! /-- rih --.+(?:memmove|strcpy).+moreswitches/s } @accv; -@accv = grep { ! /-- (?:rih|rus) --.+strcpy.+gv_fetchfile/s } @accv; -@accv = grep { ! /-- rih --.+strcmp.+doopen_pm/s } @accv; -@accv = grep { ! /-- rih --.+strcmp.+gv_fetchpv/s } @accv; -@accv = grep { ! /-- r[ui]h --.+strcmp.+gv_fetchmeth/s } @accv; -@accv = grep { ! /-- rih --.+memmove.+my_setenv/s } @accv; -@accv = grep { ! /-- rih --.+memmove.+catpvn_flags/s } @accv; - -# yyparse. -@accv = grep { ! /Perl_yyparse/s } @accv; - -# Weed out the known memory leaks. - -@leak = grep { ! /setlocale.+Perl_init_i18nl10n/s } @leak; -@leak = grep { ! /setlocale.+set_numeric_standard/s } @leak; -@leak = grep { ! /_findiop.+fopen/s } @leak; -@leak = grep { ! /_findiop.+__fdopen/s } @leak; -@leak = grep { ! /__localtime/s } @leak; -@leak = grep { ! /__get_libc_context/s } @leak; -@leak = grep { ! /__sia_init/s } @leak; - -# Weed out untraceable memory leaks. -@leak = grep { ! / ----- /s } @leak; -@leak = grep { ! /pc = 0x/s } @leak; -@leak = grep { ! /_pc_range_table/s } @leak; -@leak = grep { ! /_add_gp_range/s } @leak; - -# yyparse. -@leak = grep { ! /Perl_yyparse/s } @leak; - -# Output the cleaned up report. - -# Access violations. - -for (my $i = 0; $i < @accv; $i++) { - $_ = $accv[$i]; - s/\d+/$i/; - print; -} - -# Memory leaks. - -my ($leakb, $leakn, $leaks); - -for (my $i = 0; $i < @leak; $i++) { - $_ = $leak[$i]; - print $_, "\n"; - /^(\d+) bytes? in (\d+) leak/; - $leakb += $1; - $leakn += $2; - $leaks += $1 if /including (\d+) super/; -} - -print "Bytes $leakb Leaks $leakn Super $leaks\n" if $leakb; diff --git a/pod/perlhacktips.pod b/pod/perlhacktips.pod index 324ed1a842..dd471251ee 100644 --- a/pod/perlhacktips.pod +++ b/pod/perlhacktips.pod @@ -1339,7 +1339,7 @@ quick hint: =head2 PERL_DESTRUCT_LEVEL If you want to run any of the tests yourself manually using e.g. -valgrind, or the pureperl or perl.third executables, please note that +valgrind, or the pureperl executable, please note that by default perl B<does not> explicitly cleanup all the memory it has allocated (such as global memory arenas) but instead lets the exit() of the whole program "take care" of such allocations, also known as @@ -1348,9 +1348,9 @@ the whole program "take care" of such allocations, also known as There is a way to tell perl to do complete cleanup: set the environment variable PERL_DESTRUCT_LEVEL to a non-zero value. The t/TEST wrapper does set this to 2, and this is what you need to do too, if you don't -want to see the "global leaks": For example, for "third-degreed" Perl: +want to see the "global leaks": For example, for running under valgrind - env PERL_DESTRUCT_LEVEL=2 ./perl.third -Ilib t/foo/bar.t + env PERL_DESTRUCT_LEVEL=2 valgrind ./perl -Ilib t/foo/bar.t (Note: the mod_perl apache module uses also this environment variable for its own purposes and extended its semantics. Refer to the mod_perl @@ -139,21 +139,6 @@ if (-f 'TEST' && -f 'harness' && -d '../lib') { die "You need to run \"make test\" first to set things up.\n" unless -e 'perl' or -e 'perl.exe' or -e 'perl.pm'; -if ($ENV{PERL_3LOG}) { # Tru64 third(1) tool, see perlhack - unless (-x 'perl.third') { - unless (-x '../perl.third') { - die "You need to run \"make perl.third first.\n"; - } - else { - print "Symlinking ../perl.third as perl.third...\n"; - die "Failed to symlink: $!\n" - unless symlink("../perl.third", "perl.third"); - die "Symlinked but no executable perl.third: $!\n" - unless -x 'perl.third'; - } - } -} - # check leakage for embedders $ENV{PERL_DESTRUCT_LEVEL} = 2 unless exists $ENV{PERL_DESTRUCT_LEVEL}; # check existence of all symbols @@ -727,14 +712,6 @@ EOT if ($type eq 'deparse') { unlink "./$test.dp"; } - if ($ENV{PERL_3LOG}) { - my $tpp = $test; - $tpp =~ s:^\.\./::; - $tpp =~ s:/:_:g; - $tpp =~ s:\.t$:.3log:; - rename("perl.3log", $tpp) || - die "rename: perl3.log to $tpp: $!\n"; - } if (not defined $failure and $next != $max) { $failure="FAILED--expected $max tests, saw $next"; } |