diff options
author | Stefan Monnier <monnier@iro.umontreal.ca> | 2012-06-11 16:35:00 -0400 |
---|---|---|
committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2012-06-11 16:35:00 -0400 |
commit | 71adb94b713138836225744c8ed9281b558e2c51 (patch) | |
tree | ad614df00327a48008f751e1e54dc1c9c7d98b2c /lisp/emacs-lisp/cl-loaddefs.el | |
parent | a66744021faeb2ce105b1001a380c4a46384c5f4 (diff) | |
download | emacs-71adb94b713138836225744c8ed9281b558e2c51.tar.gz emacs-71adb94b713138836225744c8ed9281b558e2c51.tar.bz2 emacs-71adb94b713138836225744c8ed9281b558e2c51.zip |
Fix compiler-expansion of CL's cXXr functions.
* emacs-lisp/cl-lib.el (cl--defalias): New function.
(cl-values, cl-values-list, cl-copy-seq, cl-svref, cl-first)
(cl-second, cl-rest, cl-endp, cl-third, cl-fourth): Use it.
(cl-plusp, cl-minusp, cl-fifth, cl-sixth, cl-seventh, cl-eighth)
(cl-ninth, cl-tenth): Mark them as inlinable.
(cl-caaar, cl-caadr, cl-cadar, cl-caddr, cl-cdaar, cl-cdadr)
(cl-cddar, cl-cdddr, cl-caaaar, cl-caaadr, cl-caadar, cl-caaddr)
(cl-cadaar, cl-cadadr, cl-caddar, cl-cadddr, cl-cdaaar, cl-cdaadr)
(cl-cdadar, cl-cdaddr, cl-cddaar, cl-cddadr, cl-cdddar, cl-cddddr):
Add a compiler-macro declaration to use cl--compiler-macro-cXXr.
(cl-list*, cl-adjoin): Don't put an autoload manually.
* emacs-lisp/cl-macs.el (cl--compiler-macro-adjoin)
(cl--compiler-macro-list*): Add autoload cookie.
(cl--compiler-macro-cXXr): New function.
* help-fns.el (help-fns--compiler-macro): New function extracted from
describe-function-1; follow aliases and use `compiler-macro' property.
(describe-function-1): Use it.
Fixes: debbugs:11673
Diffstat (limited to 'lisp/emacs-lisp/cl-loaddefs.el')
-rw-r--r-- | lisp/emacs-lisp/cl-loaddefs.el | 41 |
1 files changed, 29 insertions, 12 deletions
diff --git a/lisp/emacs-lisp/cl-loaddefs.el b/lisp/emacs-lisp/cl-loaddefs.el index 064ddbde9d0..f68268fdceb 100644 --- a/lisp/emacs-lisp/cl-loaddefs.el +++ b/lisp/emacs-lisp/cl-loaddefs.el @@ -254,18 +254,20 @@ Remove from SYMBOL's plist the property PROPNAME and its value. ;;;*** -;;;### (autoloads (cl-defsubst cl-compiler-macroexpand cl-define-compiler-macro -;;;;;; cl-assert cl-check-type cl-typep cl-deftype cl-struct-setf-expander -;;;;;; cl-defstruct cl-define-modify-macro cl-callf2 cl-callf cl-letf* -;;;;;; cl-letf cl-rotatef cl-shiftf cl-remf cl-do-pop cl-psetf cl-setf -;;;;;; cl-get-setf-method cl-defsetf cl-define-setf-expander cl-declare -;;;;;; cl-the cl-locally cl-multiple-value-setq cl-multiple-value-bind -;;;;;; cl-symbol-macrolet cl-macrolet cl-labels cl-flet cl-progv -;;;;;; cl-psetq cl-do-all-symbols cl-do-symbols cl-dotimes cl-dolist -;;;;;; cl-do* cl-do cl-loop cl-return-from cl-return cl-block cl-etypecase -;;;;;; cl-typecase cl-ecase cl-case cl-load-time-value cl-eval-when -;;;;;; cl-destructuring-bind cl-function cl-defmacro cl-defun cl-gentemp -;;;;;; cl-gensym) "cl-macs" "cl-macs.el" "a8ede90b4a2ce9015d4b63254b4678a2") +;;;### (autoloads (cl--compiler-macro-cXXr cl--compiler-macro-list* +;;;;;; cl--compiler-macro-adjoin cl-defsubst cl-compiler-macroexpand +;;;;;; cl-define-compiler-macro cl-assert cl-check-type cl-typep +;;;;;; cl-deftype cl-struct-setf-expander cl-defstruct cl-define-modify-macro +;;;;;; cl-callf2 cl-callf cl-letf* cl-letf cl-rotatef cl-shiftf +;;;;;; cl-remf cl-do-pop cl-psetf cl-setf cl-get-setf-method cl-defsetf +;;;;;; cl-define-setf-expander cl-declare cl-the cl-locally cl-multiple-value-setq +;;;;;; cl-multiple-value-bind cl-symbol-macrolet cl-macrolet cl-labels +;;;;;; cl-flet cl-progv cl-psetq cl-do-all-symbols cl-do-symbols +;;;;;; cl-dotimes cl-dolist cl-do* cl-do cl-loop cl-return-from +;;;;;; cl-return cl-block cl-etypecase cl-typecase cl-ecase cl-case +;;;;;; cl-load-time-value cl-eval-when cl-destructuring-bind cl-function +;;;;;; cl-defmacro cl-defun cl-gentemp cl-gensym) "cl-macs" "cl-macs.el" +;;;;;; "5eba72da8ff76ec1346aa355feb936cb") ;;; Generated autoloads from cl-macs.el (autoload 'cl-gensym "cl-macs" "\ @@ -777,6 +779,21 @@ surrounded by (cl-block NAME ...). \(fn NAME ARGLIST [DOCSTRING] BODY...)" nil t) +(autoload 'cl--compiler-macro-adjoin "cl-macs" "\ + + +\(fn FORM A LIST &rest KEYS)" nil nil) + +(autoload 'cl--compiler-macro-list* "cl-macs" "\ + + +\(fn FORM ARG &rest OTHERS)" nil nil) + +(autoload 'cl--compiler-macro-cXXr "cl-macs" "\ + + +\(fn FORM X)" nil nil) + ;;;*** ;;;### (autoloads (cl-tree-equal cl-nsublis cl-sublis cl-nsubst-if-not |