timbunce / devel-nytprof

Devel::NYTProf is a powerful feature-rich source code profiler for Perl. (Mostly in maintenance mode, so PRs are much more likely to be acted upon than Issues.)
http://blog.timbunce.org/tag/nytprof/
67 stars 51 forks source link

NV size 8 but ours is 16 #168

Closed eserte closed 3 years ago

eserte commented 3 years ago

The test suite fails on my smoker systems with perls compiled with -Duselongdouble like this:

Profile data created by incompatible perl config (NV size 8 but ours is 16) at /usr/home/cpansand/.cpan/build/2021042722/Devel-NYTProf-6.08-1/blib/lib/Devel/NYTProf/Data.pm line 89.
t/11-reader.t ............ 
Dubious, test returned 255 (wstat 65280, 0xff00)
No subtests run 
Profile data created by incompatible perl config (NV size 8 but ours is 16) at /usr/home/cpansand/.cpan/build/2021042722/Devel-NYTProf-6.08-1/blib/lib/Devel/NYTProf/Data.pm line 89.
t/12-data.t .............. 
Dubious, test returned 255 (wstat 65280, 0xff00)
No subtests run 
Profile data created by incompatible perl config (NV size 8 but ours is 16) at /usr/home/cpansand/.cpan/build/2021042722/Devel-NYTProf-6.08-1/blib/lib/Devel/NYTProf/Data.pm line 89.
t/13-fileinfo.t .......... 
Dubious, test returned 255 (wstat 65280, 0xff00)
No subtests run 
Profile data created by incompatible perl config (NV size 8 but ours is 16) at /usr/home/cpansand/.cpan/build/2021042722/Devel-NYTProf-6.08-1/blib/lib/Devel/NYTProf/Data.pm line 89.
t/14-subinfo.t ........... 
Dubious, test returned 255 (wstat 65280, 0xff00)
No subtests run 
jkeenan commented 3 years ago

yes, it also fails for openSUSE (version 6.08), but with different error messages: https://build.opensuse.org/package/live_build_log/devel:languages:perl:autoupdate/perl-Devel-NYTProf/standard/x86_64

[   23s] t/10-run.t ............... ok
[   23s] File uses compression but compression is not supported by this build of NYTProf at /home/abuild/rpmbuild/BUILD/Devel-NYTProf-6.08/blib/lib/Devel/NYTProf/Data.pm line 89.
[   23s] t/11-reader.t ............ 
[   23s] Dubious, test returned 255 (wstat 65280, 0xff00)
[   23s] No subtests run 
[   23s] File uses compression but compression is not supported by this build of NYTProf at /home/abuild/rpmbuild/BUILD/Devel-NYTProf-6.08/blib/lib/Devel/NYTProf/Data.pm line 89.
[   23s] t/12-data.t .............. 
[   23s] Dubious, test returned 255 (wstat 65280, 0xff00)
[   23s] No subtests run 
[   23s] File uses compression but compression is not supported by this build of NYTProf at /home/abuild/rpmbuild/BUILD/Devel-NYTProf-6.08/blib/lib/Devel/NYTProf/Data.pm line 89.
[   23s] t/13-fileinfo.t .......... 
[   23s] Dubious, test returned 255 (wstat 65280, 0xff00)
[   23s] No subtests run 
[   23s] File uses compression but compression is not supported by this build of NYTProf at /home/abuild/rpmbuild/BUILD/Devel-NYTProf-6.08/blib/lib/Devel/NYTProf/Data.pm line 89.
[   23s] t/14-subinfo.t ........... 
[   23s] Dubious, test returned 255 (wstat 65280, 0xff00)
[   23s] No subtests run 
[   23s] t/22-readstream.t ........ ok

@perlpunk, this is a different problem from the one @eserte reported above. Could you please open a new Issue for this with File uses compression but compression is not supported by this build as the Subject?

I'll have additional comments on this problem once a separate ticket has been opened.

Thank you very much. Jim Keenan

jkeenan commented 3 years ago

@eserte, thank you for filing this report.

I can confirm that this is a general problem with the test files in question when the perl running the tests is built with -Duselongdouble. For example:

$ bleadperl -V:config_args
config_args='-des -Dusedevel -Duselongdouble -Dprefix=/home/jkeenan/testing/blead -Uversiononly -Dman1dir=none -Dman3dir=none';
$ make test_short
[snip]
t/11-reader.t ............ Profile data created by incompatible perl config (NV size 8 but ours is 16) at /usr/home/jkeenan/.cpanm/work/1619610377.38516/Devel-NYTProf-6.08/blib/lib/Devel/NYTProf/Data.pm line 89.
t/11-reader.t ............ Dubious, test returned 255 (wstat 65280, 0xff00)
No subtests run 
t/12-data.t .............. Profile data created by incompatible perl config (NV size 8 but ours is 16) at /usr/home/jkeenan/.cpanm/work/1619610377.38516/Devel-NYTProf-6.08/blib/lib/Devel/NYTProf/Data.pm line 89.
t/12-data.t .............. Dubious, test returned 255 (wstat 65280, 0xff00)
No subtests run 
t/13-fileinfo.t .......... Profile data created by incompatible perl config (NV size 8 but ours is 16) at /usr/home/jkeenan/.cpanm/work/1619610377.38516/Devel-NYTProf-6.08/blib/lib/Devel/NYTProf/Data.pm line 89.
t/13-fileinfo.t .......... Dubious, test returned 255 (wstat 65280, 0xff00)
No subtests run 
t/14-subinfo.t ........... Profile data created by incompatible perl config (NV size 8 but ours is 16) at /usr/home/jkeenan/.cpanm/work/1619610377.38516/Devel-NYTProf-6.08/blib/lib/Devel/NYTProf/Data.pm line 89.
t/14-subinfo.t ........... Dubious, test returned 255 (wstat 65280, 0xff00)
No subtests run 

