]> git.eshelyaron.com Git - emacs.git/commit
* lisp/emacs-lisp/macroexp.el (macroexp-file-name): New function.
authorStefan Monnier <monnier@iro.umontreal.ca>
Wed, 24 Feb 2021 18:52:45 +0000 (13:52 -0500)
committerStefan Monnier <monnier@iro.umontreal.ca>
Wed, 24 Feb 2021 18:52:45 +0000 (13:52 -0500)
commit2766f9fdb95a1a4418020d32ce3f0cbd262f7cee
tree3475e2132b01dbeaa02852e17fb35e930404c8dd
parent654cb8e6b7fbdca32f07609cafe906e2470cc73d
* 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`.
13 files changed:
etc/NEWS
lisp/cedet/semantic/fw.el
lisp/cedet/semantic/wisent/comp.el
lisp/cedet/semantic/wisent/python.el
lisp/emacs-lisp/bytecomp.el
lisp/emacs-lisp/cl-lib.el
lisp/emacs-lisp/cl-macs.el
lisp/emacs-lisp/eieio.el
lisp/emacs-lisp/ert-x.el
lisp/emacs-lisp/macroexp.el
lisp/emacs-lisp/package.el
lisp/progmodes/flymake.el
lisp/subr.el