all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
[parent not found: <167080778504.14972.16819452979975432761@vcs2.savannah.gnu.org>]
* `cl-macs'    [was: about keysee]
@ 2022-12-11 17:09 Drew Adams
  2022-12-11 17:35 ` Stefan Monnier
  0 siblings, 1 reply; 17+ messages in thread
From: Drew Adams @ 2022-12-11 17:09 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: 'Help-Gnu-Emacs (help-gnu-emacs@gnu.org)'

[-- Attachment #1: Type: text/plain, Size: 2117 bytes --]

> >> For that, you can just use `M-x load-library' to load
> >> `cl-macs.el' and `M-x load-file to load `sortie.el'
> >> and then `keysee.el'.
> 
> You should never need to load/require explicitly `cl-macs`.
> Instead you should load/require `cl-lib` (which will then load cl-macs
> and other parts of cl-lib as/when needed).
> If you need to manually load `cl-macs` there's probably a bug somewhere.

`cl-macs' is autoloaded by `cl-lib'/`cl-loaddefs'.
So you don't need to load it explicitly if you
instead load `cl-lib'.  Of course.

But there's no need to load `cl-lib' or `cl', if
all you want is a macro from `cl-macs'.  Keysee
uses just 2 macros, nothing else from `cl*', and
both are in `cl-macs'.

Occam says "Just pull in what you really need."

(Same thing applies to a function definition,
but macros are often needed only when compiling,
in which case requiring them only at compile
time doesn't add libraries to your session.)

It's not about _needing_ to load `cl-macs'.  It's
about needing _only_ `cl-macs', and _not_ all of
`cl-lib'.  (And for older Emacs, not all of `cl'.)

If you just need a macro then you just need to
load the file that defines it (unless the macro 
definition needs some other file, of course).

Or to use your language, "You should never need to
load/require explicitly" cl-lib if all you need is
available from just cl-macs.  No?

Why should using `keysee' require you to also add
`cl-lib' to your session?  That's overreach.  I'd
sooner code without using something as simple as
`cl-case' than oblige someone to load `cl-lib'
just because I've used `cl-case'.

[And yes, things like `case' should just be part
of Emacs (just as `push' is).  And yes, `pcase'
is overkill for the simple variable-value case.]

[Plus, things have changed in `cl*' world over the
years.  What's there, and where, for older Emacs
can differ from what's there, and where, for more
recent releases.  Libraries that are usable with
multiple releases don't necessarily follow a "do
this" injunction that makes sense only for some
later releases.]

[-- Attachment #2: winmail.dat --]
[-- Type: application/ms-tnef, Size: 13677 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread
[parent not found: <20200825001901.sjmpwyjwn62bsizh.ref@Ergus>]

end of thread, other threads:[~2022-12-12 17:16 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20210227201948.bpdla6ogrkdahvna.ref@Ergus>
2021-02-27 20:19 ` Issue building master Ergus
2021-02-27 22:18   ` Michael Heerdegen
2021-02-28  5:33     ` Ergus
     [not found] <167080778504.14972.16819452979975432761@vcs2.savannah.gnu.org>
     [not found] ` <20221212011625.58E8AC004B4@vcs2.savannah.gnu.org>
2022-12-12  2:41   ` emacs-29 b8d2ec920f: Revert "Improve last change to xfaces.c" (05ece1eb8b) Po Lu
2022-12-12  2:48     ` Po Lu
2022-12-12  9:09       ` Gregory Heytings
2022-12-12  9:37         ` Issue building master Ergus
2022-12-12 13:33           ` Eli Zaretskii
     [not found]             ` <2127787931.394320.1670853418624@mail.yahoo.com>
2022-12-12 14:12               ` Eli Zaretskii
2022-12-12 15:49                 ` Ergus
2022-12-12 16:04                   ` Eli Zaretskii
2022-12-12 17:16                     ` Ergus
2022-12-11 17:09 `cl-macs' [was: about keysee] Drew Adams
2022-12-11 17:35 ` Stefan Monnier
2022-12-11 21:35   ` [External] : " Drew Adams
2022-12-12  0:05     ` Issue building master Ergus via Users list for the GNU Emacs text editor
     [not found] <20200825001901.sjmpwyjwn62bsizh.ref@Ergus>
2020-08-25  0:19 ` Ergus
2020-08-25  6:17   ` Eli Zaretskii
2020-08-25  7:23     ` Ergus
2020-08-25  7:28       ` Eli Zaretskii
2020-08-25 17:58         ` Ergus
2020-08-25 18:24           ` Eli Zaretskii
2020-08-25 13:39   ` Stefan Monnier

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.