On Thu, 25 Jul 2002, lists(a)hermans.net wrote:
Jeff Mincy <jeff(a)delphioutpost.com> writes:
> Anybody who uses the advice mechanism will get screwed
> when apel redefines the function.
...
> The problem is that apel uses symbol-function to save the current
> function away and is not aware of the advice mechanism, however,
> defun which is used to redefine the function in apel is aware of
> advised functions.
Interesting. So is this good practice? Hard-coded advice? Seems
like it's not.
<guess> apel was implemented so that it would work in a minimalist
environment - IE one that specifically doesn't have advice. </guess>
> Try commenting out the code in poe.el that redefines require and
> see if you still get the error - don't forget to recompile.
Apel complains when I comment out that section of code. But 'w3m'
works now. Don't know if it breaks anything else that uses poe.
Looks like the code is there to accommodate older versions of Emacs.
I'm not sure what you mean by complains. Anyway, the only thing that
you can break by commenting out the redefinition of require in poe.el
is any user of require that uses the 'noerror' argument that was being
added.
Should I take it up with the Apel developers?
Sure, I guess - unless somebody else on the mailing list has a better
idea. The problem is that the fix is not entirely obvious.
Apel needs to be more tolerant of advised functions - either it needs
to use a version of 'symbol-function' that knows about advised functions
or it needs to use a form of 'defun' that does not know about advised
functions. This would prevent most problems.
-jeff