[O] var `date' lacks a prefix warnings

2012-04-27 Thread Martyn Jago

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

2012-04-27 Thread Bastien
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

2012-04-27 Thread Achim Gratz
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

2012-04-27 Thread Martyn Jago
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

2012-04-27 Thread Martyn Jago
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