mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-06 06:20:55 -08:00
* lisp/emacs-lisp/macroexp.el (macroexp-file-name): New function.
Yes, finally: a function that tells you the name of the file where the code is located. Finding this name is non-trivial in practice, as evidenced by the "4 shift/reduce conflicts" warning when compiling CEDET's python.el, because its `wisent-source` got it wrong in that case, thinking the grammar came from `python.el` instead of `python-wy.el`. While at it, also made `macroexp-compiling-p` public, since it's useful at various places. (macroexp-compiling-p): Rename from `macroexp--compiling-p`. * lisp/emacs-lisp/bytecomp.el (byte-compile-close-variables): Bind `load-file-name` to nil so we can distinguish a load that calls the byte compiler from a byte compilation which causes a load. * lisp/cedet/semantic/wisent/python.el (wisent-python--expected-conflicts): Remove; it was just a workaround. * lisp/subr.el (do-after-load-evaluation): Avoid `byte-compile--` vars. * lisp/cedet/semantic/fw.el (semantic-alias-obsolete): Use `macroexp-compiling-p` and `macroexp-file-name`. * lisp/cedet/semantic/wisent/comp.el (wisent-source): Use `macroexp-file-name` (wisent-total-conflicts): Tighten regexp. * lisp/emacs-lisp/cl-lib.el (cl--compiling-file): Delete function and variable. Use `macroexp-compiling-p` instead. * lisp/progmodes/flymake.el (flymake-log): * lisp/emacs-lisp/package.el (package-get-version): * lisp/emacs-lisp/ert-x.el (ert-resource-directory): Use `macroexp-file-name`.
This commit is contained in:
parent
654cb8e6b7
commit
2766f9fdb9
13 changed files with 55 additions and 60 deletions
|
|
@ -232,13 +232,8 @@ one value.
|
|||
|
||||
;;; Declarations.
|
||||
|
||||
(defvar cl--compiling-file nil)
|
||||
(defun cl--compiling-file ()
|
||||
(or cl--compiling-file
|
||||
(and (boundp 'byte-compile--outbuffer)
|
||||
(bufferp (symbol-value 'byte-compile--outbuffer))
|
||||
(equal (buffer-name (symbol-value 'byte-compile--outbuffer))
|
||||
" *Compiler Output*"))))
|
||||
(define-obsolete-function-alias 'cl--compiling-file
|
||||
#'macroexp-compiling-p "28.1")
|
||||
|
||||
(defvar cl--proclaims-deferred nil)
|
||||
|
||||
|
|
@ -253,7 +248,7 @@ one value.
|
|||
Puts `(cl-eval-when (compile load eval) ...)' around the declarations
|
||||
so that they are registered at compile-time as well as run-time."
|
||||
(let ((body (mapcar (lambda (x) `(cl-proclaim ',x)) specs)))
|
||||
(if (cl--compiling-file) `(cl-eval-when (compile load eval) ,@body)
|
||||
(if (macroexp-compiling-p) `(cl-eval-when (compile load eval) ,@body)
|
||||
`(progn ,@body)))) ; Avoid loading cl-macs.el for cl-eval-when.
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue