]> git.eshelyaron.com Git - emacs.git/commit
Optimise `append` calls
authorMattias Engdegård <mattiase@acm.org>
Fri, 15 Jul 2022 16:55:30 +0000 (18:55 +0200)
committerMattias Engdegård <mattiase@acm.org>
Sat, 16 Jul 2022 10:18:48 +0000 (12:18 +0200)
commit7feb5b2da7f369a8ab1fea81975989aa30cbb397
tree34b442060ba624c6080eb8a5f2fa4c1616fb9c61
parentd1ac1b2108e0934b11631c39307b208a2c0fdf1a
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.
lisp/emacs-lisp/byte-opt.el