Subject: bug#20968: 25.0.50; Be able to specify the output directory for `byte-compile-file'

From: Eli Zaretskii <[email-masked]>
Date: Sat, 04 Jul 2015 11:40:31 +0300

> Date: Fri, 3 Jul 2015 07:55:55 -0700 (PDT)
> From: Drew Adams <[email-masked]>
> Cc: [email-masked], [email-masked]
> 
> Why should the target dir be hardwired to the source dir?  Testing
> might be a reason for the enhancement: quickly remove the *.elc dir
> from `load-path' to take byte-compilation complications out of the
> equation.  Having different compilation dirs for different Emacs
> versions could be another argument for such flexibility.
> 
> Is there a compelling reason, beyond "we've always done without
> this", not to let users specify the output dir?

One reason is to be able to use "M-x load-library RET", and have it
DTRT.  If the *.elc files are separate from *.el, then at best the
problem of deciding which version to load becomes harder and the
loading becomes slower, and at worst you'll have a subtle bug on your
hands.  E.g., what if more than one directory on load-path has a file
that goes by the same name?  And in what order do you search load-path
for the companion .el file, given that you found .elc in in some
directory?

Last, but not least: the current implementation of loading a Lisp file
is a 2-level loop, where the outer one loops over the directories, and
the inner one over the suffixes.  So this suggestion, if implemented,
will need C-level changes as well.

> Or seize the opportunity to instead rant about non-GNU Emacs forums...

Done.

> > If you dwell a lot on those sites, how about encouraging people to
> > use the Emacs forums, where they will get definitive answers,
> > instead of talking to random people (present company excluded) on
> > Stack-foo?
> 
> If you visited emacs.SE and StackOverflow (tag `emacs') occasionally,
> you might observe that that is **EXACTLY** what I do do.  Far more
> than anyone else, BTW.  And I encourage them to file bug reports if
> they think they've found a bug or have an enhancement suggestion.

Please carry on, and thanks.