The root cause of the problem is that in yesterday's Devel-NYTProf-6.08 CPAN release, one of my major objectives was to increase test coverage. Each of the 4 failing test files was added for that purpose. Each such test file requires some dummy profile data provided in a file named, e.g., t/nytprof_11-reader.out.txt, which I generated locally. It appears that this dummy data is highly sensitive to whether our perl is built with longdouble or not.

Since I've never attempted to work in a perl-with-longdouble environment, I'm not clear as to how to proceed. Suggestions?

Thank you very much. Jim Keenan

jkeenan commented 3 years ago

I am trying out a work-around in this branch: https://github.com/jkeenan/devel-nytprof/tree/gh-168-longdouble.

Thank you very much. Jim Keenan

jkeenan commented 3 years ago

This ticket should be closable now that v6.09 has been released.

jkeenan commented 3 years ago

This ticket should be closable now that v6.09 has been released.

Not so fast.

On IRC @Tux alerted me to failures on quadmath builds on Linux. I have confirmed his report.

$ ./bin/perl -V:config_args
config_args='-des -Dusedevel -Dusethreads -Dusequadmath -Dprefix=/home/jkeenan/testing/v5.34.0-RC1 -Uversiononly -Dman1dir=none -Dman3dir=none';
$ ./bin/perl -v | head -2 | tail -1
This is perl 5, version 34, subversion 0 (v5.34.0-RC1) built for x86_64-linux-thread-multi-quadmath

# Excerpt from .cpanm build.log
t/00-load.t .............. ok
t/10-run.t ............... ok
Profile data created by incompatible perl config (NV size 8 but ours is 16) at /home/jkeenan/.cpanm/work/1620221484.366376/Devel-NYTProf-6.09/blib/lib/Devel/NYTProf/Data.pm line 89.
t/11-reader.t ............
Dubious, test returned 255 (wstat 65280, 0xff00)
No subtests run
Profile data created by incompatible perl config (NV size 8 but ours is 16) at /home/jkeenan/.cpanm/work/1620221484.366376/Devel-NYTProf-6.09/blib/lib/Devel/NYTProf/Data.pm line 89.
t/12-data.t ..............
Dubious, test returned 255 (wstat 65280, 0xff00)
No subtests run
Profile data created by incompatible perl config (NV size 8 but ours is 16) at /home/jkeenan/.cpanm/work/1620221484.366376/Devel-NYTProf-6.09/blib/lib/Devel/NYTProf/Data.pm line 89.
t/13-fileinfo.t ..........
Dubious, test returned 255 (wstat 65280, 0xff00)
No subtests run
Profile data created by incompatible perl config (NV size 8 but ours is 16) at /home/jkeenan/.cpanm/work/1620221484.366376/Devel-NYTProf-6.09/blib/lib/Devel/NYTProf/Data.pm line 89.
t/14-subinfo.t ...........
Dubious, test returned 255 (wstat 65280, 0xff00)
No subtests run
t/22-readstream.t ........ ok

Investigating.

eserte commented 3 years ago

Maybe the skip should simply be done on $Config{nvsize} != 8?

jkeenan commented 3 years ago

Maybe the skip should simply be done on $Config{nvsize} != 8?

I'm open to considering that, but what would we put in the user-visible SKIP messaage?

Currently, in this branch 4 test files have SKIPs coded like this:

plan skip_all => "needs different profile data for testing on longdouble builds"
    if (defined $Config{uselongdouble} and $Config{uselongdouble} eq 'define');

plan skip_all => "needs different profile data for testing on quadmath builds"
    if (defined $Config{usequadmath} and $Config{usequadmath} eq 'define');

We could modify the if conditions, per your suggestion, to be more precise. But I don't really want to talk about NVs in the message because most of the people who might see that message will know little about NVs.

Can you (or anyone) suggest an appropriate message?

Thank you very much. Jim Keenan

jkeenan commented 3 years ago

The SKIP has been implemented in CPAN release 6.10; we're still open to discussion of the SKIP condition and message.

jkeenan commented 3 years ago

The SKIP has been implemented in CPAN release 6.10; we're still open to discussion of the SKIP condition and message.

There has been no further discussion in this ticket in three months, so we'll assume things are satisfactory. Closing.