[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#14551: compiler fails to track eval-when-compile in required files
From: |
Stefan Monnier |
Subject: |
bug#14551: compiler fails to track eval-when-compile in required files |
Date: |
Mon, 03 Jun 2013 16:59:07 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) |
> foo.el:
> (require 'lib)
> (defun foo ()
> (lib2-func))
[...]
> lib.el:
> (eval-when-compile
> (require 'lib2))
> (provide 'lib)
[...]
> rm lib*.elc
> emacs -Q -L . -batch -f batch-byte-compile foo.el
> produces no warnings.
Yes, that's a long standing bug. Fixing it right is likely to be pretty
tricky/difficult because it means we need to disregard some of the
packages already loaded somehow. In the general case, you have the same
problem even without eval-when-compile, e.g. if you have in lib.el
a call to an autoloaded macro, in which case the autoloaded package will
be loaded if lib.el is not yet compiled but not if it is.
The "noruntime" warnings are implemented with a pile of hacks, and I'd
rather not add to them. So, given that a proper fix looks pretty
difficult, I wouldn't hold my breath.
Stefan