Subject: bug#21906: closed (Re: bug#21906: julian-day->date negative input breakage)

From: [email-masked] (GNU bug Tracking System)
Date: Sun, 21 Oct 2018 03:22:02 +0000

Your bug report

#21906: julian-day->date negative input breakage

which was filed against the guile package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
21906: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=21906
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#21906: julian-day->date negative input breakage
From: Mark H Weaver <[email-masked]>
To: Zefram <[email-masked]>
Cc: [email-masked]
Date: Sat, 20 Oct 2018 23:20:44 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

Zefram <[email-masked]> writes:

> scheme@(guile-user)> (use-modules (srfi srfi-19))
> scheme@(guile-user)> (julian-day->date 0 0)
> $1 = #<date nanosecond: 0 second: 0 minute: 0 hour: 12 day: 24 month: 11 year: -4714 zone-offset: 0>
> scheme@(guile-user)> (julian-day->date -1 0)
> $2 = #<date nanosecond: 0 second: 0 minute: 0 hour: -12 day: 24 month: 11 year: -4714 zone-offset: 0>
> scheme@(guile-user)> (julian-day->date -100000 0)
> $3 = #<date nanosecond: 0 second: 0 minute: 0 hour: -12 day: -19 month: 3 year: -4987 zone-offset: 0>
> scheme@(guile-user)> (julian-day->date -10000000 0)
> $4 = #<date nanosecond: 0 second: 0 minute: 0 hour: -12 day: -30 month: 0 year: -32092 zone-offset: 0>

This is fixed by commit a58c7abd72648f77e4ede5f62a2c4e7969bb7f95 on the
stable-2.2 branch.  I'm closing this bug, but please reopen if
appropriate.

     Thanks!
       Mark

Subject: julian-day->date negative input breakage
From: Zefram <[email-masked]>
To: [email-masked]
Date: Fri, 13 Nov 2015 14:31:04 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

scheme@(guile-user)> (use-modules (srfi srfi-19))
scheme@(guile-user)> (julian-day->date 0 0)
$1 = #<date nanosecond: 0 second: 0 minute: 0 hour: 12 day: 24 month: 11 year: -4714 zone-offset: 0>
scheme@(guile-user)> (julian-day->date -1 0)
$2 = #<date nanosecond: 0 second: 0 minute: 0 hour: -12 day: 24 month: 11 year: -4714 zone-offset: 0>
scheme@(guile-user)> (julian-day->date -100000 0)
$3 = #<date nanosecond: 0 second: 0 minute: 0 hour: -12 day: -19 month: 3 year: -4987 zone-offset: 0>
scheme@(guile-user)> (julian-day->date -10000000 0)
$4 = #<date nanosecond: 0 second: 0 minute: 0 hour: -12 day: -30 month: 0 year: -32092 zone-offset: 0>

Observe the various erroneous field values: negative hour, negative
day-of-month, zero month.  These occur in general for various negative
JD inputs.  Not only should the conversion not produce these kinds of
values, the date structure type probably ought to reject them if they
get that far.

-zefram