Subject: bug#36549: 27.0.50; decode-time doesn't support sub-second times

From: Lars Ingebrigtsen <[email-masked]>
Date: Mon, 08 Jul 2019 15:10:49 +0200

(current-time)
=> (23843 16275 300006 490000)

(decode-time '(23843 16275 300006 490000))
=> (23 5 15 8 7 2019 1 t 7200)

(decode-time '(23843 16275 100006 490000))
=> (23 5 15 8 7 2019 1 t 7200)

So there's no way to represent the microseconds (or the picoseconds) in
the decoded time structure, which makes round-tripping inaccurate.  (And
you can't build a parser for time formats with sub-second time based on
the decoded time structure, which is a pain.)

I guess the best way to fix this would be to add the micro- and
picoseconds as (optional) fields at the end of the decoded time list?
It's not very elegant, but it'd be backwards compatible.  A different
approach would be to make the seconds field something else than an
integer, but that would introduce more potential problems, I think...

In GNU Emacs 27.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.22.11)
 of 2019-07-07 built on stories
Repository revision: bda8a57141e6cb5455e1246c6ab394791fd6c582
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.11902000
System Description: Debian GNU/Linux 9 (stretch)

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no