[Top][All Lists]

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

Re: Science to suppress compiler warnings

From: Lennart Borgman
Subject: Re: Science to suppress compiler warnings
Date: Wed, 3 Jun 2009 11:58:55 +0200

On Wed, Jun 3, 2009 at 6:43 AM, Stephen J. Turnbull <address@hidden> wrote:
> Xavier Maillard writes:
>  > Elisp manual at "Compiler Errors" section (16.6) says we should
>  > conditionalize variable use with a boundp test (same thing for
>  > undefined function) but I find it very unpractical.
> If this is related to your work on supporting old versions of Emacs,
> my advice is "live with it".  Either use the runtime test if it's an
> Emacs-defined variable, or use an appropriate `defvar' or `defconst'
> to initialize the variable.
> Suppressing compiler warnings is very likely to lead to runtime
> errors, often intermittent ones.  Eg, there may be an unusual code
> path that leads to reference to a void variable very early in an Emacs
> session.  Boom!  But unless you type that exact sequence of commands
> immediately after starting Emacs, something requires the relevant
> library, and no problem can be found.
> Such bugs are quite hard to diagnose, even to localize, if the user is
> not an Emacs expert.  A boundp check with a good error message, or a
> proper initialization with `defvar', will prevent or at least help
> diagnose a lot of problems.

But if you combine (defvar foo) with tests everywhere foo is used you
should be safe ...

reply via email to

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