From bd0c23ce0909aec40d17293ba50854d10dd36f31 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sat, 16 Jan 2016 17:30:11 +0200 Subject: [PATCH] Improve documentation of dynamic modules * doc/lispref/loading.texi (How Programs Do Loading): Update the description of searching for files in 'load' when Emacs was built with support for dynamic modules. --- doc/lispref/loading.texi | 18 +++++++++++------- etc/NEWS | 1 + 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/doc/lispref/loading.texi b/doc/lispref/loading.texi index 18e67f1abf..06900a4947 100644 --- a/doc/lispref/loading.texi +++ b/doc/lispref/loading.texi @@ -73,12 +73,15 @@ To find the file, @code{load} first looks for a file named @var{filename} with the extension @samp{.elc} appended. If such a file exists, it is loaded. If there is no file by that name, then @code{load} looks for a file named @file{@var{filename}.el}. If that -file exists, it is loaded. Finally, if neither of those names is -found, @code{load} looks for a file named @var{filename} with nothing -appended, and loads it if it exists. (The @code{load} function is not -clever about looking at @var{filename}. In the perverse case of a -file named @file{foo.el.el}, evaluation of @code{(load "foo.el")} will -indeed find it.) +file exists, it is loaded. If Emacs was compiled with support for +dynamic modules (@pxref{Dynamic Modules}), @code{load} next looks for +a file named @file{@var{filename}.@var{ext}}, where @var{ext} is a +system-dependent file-name extension of shared libraries. Finally, if +neither of those names is found, @code{load} looks for a file named +@var{filename} with nothing appended, and loads it if it exists. (The +@code{load} function is not clever about looking at @var{filename}. +In the perverse case of a file named @file{foo.el.el}, evaluation of +@code{(load "foo.el")} will indeed find it.) If Auto Compression mode is enabled, as it is by default, then if @code{load} can not find a file, it searches for a compressed version @@ -100,7 +103,8 @@ being tried. If the optional argument @var{must-suffix} is non-@code{nil}, then @code{load} insists that the file name used must end in either @samp{.el} or @samp{.elc} (possibly extended with a compression -suffix), unless it contains an explicit directory name. +suffix) or the shared-library extension, unless it contains an +explicit directory name. If the option @code{load-prefer-newer} is non-@code{nil}, then when searching suffixes, @code{load} selects whichever version of a file diff --git a/etc/NEWS b/etc/NEWS index 18e37fa2b9..3db98979c7 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -120,6 +120,7 @@ and can contain escape sequences for command keys, quotes, and the like. * Changes in Emacs 25.1 ++++ ** Emacs can now load shared/dynamic libraries (modules). A dynamic Emacs module is a shared library that provides additional functionality for use in Emacs Lisp programs, just like a package -- 2.39.2