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 Previous
From:
Karl Williamson via RT
Date:
April 18, 2019 14:57
Subject:
[perl #133377] lib/File/Copy.t fails mtime test in perl-5.28 builtwith quadmath
Message ID:
rt-4.0.24-12229-1555599433-628.133377-15-0@perl.org
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?
-- 
Karl Williamson

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

Thread Previous


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