emacs-pretest-bug
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Change in bytecomp.el breaks Gnus


From: Stefan Monnier
Subject: Re: Change in bytecomp.el breaks Gnus
Date: Sun, 14 Nov 2004 14:17:08 -0500
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/21.3.50 (gnu/linux)

> In Emacs, the situation is already hopeless.  I redirected make
> bootstrap's error messages to a file.  That file is 8155 lines long.
> Not all these lines are compiler warnings but a lot of them are.

Elisp compilation warnings are basically useless to anyone else than the
author.  To fix this part is currently hopeless.
To the elisp author, OTOH they can be very handy if she chooses to pay
attention to them.

> `(elisp)Coding Conventions' says to avoid compiler warnings, but many
> authors ignore this.

I think there's a whole range of cases:
1 - the author never byte compiles her files.
2 - she byte-compiles occasionally but just ignores all the warnings.
3 - she'd like to pay attention to the warnings, but there's so many that
    she's discouraged before even starting (anybody who's taken a look at
    Calc knows what I'm talking about).
4 - she'd pays attention to the warnings but several of them can't be fixed
    without ugly workarounds.  For vars the (defvar foo) form is a godsent,
    but for functions, there's nothing equivalent (yet).  The recently
    proposed (defun foo) form would be extremely helpful.
5 - ...

> Most "function from cl package called at runtime" seem to involve
> situations where loading the .el file loads cl, but loading the .elc
> does not.  I believe that this is acceptable, in which case most of
> these warnings are bogus.

Many of those warnings are bogus.  One of the most common case of "bogus"
is when a CL function is used in a macro and this macro is only used inside
the file, so it's only used during byte-compilation and never at runtime.
The warning is "bogus" is the sense that it's harmless but it is real in the
sense that loading the resulting .elc file will define a macro which will
burp if you try to use it without first loading CL.


        Stefan




reply via email to

[Prev in Thread] Current Thread [Next in Thread]