emacs-devel
[Top][All Lists]
Advanced

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

Re: Loading a package applies automatically to future sessions?


From: Radon Rosborough
Subject: Re: Loading a package applies automatically to future sessions?
Date: Sun, 28 Jan 2018 10:20:49 -0800

> Please point out the places in the manual where we use "load" in the
> former sense.  I think those places need to be fixed, because that's
> not what "load" means in the Emacs context.

The crux of the problem is here in emacs/package.texi:

"Once a package is downloaded and installed, it is @dfn{loaded} into
the current Emacs session. Loading a package is not quite the same as
loading a Lisp library (@pxref{Lisp Libraries}); loading a package
adds its directory to @code{load-path} and loads its autoloads."

Frankly the name of `package-load-list' is misleading if we're going
to change this terminology. It implies you are setting which packages
are going to be loaded.

We also have usage of this terminology in emacs/package.texi:

"After a package is installed, it is automatically loaded by Emacs in
all subsequent sessions."

"As an exception, Emacs does not load packages at startup if invoked
with the @samp{-q} or @samp{--no-init-file} options (@xref{Initial
Options})."

"To disable automatic package loading, change the variable
@code{package-enable-at-startup} to @code{nil}. You must do this in
the early init file, as the variable is read before loading the
regular init file."

"For finer control over package loading, you can use the variable
@code{package-load-list}."

"A list element of the form @code{(@var{name} @var{version})} tells
Emacs to load version @var{version} of the package named @var{name}.
Here, @var{version} should be a version string (corresponding to a
specific version of the package), or @code{t} (which means to load any
installed version), or @code{nil} (which means no version; this
disables the package, preventing it from being loaded). A list element
can also be the symbol @code{all}, which means to load the latest
installed version of any package not named by the other list
elements."

"For example, if you set @code{package-load-list} to @code{'((muse
"3.20") all)}, then Emacs only loads version 3.20 of the @samp{muse}
package, plus any installed version of packages other than
@samp{muse}."

In lispref/package.texi:

"Whenever Emacs starts up, it automatically calls the function
@code{package-initialize} to load installed packages."

"Automatic package loading is disabled if the user option
@code{package-enable-at-startup} is set to @code{nil} in the early
init file."

"This function initializes Emacs' internal record of which packages
are installed, and loads them. The user option
@code{package-load-list} specifies which packages to load; by default,
all installed packages are loaded. If called during startup, this
function also sets @code{package-enable-at-startup} to @code{nil}, to
avoid accidentally loading the packages twice."

"The optional argument @var{no-activate}, if address@hidden, causes
Emacs to update its record of installed packages without actually
loading them; it is for internal use only."

In lispref/os.texi:

"For example, you can customize the process of loading installed
packages, by setting variables such as @var{package-load-list} or
@var{package-enable-at-startup}. @xref{Package Installation,,,
emacs,The GNU Emacs Manual}."



reply via email to

[Prev in Thread] Current Thread [Next in Thread]