From: Drew Adams <drew.adams@oracle.com>
To: Jean-Christophe Helary
<jean.christophe.helary@traduction-libre.org>,
Stefan Monnier <monnier@iro.umontreal.ca>
Cc: Emacs developers <emacs-devel@gnu.org>
Subject: RE: "Emacs Lisp Packages" chapter in the Emacs manual
Date: Tue, 12 May 2020 08:46:42 -0700 (PDT) [thread overview]
Message-ID: <10b99f72-5700-4563-9dac-beae0d5b78a7@default> (raw)
In-Reply-To: <920E43F8-B65B-4802-97D3-F64BEBF5E8B8@traduction-libre.org>
> > If the file is needed simply because the user decided to split their
> > `.emacs` file into several separate files, then `load` (or `require`)
> > is probably fine. That is the case where the file is a configuration
> > file, i.e. loading it changes Emacs's behavior.
> >
> > If OTOH that other file is a package/library which provides a
> > particular feature (in which case, loading the file *should not*
> > change Emacs's behavior), then usually what should be done is add a
> > few autoload`s to load the file on-demand.
>
> Well, actually all this started because I wanted to install
> Drew's help-fns+.el and it happens that Drew uses "require".
Here's a half-hearted excuse/explanation.
Loading help-fns+.el is a user (or other-library) choice.
And yes, loading it does change behavior - that's the aim.
It's not a normal library, in that sense. Conventionally,
loading a library should not change behavior. Mea culpa.
No, the changes are not optional (e.g., the different
behavior is not provided by a minor mode). It's meant to,
in effect, _replace_ some of what help-fns.el does, without
replacing all of its code. Think patch, if you like.
After loading it, you have, in a way, patched some of
help-fns.el.
Two of the `require's are soft requires: no error if not
found. Again, a user choice: if those libraries are not
present in `load-path' then nothing happens. They're not
really required.
Two of the `require's are hard: help-fns.el, wid-edit.el.
Yes, this way of doing things doesn't perfectly respect
the coding guidelines. But hopefully the Commentary makes
clear that the library changes some behavior. For example,
it points out `describe-*' commands that it redefines.
> So, in case I want to add a similar feature set, would
> 'require be too much ? Would (autoload 'help-fns+) be
> sufficient ?
>
> When I have the information about this, I think I can
> make a satisfactory patch to the manual :)
>
> Keep in mind that this addition is for users who know
> a minimal subset of emacs lisp (enough to play with
> their init file), not for authors.
next prev parent reply other threads:[~2020-05-12 15:46 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-09 15:02 "Emacs Lisp Packages" chapter in the Emacs manual Jean-Christophe Helary
2020-05-09 15:19 ` Stefan Kangas
2020-05-09 16:47 ` Jean-Christophe Helary
2020-05-10 2:19 ` Jean-Christophe Helary
2020-05-10 14:17 ` Stefan Monnier
2020-05-10 15:05 ` Jean-Christophe Helary
2020-05-10 16:49 ` Stefan Monnier
2020-05-10 17:13 ` Jean-Christophe Helary
2020-05-10 19:28 ` Drew Adams
2020-05-11 1:02 ` Jean-Christophe Helary
2020-05-10 19:35 ` Stefan Monnier
2020-05-11 1:08 ` Jean-Christophe Helary
2020-05-11 1:51 ` Drew Adams
2020-05-11 3:26 ` Stefan Monnier
2020-05-11 4:23 ` Drew Adams
2020-05-11 4:40 ` Stefan Monnier
2020-05-11 6:57 ` Jean-Christophe Helary
2020-05-11 15:09 ` Stefan Monnier
2020-05-11 15:23 ` Drew Adams
2020-05-12 0:59 ` Jean-Christophe Helary
2020-05-12 3:21 ` Stefan Monnier
2020-05-12 3:50 ` Jean-Christophe Helary
2020-05-12 15:46 ` Drew Adams
2020-05-13 1:43 ` Jean-Christophe Helary
2020-05-13 2:05 ` Drew Adams
2020-05-13 2:27 ` Jean-Christophe Helary
2020-05-13 2:33 ` Drew Adams
2020-05-13 2:46 ` Stefan Monnier
2020-05-13 3:02 ` Jean-Christophe Helary
2020-05-16 10:23 ` Eli Zaretskii
2020-05-16 12:39 ` Jean-Christophe Helary
2020-05-16 14:38 ` Eli Zaretskii
2020-05-16 15:20 ` Jean-Christophe Helary
2020-05-12 15:46 ` Drew Adams [this message]
2020-05-11 15:13 ` Drew Adams
2020-05-12 3:18 ` Richard Stallman
2020-05-11 3:23 ` Stefan Monnier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=10b99f72-5700-4563-9dac-beae0d5b78a7@default \
--to=drew.adams@oracle.com \
--cc=emacs-devel@gnu.org \
--cc=jean.christophe.helary@traduction-libre.org \
--cc=monnier@iro.umontreal.ca \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).