Perl / perl5

🐪 The Perl programming language
https://dev.perl.org/perl5/
Other
1.97k stars 556 forks source link

removing various testing and obsolete profiling targets #13039

Closed p5pRT closed 11 years ago

p5pRT commented 11 years ago

Migrated from rt.perl.org#118543 (status was 'resolved')

Searchable as RT118543$

p5pRT commented 11 years ago

From @nwc10

There are a *lot* of variant testing targets in the *nix Makefile\, most of which I don't think that anyone uses. All are shortcuts which invoke t/TEST or t/harness with various options. I propose we remove most of them.

ie *keep* only the following targets​:

check check.valgrind test test-harness test-notty test-porting test-prep test-reonly test-tty test.valgrind test_harness test_harness_notty test_notty test_notty.valgrind test_porting test_prep test_prep.valgrind test_prep_pre test_prep_reonly test_reonly test_tty

There are also targets and scripts related to profiling and testing tools for Tru64 and Irix. I propose we remove those.

Specifically\, as currently being tested by smoke-me/nicholas/Makefile-target-purge​:

commit 9fbec194b689319c3b7b8b7d1d066710bf4c5ab7 Author​: Nicholas Clark \nick@​ccl4\.org Date​: Wed Jun 19 12​:35​:33 2013 +0200

  Remove various rarely used test targets from the generated Makefile.  
  Remove these targets and their documentation​:  
  check.third check.utf16 check.utf8 coretest minitest.utf16 test.deparse   test.taintwarn test.third test.torture test.utf16 test.utf8   test_notty.deparse test_notty.third test_prep.third torturetest ucheck   ucheck.third ucheck.utf16 ucheck.valgrind utest utest.third utest.utf16   utest.valgrind  
  It's still possible to run the actions these targets "by hand"\, if desired.   This commit simply removes the convenience targets from the Makefile\,   reducing its complexity.

Makefile.SH | 59 +------------------------------------------------------- pod/perlhack.pod | 45 +----------------------------------------- 2 files changed\, 2 insertions(+)\, 102 deletions(-)

commit e271551a471d8993e37f965f0d75773ac65477e0 Author​: Nicholas Clark \nick@​ccl4\.org Date​: Wed Jun 19 13​:37​:25 2013 +0200

  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.

MANIFEST | 2 -- Makefile.SH | 37 +-------------------- Porting/README.pod | 9 ------ Porting/testall.atom | 91 ---------------------------------------------------- Porting/thirdclean | 91 ---------------------------------------------------- 5 files changed\, 1 insertion(+)\, 229 deletions(-)

I'm also suspicious about the utility of the perl.gcov and perl.gprof *targets*. I'm wondering whether they are actually that useful\, given that one needs to reconfigure perl to add -pg or -fprofile-arcs -ftest-coverage\, at which point your regular perl binary will have been built with such options.

Nicholas Clark

p5pRT commented 11 years ago

From @nwc10

On Wed\, Jun 19\, 2013 at 06​:12​:46AM -0700\, Nicholas Clark wrote​:

There are a *lot* of variant testing targets in the *nix Makefile\, most of which I don't think that anyone uses. All are shortcuts which invoke t/TEST or t/harness with various options. I propose we remove most of them.

There are also targets and scripts related to profiling and testing tools for Tru64 and Irix. I propose we remove those.

I'm wondering also about killing the purify/quantify/purecov targets (and associated documentation). I'm not even sure if IBM still sell quantify or purecov. They still seem to sell purify\, but I'm not sure if anyone is using it these days. eg

  Valgrind's technical support is better. (Yes\, I've dealt with both.)   Valgrind doesn't cost $2\,364 [rational.com] per seat.

http​://developers.slashdot.org/comments.pl?sid=36918&cid=3969004

so cull this plus documentation​:

