GNU bug report logs -
#66502
30.0.50; [PATCH; DOC] time-to-days and days-to-time use different epochs
Previous Next
Reported by: Bob Rogers <rogers <at> rgrjr.com>
Date: Thu, 12 Oct 2023 17:25:02 UTC
Severity: normal
Tags: patch
Found in version 30.0.50
Done: Eli Zaretskii <eliz <at> gnu.org>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 66502 in the body.
You can then email your comments to 66502 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#66502
; Package
emacs
.
(Thu, 12 Oct 2023 17:25:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Bob Rogers <rogers <at> rgrjr.com>
:
New bug report received and forwarded. Copy sent to
bug-gnu-emacs <at> gnu.org
.
(Thu, 12 Oct 2023 17:25:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Imagine my surprise when converting back using days-to-time gave me
something almost two millenia in the future. Of course, the problem was
that days-to-time uses a different epoch from time-to-days. The fix was
pretty easy . . . and then I discovered all the code that depends on the
existing behavior. So I offer the following modest documentation patch,
in the hope that others will be spared any similar confusion.
-- Bob Rogers
http://www.rgrjr.com/
[rgr-days-to-time-doc-1.patch (text/x-patch, inline)]
diff --git a/doc/lispref/os.texi b/doc/lispref/os.texi
index 5400d492f0a..2f6bb4e190c 100644
--- a/doc/lispref/os.texi
+++ b/doc/lispref/os.texi
@@ -2127,6 +2127,14 @@ Time Calculations
The operating system limits the range of time and zone values.
@end defun
+@defun days-to-time days
+This is not quite the inverse of the @code{time-to-days} function, as
+it uses the Emacs epoch (instead of the year 1) for historical
+reasons. To get the inverse, subtract @code{(time-to-days 0)} from
+@var{days}, in which case @code{days-to-time} may return @code{nil} if
+@var{days} is negative.
+@end defun
+
@defun time-to-day-in-year time-value
This returns the day number within the year corresponding to @var{time-value},
assuming the default time zone.
diff --git a/lisp/calendar/time-date.el b/lisp/calendar/time-date.el
index 9cbe8e0f53c..786134d8ac5 100644
--- a/lisp/calendar/time-date.el
+++ b/lisp/calendar/time-date.el
@@ -181,7 +181,10 @@ seconds-to-time
;;;###autoload
(defun days-to-time (days)
- "Convert DAYS into a time value."
+ "Convert Emacs-epoch DAYS into a time value.
+Note that this does not use the same epoch as time-to-days; you
+must subtract (time-to-days 0) first to convert, and may get nil
+if the result is before the start."
;; FIXME: We should likely just pass `t' to `time-convert'.
;; All uses I could find in Emacs, GNU ELPA, and NonGNU ELPA can handle
;; any valid time representation as return value.
@@ -243,7 +246,7 @@ time-to-day-in-year
;;;###autoload
(defun time-to-days (time)
- "The absolute date corresponding to TIME, a time value.
+ "The absolute pseudo-Gregorian date for TIME, a time value.
The absolute date is the number of days elapsed since the imaginary
Gregorian date Sunday, December 31, 1 BC."
(let* ((tim (decode-time time))
Reply sent
to
Eli Zaretskii <eliz <at> gnu.org>
:
You have taken responsibility.
(Sat, 14 Oct 2023 09:03:02 GMT)
Full text and
rfc822 format available.
Notification sent
to
Bob Rogers <rogers <at> rgrjr.com>
:
bug acknowledged by developer.
(Sat, 14 Oct 2023 09:03:02 GMT)
Full text and
rfc822 format available.
Message #10 received at 66502-done <at> debbugs.gnu.org (full text, mbox):
> From: Bob Rogers <rogers <at> rgrjr.com>
> Date: Thu, 12 Oct 2023 10:23:35 -0700
>
> Imagine my surprise when converting back using days-to-time gave me
> something almost two millenia in the future. Of course, the problem was
> that days-to-time uses a different epoch from time-to-days. The fix was
> pretty easy . . . and then I discovered all the code that depends on the
> existing behavior. So I offer the following modest documentation patch,
> in the hope that others will be spared any similar confusion.
Thanks, installed on the emacs-29 branch, and closing the bug.
Please in the future accompany the patches by a ChangeLog-style commit
log message, it makes the patches easier to install.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#66502
; Package
emacs
.
(Sat, 14 Oct 2023 14:21:01 GMT)
Full text and
rfc822 format available.
Message #13 received at 66502-done <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org>
Date: Sat, 14 Oct 2023 12:02:10 +0300
Thanks, installed on the emacs-29 branch, and closing the bug.
Please in the future accompany the patches by a ChangeLog-style commit
log message, it makes the patches easier to install.
Oops; I didn't do that, because I thought doc patches didn't need a
ChangeLog message. In hindsight, they need at least a commit message,
so that was pretty silly.
-- Bob
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#66502
; Package
emacs
.
(Sat, 14 Oct 2023 15:39:02 GMT)
Full text and
rfc822 format available.
Message #16 received at 66502-done <at> debbugs.gnu.org (full text, mbox):
> From: Bob Rogers <rogers <at> rgrjr.com>
> Date: Sat, 14 Oct 2023 07:19:46 -0700
> CC: 66502-done <at> debbugs.gnu.org
>
> From: Eli Zaretskii <eliz <at> gnu.org>
> Date: Sat, 14 Oct 2023 12:02:10 +0300
>
> Thanks, installed on the emacs-29 branch, and closing the bug.
>
> Please in the future accompany the patches by a ChangeLog-style commit
> log message, it makes the patches easier to install.
>
> Oops; I didn't do that, because I thought doc patches didn't need a
> ChangeLog message. In hindsight, they need at least a commit message,
> so that was pretty silly.
Yes. What happened isn't a catastrophe: I typed the message for you.
It just takes more time and more manual work, so is best avoided.
TIA
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#66502
; Package
emacs
.
(Mon, 16 Oct 2023 02:04:02 GMT)
Full text and
rfc822 format available.
Message #19 received at 66502-done <at> debbugs.gnu.org (full text, mbox):
[[[ To any NSA and FBI agents reading my email: please consider ]]]
[[[ whether defending the US Constitution against all enemies, ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]
> Oops; I didn't do that, because I thought doc patches didn't need a
> ChangeLog message. In hindsight, they need at least a commit message,
> so that was pretty silly.
the commit message should list what entities you changed, added or
deleted: that is, the doc strings of which functions or variables etc.
And, in a general sense, what the change was about.
Please look at doc string change logs in some of the principal files.
--
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#66502
; Package
emacs
.
(Mon, 16 Oct 2023 05:40:02 GMT)
Full text and
rfc822 format available.
Message #22 received at 66502-done <at> debbugs.gnu.org (full text, mbox):
From: Richard Stallman <rms <at> gnu.org>
Date: Sun, 15 Oct 2023 22:02:57 -0400
[[[ To any NSA and FBI agents reading my email: please consider ]]]
[[[ whether defending the US Constitution against all enemies, ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]
> Oops; I didn't do that, because I thought doc patches didn't need a
> ChangeLog message. In hindsight, they need at least a commit message,
> so that was pretty silly.
the commit message should list what entities you changed, added or
deleted: that is, the doc strings of which functions or variables etc.
And, in a general sense, what the change was about.
Please look at doc string change logs in some of the principal files.
Thank you, Richard; I realize what I should have done, and how I should
have done it, I just spaced out in this instance.
-- Bob
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Mon, 13 Nov 2023 12:24:04 GMT)
Full text and
rfc822 format available.
This bug report was last modified 1 year and 216 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.