emacs-devel
[Top][All Lists]
Advanced

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

xassert in dispextern.h


From: David Kastrup
Subject: xassert in dispextern.h
Date: Tue, 01 Mar 2005 17:47:15 +0100
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux)

Would it be possible to change the default of xassert to a noop in
dispextern.h again?  I am asking this because of the following
reasons:

a) whoever is going to help with debugging Emacs will be able to
recompile Emacs.

b) the asserts are of two kinds: catching bad data structures, of
which there have not been any reports lately even with xassert
enabled, and of ensuring visual integrity.  For the latter case, an
abort() is the worst solution since you actually can't see what is
happening.

c) the performance impact is rather heavy.  There are a few
instructions around on the net for compiling Emacs from CVS, and there
are quite a few precompiled versions.  All of those rather than not
use the default settings.  This means that what people test-driving
Emacs get to see is a frequently crashing (for no good reason and
purpose) and dreadfully slow Emacs (since several of the xasserts do
expensive function calls for getting some info).

d) I have wasted about four days (that I could not really afford) of
debugging on something that turned out to be just a flaky assertion on
some code that was scheduled for revision, anyway, and that would not
have caused any actual problem, but rather a "quirk".  I have wasted
that time because I am demoing the current default Emacs at
conferences and workshops and telling people to try it and report
about it.  If I have to tell them that precompiled versions are
unusable, and that they have to edit the Emacs before compiling it
themselves, I might as well forget it.

We don't improve our chances for getting people to try out Emacs and
report problems with a useful recipe if we make it buck slow and have
it crash for the average user instead of having visual cues which he
can screenshot and reproduce.

I can really see no purpose why the xasserts are enabled by default.
It does not look like they are giving us better debuggable or
reproducible error symptoms than leaving them off, and they are
keeping people from being able to help pretesting Emacs.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum




reply via email to

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