diff options
author | Stefan Monnier <[email protected]> | 2012-06-05 11:41:12 -0400 |
---|---|---|
committer | Stefan Monnier <[email protected]> | 2012-06-05 11:41:12 -0400 |
commit | 57a7d50707c79e22f52a71d9c7f6d4a4773456c3 (patch) | |
tree | b33484512136db9ae47c40e4b219fc2708cf997d /lisp/emacs-lisp/cl.el | |
parent | 51a5f9d8163744dab918e2b6fe3f452f5a4cddfd (diff) |
Add native compiler-macro support.
* lisp/emacs-lisp/macroexp.el (macroexpand-all-1):
Support compiler-macros directly. Properly follow aliases and apply
the compiler macros more thoroughly.
* lisp/emacs-lisp/cl.el: Don't copy compiler-macro properties any more since
macroexpand now properly follows aliases.
* lisp/emacs-lisp/cl-macs.el (toplevel, cl-define-compiler-macro)
(cl-compiler-macroexpand): Use new prop.
* lisp/emacs-lisp/byte-opt.el (featurep): Optimize earlier.
* lisp/emacs-lisp/cl-lib.el (custom-print-functions): Add compatibility alias.
Diffstat (limited to 'lisp/emacs-lisp/cl.el')
-rw-r--r-- | lisp/emacs-lisp/cl.el | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/lisp/emacs-lisp/cl.el b/lisp/emacs-lisp/cl.el index 3b83a71340..14eb15fa57 100644 --- a/lisp/emacs-lisp/cl.el +++ b/lisp/emacs-lisp/cl.el @@ -321,13 +321,11 @@ (intern (format "cl-%s" fun))))) (defalias fun new) ;; If `cl-foo' is declare inline, then make `foo' inline as well, and - ;; similarly, if `cl-foo' has a compiler-macro, make it available for `foo' - ;; as well. Same for edebug specifications, indent rules and + ;; similarly. Same for edebug specifications, indent rules and ;; doc-string position. ;; FIXME: For most of them, we should instead follow aliases ;; where applicable. - (dolist (prop '(byte-optimizer byte-compile cl-compiler-macro - doc-string-elt edebug-form-spec + (dolist (prop '(byte-optimizer doc-string-elt edebug-form-spec lisp-indent-function)) (if (get new prop) (put fun prop (get new prop)))))) |