Discussion:
Sorry for the preview-latex delays...
David Kastrup
2005-03-01 13:54:02 UTC
Permalink
I have heard no vocal protests about the latest error icons (and one
does not see them too often anyway). They only have a restricted set
of sizes and in particular are missing some smaller sizes. Also the
default sizes picked are larger compared to the surroundings. I think
this is appropriate since the men-at-work signs are business-as-usual,
whereas the error signs are more dire.

I have been distracted for several days hunting down a crash in
Emacs and was completely on the false track since I was suckered into
believing the debugger in optimized code. So two warnings:

a) if you are debugging a crash due to a failed assertion, at the very
least use the -fno-crossjumps option of GCC, or compile without
optimization altogether. If you don't, GCC will just use the same
abort() call for all failed assertions in the same function; and when
you walk the stack frame, it will be random (though every time the
same) which assertion will be flagged as being wrong.

Expensive lesson that.

b) if you are going for production use instead of debugging of CVS
Emacs (and that would apply to all packagers, too), please set
#define xassert(X)
instead of the xassert definition line in src/dispextern.h since there
are far too many bogus assertions right now.

I don't know whether I'll get the next release out before the next
batch of conferences (Chemnitzer Linuxtage Sat/Sun, where I'll be
holding the key note address as well as an "Emacs for desktop" kind of
talk, and EuroTeX2005 with two talks and an AUCTeX/preview-latex/Emacs
workshop).
--
David Kastrup, Kriemhildstr. 15, 44793 Bochum
Ralf Angeli
2005-03-01 14:25:52 UTC
Permalink
Post by David Kastrup
b) if you are going for production use instead of debugging of CVS
Emacs (and that would apply to all packagers, too), please set
#define xassert(X)
instead of the xassert definition line in src/dispextern.h since there
are far too many bogus assertions right now.
I use

#define xassert(X) (void) 0

anyway, as with the "default" Emacs is unbearably slow.
Post by David Kastrup
I don't know whether I'll get the next release out before the next
batch of conferences (Chemnitzer Linuxtage Sat/Sun, where I'll be
holding the key note address as well as an "Emacs for desktop" kind of
talk, and EuroTeX2005 with two talks and an AUCTeX/preview-latex/Emacs
workshop).
Good luck.
--
Ralf
David Kastrup
2005-03-01 14:40:05 UTC
Permalink
Post by Ralf Angeli
Post by David Kastrup
b) if you are going for production use instead of debugging of CVS
Emacs (and that would apply to all packagers, too), please set
#define xassert(X)
instead of the xassert definition line in src/dispextern.h since there
are far too many bogus assertions right now.
I use
#define xassert(X) (void) 0
anyway, as with the "default" Emacs is unbearably slow.
Problem is that xassert quality is rather different: most are basic
structural safety checks which would seem to exchange difficult to
find crashes and inconsistencies for easier debuggable ones. Then
there are quite a few that try checking for visual consistency (like
cursor movements making forward progress). They exchange a possible
nuisance for a catastrophe for the average user. And they don't help
in debugging actually since you don't get to see the problem on the
screen...

The visual asserts are probably also mostly the expensive ones since
they sometimes have to walk through data structures to get their
condition.
--
David Kastrup, Kriemhildstr. 15, 44793 Bochum
Loading...