emacs/lisp/emacs-lisp
Mattias Engdegård 7feb5b2da7 Optimise append calls
Add the transforms

  (append) -> nil
  (append X) -> X
  (append '(X) Y) -> (cons 'X Y)
  (append (list X) Y) -> (cons X Y)
  (append (list X...) nil) -> (list X...)

and the argument transforms:

  (list X...) (list Y...) -> (list X... Y...)
  nil -> ;nothing
  CONST1 CONST2 -> CONST1++CONST2
  (list CONSTANTS...) -> '(CONSTANTS...)

(the last three for non-tail arguments only)

* lisp/emacs-lisp/byte-opt.el: New.
2022-07-16 12:18:48 +02:00
..
advice.el
autoload.el Move two more variables from autoload.el to loaddefs-gen.el 2022-06-05 20:32:01 +02:00
avl-tree.el
backquote.el
backtrace.el Make some additional defcustom types more restrictive 2022-07-06 19:29:51 +02:00
benchmark.el
bindat.el bindat (strz): Null terminate fixed-length strings if there is room 2022-06-22 16:55:40 +03:00
byte-opt.el Optimise append calls 2022-07-16 12:18:48 +02:00
byte-run.el Don't quote numbers in byte-run--set-* 2022-06-17 19:11:24 +02:00
bytecomp.el ; Fix typos: prefer American spelling 2022-07-14 12:13:31 +02:00
cconv.el ; * lisp/emacs-lisp/cconv.el (cconv--var-classification): Optimise. 2022-07-09 11:53:30 +02:00
chart.el Remove many items obsolete since 24.1 2022-07-08 14:10:38 +02:00
check-declare.el
checkdoc.el Prefer defvar-keymap in emacs-lisp/*.el 2022-07-04 22:15:51 +02:00
cl-extra.el
cl-generic.el (cl--generic-compiler): Revert last change 2022-06-29 08:58:13 -04:00
cl-indent.el Remove some useless eval-when-compile 2022-07-04 14:56:11 +02:00
cl-lib.el
cl-macs.el Merge from origin/emacs-28 2022-06-18 06:31:18 +02:00
cl-preloaded.el ; Fix typos. 2022-07-02 10:20:23 +02:00
cl-print.el
cl-seq.el
comp-cstr.el
comp.el Merge from origin/emacs-28 2022-07-14 11:56:56 +02:00
copyright.el
crm.el Fix crm.el compilation warning 2022-07-11 13:34:35 +02:00
cursor-sensor.el
debug-early.el Make debug-early-backtrace more resilient 2022-06-24 11:04:51 +02:00
debug.el Prefer defvar-keymap in emacs-lisp/*.el 2022-07-04 22:15:51 +02:00
derived.el
disass.el
easy-mmode.el ; Fix typos. 2022-07-02 13:32:41 +02:00
easymenu.el
edebug.el Prefer defvar-keymap in emacs-lisp/*.el 2022-07-04 22:15:51 +02:00
eieio-base.el
eieio-core.el Move EIEIO autoloads to the common loaddefs.el 2022-07-11 14:29:33 +02:00
eieio-custom.el Move EIEIO autoloads to the common loaddefs.el 2022-07-11 14:29:33 +02:00
eieio-datadebug.el
eieio-opt.el Move EIEIO autoloads to the common loaddefs.el 2022-07-11 14:29:33 +02:00
eieio-speedbar.el
eieio.el cl-typep: Emit warning when using a type not known to be a type 2022-06-06 00:04:00 -04:00
eldoc.el Merge from origin/emacs-28 2022-07-14 11:37:42 +02:00
elint.el
elp.el Prefer defvar-keymap in emacs-lisp/*.el 2022-07-04 22:15:51 +02:00
ert-x.el ; * lisp/emacs-lisp/ert-x.el (tramp-remote-path): Fix last change. 2022-07-10 20:07:37 +02:00
ert.el Improve ert-test-erts-file documentation 2022-07-09 11:47:52 +02:00
ewoc.el
faceup.el
find-func.el Add find-function-setup-keys bindings for find-library commands 2022-06-30 12:49:40 +02:00
float-sup.el
generate-lisp-file.el Rename generate-file to generate-lisp-file 2022-06-05 17:48:39 +02:00
generator.el
generic.el
gv.el Don't say that macro-expansion error is a warning 2022-06-30 15:08:02 +02:00
helper.el Use substitute-command-keys in Helper-help 2022-07-04 15:50:18 +02:00
hierarchy.el
inline.el
let-alist.el
lisp-mnt.el
lisp-mode.el Fix `M-x lisp-fill-paragraph' 2022-07-11 12:15:38 +02:00
lisp.el Remove many items obsolete since 24.1 2022-07-08 14:10:38 +02:00
loaddefs-gen.el ; Fix typos 2022-07-14 12:52:32 +02:00
macroexp.el ; Fix typos: prefer American spelling 2022-07-14 12:13:31 +02:00
map-ynp.el
map.el
memory-report.el Make memory-report not bug out with symbols with positions 2022-05-26 13:04:50 +02:00
multisession.el
nadvice.el Merge from origin/emacs-28 2022-07-02 09:33:51 +02:00
oclosure.el
package-x.el
package.el * lisp/emacs-lisp/package.el (define-package): Make obsolete. 2022-07-11 12:51:00 +02:00
pcase.el
pp.el pp--insert-lisp: Don't bug out on certain forms at beginning of buffer 2022-05-28 18:39:43 +02:00
radix-tree.el
range.el
re-builder.el Prefer defvar-keymap in emacs-lisp/*.el 2022-07-04 22:15:51 +02:00
regexp-opt.el
regi.el
ring.el
rmc.el Allow read-multiple-choice to do long-form answers 2022-06-24 11:04:51 +02:00
rx.el ; * lisp/emacs-lisp/rx.el: Don't set indentation prop for repeat. 2022-06-30 15:19:15 +02:00
seq.el Add new function `seq-split' 2022-07-03 12:55:00 +02:00
shadow.el
shortdoc.el Remove some ineffectual calls to purecopy 2022-07-10 19:42:25 +02:00
shorthands.el Remove some useless eval-when-compile 2022-07-04 14:56:11 +02:00
smie.el
subr-x.el Autoload named-let 2022-07-11 12:18:04 +02:00
syntax.el (syntax-wholeline-max): New var 2022-06-30 13:20:33 -04:00
tabulated-list.el Prefer defvar-keymap in emacs-lisp/*.el 2022-07-04 22:15:51 +02:00
tcover-ses.el
testcover.el ; * lisp/emacs-lisp/testcover.el: Remove duplicate provide. 2022-06-30 14:12:12 +02:00
text-property-search.el
thunk.el
timer-list.el Add quit-window entry to list-timers menu 2022-07-04 22:15:51 +02:00
timer.el
tq.el
trace.el Remove many items obsolete since 24.1 2022-07-08 14:10:38 +02:00
unsafep.el
vtable.el
warnings.el