all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Paul Eggert <eggert@cs.ucla.edu>
To: Stefan Monnier <monnier@iro.umontreal.ca>
Cc: emacs-devel@gnu.org
Subject: Re: The Emacs Calculator and calendar
Date: Sun, 07 Oct 2012 13:32:39 -0700	[thread overview]
Message-ID: <5071E6E7.7080906@cs.ucla.edu> (raw)
In-Reply-To: <jwvhaq6xu9t.fsf-monnier+emacs@gnu.org>

On 10/07/2012 06:57 AM, Stefan Monnier wrote:

> To the extent possible, Emacs could let the user specify the calendar
> indirectly by instead specifying a "context" (a place, plus whatever
> else is needed to resolve ambiguities), and then let Emacs figure out
> which calendar was used at that time in that context.

Yes, for example Emacs could examine (say) the TZ variable
plus optional extra info.  This would work in theory, but in
practice there would be many problems.

For example, I live the Los Angeles area, and presumably
Emacs would infer its calendrical behavior from my TZ
setting 'America/Los_Angeles'.  But what behavior would that
be, exactly?  To help answer that, here's L.A.'s calendrical
history as best I know:

  Settled by Tongva and Chumash thousands of years ago;
  exact years not known.  These people used calendars, which
  most likely did not agree with each other and varied with
  time, but the details are not known.

  Area first visited by Europeans in 1742.  The Cabrillo
  Expedition anchored in San Pedro and Santa Monica bays for
  one day each, then left and never returned.

  Area visited again in 1602 by the Vizcaíno Expedition, which
  also anchored for a couple of days and then moved on.

  Next known visit by the Portolá Expedition of 1769.  These
  are the first Europeans who are known to have set foot
  near what became Los Angeles downtown, although there are
  rumors of other visits before then.

  City officially founded 4 Sept 1781 (Gregorian).

Given the above, there are several problems in deciding how
Emacs should behave for TZ='America/Los_Angeles':

  Would its calendar change from "unknown" status to Old
  Spanish status in 1542 and then switch to Emacs Julian in
  1556 when Spain switched to Julian and then switch to
  Gregorian in 1582, all because Spanish explorers' ships
  dropped anchor nearby for a couple of days in 1542 and 1602?

  Or should the Los Angeles entry stay "unknown" until 1781
  because the city didn't exist until then?

  Or should it do something else?

No answer is satisfactory here -- whatever we'd put into the
table would be wrong for some common uses.

And Los Angeles is one of the *easy* cases.  There are
hundreds of other locations to do, many of them much harder
than Los Angeles, where we'd have worse problems, some
technical and some political.

Some other questions would come up too.  For instance:

  What do we do when a calendar is partly known, but not
  completely, as is the case for the Chumash calendar,
  or for Julius Caesar's Julian calendar?

  Should Emacs distinguish between "unknown" (that is, there
  was a calendar but we don't know what it was exactly, as
  in Los Angeles circa 1700) and "none" (that is, the area
  was uninhabited and had no calendar, as in Los Angeles
  circa 15,000 BC)?

  We could make some simplifying assumptions, e.g., use the
  Gregorian calendar when the actual calendar isn't fully
  known, but how would this be reflected to the user?  And
  if we're going to do that, why not just use Gregorian
  everywhere, as that's simpler?

I hope this helps to explain why adding a calendrical/locale
database would be a big project, and why any attempts to
build such a thing would run the risk hurting users (by
giving them wrong or misleading answers) as much as help
them.



  reply	other threads:[~2012-10-07 20:32 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-05 19:13 The Emacs Calculator and calendar Jay Belanger
2012-10-05 19:24 ` Paul Eggert
2012-10-05 20:51 ` Edward Reingold
2012-10-05 21:14   ` Pascal J. Bourguignon
2012-10-06 15:41   ` Richard Stallman
2012-10-06 22:07     ` Paul Eggert
2012-10-07  3:49       ` Richard Stallman
2012-10-07  6:22         ` Paul Eggert
2012-10-07 17:30           ` Richard Stallman
2012-10-07 18:23             ` Paul Eggert
2012-10-10  3:37               ` Richard Stallman
2012-10-07  6:36       ` Eli Zaretskii
2012-10-07  7:50         ` Paul Eggert
2012-10-07  8:45           ` Eli Zaretskii
2012-10-07 13:01             ` Juanma Barranquero
2012-10-07 14:08               ` Eli Zaretskii
2012-10-07 17:30           ` Richard Stallman
2012-10-07 17:57             ` Juanma Barranquero
2012-10-07 21:55         ` Sam Steingold
2012-10-08 13:39           ` Richard Stallman
2012-10-07  8:17       ` Stephen J. Turnbull
2012-10-07  7:56     ` Achim Gratz
2012-10-07  8:44       ` Eli Zaretskii
2012-10-07 13:57         ` Stefan Monnier
2012-10-07 20:32           ` Paul Eggert [this message]
2012-10-07 21:34             ` Tim Cross
2012-10-08  0:32             ` Stefan Monnier
2012-10-08  6:30               ` Paul Eggert
2012-10-08  7:28                 ` Ulrich Mueller
2012-10-08 13:56                   ` Stefan Monnier
2012-10-08 14:49                     ` Jay Belanger
2012-10-08  8:21                 ` James Cloos
2012-10-08 14:59                 ` Jay Belanger
2012-10-13  6:02                   ` Paul Eggert
2012-10-13 14:05                     ` Jay Belanger
2012-10-08 13:39             ` Richard Stallman
2012-10-08 19:34               ` Paul Eggert
2012-10-08 22:39                 ` Richard Stallman
2012-10-09  6:28                   ` Paul Eggert
2012-10-09 15:47                     ` Richard Stallman
2012-10-09 23:10                       ` Paul Eggert
2012-10-10  2:22                         ` Jay Belanger
2012-10-11 12:09                           ` Jason Rumney
2012-10-12  1:52                             ` Richard Stallman
2012-10-10  3:37                         ` Richard Stallman
2012-10-10 21:42                   ` Christoph Herzog
2012-10-05 21:17 ` Edward Reingold

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5071E6E7.7080906@cs.ucla.edu \
    --to=eggert@cs.ucla.edu \
    --cc=emacs-devel@gnu.org \
    --cc=monnier@iro.umontreal.ca \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.