Inline Patch ```diff diff --git a/Makefile.SH b/Makefile.SH index 94c0168..4c7980f 100755 --- a/Makefile.SH +++ b/Makefile.SH @@ -917,17 +917,6 @@ $(PERL_EXE): $& perlmain$(OBJ_EXT) $(LIBPERL) $(static_ext) ext.libs $(PERLEXPOR -@rm -f miniperl.xok $(SHRPENV) $(LDLIBPTH) $(CC) -o perl$(PERL_SUFFIX) $(PERL_PROFILE_LDFLAGS) $(CLDFLAGS) $(CCDLFLAGS) perlmain$(OBJ_EXT) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs) -# Purify/Quantify Perls. - -pure$(PERL_EXE): $& perlmain$(OBJ_EXT) $(LIBPERL) $(static_ext) ext.libs $(PERLEXPORT) - $(SHRPENV) $(LDLIBPTH) purify $(CC) -o pureperl $(CLDFLAGS) $(CCDLFLAGS) perlmain$(OBJ_EXT) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs) - -purecov$(PERL_EXE): $& perlmain$(OBJ_EXT) $(LIBPERL) $(static_ext) ext.libs $(PERLEXPORT) - $(SHRPENV) $(LDLIBPTH) purecov $(CC) -o purecovperl $(CLDFLAGS) $(CCDLFLAGS) perlmain$(OBJ_EXT) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs) - -quant$(PERL_EXE): $& perlmain$(OBJ_EXT) $(LIBPERL) $(static_ext) ext.libs $(PERLEXPORT) - $(SHRPENV) $(LDLIBPTH) quantify $(CC) -o quantperl $(CLDFLAGS) $(CCDLFLAGS) perlmain$(OBJ_EXT) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs) - !NO!SUBS! case "${osname}${osvers}" in Nicholas Clark ```
p5pRT commented 11 years ago

From @tux

On Wed\, 19 Jun 2013 14​:33​:54 +0100\, Nicholas Clark \nick@​ccl4\.org wrote​:

On Wed\, Jun 19\, 2013 at 06​:12​:46AM -0700\, Nicholas Clark wrote​:

There are a *lot* of variant testing targets in the *nix Makefile\, most of which I don't think that anyone uses. All are shortcuts which invoke t/TEST or t/harness with various options. I propose we remove most of them.

There are also targets and scripts related to profiling and testing tools for Tru64 and Irix. I propose we remove those.

I'm wondering also about killing the purify/quantify/purecov targets

+1

(and associated documentation). I'm not even sure if IBM still sell quantify or purecov. They still seem to sell purify\, but I'm not sure if anyone is using it these days. eg

Valgrind's technical support is better\. \(Yes\, I've dealt with both\.\)
Valgrind doesn't cost $2\,364 \[rational\.com\] per seat\.

When I used (the trial version of) Purify-7 on AIX\, there were no alternatives available. Valgrind could not be compiled on AIX.

I have no idea what the current options are when being forced to work on AIX.

http​://developers.slashdot.org/comments.pl?sid=36918&cid=3969004

so cull this plus documentation​:

diff --git a/Makefile.SH b/Makefile.SH index 94c0168..4c7980f 100755 --- a/Makefile.SH +++ b/Makefile.SH @​@​ -917\,17 +917\,6 @​@​ $(PERL_EXE)​: $& perlmain$(OBJ_EXT) $(LIBPERL) $(static_ext) ext.libs $(PERLEXPOR -@​rm -f miniperl.xok $(SHRPENV) $(LDLIBPTH) $(CC) -o perl$(PERL_SUFFIX) $(PERL_PROFILE_LDFLAGS) $(CLDFLAGS) $(CCDLFLAGS) perlmain$(OBJ_EXT) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)

-# Purify/Quantify Perls. - -pure$(PERL_EXE)​: $& perlmain$(OBJ_EXT) $(LIBPERL) $(static_ext) ext.libs $(PERLEXPORT) - $(SHRPENV) $(LDLIBPTH) purify $(CC) -o pureperl $(CLDFLAGS) $(CCDLFLAGS) perlmain$(OBJ_EXT) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs) - -purecov$(PERL_EXE)​: $& perlmain$(OBJ_EXT) $(LIBPERL) $(static_ext) ext.libs $(PERLEXPORT) - $(SHRPENV) $(LDLIBPTH) purecov $(CC) -o purecovperl $(CLDFLAGS) $(CCDLFLAGS) perlmain$(OBJ_EXT) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs) - -quant$(PERL_EXE)​: $& perlmain$(OBJ_EXT) $(LIBPERL) $(static_ext) ext.libs $(PERLEXPORT) - $(SHRPENV) $(LDLIBPTH) quantify $(CC) -o quantperl $(CLDFLAGS) $(CCDLFLAGS) perlmain$(OBJ_EXT) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs) - !NO!SUBS!

case "${osname}${osvers}" in

Nicholas Clark

-- H.Merijn Brand http​://tux.nl Perl Monger http​://amsterdam.pm.org/ using perl5.00307 .. 5.19 porting perl5 on HP-UX\, AIX\, and openSUSE http​://mirrors.develooper.com/hpux/ http​://www.test-smoke.org/ http​://qa.perl.org http​://www.goldmark.org/jeff/stupid-disclaimers/

p5pRT commented 11 years ago

The RT System itself - Status changed from 'new' to 'open'

p5pRT commented 11 years ago

From @nwc10

