[Date Prev][Date Next][Thread Prev][][Date Index][Thread Index]

Re: bogus change(s) in cl-macs.el



>>>>>> In [emacs-w3m : No.07180] Miles Bader wrote:

>> Please describe this "breakage" in greater detail.

>>>>> In [emacs-w3m : No.07182] Katsumi Yamaoka wrote:

> From yesterday I'm looking for a simpler way rather than to use
> emacs-w3m to reproduce the bug.  However, it has not been
> achieved so far.  I'll post it when I found it.

I found the simplest way to explain the bug:

(macroexpand
 '(labels ((FOO nil FOO-BODY)
	   (BAR nil BAR-BODY))
    (FOO)
    (BAR)))

(let ((--cl---cl-var---- nil)
      (--cl---cl-var---- nil))
  (progn
    (progn
      (set '--cl---cl-var---- #'(lambda nil BAR-BODY))
      (set '--cl---cl-var---- #'(lambda nil FOO-BODY)))
    (funcall (symbol-value '--cl---cl-var----))
    (funcall (symbol-value '--cl---cl-var----))))

One of two functions FOO and BAR is disregarded as you see.
When the patch I posted is applied, it will be corrected as
follows:

(let ((--cl-G79813-- nil)
      (--cl-G79812-- nil))
  (progn
    (progn
      (set '--cl-G79813-- #'(lambda nil BAR-BODY))
      (set '--cl-G79812-- #'(lambda nil FOO-BODY)))
    (funcall (symbol-value '--cl-G79812--))
    (funcall (symbol-value '--cl-G79813--))))