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

Re: [21.5] bytecomp bug



Aidan Kehoe <kehoea@xxxxxxxxxxxxx> wrote:
> I’ve just committed:

>   https://bitbucket.org/xemacs/xemacs/changeset/2c20bc575989

> which addresses the problem you reported. I’ve also committed:

>   https://bitbucket.org/xemacs/xemacs/changeset/a944c124b2d3

> which addresses a separate problem that I need to fix in order to get
> emacs-w3m to compile (fair enough, glad to have the opportunity to fix it).

Thanks.  I verified the problem I brought up goes away.

> I, however, also need the following change to W3M to get it to compile, I’m
> surprised you’re not seeing it (the problem was an interaction of
> lexical-let and compile-time defsetf expansion).

Oh, I didn't know it.  Because I abandoned trying emacs-w3m with
XEmacs 21.5 because of the first compilation error. ;-)  But now
I confirmed this form doesn't work with XEmacs 21.5 regardless of
the byte-compilation:

(cl-macroexpand-all
 '(let ((url "FOO"))
   (lexical-let ((orig url)
		 (url "BAR"))
     (setf (w3m-arrived-time (w3m-url-strip-authinfo orig))
	   (w3m-arrived-time url))))
 )

I didn't see how this goes wrong but I guessed symbols used for
two `url's conflict.

> -(defsetf w3m-arrived-time (url) (value)
> -  (list 'w3m-arrived-add url nil nil value))
> +(defsetf w3m-arrived-time (url-) (value)
> +  (list 'w3m-arrived-add url- nil nil value))

I used this patch locally and saw no error when compiling emacs-w3m,
and saw it works fine.  It is unnecessary to add this patch, that
only XEmacs 21.5 currently requires, to emacs-w3m, isn't it?