Subject: Re: bug#5293: 23.1; unload-feature on buffer-local hooks

From: Juanma Barranquero <[email-masked]>
Date: Fri, 15 Jul 2011 02:34:29 +0200

On Fri, Jul 15, 2011 at 02:26, Kevin Ryde <[email-masked]> wrote:

> Or conversely, it's undesirable to leave behind an unbound func in a
> hook, and the same undesirability as to a buffer-local value as a global
> value.

But the usual case is that these buffer-local values are set via major
modes also defined in the same package, and so they are automatically
removed when the major modes are disabled (i.e., when the buffers are
switched to other major modes). The only case where a buffer-local
value is left behind is when the package's code sets it in
non-standard ways, and in this case, it's the package responsability
to define a FEATURE-unload-function to undo the changes.

The philosophy behind unload-feature is: we try to automatically undo
the easy/standard things, and give the package the opportunity to undo
the hard/unstandard things itself. And I think it's the right
approach.

    Juanma