1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-15 07:41:09 -08:00
emacs/lisp
Stefan Monnier fbb897b7af Move EIEIO's C3 linearization code to subr.el
The code was used to linearize the EIEIO class hierarchy, since
it results in saner results than things like BFS or DFS.
By moving it to `subr.el` we get to benefit from that same
advantage both in `cl--class-allparents` and
in `derived-mode-all-parents`.

* lisp/subr.el (merge-ordered-lists): New function.
(derived-mode-all-parents): Use it to improve parent ordering.

* lisp/emacs-lisp/eieio-core.el (eieio--c3-candidate)
(eieio--c3-merge-lists): Delete functions, replaced by
`merge-ordered-lists`.
(eieio--class-precedence-c3): Use `merge-ordered-lists`.

* lisp/emacs-lisp/cl-preloaded.el (cl--class-allparents):
Use `merge-ordered-lists` to improve parent ordering.
* lisp/emacs-lisp/cl-macs.el (cl--struct-all-parents): Delete function.
(cl--pcase-mutually-exclusive-p): Use `cl--class-allparents` instead.
2023-11-11 11:51:59 -05:00
..
calc Declare calc-eval-error in calc.el 2023-11-05 17:36:21 +01:00
calendar Merge from origin/emacs-29 2023-10-14 06:55:05 -04:00
cedet Use derived-mode-add-parents in remaining uses of derived-mode-parent 2023-11-09 00:33:52 -05:00
emacs-lisp Move EIEIO's C3 linearization code to subr.el 2023-11-11 11:51:59 -05:00
emulation Use ensure-list in many more places 2023-08-27 21:45:30 +02:00
erc Align date stamps to whole days in ERC 2023-11-04 15:41:55 -07:00
eshell Speed up Eshell smart display module 2023-10-28 15:46:08 -07:00
gnus Make nnrss suggest HTTPS instead of HTTP 2023-10-29 14:06:54 +01:00
image Add missing builtin package declarations 2023-09-18 01:55:28 +02:00
international Merge from origin/emacs-29 2023-09-30 13:50:07 -04:00
language Prefer seq-filter in hanja-util.el 2023-10-29 01:40:25 +02:00
leim/quail Merge from origin/emacs-29 2023-10-07 03:46:48 -04:00
mail Don't need text properties when sending a mail 2023-11-04 10:41:38 +02:00
mh-e Add HTTPS to mh-access-types 2023-10-25 14:23:59 +02:00
net ; Update eww-suggest-uris :version. 2023-11-04 11:48:01 +01:00
nxml Simplify rng-substq with cl-substitute 2023-08-05 17:58:19 +02:00
obsolete Eliminate some nested repetitions in regexps 2023-10-29 17:40:36 +01:00
org Eliminate some nested repetitions in regexps 2023-10-29 17:40:36 +01:00
play Merge from origin/emacs-29 2023-09-16 07:36:49 -04:00
progmodes Simplify 'project-remember-projects-under' 2023-11-08 08:57:40 +01:00
term Emulate secondary selections on Android 2023-11-06 10:14:09 +08:00
textmodes Eliminate some nested repetitions in regexps 2023-10-29 17:40:36 +01:00
url Merge from origin/emacs-29 2023-10-28 05:06:21 -04:00
use-package ; Add missing GNU ELPA :core package statements 2023-10-01 00:09:05 +02:00
vc * lisp/vc/vc-git.el (vc-git-revision-table): Reverse the table (bug#64656). 2023-11-06 09:27:48 +02:00
abbrev.el
align.el Support lua-ts-mode in align.el 2023-10-21 12:25:25 +02:00
allout-widgets.el Use return values of assq-delete-all and assoc-delete-all 2023-05-24 11:30:53 +02:00
allout.el Fix apparently wrong delete and delq value discards (bug#61730) 2023-05-24 23:01:10 +02:00
ansi-color.el
ansi-osc.el
apropos.el Merge from origin/emacs-29 2023-06-17 05:02:55 -04:00
arc-mode.el Port arc to Android 2023-10-08 10:42:47 +08:00
array.el
auth-source-pass.el Use ensure-list in many more places 2023-08-27 21:45:30 +02:00
auth-source.el (auth-source-backend): Don't pass obsolete "name" arg 2023-10-28 01:17:03 -04:00
autoinsert.el
autorevert.el
avoid.el
battery.el
bind-key.el ; Add missing GNU ELPA :core package statements 2023-10-01 00:09:05 +02:00
bindings.el Add toggle-window-dedicated command and mode-line-window-dedicated 2023-10-25 16:43:51 +03:00
bookmark.el ; Fix customization form of 'bookmark-watch-bookmark-file' 2023-07-22 15:45:40 +03:00
bs.el
buff-menu.el
button.el ; Fix push-button when triggered by a single keypress 2023-08-31 12:37:40 +03:00
calculator.el Merge from origin/emacs-29 2023-07-01 06:29:52 -04:00
case-table.el
cdl.el
ChangeLog.1
ChangeLog.2
ChangeLog.3 Fix all my attributions to be correct and consistent... 2023-08-08 20:07:52 -04:00
ChangeLog.4 ; Fix spelling of my name in all ChangeLog files 2023-10-25 15:20:46 +02:00
ChangeLog.5 ; Fix spelling of my name in all ChangeLog files 2023-10-25 15:20:46 +02:00
ChangeLog.6 ; Fix spelling of my name in all ChangeLog files 2023-10-25 15:20:46 +02:00
ChangeLog.7 Fix all my attributions to be correct and consistent... 2023-08-08 20:07:52 -04:00
ChangeLog.8
ChangeLog.9
ChangeLog.10
ChangeLog.11
ChangeLog.12 ; Fix broken links to gmane.org 2023-10-24 09:44:01 +02:00
ChangeLog.13 ; Fix spelling of my name in all ChangeLog files 2023-10-25 15:20:46 +02:00
ChangeLog.14 Merge from origin/emacs-29 2023-10-28 05:06:21 -04:00
ChangeLog.15 Merge from origin/emacs-29 2023-10-28 05:06:21 -04:00
ChangeLog.16 Merge from origin/emacs-29 2023-10-28 05:06:21 -04:00
ChangeLog.17 ; Fix spelling of my name in all ChangeLog files 2023-10-25 15:20:46 +02:00
char-fold.el
chistory.el
cmuscheme.el
color.el
comint.el Declare more functions as shift-translatable motion commands 2023-09-16 13:06:41 +03:00
completion.el ; * lisp/completion.el (dynamic-completion-mode): Fix last change. 2023-09-07 18:52:35 +03:00
composite.el Merge from origin/emacs-29 2023-06-03 05:50:58 -04:00
COPYING
cus-dep.el
cus-edit.el Add easy customization for dir-locals files (Bug#66702) 2023-10-28 20:02:13 +03:00
cus-face.el Fix typo in pre-filter for underline property 2023-07-20 18:47:37 +03:00
cus-start.el Implement new option 'mouse-prefer-closest-glyph' 2023-07-22 18:39:24 +03:00
cus-theme.el ; Fix last change 2023-08-26 10:54:43 +03:00
custom.el Improve type of custom-theme-directory (Bug#65401) 2023-08-26 11:00:06 +03:00
dabbrev.el
delim-col.el
delsel.el
descr-text.el
desktop.el Merge from origin/emacs-29 2023-08-21 18:23:12 -07:00
dframe.el
dired-aux.el Merge from origin/emacs-29 2023-11-04 05:21:38 -04:00
dired-x.el Display directory when dired-omit-mode is first enabled 2023-09-05 17:51:27 +02:00
dired.el Fix desktop-save on remote dired (bug#66697) 2023-11-04 10:03:33 +02:00
dirtrack.el
disp-table.el
display-fill-column-indicator.el
display-line-numbers.el
dnd.el ; * lisp/dnd.el (dnd-protocol-alist): Correct typo. 2023-10-28 06:43:56 +00:00
doc-view.el Introduce a tool bar for dictionary mode 2023-10-08 09:13:11 +08:00
dom.el
dos-fns.el
dos-vars.el
dos-w32.el
double.el
dynamic-setting.el ; Fix byte-compilation warnings in --without-x build 2023-05-11 16:25:46 +03:00
ebuff-menu.el
echistory.el
ecomplete.el
edmacro.el ; * lisp/edmacro.el (edmacro-reverse-macro-lines): Fix last change. 2023-09-16 12:54:08 +03:00
ehelp.el
elec-pair.el Fix choice in electric-pair-skip-whitespace-chars 2023-08-31 08:24:25 +02:00
electric.el ; Last-minute updates to Android port 2023-08-04 17:41:20 +08:00
elide-head.el
emacs-lock.el
env.el Add more function declarations 2023-05-26 13:57:02 +02:00
epa-dired.el
epa-file.el Avoid false "wrong passphrase" messages in EPA 2023-08-17 11:11:01 +03:00
epa-hook.el
epa-ks.el Add more missing builtin package declarations 2023-09-18 01:14:01 +02:00
epa-mail.el
epa.el
epg-config.el
epg.el Merge from origin/emacs-29 2023-09-09 04:33:47 -04:00
expand.el
external-completion.el ; Add missing GNU ELPA :core package statements 2023-10-01 00:09:05 +02:00
ezimage.el
face-remap.el Fix cloning 'face-remapping-alist' for indirect buffers 2023-08-17 10:51:36 +03:00
facemenu.el
faces.el * lisp/faces.el (read-face-name): Expose all lambdas to the compiler 2023-09-25 08:02:29 -04:00
ffap.el Teach ffap to look for relative file names under project-root 2023-10-30 02:57:33 +02:00
filecache.el Use t for non-nil default values in boolean defcustom declarations 2023-04-28 15:03:47 +02:00
fileloop.el
filenotify.el File notifications report unmount events (bug#66381) 2023-10-10 19:51:22 +02:00
files-x.el Merge from origin/emacs-29 2023-10-28 05:06:21 -04:00
files.el Use new derived-mode-all/set-parents functions. 2023-11-08 23:24:35 -05:00
filesets.el Fix defcustoms in filesets.el (Bug#65708) 2023-09-03 12:54:58 +02:00
find-cmd.el
find-dired.el Merge from origin/emacs-29 2023-08-04 03:17:49 -04:00
find-file.el
find-lisp.el
finder.el Merge from origin/emacs-29 2023-09-23 09:32:57 -04:00
flow-ctrl.el
foldout.el Eliminate some mutation of program constants 2023-05-17 11:00:25 +02:00
follow.el
font-core.el
font-lock.el Fix order of `other' choice in defcustom :type 2023-09-10 17:36:30 +02:00
format-spec.el
format.el Use ensure-list in many more places 2023-08-27 21:45:30 +02:00
forms.el
frame.el Merge from origin/emacs-29 2023-09-02 04:33:44 -04:00
frameset.el
fringe.el
generic-x.el
help-at-pt.el
help-fns.el Use new derived-mode-all/set-parents functions. 2023-11-08 23:24:35 -05:00
help-macro.el ; Last-minute updates to Android port 2023-08-04 17:41:20 +08:00
help-mode.el * lisp/help-mode.el (help-setup-xref): Disable outline-minor-mode (bug#64575). 2023-07-13 19:38:36 +03:00
help.el Improve formatting of bindings in 'help-quick' 2023-10-09 10:24:34 +02:00
hex-util.el
hexl.el
hfy-cmap.el
hi-lock.el
hilit-chg.el
hippie-exp.el
hl-line.el
htmlfontify.el
ibuf-ext.el Use new derived-mode-all/set-parents functions. 2023-11-08 23:24:35 -05:00
ibuf-macs.el Fix last Ibuffer change and improve feedback messages 2023-09-13 23:43:54 +02:00
ibuffer.el Fix last Ibuffer change and improve feedback messages 2023-09-13 23:43:54 +02:00
icomplete.el Allow completion frontends to fontify candidates just-in-time 2023-11-06 10:13:02 -06:00
ido.el Support HTTPS in ido-file-internal 2023-10-25 16:27:08 +02:00
ielm.el Merge from origin/emacs-29 2023-09-09 04:33:47 -04:00
iimage.el
image-file.el
image-mode.el Merge from origin/emacs-29 2023-10-07 03:46:48 -04:00
image.el Merge from origin/emacs-29 2023-09-09 04:32:45 -04:00
imenu.el
indent-aux.el * lisp/indent-aux.el (kill-ring-deindent-mode): Add autoload cookie. 2023-08-12 09:06:52 +08:00
indent.el
info-look.el Use new derived-mode-all/set-parents functions. 2023-11-08 23:24:35 -05:00
info-xref.el
info.el Fix Info parser regexp mistake 2023-08-16 16:55:38 +02:00
informat.el
isearch.el * lisp/isearch.el (isearch-resume): Add isearch-push-state (bug#65379). 2023-08-20 20:36:49 +03:00
isearchb.el
jit-lock.el Make Emacs 21 compat alias obsolete 2023-08-28 22:03:22 +02:00
jka-cmpr-hook.el
jka-compr.el
json.el
jsonrpc.el ; * lisp/jsonrpc.el (jsonrpc-error): Fix typo. 2023-07-29 13:23:19 +02:00
kermit.el
keymap.el Make key-translate actually work 2023-09-18 10:19:49 +02:00
kmacro.el Repair test failures stemming from Android merge 2023-08-08 20:20:39 +08:00
ldefs-boot.el ; * lisp/ldefs-boot.el: Regenerated for Emacs 29.1.90. 2023-10-19 05:38:30 -04:00
loadhist.el Use new derived-mode-all/set-parents functions. 2023-11-08 23:24:35 -05:00
loadup.el Make eln files re-dumpable (bug#45103) 2023-10-24 19:57:34 +02:00
locate.el Use derived-mode-add-parents in remaining uses of derived-mode-parent 2023-11-09 00:33:52 -05:00
lpr.el Use t for non-nil default values in boolean defcustom declarations 2023-04-28 15:03:47 +02:00
ls-lisp.el Fixup for "no file modes on windows and dos" 2023-10-15 11:51:34 -04:00
macros.el
Makefile.in * lisp/Makefile.in (compile-targets): Always byte compile native comp. 2023-08-16 10:22:57 +02:00
man.el ; Fix recent changes in documentation 2023-11-03 09:41:11 +02:00
master.el
mb-depth.el
md4.el
menu-bar.el Set buffers-menu-max-size to 15 unconditionally 2023-10-05 20:17:53 +02:00
midnight.el
minibuf-eldef.el
minibuffer.el * lisp/minibuffer.el (minibuffer-choose-completion-or-exit): New command. 2023-11-08 09:38:35 +02:00
misc.el ; * lisp/misc.el (duplicate-region-final-position): Fix version info. 2023-07-03 18:25:40 +02:00
misearch.el New commands to show replacements as diffs (bug#65854) 2023-09-27 20:39:32 +03:00
mouse-copy.el
mouse-drag.el
mouse.el New defgroup pixel-scroll-precision 2023-09-11 02:16:59 +02:00
mpc.el
msb.el
mwheel.el
newcomment.el Fix documentation of comment-dwim (bug#64104) 2023-06-17 11:37:19 +03:00
notifications.el notifications: Allow to use Icon Naming Specification for app-icon 2023-07-27 16:43:17 +02:00
novice.el
obarray.el
outline.el * doc/emacs/text.texi (Outline Minor Mode): Add a note about value 'insert'. 2023-09-13 19:49:29 +03:00
paren.el ; * lisp/paren.el (show-paren-function): Fix last change (bug#64547). 2023-07-15 10:21:07 +03:00
password-cache.el
pcmpl-cvs.el
pcmpl-git.el
pcmpl-gnu.el
pcmpl-linux.el Fix systemd unit completion for old versions of systemd 2023-05-20 18:01:02 +03:00
pcmpl-rpm.el
pcmpl-unix.el Add completion for 'doas' to pcomplete 2023-10-23 00:42:05 +02:00
pcmpl-x.el
pcomplete.el Revert commits dafa6d6bad and 72c45fa910 2023-10-10 13:00:38 -07:00
pgtk-dnd.el Properly respond to drops observing the Motif protocol 2023-10-26 19:49:40 +08:00
pixel-scroll.el New defgroup pixel-scroll-precision 2023-09-11 02:16:59 +02:00
plstore.el Fix loss of encrypted data in plstore.el 2023-09-16 14:05:36 +03:00
printing.el Merge from origin/emacs-29 2023-10-07 03:46:48 -04:00
proced.el Fix Proced Start column alignment for different locales 2023-07-23 09:39:45 +03:00
profiler.el
ps-bdf.el
ps-mule.el
ps-print.el Replace ps-remove-duplicates with seq-uniq 2023-09-03 02:55:31 +02:00
ps-samp.el
README
recentf.el Apply remote-file-name-access-timeout in desktop.el and recentf.el 2023-07-04 15:27:03 +02:00
rect.el Add duplicate-region-final-position (bug#64185) 2023-07-01 12:41:09 +02:00
register.el ; * lisp/register.el (register-val-describe): Doc fix. 2023-07-02 08:27:05 +03:00
registry.el
repeat.el
replace.el Fix defcustom :type in replace.el (Bug#65920) 2023-09-13 18:01:41 +02:00
reposition.el
reveal.el
rfn-eshadow.el
rot13.el
rtree.el
ruler-mode.el
savehist.el
saveplace.el Merge from origin/emacs-29 2023-09-16 07:36:49 -04:00
scroll-all.el
scroll-bar.el
scroll-lock.el
select.el Revise selection documentation 2023-10-26 04:50:19 +00:00
server.el Add 'server-eval-args-left' to server.el 2023-10-29 14:10:23 +02:00
ses.el
shadowfile.el
shell.el Merge from origin/emacs-29 2023-09-23 09:41:11 -04:00
simple.el Move EIEIO's C3 linearization code to subr.el 2023-11-11 11:51:59 -05:00
skeleton.el
so-long.el Use new derived-mode-all/set-parents functions. 2023-11-08 23:24:35 -05:00
sort.el ; Normalize sort-fields-syntax-table definition 2023-09-24 08:09:24 +02:00
soundex.el
speedbar.el Improve imenu support in lua-ts-mode 2023-10-25 16:49:31 +03:00
sqlite-mode.el Mollify byte compiler in builds without SQLite 2023-10-26 02:52:23 +00:00
sqlite.el
startup.el Add 'server-eval-args-left' to server.el 2023-10-29 14:10:23 +02:00
strokes.el strokes: Support running a function when no stroke matches 2023-08-31 12:30:43 +03:00
subr.el Move EIEIO's C3 linearization code to subr.el 2023-11-11 11:51:59 -05:00
svg.el ; Add missing GNU ELPA :core package statements 2023-10-01 00:09:05 +02:00
t-mouse.el
tab-bar.el * lisp/tab-bar.el: Fix the close button with auto-width (bug#66678). 2023-10-22 20:41:14 +03:00
tab-line.el * lisp/tab-line.el: Move Touch screen support section to the better place. 2023-09-28 20:13:22 +03:00
tabify.el
talk.el
tar-mode.el ; Avoid recent tar-mode.el constant mutation 2023-07-28 18:36:14 +02:00
tempo.el * lisp/tempo.el (tempo-insert): Use pcase and dolist 2023-09-08 19:41:28 -04:00
term.el Merge from origin/emacs-29 2023-10-07 03:46:48 -04:00
thingatpt.el Prefer HTTPS to HTTP in thing-at-point 2023-10-24 01:01:07 +02:00
thread.el
time-stamp.el
time.el ; * lisp/time.el (display-time-date-and-time): Fix last change. 2023-07-22 09:13:35 +03:00
timezone.el
tmm.el Fix tmm-mid-prompt :type (Bug#66179) 2023-09-25 10:32:36 +03:00
tool-bar.el Update Android port 2023-07-07 10:00:56 +08:00
tooltip.el * lisp/tooltip.el (tooltip-cancel-delayed-tip): Fix missing argument. 2023-08-08 15:33:45 +03:00
touch-screen.el Introduce an option which controls touch screen hscroll 2023-10-24 21:12:32 +08:00
transient.el Update to Transient v0.4.3 2023-08-27 14:47:14 +02:00
tree-widget.el
treesit.el Merge from origin/emacs-29 2023-10-28 04:56:22 -04:00
tutorial.el
type-break.el Merge from origin/emacs-29 2023-10-07 03:46:48 -04:00
uniquify.el Unquote #'project-uniquify-dirname-transform in uniquify-dirname-transform. 2023-09-28 09:48:51 +03:00
userlock.el Fix userlock.el and filelock-tests in some rare cases 2023-07-28 09:31:25 +03:00
vcursor.el
version.el Update Android port 2023-08-17 08:45:57 +08:00
view.el
w32-fns.el * lisp/w32-fns.el (w32--os-description): Fix minor logic error 2023-05-14 13:23:34 +02:00
w32-vars.el
wdired.el Fix Wdired with relative and abbreviated file names 2023-07-16 12:15:24 +03:00
whitespace.el
wid-browse.el
wid-edit.el Avoid errors when a restricted-sexp widget is empty 2023-09-16 12:56:34 +03:00
widget.el
windmove.el Use ensure-list in many more places 2023-08-27 21:45:30 +02:00
window.el Add toggle-window-dedicated command and mode-line-window-dedicated 2023-10-25 16:43:51 +03:00
winner.el
woman.el Merge from origin/emacs-29 2023-10-13 16:16:19 +02:00
x-dnd.el Properly respond to drops observing the Motif protocol 2023-10-26 19:49:40 +08:00
xdg.el
xml.el Fix a minor typo 2023-07-02 15:15:17 -04:00
xt-mouse.el
xwidget.el
yank-media.el Autodetect coding system when yanking media 2023-07-13 15:37:16 +02:00

This directory contains source code for the parts of Emacs that are
written in Emacs Lisp.  *.el files are Emacs Lisp source, and the
corresponding *.elc files are byte-compiled versions.  Byte-compiled
files are architecture-independent.

The term subdirectory contains Lisp files that customize Emacs for
certain terminal types.  When Emacs starts, it checks the TERM
environment variable to get the terminal type and loads
'term/${TERM}.el' if it exists.

The other subdirectories hold Lisp packages grouped by their general
purpose.