unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Miles Bader <snogglethorpe@gmail.com>
Cc: jasonr@gnu.org, emacs-devel@gnu.org,
	Luc Teirlinck <teirllm@dms.auburn.edu>,
	storm@cua.dk, miles@gnu.org
Subject: Re: xassert in dispextern.h
Date: Wed, 2 Mar 2005 10:17:33 +0900	[thread overview]
Message-ID: <fc339e4a0503011717145890a@mail.gmail.com> (raw)
In-Reply-To: <x58y56kghp.fsf@lola.goethe.zz>

On Wed, 02 Mar 2005 02:01:54 +0100, David Kastrup <dak@gnu.org> wrote:
> > The argument for disabling xassert assumes that the majority of them
> > are superfluous; clearly if this _isn't_ the case then disabling
> > xassert is a bad idea.
> 
> The majority of them clearly _are_ "superfluous" since they assert
> assumptions occuring in the context of earlier, fixed bugs.

(1) How do you know that?  You say yourself that there are so many
xasserts it's hard for anybody to go through them all.  It could very
well be that many are testing conditions related to suspected bugs,
not fixed ones.

(2) Even if that were the case (which you haven't demonstrated), it
wouldn't make them "superfluous" -- regression testing is very
valuable in the presence of any hacking, and the amount of change in
the redisplay code recently is certainly enough to warrant it
(especially given that nobody really understands it very well).

> > In order to demonstrate that the majority are superfluous, one has
> > to actually be able to make exactly the same sort of judgement for
> > each xassert -- so I'm saying, if you can make that judgement, then
> > why not use it on a case-by-case basis to get the best of both
> > worlds?
> 
> Because there are lots of cases.  grep in the source directory of
> Emacs turns up 1430 of them.

So how have you made the judgement that the majority are unneeded?

> > If, on the other hand, it's the case that nobody can make that
> > judgement for most xasserts, then nobody is in a position to say
> > xassert can safely be disabled either.
> 
> That's why we are not deleting the xasserts, but turning them off by
> default, and, among developers, from time to time turning them on in
> order to check whether everything looks as good as last time around.

Experience shows that this is usually not sufficient.  Many bugs in
the redisplay code are subtle, and are not going to simply present
themselves when you do a quick check.

> We are not talking about removing the xasserts: that would be foolish.
> We are talking about not inflicting them by default on a larger
> audience on which their purpose will be completely lost.

Right, that's why we'll _turn off xassert for the release_.

> But HEAD is a really bad place for such a setting, given that others
> than ourselves are responsible for make-shift pseudoreleases.  I don't
> want to sabotage others doing our work for us, not if it can be
> avoided.

If someone is clueful enough to make a reasonable "psuedorelease" from
the CVS  trunk (e.g., judging if today's snapshot is not a lemon),
then I expect they're also clueful enough to turn off xassert.

We could certainly _document_ the situation (INSTALL.CVS?) to help
such people along.

-Miles
-- 
Do not taunt Happy Fun Ball.

  reply	other threads:[~2005-03-02  1:17 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-03-01 16:47 xassert in dispextern.h David Kastrup
2005-03-01 17:08 ` David Kastrup
2005-03-01 18:58   ` Jason Rumney
2005-03-01 19:41     ` David Kastrup
2005-03-01 21:32       ` Kim F. Storm
2005-03-01 21:51         ` David Kastrup
2005-03-01 22:50           ` Miles Bader
2005-03-01 23:14             ` Kim F. Storm
2005-03-02  0:52               ` David Kastrup
2005-03-03  2:29               ` Richard Stallman
2005-03-01 23:17             ` Luc Teirlinck
2005-03-02  0:35               ` Miles Bader
2005-03-02  1:01                 ` David Kastrup
2005-03-02  1:17                   ` Miles Bader [this message]
2005-03-02  1:38                     ` David Kastrup
2005-03-02  9:13                 ` Kim F. Storm
2005-03-02  9:47                   ` Miles Bader
2005-03-02 11:42                     ` Kim F. Storm
2005-03-02 12:21                     ` Andreas Schwab
2005-03-01 21:16     ` Kim F. Storm
2005-03-01 22:02       ` David Kastrup
2005-03-01 17:13 ` David Kastrup

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=fc339e4a0503011717145890a@mail.gmail.com \
    --to=snogglethorpe@gmail.com \
    --cc=emacs-devel@gnu.org \
    --cc=jasonr@gnu.org \
    --cc=miles@gnu.org \
    --cc=storm@cua.dk \
    --cc=teirllm@dms.auburn.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).