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: Emacs design and architecture. How about copy-on-write? Date: Wed, 20 Sep 2023 17:51:36 +0300 Message-ID: <83fs38c2yv.fsf@gnu.org> References: <87cyyhc7uu.fsf@dataswamp.org> <83ttrsg9nx.fsf@gnu.org> <83h6nrg4eg.fsf@gnu.org> <83v8c7elan.fsf@gnu.org> <877conk5ny.fsf@localhost> <83ttrreeu0.fsf@gnu.org> <87bkdzeas1.fsf@localhost> <83cyyfe5l8.fsf@gnu.org> <87led2o0nb.fsf@localhost> <83ttrqcpfb.fsf@gnu.org> <877comnv4a.fsf@localhost> <83fs3ackrq.fsf@gnu.org> <99e84ae7-b3aa-a009-5cb8-a75826343196@gutov.dev> <838r92cgxp.fsf@gnu.org> <837comcam8.fsf@gnu.org> <6946e6f0-c6ef-186c-35d4-c09935c05a07@gutov.dev> <83y1h1axtq.fsf@gnu.org> <87sf79rq5o.fsf@yahoo.com> Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="40148"; mail-complaints-to="usenet@ciao.gmane.io" Cc: dmitry@gutov.dev, yantar92@posteo.net, acm@muc.de, incal@dataswamp.org, emacs-devel@gnu.org To: Po Lu Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Wed Sep 20 16:52:31 2023 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 1qiyZ4-000ACj-K8 for ged-emacs-devel@m.gmane-mx.org; Wed, 20 Sep 2023 16:52:30 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qiyYC-0002Kd-IQ; Wed, 20 Sep 2023 10:51:36 -0400 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 1qiyYA-0002KT-Th for emacs-devel@gnu.org; Wed, 20 Sep 2023 10:51:35 -0400 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 1qiyY7-0005Up-Uz; Wed, 20 Sep 2023 10:51:32 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=h1wMOlqLy9kM2jZx+HSiuefyhMBuKeHljBFnoFwWJ1k=; b=IQnwT/mgpt+0 L6FIJW3gDNmV5tnoZdkrtBucjluydfY2XVYBwQwG0oLqNvGc3WTaVL/3W1UoPYHYkM2f5BIezASDY 1akOxw2r9mg0BGu3haVw4mN9q2Dx73hlPWaUibl30iM6uXKL/D5k3uZw1716tRJxIH6XDDaZret76 NUTmrmwzLB4YRik+7u0YpBte9Czbzh0O92Q+Ufxnzo2FXtD0TAapM1as07C660fa1YRWCSz4diigq JH4+3mM5Kl9aj4Q8XLlWyHIGci8i+bhD6YBUHpY4Bjd+eWFsWTPQptGRW8u+rjJHZ62jx3KDM/CHV Jx5UsEh+8bxnhZpjZKzzgw==; In-Reply-To: <87sf79rq5o.fsf@yahoo.com> (message from Po Lu on Wed, 20 Sep 2023 20:21:39 +0800) 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:310840 Archived-At: > From: Po Lu > Cc: Dmitry Gutov , yantar92@posteo.net, acm@muc.de, > incal@dataswamp.org, emacs-devel@gnu.org > Date: Wed, 20 Sep 2023 20:21:39 +0800 > > Eli Zaretskii writes: > > > On the high-level design level, it should be clear without any need > > for benchmarking that separating redisplay from the main thread could > > bring benefits. Isn't that what every GUI application out there does? > > So trying to think about that is always a good thing, IMO. > > Au contraire, almost all GUI program limit redisplay to their main > threads. ??? On Windows at least, the UI thread is a separate thread, not necessarily the main one. We have that in Emacs on Windows. > Emacs is not a video game, for which the touchstone of performance is a > measurement taken in ``frames-per-second''. It is a text editor that > only updates the display subsequent to an editing operation. That is, > unless you perform more than 60 edits per second and expect an > intervening redisplay after each edit. This sounds as if you are talking about something other than Emacs, really. Try running some day with all the redisplay optimizations turned off and with enough windows/frames visible, and you will see how far we are from 60 fps goal. There's a lot of room for improvement even without being a video game, just an editor. Or visit Reddit and see how many users complain that Emacs is slower in displaying stuff than, say, VSCode.