1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-06 06:20:55 -08:00

Prefer (defsubst A ...) to (cl-proclaim (inline A))

* lisp/emacs-lisp/cl-macs.el: Remove cl-proclaim...
* lisp/emacs-lisp/cl-extra.el (cl-map, cl-notany, cl-notevery)
(cl-revappend, cl-nreconc):
* lisp/emacs-lisp/cl-lib.el (cl-acons): ...and use defsubst
instead.  (Bug#76294)
This commit is contained in:
Stefan Kangas 2025-02-15 00:40:52 +01:00
parent f05ce9e6bb
commit dc86f59e92
3 changed files with 6 additions and 10 deletions

View file

@ -127,7 +127,7 @@ strings case-insensitively."
(and acc (nreverse cl-res))))) (and acc (nreverse cl-res)))))
;;;###autoload ;;;###autoload
(defun cl-map (cl-type cl-func cl-seq &rest cl-rest) (defsubst cl-map (cl-type cl-func cl-seq &rest cl-rest)
"Map a FUNCTION across one or more SEQUENCEs, returning a sequence. "Map a FUNCTION across one or more SEQUENCEs, returning a sequence.
TYPE is the sequence type to return. TYPE is the sequence type to return.
\n(fn TYPE FUNCTION SEQUENCE...)" \n(fn TYPE FUNCTION SEQUENCE...)"
@ -239,14 +239,14 @@ non-nil value.
(null cl-seq))) (null cl-seq)))
;;;###autoload ;;;###autoload
(defun cl-notany (cl-pred cl-seq &rest cl-rest) (defsubst cl-notany (cl-pred cl-seq &rest cl-rest)
"Return true if PREDICATE is false of every element of SEQ or SEQs. "Return true if PREDICATE is false of every element of SEQ or SEQs.
\n(fn PREDICATE SEQ...)" \n(fn PREDICATE SEQ...)"
(declare (important-return-value t)) (declare (important-return-value t))
(not (apply #'cl-some cl-pred cl-seq cl-rest))) (not (apply #'cl-some cl-pred cl-seq cl-rest)))
;;;###autoload ;;;###autoload
(defun cl-notevery (cl-pred cl-seq &rest cl-rest) (defsubst cl-notevery (cl-pred cl-seq &rest cl-rest)
"Return true if PREDICATE is false of some element of SEQ or SEQs. "Return true if PREDICATE is false of some element of SEQ or SEQs.
\n(fn PREDICATE SEQ...)" \n(fn PREDICATE SEQ...)"
(declare (important-return-value t)) (declare (important-return-value t))
@ -589,13 +589,13 @@ too large if positive or too small if negative)."
;;; List functions. ;;; List functions.
;;;###autoload ;;;###autoload
(defun cl-revappend (x y) (defsubst cl-revappend (x y)
"Equivalent to (append (reverse X) Y)." "Equivalent to (append (reverse X) Y)."
(declare (side-effect-free t)) (declare (side-effect-free t))
(nconc (reverse x) y)) (nconc (reverse x) y))
;;;###autoload ;;;###autoload
(defun cl-nreconc (x y) (defsubst cl-nreconc (x y)
"Equivalent to (nconc (nreverse X) Y)." "Equivalent to (nconc (nreverse X) Y)."
(declare (important-return-value t)) (declare (important-return-value t))
(nconc (nreverse x) y)) (nconc (nreverse x) y))

View file

@ -535,7 +535,7 @@ Return a copy of TREE with all elements `eql' to OLD replaced by NEW.
cl-tree (cons a d)))) cl-tree (cons a d))))
(t cl-tree))) (t cl-tree)))
(defun cl-acons (key value alist) (defsubst cl-acons (key value alist)
"Add KEY and VALUE to ALIST. "Add KEY and VALUE to ALIST.
Return a new list with (cons KEY VALUE) as car and ALIST as cdr." Return a new list with (cons KEY VALUE) as car and ALIST as cdr."
(declare (side-effect-free error-free)) (declare (side-effect-free error-free))

View file

@ -3725,10 +3725,6 @@ macro that returns its `&whole' argument."
`(cl-getf (symbol-plist ,sym) ,prop ,def) `(cl-getf (symbol-plist ,sym) ,prop ,def)
`(get ,sym ,prop))) `(get ,sym ,prop)))
;;; Things that are inline.
(cl-proclaim '(inline cl-acons cl-map cl-notany cl-notevery cl-revappend
cl-nreconc))
;;; Types and assertions. ;;; Types and assertions.
;;;###autoload ;;;###autoload