Subject: Re: bug#12124: 24.1.50; warning pollution

From: Thierry Volpiatto <[email-masked]>
Date: Fri, 03 Aug 2012 12:37:18 +0200

Stefan Monnier <[email-masked]> 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