On Wed\, Jun 19\, 2013 at 03​:42​:36PM +0200\, H.Merijn Brand wrote​:

On Wed\, 19 Jun 2013 14​:33​:54 +0100\, Nicholas Clark \nick@​ccl4\.org wrote​:

On Wed\, Jun 19\, 2013 at 06​:12​:46AM -0700\, Nicholas Clark wrote​:

There are a *lot* of variant testing targets in the *nix Makefile\, most of which I don't think that anyone uses. All are shortcuts which invoke t/TEST or t/harness with various options. I propose we remove most of them.

There are also targets and scripts related to profiling and testing tools for Tru64 and Irix. I propose we remove those.

I'm wondering also about killing the purify/quantify/purecov targets

+1

(and associated documentation). I'm not even sure if IBM still sell quantify or purecov. They still seem to sell purify\, but I'm not sure if anyone is using it these days. eg

Valgrind's technical support is better\. \(Yes\, I've dealt with both\.\)
Valgrind doesn't cost $2\,364 \[rational\.com\] per seat\.

When I used (the trial version of) Purify-7 on AIX\, there were no alternatives available. Valgrind could not be compiled on AIX.

I have no idea what the current options are when being forced to work on AIX.

This doesn't stop anyone *using* purify on AIX (or anywhere else). It just means that they have to type the command(s) manually to make perl with it.

My hunch is no-one is using it on AIX with perl. ie that the userbase for 13 lines of Makefile.SH is approximately zero\, and has been approximately zero for at least 5 years.

Nicholas Clark

p5pRT commented 11 years ago

From @greerga

On Wed\, 19 Jun 2013\, Nicholas Clark wrote​:

# New Ticket Created by Nicholas Clark # Please include the string​: [perl #118543] # in the subject line of all future correspondence about this issue. # \<URL​: https://rt-archive.perl.org/perl5/Ticket/Display.html?id=118543 >

There are a *lot* of variant testing targets in the *nix Makefile\, most of which I don't think that anyone uses. All are shortcuts which invoke t/TEST or t/harness with various options. I propose we remove most of them.

ie *keep* only the following targets​:

check check.valgrind test test-harness test-notty test-porting test-prep test-reonly test-tty test.valgrind test_harness test_harness_notty test_notty test_notty.valgrind test_porting test_prep test_prep.valgrind test_prep_pre test_prep_reonly test_reonly test_tty

Note that current Test​::Smoke still uses the '_test' target for some reason unless set for 'harnessonly' or 'is56x' or on VMS.

-- George Greer

p5pRT commented 11 years ago

From @nwc10

On Wed\, Jun 19\, 2013 at 11​:06​:53AM -0400\, George Greer wrote​:

On Wed\, 19 Jun 2013\, Nicholas Clark wrote​:

# New Ticket Created by Nicholas Clark # Please include the string​: [perl #118543] # in the subject line of all future correspondence about this issue. # \<URL​: https://rt-archive.perl.org/perl5/Ticket/Display.html?id=118543 >

There are a *lot* of variant testing targets in the *nix Makefile\, most of which I don't think that anyone uses. All are shortcuts which invoke t/TEST or t/harness with various options. I propose we remove most of them.

ie *keep* only the following targets​:

check check.valgrind test test-harness test-notty test-porting test-prep test-reonly test-tty test.valgrind test_harness test_harness_notty test_notty test_notty.valgrind test_porting test_prep test_prep.valgrind test_prep_pre test_prep_reonly test_reonly test_tty

Note that current Test​::Smoke still uses the '_test' target for some reason unless set for 'harnessonly' or 'is56x' or on VMS.

Aha\, yes\, that didn't feature in either list. :-) Because the grep for what is still there was​:

grep ^test.*​: Makefile | sed -e 's/​:.*//' | tr ' ' '\n' | sort

it's still there. It would be nice if the smoker stopped using _test

Nicholas Clark

p5pRT commented 11 years ago

From @nwc10

On Wed\, Jun 19\, 2013 at 02​:33​:54PM +0100\, Nicholas Clark wrote​:

On Wed\, Jun 19\, 2013 at 06​:12​:46AM -0700\, Nicholas Clark wrote​:

There are a *lot* of variant testing targets in the *nix Makefile\, most of which I don't think that anyone uses. All are shortcuts which invoke t/TEST or t/harness with various options. I propose we remove most of them.

There are also targets and scripts related to profiling and testing tools for Tru64 and Irix. I propose we remove those.

I'm wondering also about killing the purify/quantify/purecov targets (and associated documentation). I'm not even sure if IBM still sell quantify or purecov. They still seem to sell purify\, but I'm not sure if anyone is using it these days. eg

