>   (if (fboundp 'function-in-doubt)
    >       (defalias 'mymodule-function-in-doubt 'function-in-doubt)
    >     (defun mymodule-function-in-doubt ...))
    Actually this form has the disadvantage that the
    byte-compiler would have to check which functions
    are defnied in every branch.  And snice it doesn't
    do that as of now, the byte-compiler won't noticve
    that this form does define
    `mymodule-function-in-doubt' and will hencforth
    issue warnings when you call that function.
    Better use:
       (defalias 'mymodule-function-in-doubt
         (if (fboundp 'function-in-doubt)
             'function-in-doubt
           (lambda (..) ...)))
    which makes it trivially obvious that `mymodule-function-in-doubt' will
    indeed always be defined.

Is the behavior of the byte-compiler for this kind of thing explained
somewhere? That is, are there coding guidelines somewhere to guide Lisp
users wrt the byte compiler?



_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-devel

Reply via email to