Peter S Galbraith <[EMAIL PROTECTED]> 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 [EMAIL PROTECTED] > : 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.

