From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Sebastien Vauban" Subject: Re: [RFC] Change some defcustoms into defcont Date: Mon, 21 Oct 2013 10:17:09 +0200 Message-ID: <86k3h7domy.fsf@somewhere.org> References: <871u3g5nwx.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain Return-path: List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org-mXXj517/zsQ@public.gmane.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org-mXXj517/zsQ@public.gmane.org To: emacs-orgmode-mXXj517/zsQ@public.gmane.org Hello Nicolas, Nicolas Goaziou wrote: > I'd like to suggest changing the following defcustom variables into > defconst: > > - org-deadline-string > - org-scheduled-string > - org-closed-string > - org-clock-string > - org-comment-string > - org-quote-string > - org-effort-property > - org-archive-tag At first, I thought: "I certainly have changed at least one of them" (such `org-log-note-headings' for which I changed the `state' string to "State %-12S -> %-12s %t" -- as I prefer the FROM -> TO presentation of state changes). Though, FWIW, no, these are still the original values in my case as well. > There's no fundamental reason to change these, as they belong to Org > syntax, much like star character for headlines and ":END:" closing > string for drawers. > > They can also introduce bugs in code when modified (e.g. modifying > `org-effort-property' breaks `ox-taskjuggler'). Of course, this can be > avoided with careful checks, but this puts an extra burden on developers > for a tiny benefit for the user. > > Eventually, they can be costly, since changing any of them implies that > cache in every Org buffer must be erased. > > Allowing customization is generally good, but I think Org syntax should > never be a moving target. > > Note that this shouldn't introduce much backward incompatibility (unless > user changes them through customize interface) since a defconst can > still be setq'ed and variables will still be used in code base. I thought that users never ever could change constants. But the docstring of `defconst' indeed tells that "this constancy is not actually enforced by Emacs Lisp". Though, can we be sure that this will stay true? > Opinions? OK for me. Best regards, Seb -- Sebastien Vauban