> Date: Wed, 20 Apr 2022 17:11:34 -0700 > Cc: maniku...@gmail.com, emacs-orgm...@gnu.org, 54...@debbugs.gnu.org, > bug-gnulib@gnu.org > From: Paul Eggert <egg...@cs.ucla.edu> > > On 4/20/22 12:30, Eli Zaretskii wrote: > > > I see the time samples change in jumps of 15 msec. > > Could you give the first part of the output? I would like to see what > the the samples are jumping from and to, and how often they jump.
That "first part", as I understand what you wanted, would be too long and tedious to examine, as the value changes once every 5500 lines. So I've modified the test program to print the time only when it changes, and here's the output: gettime_res returned 625000 ns time = 1650522863.038750000 time = 1650522863.054375000 time = 1650522863.070000000 time = 1650522863.085625000 time = 1650522863.101250000 time = 1650522863.116875000 time = 1650522863.132500000 time = 1650522863.148125000 time = 1650522863.163750000 time = 1650522863.179375000 time = 1650522863.195000000 time = 1650522863.210625000 time = 1650522863.226250000 time = 1650522863.241875000 time = 1650522863.257500000 time = 1650522863.273125000 time = 1650522863.288750000 time = 1650522863.304375000 time = 1650522863.320000000 time = 1650522863.335625000 time = 1650522863.351250000 time = 1650522863.366875000 time = 1650522863.382500000 time = 1650522863.398125000 time = 1650522863.413750000 > > Which is expected > > on MS-Windows, given the scheduler time tick, but what does that have > > to do with the system's time resolution? > > The resolution of Elisp's (time-convert nil t) is determined by the > smallest nonzero gap between timestamps that are returned by C's > current_timespec. This is the system time resolution as far as Elisp is > concerned, because Elisp cannot return the current time at a finer > resolution than what current_timespec gives it. This resolution is not > necessarily the same as the time resolution of the motherboard clock, OS > high-res timestamp, file timestamps, etc. Then I think I don't understand the purpose of this measurement, as applied to Emacs Lisp. For example, you say that this is unrelated to file timestamps, but don't we use time values for file timestamps? And for Windows, all this does is measure the "resolution" of the Gnulib emulation of timespec functions on MS-Windows, it tells nothing about the real resolution of the system time values. More generally, if the "time resolution" determined by this procedure is different between two systems, does it mean that two time values that are 'equal' on one of them could be NOT 'equal' on another? And if so, wouldn't that mean Emacs Lisp programs will be inherently not portable? IOW, how do you intend to incorporate this "time resolution" into Emacs Lisp, and what will be affected by that value?