From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: redisplay-dont-pause Date: Thu, 15 Sep 2011 00:59:17 -0400 Message-ID: References: <83ipovw2z2.fsf@gnu.org> Reply-To: Eli Zaretskii NNTP-Posting-Host: lo.gmane.org X-Trace: dough.gmane.org 1316062773 2856 80.91.229.12 (15 Sep 2011 04:59:33 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Thu, 15 Sep 2011 04:59:33 +0000 (UTC) Cc: emacs-devel@gnu.org To: rms@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Sep 15 06:59:28 2011 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1R442q-00073q-Aq for ged-emacs-devel@m.gmane.org; Thu, 15 Sep 2011 06:59:28 +0200 Original-Received: from localhost ([::1]:48017 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R442p-00076V-Sk for ged-emacs-devel@m.gmane.org; Thu, 15 Sep 2011 00:59:27 -0400 Original-Received: from eggs.gnu.org ([140.186.70.92]:52233) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R442n-00076K-8e for emacs-devel@gnu.org; Thu, 15 Sep 2011 00:59:26 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1R442m-0006DA-3G for emacs-devel@gnu.org; Thu, 15 Sep 2011 00:59:25 -0400 Original-Received: from fencepost.gnu.org ([140.186.70.10]:56498) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R442l-0006D4-SL for emacs-devel@gnu.org; Thu, 15 Sep 2011 00:59:24 -0400 Original-Received: from eliz by fencepost.gnu.org with local (Exim 4.71) (envelope-from ) id 1R442f-0008Dx-9R; Thu, 15 Sep 2011 00:59:17 -0400 In-reply-to: (message from Richard Stallman on Thu, 15 Sep 2011 00:12:00 -0400) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 140.186.70.10 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:144055 Archived-At: > Date: Thu, 15 Sep 2011 00:12:00 -0400 > From: Richard Stallman > CC: emacs-devel@gnu.org > Reply-to: rms@gnu.org > > Any objections to change the default value of this option to t? The > reasons for its nil value are long gone, AFAIK, and it definitely > improves user experience when redisplay needs to work hard. > > How does setting it to t improve things? When the value is nil, Emacs checks at several places during redisplay whether some input is available, and if so, it aborts the redisplay cycle to handle the incoming input. That has the effect of forcing a full redisplay on the next opportunity, for those frames that were not completely redisplayed. Here, "full" means that all display optimizations are wholesale disabled for all windows on the frame. E.g., even just moving the cursor or scrolling by one line will redraw the entire window. This adversely affects the user experience when you lean on some key, like C-n or C-v, and Emacs gets input events at the keyboard auto-repeat rate (which is generally quite high nowadays): frequently, the display gets stuck because Emacs cannot keep up with the input and completely stops displaying. Setting the variable to t has 2 effects: . it lets Emacs use redisplay optimizations more often, which are a big win for commands that generally just move without changing the buffer, thus boosting Emacs's ability to process input faster; . it effectively slows down the keyboard auto-repeat rate (because events need to wait for the end of redisplay before they are processed), but only by a small factor, so the user experience is that Emacs does succeed to keep up.