[ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Top] | [Table des matières] | [Index] | [ ? ] |
You can discard the functions and variables loaded by a library to reclaim
memory for other Lisp objects. To do this, use the function
unload-feature
:
This command unloads the library that provided feature feature. It
undefines all functions, macros, and variables defined in that library with
defun
, defalias
, defsubst
, defmacro
,
defconst
, defvar
, and defcustom
. It then restores any
autoloads formerly associated with those symbols. (Loading saves these in
the autoload
property of the symbol.)
Before restoring the previous definitions, unload-feature
runs
remove-hook
to remove functions in the library from certain hooks.
These hooks include variables whose names end in ‘hook’ or
‘-hooks’, plus those listed in unload-feature-special-hooks
.
This is to prevent Emacs from ceasing to function because important hooks
refer to functions that are no longer defined.
If these measures are not sufficient to prevent malfunction, a library can
define an explicit unload hook. If feature-unload-hook
is
defined, it is run as a normal hook before restoring the previous
definitions, instead of the usual hook-removing actions. The unload
hook ought to undo all the global state changes made by the library that
might cease to work once the library is unloaded. unload-feature
can
cause problems with libraries that fail to do this, so it should be used
with caution.
Ordinarily, unload-feature
refuses to unload a library on which other
loaded libraries depend. (A library a depends on library b if
a contains a require
for b.) If the optional argument
force is non-nil
, dependencies are ignored and you can unload
any library.
The unload-feature
function is written in Lisp; its actions are based
on the variable load-history
.
This variable holds a list of hooks to be scanned before unloading a library, to remove functions defined in the library.
[ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Top] | [Table des matières] | [Index] | [ ? ] |
Ce document a été généré par Eric Reinbold le 13 Octobre 2007 en utilisant texi2html 1.78.