emacs/lisp/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
..
advice.el ; Substitute quotes in obsoletion notice in 'C-h f' 2023-09-28 21:44:09 +02:00
avl-tree.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
backquote.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
backtrace.el * lisp/emacs-lisp/backtrace.el (backtrace--change-button-skip): Typo) 2023-07-13 21:51:23 -04:00
benchmark.el ; * lisp/emacs-lisp/benchmark.el (benchmark-progn): Fix declare form. 2023-05-18 17:20:36 +03:00
bindat.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
byte-opt.el equal is not error-free 2023-08-13 11:51:03 +02:00
byte-run.el Error when trying to make nil or t obsolete 2023-09-08 01:01:16 +02:00
bytecomp.el Move lexical-binding warning from checkdoc to byte-compiler 2023-10-21 15:12:55 +02:00
cconv.el Allow suppressing the "lexical arg shadows dynbound var" warning 2023-06-25 11:14:03 -04:00
chart.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
check-declare.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
checkdoc.el Move lexical-binding warning from checkdoc to byte-compiler 2023-10-21 15:12:55 +02:00
cl-extra.el * lisp/emacs-lisp/cl-extra.el (cl-remprop): Update names to match docstring 2023-11-05 18:28:50 -05:00
cl-generic.el Use new derived-mode-all/set-parents functions. 2023-11-08 23:24:35 -05:00
cl-indent.el Remedy wrong-looking \(:?...\) regexp constructs 2023-08-16 16:55:38 +02:00
cl-lib.el Merge from origin/emacs-29 2023-11-04 05:21:39 -04:00
cl-macs.el Move EIEIO's C3 linearization code to subr.el 2023-11-11 11:51:59 -05:00
cl-preloaded.el Move EIEIO's C3 linearization code to subr.el 2023-11-11 11:51:59 -05:00
cl-print.el In cl-prin1, enable raw printing for a byte-compiled function 2023-10-11 13:26:01 +00:00
cl-seq.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
comp-cstr.el * lisp/emacs-lisp/comp-cstr.el (comp--direct-supertype): Remove unused. 2023-11-03 19:03:51 +01:00
comp.el With `native-compile', compile lambdas in a defun or lambda too 2023-11-08 20:49:48 +00:00
copyright.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
crm.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
cursor-sensor.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
debug-early.el * lisp/emacs-lisp/debug-early.el (debug-early-backtrace): Fix bug#61847 2023-03-01 12:31:09 -05:00
debug.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
derived.el Use new derived-mode-all/set-parents functions. 2023-11-08 23:24:35 -05:00
disass.el Add convenience wrapper for regexp disassembly 2023-10-13 15:24:10 +02:00
easy-mmode.el Make Emacs 21 compat aliases easy-mmode-* obsolete 2023-08-08 04:03:17 +02:00
easymenu.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
edebug.el * lisp/emacs-lisp/edebug.el (edebug-list-form): Don't gate so eagerly 2023-09-05 11:54:55 -04:00
eieio-base.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
eieio-core.el Move EIEIO's C3 linearization code to subr.el 2023-11-11 11:51:59 -05:00
eieio-custom.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
eieio-datadebug.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
eieio-opt.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
eieio-speedbar.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
eieio.el Merge from origin/emacs-29 2023-09-09 04:32:45 -04:00
eldoc.el Merge from origin/emacs-29 2023-10-16 09:02:39 +02:00
elint.el Merge from origin/emacs-29 2023-10-13 16:18:06 +02:00
elp.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
ert-x.el Tweak ert-remote-temporary-file-directory in tests 2023-04-09 20:28:32 +01:00
ert.el Suggest alternative reason for ERT test duplication error 2023-11-03 18:06:04 +01:00
ewoc.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
faceup.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
find-func.el Avoid unexpected implicit completion in find-func.el 2023-08-13 09:34:20 +03:00
float-sup.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
generate-lisp-file.el * Fix previous change 2023-02-13 17:07:25 +01:00
generator.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
generic.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
gv.el Move setf substring to cl-lib since it relies on it (bug#60102) 2023-09-04 16:39:55 -04:00
helper.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
hierarchy.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
icons.el Fix State button for customize-icon (Bug#66635) 2023-10-22 18:39:52 +02:00
inline.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
let-alist.el ; Normalize GNU ELPA :core package statements 2023-10-01 01:35:23 +02:00
lisp-mnt.el Fix all my attributions to be correct and consistent... 2023-08-08 20:07:52 -04:00
lisp-mode.el ; Delete redundant defvars; font-lock is preloaded 2023-08-25 23:54:51 +02:00
lisp.el Fix beginning-of-defun not jumping to BOF 2023-10-14 11:01:52 +03:00
loaddefs-gen.el Fix loaddef generation with ";;;foo-autoload" cookies in external packages 2023-08-04 11:01:31 -07:00
macroexp.el Silence macro expansion during completion at point 2023-10-05 14:00:36 -04:00
map-ynp.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
map.el ; Add missing GNU ELPA :core package statements 2023-10-01 00:09:05 +02:00
memory-report.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
multisession.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
nadvice.el Use OClosure to drop advice--buffer-local-function-sample hack 2023-10-29 14:12:22 -04:00
oclosure.el * lisp/emacs-lisp/oclosure.el (oclosure--lambda): Burp in dynbind mode 2023-11-02 23:12:27 -04:00
package-vc.el Make package-vc-install-from-checkout NAME argument optional 2023-10-08 23:29:23 +02:00
package-x.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
package.el Sort package-selected-packages on save 2023-10-01 14:25:13 +02:00
pcase.el Styled quotes in compiler warnings 2023-01-03 18:39:06 +01:00
pp.el * lisp/emacs-lisp/pp.el (pp-28): Fix typo 2023-09-05 12:29:44 -04:00
radix-tree.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
range.el ; * lisp/emacs-lisp/range.el: Fix some typos 2023-01-28 17:30:42 +01:00
re-builder.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
regexp-opt.el Add more function declarations 2023-05-26 13:57:02 +02:00
regi.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
ring.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
rmc.el Correct many instances of ``allows to'' 2023-09-10 09:33:50 +08:00
rx.el ; * lisp/emacs-lisp/rx.el: slight modernisation of internal rx usage 2023-08-13 10:38:29 +02:00
seq.el Merge from origin/emacs-29 2023-09-09 04:32:45 -04:00
shadow.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
shortdoc.el Add let-alist to alist shortdoc group 2023-08-02 21:49:19 +02:00
shorthands.el Add more missing builtin package declarations 2023-09-18 01:14:01 +02:00
smie.el Tweak the DOI URL and the description 2023-10-26 02:39:12 +03:00
subr-x.el Explicitly disallow named-let in code using dynamic binding 2023-08-21 14:17:03 +02:00
syntax.el Fix indentation in `syntax-ppss' 2023-09-03 12:42:49 +02:00
tabulated-list.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
tcover-ses.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
testcover.el Don't rely on dynamic scoping to fix bug#59213 2023-02-18 12:56:24 -05:00
text-property-search.el ; Improve documentation of text-property-search-* functions 2023-07-01 12:28:33 +03:00
thunk.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
timer-list.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
timer.el Make XEmacs compat aliases for timers obsolete 2023-08-08 04:53:08 +02:00
tq.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
trace.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
unsafep.el Fix unsafep for aliases to side-effect-free functions 2023-02-24 16:53:32 +01:00
vtable.el Fix detection of vtable start and end 2023-09-07 22:23:24 +02:00
warnings.el Fix display of warnings on w32 console 2023-01-17 15:44:51 +02:00