develooper Front page | perl.perl5.porters | Postings from April 2019

[perl #133377] lib/File/Copy.t fails mtime test in perl-5.28 builtwith quadmath

Thread Next
From:
James E Keenan via RT
Date:
April 18, 2019 22:11
Subject:
[perl #133377] lib/File/Copy.t fails mtime test in perl-5.28 builtwith quadmath
Message ID:
rt-4.0.24-23472-1555625502-446.133377-15-0@perl.org
On Thu, 18 Apr 2019 14:57:13 GMT, khw wrote:
> On Fri, 03 Aug 2018 21:56:47 -0700, public@khwilliamson.com wrote:
> > On 08/03/2018 09:05 AM, Karl Williamson wrote:
> > > On 08/03/2018 07:29 AM, Dave Mitchell wrote:
> > >> On Fri, Aug 03, 2018 at 06:12:31AM -0700, sisyphus@cpan.org via RT
> > >> wrote:
> > >>> On Wed, 18 Jul 2018 17:46:19 -0700, jkeenan wrote:
> > >>> I see plenty of evidence that the problem still persists.  Was
> > >>> this
> > >>> something that Jarkko was working on prior to the release of
> > >>> perl-5.28.0, before he ran out of time and/or energy ?
> > >>
> > >> I haven't read this thread closely, but is this same issue that I
> > >> produced
> > >> a patch for back in April (but didn't apply because we were in
> > >> code
> > >> freeze)?
> > >>
> > >> commit 3e15af2f6d937772d14e95e9b7443423f157d5cd
> > >> (origin/smoke-me/davem/time_hires_nsec, time_hires_nsec)
> > >> Author:     David Mitchell <davem@iabyn.com>
> > >> AuthorDate: Fri Apr 27 12:43:44 2018 +0100
> > >> Commit:     David Mitchell <davem@iabyn.com>
> > >> CommitDate: Fri Apr 27 14:21:28 2018 +0100
> > >>
> > >>      time::HiRes: don't truncate nanosec utime
> > >
> > > I have pushed this patch to the smoke report currently running. 
> > > The
> > > status can be viewed at
> > >
> > > http://perl.develop-help.com/?b=smoke-me%2Fkhw-locale
> >
> > The smokes are coming out much better now.  But there are still some
> > HiRes failures on some Linuxes, and some apparent unrelated failures
> > that I don't think there are tickets for.
> >
> > And there's a small problem with Rob's patch,
> >
> > proto.h:4332:11: warning: 'S_mulexp10' declared 'static' but never
> > defined [-Wunused-function]
> >
> > There needs to be a #ifdef in embed.fnc to fix this warning
> >
> >
> > >>      When passed a floating point atime/mtime value,
> > >> T::HR::utime()
> > >>       was converting it into two longs: secs and nsec. But the
> > >> nanosec
> > >> value
> > >>      was calculated using a final NV to long cast, which truncates
> > >> any
> > >>       fractional part rather than rounding to nearest. Use a 0.5
> > >> addition to
> > >>      force rounding.
> > >>       This was manifesting as a test in lib/File/Copy.t failing to
> > >> preserve
> > >>       the same mtime after a couple of round trips with utime()
> > >> and
> > >> stat().
> > >>       In particular, the test was attempting to set an mtime to
> > >> the
> > >> literal
> > >>      floating-point value
> > >>          1000000000.12345
> > >>      This value can't be represented exactly as an NV, so was
> > >> actually
> > >>      (under -Dquadmath)
> > >>      1000000000.1234499999999999999999999568211720247320
> > >>      which was (using truncation) being converted into the two
> > >> sec/nsec
> > >>      longs:
> > >>          1000000000, 123449999
> > >>      After this commit, it instead correctly gets converted to
> > >>          1000000000, 123450000
> > >>
> > >> M       dist/Time-HiRes/HiRes.xs
> > >> M       dist/Time-HiRes/t/utime.t
> > >>
> > >>
> > >>
> > >
> 
> Is this ticket closable?

Just now I built blead v5.29.9-151-g43049430d1 on Linux with -Dusequadmath.  I got no errors in lib/File/Copy.t.  So the original complaint has been satisfied.  (A lot else got discussed in this ticket, though.  And with quadmath there are known failures in t/re/uniprops02.t -- but that's outside the scope of this RT.)  So, by me at least, it's closable.

Thank you very much.
-- 
James E Keenan (jkeenan@cpan.org)

---
via perlbug:  queue: perl5 status: open
https://rt.perl.org/Ticket/Display.html?id=133377

Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About