This bug report will be sent to the Bug-GNU-Emacs mailing list
and the GNU bug tracker at debbugs.gnu.org. Please check that
the From: line contains a valid email address. After a delay of up
to one day, you should receive an acknowledgment at that address.
Please write in English if possible, as the Emacs maintainers
usually do not have translators for other languages.
Please describe exactly what actions triggered the bug, and
the precise symptoms of the bug. If you can, give a recipe
starting from `emacs -Q':
I am getting the following warning:
Warning: `labels' is an obsolete function (as of 24.2); use `cl-labels'
instead.
Annoyingly it pops up a buffer called *Compile Log* which pollutes my
emacs frame. I feel it should go to *Message*.
If Emacs crashed, and you have the Emacs process in the gdb debugger,
please include the output from the following gdb commands:
`bt full' and `xbacktrace'.
For information about debugging Emacs, please read the file
/home/ubuntu/emacs-bzr/share/emacs/24.1.50/etc/DEBUG.
In GNU Emacs 24.1.50.1 (i686-pc-linux-gnu, GTK+ Version 2.22.0)
of 2012-08-02 on tao
Bzr revision: 109392 r...@gnu.org-20120802064717-7my9ti5ms22zo998
Windowing system distributor `The X.Org Foundation', version 11.0.10900000
Configured using:
`configure '--prefix=/home/ubuntu/emacs-bzr' 'CFLAGS=-g''
Important settings:
locale-coding-system: nil
default enable-multibyte-characters: t
Major mode: Org
Minor modes in effect:
diff-auto-refine-mode: t
shell-dirtrack-mode: t
icomplete-mode: t
recentf-mode: t
display-time-mode: t
mouse-wheel-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
line-number-mode: t
auto-fill-function: org-auto-fill-function
abbrev-mode: t
Recent input:
C-n C-n S a l u t SPC I r i s , <return> <return> Q ' <backspace> <backspace> E s t - c e SPC q u ' SPC i l SPC y SPC u <backspace> a u <backspace> SPC u n e SPC l i a s <backspace> i s o n SPC b u s t SPC o u <backspace> <backspace> <backspace> <backspace> SPC o u t SPC <backspace> <backspace> SPC r <backspace> t r a i n SPC e n t r e SPC m o n t r e <backspace> <backspace> <backspace> <backspace> <backspace> <backspace> M o n t r e a l SPC e t SPC Q u e b e c ? C-b C-b C-b C-b C-b <backspace> ' e C-a I l SPC n ' SPC y SPC a SPC p a s SPC d e SPC v o l SPC d i r e c t SPC P a r i s SPC Q u e b e c <backspace> <backspace> <backspace> <backspace> ' e b e c . SPC M-q C-a I m SPC e <backspace> <backspace> <backspace> l SPC m e s SPC s <backspace> <backspace> <backspace> SPC s e m b l e SPC q u ' SPC M-l M-q C-n C-p C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f - SPC C-n C-e <return> <return> B i s o u s , <return> <return> I v a n C-n C-n C-a C-k C-k C-k C-c C-c y <M-backspace> i <return> C-o C-a C-n C-n M-w C-o M-x C-g C-x m M-k M-k M-x r e p o r t <tab> b u g <return>
Recent messages:
Sending via mail...
Sending email Sending email done
Mark set
Wrote /home/ubuntu/stat/gnus/mail/sent/14514
Sending...done
Quit
Mark set
Ispell process killed
Starting new Ispell process [aspell::default] ...
Stefan Monnier <monn...@IRO.UMontreal.CA> writes:
>> Why instead of keeping old definitions of labels and flet don't we use
>> aliases for cl-flet/labels (among others)?
> Because they do not do the same (almost, but not quite).
But the warnings say to use cl-flet/labels instead, so it should works
as expected, what is the difference?
>> It would also fix a problem of compatibility of compiled files between
>> 24.1 and 24.2.(All files containing flet or labels need recompilation).
> That's news to me: these macros should return code that's independent
> from CL, so they should not require recompilation.
> Please report with details.
It seems that a simple form of flet works without recompiling, but a
more complex form with a let* inside the flet clause seems to fail
silently. (not only maybe, but conjunction of other things)
You can try with helm:
install it and byte compile it.
Do M-x helm-M-x and type some commands.
You should have completion on your command.
Now switch to another emacs and run the same command:
It is not working, no completion.
So it is not the flet itself that doesn't work but the function that is
called inside this flet clause.
recompile with this emacs and restart emacs.
It is working.
You can find the code of helm-M-x in helm-command.el.
NOTE: it use local var byte-compile-dynamic.
-- Thierry
Get my Gnupg key:
gpg --keyserver pgp.mit.edu --recv-keys 59F29997
>>> Why instead of keeping old definitions of labels and flet don't we use
>>> aliases for cl-flet/labels (among others)?
>> Because they do not do the same (almost, but not quite).
> But the warnings say to use cl-flet/labels instead, so it should works
> as expected, what is the difference?
Warnings about obsolete features just point to the replacement feature,
but in many/most cases a human needs to adjust the code accordingly.
Some of the differences are that `labels' defines lexically-scoped vars
which can be captured in closures using the lexical-let machinery,
whereas `cl-labels' relies on lexical-binding to get the same effect, so
the vars won't get captured if the file doesn't use lexical-binding.
`flet' does something vaguely related to common-lisp's `flet' but in
a very different way (basically with dynamic scoping rather than
lexical scoping). `cl-flet' works like common-lisp's `flet'. As you
know, lexical and dynamic scoping often can be used interchangeably, but
not always.
> You can try with helm:
> install it and byte compile it.
> Do M-x helm-M-x and type some commands.
> You should have completion on your command.
> Now switch to another emacs and run the same command:
> It is not working, no completion.
> So it is not the flet itself that doesn't work but the function that is
> called inside this flet clause.
> recompile with this emacs and restart emacs.
> It is working.
Please make a separate bug-report for that. And please give a more
detailed recipe (especially regarding the "install it, byte compile it
and do M-x ..." where it's not clear where and how "emacs" is started).
Stefan Monnier <monn...@IRO.UMontreal.CA> writes:
>>>> Why instead of keeping old definitions of labels and flet don't we use
>>>> aliases for cl-flet/labels (among others)?
>>> Because they do not do the same (almost, but not quite).
>> But the warnings say to use cl-flet/labels instead, so it should works
>> as expected, what is the difference?
> Warnings about obsolete features just point to the replacement feature,
> but in many/most cases a human needs to adjust the code accordingly.
> Some of the differences are that `labels' defines lexically-scoped vars
> which can be captured in closures using the lexical-let machinery,
> whereas `cl-labels' relies on lexical-binding to get the same effect, so
> the vars won't get captured if the file doesn't use lexical-binding.
> `flet' does something vaguely related to common-lisp's `flet' but in
> a very different way (basically with dynamic scoping rather than
> lexical scoping). `cl-flet' works like common-lisp's `flet'. As you
> know, lexical and dynamic scoping often can be used interchangeably, but
> not always.
Ok that's clear, thanks.
>> You can try with helm:
>> install it and byte compile it.
>> Do M-x helm-M-x and type some commands.
>> You should have completion on your command.
>> Now switch to another emacs and run the same command:
>> It is not working, no completion.
>> So it is not the flet itself that doesn't work but the function that is
>> called inside this flet clause.
>> recompile with this emacs and restart emacs.
>> It is working.
> Please make a separate bug-report for that. And please give a more
> detailed recipe (especially regarding the "install it, byte compile it
> and do M-x ..." where it's not clear where and how "emacs" is started).
Ok will do that today, thanks.
-- Thierry
Get my Gnupg key:
gpg --keyserver pgp.mit.edu --recv-keys 59F29997
Stefan Monnier <monn...@IRO.UMontreal.CA> wrote:
>> Why instead of keeping old definitions of labels and flet don't we use
>> aliases for cl-flet/labels (among others)?
> Because they do not do the same (almost, but not quite).
I think that the buffer *Compile Log* shouldn't pop up. It should behave
like *Message*. The problem is in emacs-w3m. It annoys me for mundane
task such as reading mail or catching up news in newsticker.
-- Ivan Kanis
http://ivan.kanis.fr
The West won the world not by the superiority of its ideas or values
or religion ... but rather by its superiority in applying organized
violence. Westerners often forget this fact; non-Westerners never do.
-- Samuel Huntington
>>> Why instead of keeping old definitions of labels and flet don't we use
>>> aliases for cl-flet/labels (among others)?
>> Because they do not do the same (almost, but not quite).
> I think that the buffer *Compile Log* shouldn't pop up. It should behave
> like *Message*.
I think you're right that in such a use-case it shouldn't pop up,
although in the usual byte-compilation case it should.
> The problem is in emacs-w3m. It annoys me for mundane
> task such as reading mail or catching up news in newsticker.
But it's also the case that emacs-w3m probably shouldn't byte-compile
code at run-time. Can you try and figure out which it does that?
Stefan Monnier <monn...@iro.umontreal.ca> wrote:
>>>> Why instead of keeping old definitions of labels and flet don't we use
>>>> aliases for cl-flet/labels (among others)?
>>> Because they do not do the same (almost, but not quite).
>> The problem is in emacs-w3m. It annoys me for mundane
>> task such as reading mail or catching up news in newsticker.
> But it's also the case that emacs-w3m probably shouldn't byte-compile
> code at run-time. Can you try and figure out which it does that?
I synced with CVS emacs-w3m and the error went away. I saw that label
got replaced with w3m-label which I think is a sign they took care of
the error. There are a few files where the function byte-compile is
called: w3m, w3m-ems, w3m-proc. They probably should not do that.
-- Ivan Kanis
http://ivan.kanis.fr
The average American 10-year old recognizes less than three species of
tree but more than 150 different corporate logos.
-- Anonymous, Harper's Index
>>> I think that the buffer *Compile Log* shouldn't pop up. It should behave
>>> like *Message*.
>> I think you're right that in such a use-case it shouldn't pop up,
> Is there a possibility to remove the pop up?
We'd have to distinguish the cases where we do want to popup from the
other cases. Patch welcome,
Stefan Monnier <monn...@iro.umontreal.ca> wrote:
>>>> I think that the buffer *Compile Log* shouldn't pop up. It should behave
>>>> like *Message*.
>>> I think you're right that in such a use-case it shouldn't pop up,
>> Is there a possibility to remove the pop up?
> We'd have to distinguish the cases where we do want to popup from the
> other cases. Patch welcome,
What do you have in mind when we should popup?
-- Ivan Kanis
http://ivan.kanis.fr
There is a land of the living and a land of the dead and the bridge is
love, the only survival, the only meaning.
-- Thornton Wilder