> Le 14 Apr 2005, Kevin Rodgers vraute :
>>The eudc-bbdb-extract-phones function was compiled without the
>>bbdb-record-phones macro defined, so it was assumed to be a function.
>>
>>This problem would be prevented if the eudc-bbdb-extract-phones source
>>file had
>>
>> (eval-when-compile (require 'bbdb-foo))
>>
>>assuming bbdb-record-phones is defined in bbdb-foo.el, which provides
>>the bbdb-foo feature.
>
> Many thanks for that explanation !
>
> Actually i had found with Google that 4 years ago you already explained
> why such a call was failing :
> http://groups-beta.google.com/group/gnu.emacs.help/browse_frm/thread/f1d56b88c1ae9b1f/8d24edc422c9ac0c
>
> But I was not able to find out the solution.
M-x byte-compile-file RET eudc-bbdb.el RET
> BTW : as eudc is part of Emacs, maybe i should send a request to > emacs-devel for adding the eval-when-compile ? Or maybe Stefan, if you > are reading this... Or is it a normal case ?
But bbdb is not part of Emacs, and so the eudc-bbdb library which depends on it is definitely abnormal. eudc-bbdb.el does try to do the right thing:
(require 'eudc) (if (not (featurep 'bbdb)) (load-library "bbdb")) (if (not (featurep 'bbdb-com)) (load-library "bbdb-com"))
but the Lisp files in the Emacs distribution are presumably compiled without any add-on libraries available. I think if those were changed to the conventional usage:
(require 'eudc) (require 'bbdb) (require 'bbdb-com)
then eudc-bbdb.el would fail to compile in a bare Emacs, so a bogus eudc-bbdb.elc would not be distributed. As long as Emacs can be built without every .el file being successfully compiled, that would be fine.
-- Kevin Rodgers
_______________________________________________ Help-gnu-emacs mailing list Help-gnu-emacs@gnu.org http://lists.gnu.org/mailman/listinfo/help-gnu-emacs