From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: David Kastrup Newsgroups: gmane.emacs.devel Subject: xassert in dispextern.h Date: Tue, 01 Mar 2005 17:47:15 +0100 Message-ID: NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: sea.gmane.org 1109696172 27515 80.91.229.2 (1 Mar 2005 16:56:12 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Tue, 1 Mar 2005 16:56:12 +0000 (UTC) Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Mar 01 17:56:12 2005 Original-Received: from lists.gnu.org ([199.232.76.165]) by ciao.gmane.org with esmtp (Exim 4.43) id 1D6AcJ-0006Z7-1e for ged-emacs-devel@m.gmane.org; Tue, 01 Mar 2005 17:53:03 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1D6Aus-0000jt-Vs for ged-emacs-devel@m.gmane.org; Tue, 01 Mar 2005 12:12:15 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1D6AqO-0004js-OC for emacs-devel@gnu.org; Tue, 01 Mar 2005 12:07:37 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1D6AqL-0004hZ-5B for emacs-devel@gnu.org; Tue, 01 Mar 2005 12:07:33 -0500 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1D6AqK-0004ct-DM for emacs-devel@gnu.org; Tue, 01 Mar 2005 12:07:32 -0500 Original-Received: from [199.232.76.164] (helo=fencepost.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.34) id 1D6AWi-000668-Pu for emacs-devel@gnu.org; Tue, 01 Mar 2005 11:47:16 -0500 Original-Received: from localhost ([127.0.0.1] helo=lola.goethe.zz) by fencepost.gnu.org with esmtp (Exim 4.34) id 1D6AWi-0005Q4-6s for emacs-devel@gnu.org; Tue, 01 Mar 2005 11:47:16 -0500 Original-To: emacs-devel@gnu.org User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org X-MailScanner-To: ged-emacs-devel@m.gmane.org Xref: main.gmane.org gmane.emacs.devel:33990 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:33990 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