[O] var `date' lacks a prefix warnings
Regarding the remaining Org-mode `lacks a prefix' warnings and particularly in light of the recent message on emacs.devel [1] would it not be sufficient to simply alias date and entry locally: --8---cut here---start-8--- (defvaralias 'org--date 'date) (defvaralias 'org--entry 'entry) --8---cut here---end---8--- Presumably this would be backwardly-compatible, and given a subsequent name change in diary-lib.el a very simple integration test could catch that very quickly. If I get a positive response I can perhaps look at a patch and tests, but if my understanding is amiss I will appreciate the heads-up. Best, Martyn p.s. I should point out that my personal view is that a serious well maintained Emacs library such as Org-mode should have a zero warning policy for official releases. Footnotes: [1] From: Chong Yidong c...@gnu.org Subject: Evil defvars in org.el Newsgroups: gmane.emacs.devel To: Bastien Guerry b...@gnu.org Cc: emacs-de...@gnu.org Date: Fri, 27 Apr 2012 11:17:37 +0800 (9 hours, 36 minutes, 57 seconds ago)
Re: [O] var `date' lacks a prefix warnings
Hi Martyn, Martyn Jago martyn.j...@btinternet.com writes: Regarding the remaining Org-mode `lacks a prefix' warnings and particularly in light of the recent message on emacs.devel [1] would it not be sufficient to simply alias date and entry locally: (defvaralias 'org--date 'date) (defvaralias 'org--entry 'entry) Presumably this would be backwardly-compatible, and given a subsequent name change in diary-lib.el a very simple integration test could catch that very quickly. We first need to fix Calendar so that it doesn't use ̀€date' and `entry' as the name for dynamically variables that are passed around. Then preparing a patch for Org would be great. I'll ping Glenn on the emacs-devel mailing list about this. p.s. I should point out that my personal view is that a serious well maintained Emacs library such as Org-mode should have a zero warning policy for official releases. We are close to zero. If you have time to work on some warning, could you have a look into the one for `buffer-substring-filters'? Also the one for name should be fixed. With these two, and when the problems from calendar are fixed, we will be closer to zero. Thanks! -- Bastien
Re: [O] var `date' lacks a prefix warnings
Martyn Jago writes: Regarding the remaining Org-mode `lacks a prefix' warnings and particularly in light of the recent message on emacs.devel [1] would it not be sufficient to simply alias date and entry locally: (defvaralias 'org--date 'date) (defvaralias 'org--entry 'entry) That doesn't work, AFAIK: defvaralias binds the symbol (it looks up what is behind the symbol and creates another symbol for it), but dynamic scoping does not (you look up what's behind the symbol each time you use it). The problem is that when a symbol gets dynamically scoped it cannot be used as a lexical symbol after that, so any code that uses date and entry after the defvar doesn't get a lexcial binding. You would need a language construct that would let you capture a symbol dynamically, internalize it (in essence it would be renaming that symbol in some scope) and then erase all traces of that symbol having been symbolically scoped so that it can be used lexically again. I don't think anything like that currently exists. p.s. I should point out that my personal view is that a serious well maintained Emacs library such as Org-mode should have a zero warning policy for official releases. Here's a problem that originates outside of our control. At the very least, we can't fix it just in org. Regards, Achim. -- +[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]+ Factory and User Sound Singles for Waldorf rackAttack: http://Synth.Stromeko.net/Downloads.html#WaldorfSounds
Re: [O] var `date' lacks a prefix warnings
Hi Achim Achim Gratz strom...@nexgo.de writes: Martyn Jago writes: Regarding the remaining Org-mode `lacks a prefix' warnings and particularly in light of the recent message on emacs.devel [1] would it not be sufficient to simply alias date and entry locally: (defvaralias 'org--date 'date) (defvaralias 'org--entry 'entry) That doesn't work, AFAIK: defvaralias binds the symbol (it looks up what is behind the symbol and creates another symbol for it), but dynamic scoping does not (you look up what's behind the symbol each time you use it). The problem is that when a symbol gets dynamically scoped it cannot be used as a lexical symbol after that, so any code that uses date and entry after the defvar doesn't get a lexcial binding. You would need a language construct that would let you capture a symbol dynamically, internalize it (in essence it would be renaming that symbol in some scope) and then erase all traces of that symbol having been symbolically scoped so that it can be used lexically again. I don't think anything like that currently exists. I appreciate `defvaralias' doesn't work nicely with lexical variables, but I am assuming somewhat that we are talking about dynamic variables here? If the global date / entry are dynamic then the dynamic `defvaralias' alias will also be dynamic, and any prior use of the dynamic variable will surely be a dynamic binding? I'm going to do some further testing anyway, since I'm interested, but so far things appear to work. p.s. I should point out that my personal view is that a serious well maintained Emacs library such as Org-mode should have a zero warning policy for official releases. Here's a problem that originates outside of our control. At the very least, we can't fix it just in org. I agree we can't fix the source of the problem but IF we can fix the warning by removing `lack of prefixes' in Org-mode, then we have demonstrated that we acknowledge the warning and have dealt with it. In other words, if we can fix the problem within Org-mode we are not propagating the problem. If we don't, then perhaps we didn't fix the warning because we don't fix warnings. However, it may indeed be impossible to fix as you pointed out! Best, Martyn
Re: [O] var `date' lacks a prefix warnings
Hi Bastien Bastien b...@gnu.org writes: Hi Martyn, Martyn Jago martyn.j...@btinternet.com writes: [...] We first need to fix Calendar so that it doesn't use ̀€date' and `entry' as the name for dynamically variables that are passed around. Then preparing a patch for Org would be great. I'll ping Glenn on the emacs-devel mailing list about this. I took in Glen's and Edward's replies - wow what a history lesson! - quote Edward Reingold: who'd have guessed how much it would grow over almost 30 years, or that my code would still be around [1] So it doesn't look like the problem will be fixed at source any time quickly. I'm going to persevere until I've talked myself out of it since I'm learning a lot! Best, Martyn bookmark: http://article.gmane.org/gmane.emacs.devel/150087