From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: Removing redisplay-dont-pause Date: Sat, 30 Nov 2024 11:58:03 +0200 Message-ID: <86v7w582ms.fsf@gnu.org> References: <86ed3awd16.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="32436"; mail-complaints-to="usenet@ciao.gmane.io" Cc: gerd.moellmann@gmail.com, monnier@iro.umontreal.ca To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sat Nov 30 10:58:44 2024 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1tHKFQ-0008IW-2v for ged-emacs-devel@m.gmane-mx.org; Sat, 30 Nov 2024 10:58:44 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tHKEw-0000nu-Bb; Sat, 30 Nov 2024 04:58:14 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tHKEs-0000na-Lg for emacs-devel@gnu.org; Sat, 30 Nov 2024 04:58:10 -0500 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tHKEr-0000B0-Gm; Sat, 30 Nov 2024 04:58:09 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=WkX8rD+zeyNmCUbLaHAdnzIi9lQeCikWNBpU4M8i8Qs=; b=ca5/rCztcYK4dLBBSZaF jhgphV7YAc1U9oLhn9xutg5wKhPoq5JrioLAuf7yD0LZ1AFWGlnkUMGWufUoJjcY7E579M/X6W/TC nLrejoUjJAvuzANvMt9Fvh95ujY2PGKop/k7/p/cM/MEBCuIV4iMBS7X49CCXjv9otQMhvnZlZNyw 5i/GhPkbPzEH9MYw41W6ktvMX65nl2/6gvS0B5oM+lctzuCYS/4t52GVYCh7VEfbQI4kKb4YN4s8k dEF6mP166lmQokfWb2oT8gALeFOZzf596wmqQKpYnBO/pRTb8V28HZqf8/ut0ZdM4IhZdTuMwF2/F P1p0xLlLOuPGOg==; In-Reply-To: <86ed3awd16.fsf@gnu.org> (message from Eli Zaretskii on Sun, 17 Nov 2024 09:11:01 +0200) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 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-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:325870 Archived-At: Ping! Any opinions? Or should we install Gerd's changes? > Date: Sun, 17 Nov 2024 09:11:01 +0200 > From: Eli Zaretskii > Cc: emacs-devel@gnu.org, monnier@iro.umontreal.ca > > > From: Gerd Möllmann > > Cc: Stefan Monnier > > Date: Sun, 17 Nov 2024 06:43:06 +0100 > > > > Eli Zaretskii writes: > > > > >> branch: scratch/tty-child-frames > > >> commit f62d70f52f4f6b7ed158d618bf790df21f171172 > > >> Author: Gerd Möllmann > > >> Commit: Gerd Möllmann > > >> > > >> Don't pause display for pending input > > >> > > >> * src/dispnew.c: Remove display_completed, redisplay_dont_pause, > > >> redisplay-dont-pause was declared obsolete in Emacs 24. Remove anything > > >> checking pending input, change function signatures accordingly, and so > > >> on. > > >> > > >> * src/keyboard.c (read_char): Don't use redisplay_dont_pause. > > >> * src/minibuf.c (read_minibuf): Use new function signatures. > > >> * src/xdisp.c: Don't check display_completed. Use new API. > > >> > > >> * lisp/subr.el (redisplay-dont-pause): Remove declaration. > > > > > > I don't think this kind of change is appropriate. Feature branches > > > should not add/remove features not directly related to the feature > > > being developed on the branch. If we want to remove > > > redisplay-dont-pause from Emacs (and I'm not yet sure we do), it > > > should be discussed on emacs-devel or in a dedicated bug report, not > > > silently installed on the branch. > > > > I guess not many know what this is about, so what is this about? > > > > One feature of the old redisplay was that it stopped updating the > > display when it detected that input was pending, so that it could > > process that input ASAP. > > > > I kept that feature in my redisplay. As a debugging aid, I added > > redisplay-dont-pause with which I could turn this feature on and off, > > because pausing the display lead to a lot subtle and difficult to debug > > bugs. > > > > ISTR that setting redisplay-dont-pause to t became sort of a secret > > semi-popular hack. Hyrum's Law in action, I guess. And 13 years ago or > > so, the default of redisplay-dont-pause was changed to t by Eli. > > > > 10 years ago, Stefan Monnier explained the why > > > > + /* Contrary to expectations, a value of "false" can be detrimental to > > + responsiveness since aborting a redisplay throws away some of the > > + work already performed. It's usually more efficient (and gives > > + more prompt feedback to the user) to let the redisplay terminate, > > + and just completely skip the next command's redisplay (which is > > + done regardless of this setting if there's pending input at the > > + beginning of the next redisplay). */ > > + redisplay_dont_pause = true; > > > > And finally, Stefan also > > > > (make-obsolete-variable 'redisplay-dont-pause nil "24.5") > > > > and removed it from the docs. > > > > I've removed that pausing feature in my fork and thought I'd bring that > > to master via scratch/tty-child-frames, but apparently that's > > controversial for some reason I don't understand, and I reverted that. > > And so, here we are. > > Thanks for the summary. > > So what do people think about removing this variable (and the code > supporting it) from Emacs? In particular, does anyone use that > variable in a non-default nil value? > >