[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: rcs-5.9.4: t810 test failed
From: |
Thien-Thi Nguyen |
Subject: |
Re: rcs-5.9.4: t810 test failed |
Date: |
Fri, 27 Oct 2017 21:07:46 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) |
() Xose Vazquez Perez <address@hidden>
() Thu, 26 Oct 2017 19:26:45 +0200
$ stat x
Modify: 2017-10-26 19:18:31.309078104 +0200
$ stat x,v
Modify: 2017-10-26 19:18:31.000000000 +0200
Cool, this is a big clue. Seeing this, i now feel i can trust
/bin/sh ‘test -nt’ on your system to DTRT (i.e., the failure of
t810 is meaningful). (On the flip side, sending a tarball of
the failing tNNN.d loses a bit of its allure as a first step
collaborative debug strategy, so it goes...)
The correct outcome should be that x,v mtime explicitly mirrors
x mtime (i.e., ...:31.309078104). The current implementation
uses ‘utime’ (in rcsedit.c, func ‘setmtime’) to do this job.
This works on filesystems lacking sub-second resolution support,
but that's no longer sufficient these days, apparently.
I see from utime(2) on my system:
POSIX.1-2008 marks utime() as obsolete.
Seems like a good hint as well, pointing us to ‘utimensat’ as a
replacement (specified in POSIX.1-2008) that supports ‘struct
timespec’ for full nanosecond resolution.
On the input side (finding the x mtime), we'll use gnulib module
‘stat-time’ to tame the ‘struct stat’ zoo. Finally, an excuse
to rename var ‘newRCStime’ to something less ugly -- bwahahahah!
--
Thien-Thi Nguyen -----------------------------------------------
(defun responsep (query)
(pcase (context query)
(`(technical ,ml) (correctp ml))
...)) 748E A0E8 1CB8 A748 9BFA
--------------------------------------- 6CE4 6703 2224 4C80 7502
signature.asc
Description: PGP signature