Subject: Re: bug#12135: 24.1.50; compatibility between compiled files in emacs-24.1 and 24.2

From: Stefan Monnier <[email-masked]>
Date: Wed, 08 Aug 2012 14:57:51 -0400

> I think at flet because there is no reason that the other part of the
> code don't work. (but I may be wrong)

flet is used elsewhere.  And eliminating the flet (see patch below,
which doesn't look bad when compared to the horror generated by flet)
did not solve the problem.

> Hmm! No, AFAIK there is no ignore-errors involved here. 

Somehow an error must have been signaled and then silenced.
I replaced all ignore-errors by with-demoted-errors but that didn't
help, so it must be some condition-case somewhere (or some other code in
some other Elisp library, of course).

In any case, I think I found the culprit: the old CL's `loop' used
cl-map-keymap-recursively internally for `key-seqs', which I renamed to
cl--map-keymap-recursively but forgot to add a compatibility alias.

Should be fixed now, thank you,

        Stefan

=== modified file 'helm-command.el'
--- helm-command.el	2012-08-04 13:51:32 +0000
+++ helm-command.el	2012-08-08 18:27:09 +0000
@@ -116,7 +116,7 @@
                         when (commandp com)
                         collect i into hist finally return hist))
          command sym-com)
-    (flet ((pers-help (candidate)
+    (let ((pers-help (lambda (candidate)
              (let ((hbuf (get-buffer (help-buffer)))
                    special-display-buffer-names
                    special-display-regexps)
@@ -136,14 +136,14 @@
                    (describe-function (intern candidate))
                    (message nil) ; Erase the new stupid message Type "q"[...]
                    (setq in-help t))
-               (setq help-cand candidate))))
+               (setq help-cand candidate)))))
       (setq command (helm-comp-read
                      "M-x " obarray
                      :test 'commandp
                      :requires-pattern helm-M-x-requires-pattern
                      :name "Emacs Commands"
                      :buffer "*helm M-x*"
-                     :persistent-action 'pers-help
+                     :persistent-action pers-help
                      :persistent-help "Describe this command"
                      :history history
                      :del-input nil