Oh\, and the explicit targets perl.gcov and perl.gprof [and I've updated the documentation related to gcov and gprof\, and tested that it works. Hence the other bug report :-)]

I'm keen to remove all of the targets\, they are just shortcuts for things no-one is using any more. And doing so removes a fair chunk of distraction​:

MANIFEST | 2 - Makefile.SH | 159 +------------- Porting/README.pod | 9 - Porting/pumpkin.pod | 36 --- Porting/testall.atom | 91 -------- Porting/thirdclean | 91 -------- cpan/Test-Harness/lib/TAP/Parser/Multiplexer.pm | 11 +- pod/perlhack.pod | 45 +---- pod/perlhacktips.pod | 275 ++++++----------------- runtests.SH | 9 +- t/TEST | 23 -- t/op/magic.t | 2 +- t/run/runenv.t | 2 +- t/win32/runenv.t | 2 +- 14 files changed\, 90 insertions(+)\, 667 deletions(-)

(I suspect that I've still added more code than I've removed. Anyone have an idea how easy it is to get the net removal stats? I think that if one treats all files as equal\, Dave will win\, as he deleted the Changes* files)

Nicholas Clark

p5pRT commented 11 years ago

From @cpansprout

On Fri Jun 21 02​:26​:20 2013\, nicholas wrote​:

(I suspect that I've still added more code than I've removed. Anyone have an idea how easy it is to get the net removal stats? I think that if one treats all files as equal\, Dave will win\, as he deleted the Changes* files)

Well\, that’s not really deleting code\, is it? It would be interesting to see how much code each person has deleted ignoring t/ and documentation. My lvalue sub fixes mostly consisted of deleting code in *.c and then adding more code to t/ than was deleted.

--

Father Chrysostomos

p5pRT commented 11 years ago

From @nwc10

On Fri Jun 21 10​:43​:18 2013\, sprout wrote​:

On Fri Jun 21 02​:26​:20 2013\, nicholas wrote​:

(I suspect that I've still added more code than I've removed. Anyone have an idea how easy it is to get the net removal stats? I think that if one treats all files as equal\, Dave will win\, as he deleted the Changes* files)

Well\, that’s not really deleting code\, is it? It would be interesting to see how much code each person has deleted ignoring t/ and documentation. My lvalue sub fixes mostly consisted of deleting code in *.c and then adding more code to t/ than was deleted.

Oh\, I agree completely. I was meaning that git will treat all files as equal\, so it's quick and easy to get a wrong answer. To get something useful you have to make some criteria about what to ignore. So it could become a bit subjective.

But\, certainly\, reducing the complexity of the C code and adding tests are both things I'd argue are valuable. Please don't stop.

Nicholas Clark

p5pRT commented 11 years ago

From @nwc10

On Fri Jun 21 02​:26​:20 2013\, nicholas wrote​:

On Wed\, Jun 19\, 2013 at 02​:33​:54PM +0100\, Nicholas Clark wrote​:

On Wed\, Jun 19\, 2013 at 06​:12​:46AM -0700\, Nicholas Clark wrote​:

There are a *lot* of variant testing targets in the *nix Makefile\, most of which I don't think that anyone uses. All are shortcuts which invoke t/TEST or t/harness with various options. I propose we remove most of them.

There are also targets and scripts related to profiling and testing tools for Tru64 and Irix. I propose we remove those.

I'm wondering also about killing the purify/quantify/purecov targets (and associated documentation). I'm not even sure if IBM still sell quantify or purecov. They still seem to sell purify\, but I'm not sure if anyone is using it these days. eg

Oh\, and the explicit targets perl.gcov and perl.gprof [and I've updated the documentation related to gcov and gprof\, and tested that it works. Hence the other bug report :-)]

Merged to blead with commit 6fb687a82f7642155c104cfe96d6eb6f090ba803 Marking as resolved.

Nicholas Clark

p5pRT commented 11 years ago

@nwc10 - Status changed from 'open' to 'resolved'

p5pRT commented 11 years ago

From @pjcj

On Fri\, Jun 21\, 2013 at 10​:25​:45AM +0100\, Nicholas Clark wrote​:

Oh\, and the explicit targets perl.gcov and perl.gprof [and I've updated the documentation related to gcov and gprof\, and tested that it works. Hence the other bug report :-)]

I was using the perl.gcov target for the nascent p5cover project but\, as you noted somewhere\, the effort required not to use the target was roughly equal to the effort required to use it\, so I have no problems with it being removed.

-- Paul Johnson - paul@​pjcj.net http​://www.pjcj.net