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
backquote.el
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
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
check-declare.el
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
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
crm.el
cursor-sensor.el
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
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
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
eieio-core.el Move EIEIO's C3 linearization code to subr.el 2023-11-11 11:51:59 -05:00
eieio-custom.el
eieio-datadebug.el
eieio-opt.el
eieio-speedbar.el
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
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
faceup.el
find-func.el Avoid unexpected implicit completion in find-func.el 2023-08-13 09:34:20 +03:00
float-sup.el
generate-lisp-file.el * Fix previous change 2023-02-13 17:07:25 +01:00
generator.el
generic.el
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
hierarchy.el
icons.el Fix State button for customize-icon (Bug#66635) 2023-10-22 18:39:52 +02:00
inline.el
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
map.el ; Add missing GNU ELPA :core package statements 2023-10-01 00:09:05 +02:00
memory-report.el
multisession.el
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
package.el Sort package-selected-packages on save 2023-10-01 14:25:13 +02:00
pcase.el
pp.el * lisp/emacs-lisp/pp.el (pp-28): Fix typo 2023-09-05 12:29:44 -04:00
radix-tree.el
range.el
re-builder.el
regexp-opt.el Add more function declarations 2023-05-26 13:57:02 +02:00
regi.el
ring.el
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
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
tcover-ses.el
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
timer-list.el
timer.el Make XEmacs compat aliases for timers obsolete 2023-08-08 04:53:08 +02:00
tq.el
trace.el
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