David Kastrup
2005-03-01 13:54:02 UTC
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).
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
David Kastrup, Kriemhildstr. 15, 44793 Bochum