Re: Should directory of unvompiled elisp file be added to load-path
Peter S Galbraith <p.galbraith@globetrotter.net> writes:
>> In theory, you could ship the *.el in a dpkg-dev-el-doc package, but I
>> assume it isn't a large file so it would be bloat.
>>
>> IMHO documentation is important. Only installing *.elc is like
>> installing software without info manual or man pages.
>
> The *.el files are of course shipped. How else could I byte-compile
> them! :-)
Right, but they aren't "installed" as far as Emacs is concerned, since
emacs doesn't find them when it wants to.
>> Perhaps you don't need to byte compile the package? Few elisp
>> packages really need it, and doing things this way would fix the
>> problem. Compare the 'idn' package, it simply put files in
>> /usr/share/emacs/site-lisp/. It also make Emacs generate better
>> debugging information, should users ever encounter a bug. And it
>> doesn't bloat load-path.
>
> Right. I think the files are large enough to warrant byte-compilation.
> Although, they probably don't do tasks that take very long.
Maybe try it uncompiled (on a slow machine) and see if it is usable?
>> You could also consider using autoload instead of bloating load-path
>> at all, although I'm not sure if Emacs is smart enough to locate
>> documentation this way. If not, it should probably be regarded as a
>> bug, and reported. If you need to byte compile the file, this is
>> probably the best solution.
>
> I'm sorry. I don't follow. The byte-compiled library is already loaded
> by then, so how is autoload supposed to work? Documentation is
> available from the .elc files. What doesn't work is the clickable link
> to the source code, e.g. the `debian-bts-control' string below is
> clickable after doing `C-h f debian-bts-control':
>
> : debian-bts-control is an interactive autoloaded Lisp function in `debian-bts-control'.
> : [Arg list not available until function definition is loaded.]
> :
> : Contruct a message with initial ACTION command for control@bugs.debian.org.
> : Contructs a new control command line if called from within the message
> : being constructed.
>
> I think the only way to make this work if to have the .el file in the
> load-path. But is it worth it?
I see.
Close to a solution seem to be in find-function-source-path, only
problem is that when it is defined it completely overrides load-path.
Perhaps it would be useful to propose a
find-function-source-path-extra which find-function could look into,
after load-path was exhausted. Then when *.elc and *.el are installed
in different places, instead of adding the *.el path to load-path, it
could be added to f-f-s-p-e, to make find-function find it.
Of course, this would require emacs to be changed, either upstream or
by debian, which may be too much work to solve this problem.
Reply to: