>>>> "Jerry" == Jerry James
<james(a)xemacs.org> writes:
Jerry> "Stephen J. Turnbull" <stephen(a)xemacs.org> wrote:
> Why an eval-when? require is already specially treated at
> compile time. Just require the file and be done with it.
Jerry> But only at top-level, apparently.
That needs to be fixed, but it's not going to be done in 21.4.
Jerry> The miscompiled defadvice in ffap.el immediately follows a
Jerry> (require 'advice), but it is not at top-level.
My preference would be to move the require to top-level.
Jerry> Also, some of the miscompiled macros I'm seeing are taken
Jerry> care of with a require at compile time, but there is no run
Jerry> time dependency on the file containing the macro. Doing an
Jerry> (eval-when-compile (require 'foo)) makes perfect sense in
Jerry> that case.
"Perfect sense" assumes either (a) somebody keeps perfect track of
changes to code and removes the eval-when if necessary, or (b) the
macro's code is frozen, guaranteed never to be changed again. It
makes a lot of sense as an optimization, but it's nothing more than
that. And it's not clear to me if the space saving is anything but
negligible.
Some packages, like VM, collect all their macros into a single file.
But even then you can't be sure that they won't call out to something
else that is required in the macro library.
Jerry> Some of the miscompiled macros have autoload cookies
Jerry> already, but the containing package was not in the REQUIRES
Jerry> list. I've just added to REQUIRES in those cases.
Cool.
Jerry> That is correct. I'll have to move some provides then. I
Jerry> hadn't thought about defsubsts, either,
Good, I'm glad my pessimism occasionally serves more usefully than
just a strong depressant. :-)
--
Institute of Policy and Planning Sciences
http://turnbull.sk.tsukuba.ac.jp
University of Tsukuba Tennodai 1-1-1 Tsukuba 305-8573 JAPAN
Ask not how you can "do" free software business;
ask what your business can "do for" free software.