From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Adam Porter Newsgroups: gmane.emacs.devel Subject: Re: Emacs design and architecture. How about copy-on-write? Date: Wed, 20 Sep 2023 21:23:09 -0500 Message-ID: <120e0e0f-c274-42e8-844d-4044fc8cd5d2@alphapapa.net> References: Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="12483"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.15.1 Cc: acm@muc.de, dmitry@gutov.dev, eliz@gnu.org, emacs-devel@gnu.org, incal@dataswamp.org, yantar92@posteo.net To: luangruo@yahoo.com Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Thu Sep 21 04:24:06 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 1qj9ML-00033o-LU for ged-emacs-devel@m.gmane-mx.org; Thu, 21 Sep 2023 04:24:05 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qj9LS-0007Or-Pn; Wed, 20 Sep 2023 22:23:10 -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 1qj9LR-0007Od-Fh for emacs-devel@gnu.org; Wed, 20 Sep 2023 22:23:09 -0400 Original-Received: from slategray.cherry.relay.mailchannels.net ([23.83.223.169]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qj9LP-0005TG-CX; Wed, 20 Sep 2023 22:23:09 -0400 X-Sender-Id: dreamhost|x-authsender|adam@alphapapa.net Original-Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id 77736141F84; Thu, 21 Sep 2023 02:23:03 +0000 (UTC) Original-Received: from pdx1-sub0-mail-a291.dreamhost.com (unknown [127.0.0.6]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id BC8EE141EE8; Thu, 21 Sep 2023 02:23:02 +0000 (UTC) ARC-Seal: i=1; s=arc-2022; d=mailchannels.net; t=1695262982; a=rsa-sha256; cv=none; b=dvQBHULhkkuX3AvmavIHbDLTJxGWE6DM5qDAQbK//U/5wp01thcLOQxR+dVWldbwHLq42Y XJ58ZEm5GQXCDDEoNtXGbNE3qfokJybTswMXyROHytFmWx16wsmQT51r3QDSR3/urmAAvX HrdvYWwsV7PJ6k7lZmyaKIj46F/eRxhM9RnSm7OwdxaVtuxruqzGRVZ48JG3gICyC6cOzH OcEnNVWyFLyoFwCLM16ULPpsM2zAC2etxKWbE2OjP67IsTIxu6ztNOor1Z/46rwQ7Yxn7P k5X+muC6pP2uJh0hu765oYLqhK8gyTBXv8bgMJ44/Yt/6PNHXekYSA4Uiot5Ng== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=mailchannels.net; s=arc-2022; t=1695262982; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=sb5LXo531SMt7xVsFJvNctzJ0u5QmifqC6SX3pU54yg=; b=1b1Me/3iul8v4aXuvKwA+UcwCGO0cpQjtmMMLnBNpSdrzxoc4qfpLvMI2TAhx/kpJYfU52 m6AwxMOBKgbg96hTLDJIAIJTeJlDcbZmS4k9DN3rJW0pCC0pOeRxWDUZ+lAlAx5AeoeiwV AR6BZFOBZSxzhZkhARTuvFFHRqUlgTB/acOWKT8tDjSK53mvTDKuIm9DVdvkxp1avjMhej gK3mUBa04Dx0bJZfforuNU/g77G5DR84PHqXAb05CvTN4Gk1f9CB+2TzW5SiLs1O8f7DTR lWgC3bHEuk9AVejIV4TeGOlsKqrVSWYL23rTJGURF2aOBFcGguldmN6GqSjD/Q== ARC-Authentication-Results: i=1; rspamd-7c449d4847-g2sqk; auth=pass smtp.auth=dreamhost smtp.mailfrom=adam@alphapapa.net X-Sender-Id: dreamhost|x-authsender|adam@alphapapa.net X-MC-Relay: Neutral X-MailChannels-SenderId: dreamhost|x-authsender|adam@alphapapa.net X-MailChannels-Auth-Id: dreamhost X-Average-Arch: 7d4395de53c902c0_1695262983185_1527391808 X-MC-Loop-Signature: 1695262983185:4150885077 X-MC-Ingress-Time: 1695262983185 Original-Received: from pdx1-sub0-mail-a291.dreamhost.com (pop.dreamhost.com [64.90.62.162]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384) by 100.111.86.53 (trex/6.9.1); Thu, 21 Sep 2023 02:23:03 +0000 Original-Received: from [10.45.0.58] (unknown [45.131.192.7]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: adam@alphapapa.net) by pdx1-sub0-mail-a291.dreamhost.com (Postfix) with ESMTPSA id 4RrfM96JF4z195; Wed, 20 Sep 2023 19:23:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alphapapa.net; s=dreamhost; t=1695262982; bh=sb5LXo531SMt7xVsFJvNctzJ0u5QmifqC6SX3pU54yg=; h=Date:To:Cc:Subject:From:Content-Type:Content-Transfer-Encoding; b=mGIA3h2pNeoss0CWpW2sh4wm4RRY7L/uDotkjo+KFlcEgc/bIlgL1bunGBKOILsU0 VoYF2jbQXe1H60RQXK/qkrdvIHLayqT4qjC/5vt+E8cmtO1miHcZWUMBehsl6MFWdt dHfAzDC5ZbMHZt0vGz90xjZh2dUVLD7FWFjKmQO5W6THPo66V+zYakAlg8btWJr78V R/Ij/RuOUw0QREquDWgFeb/BlDJqifI/UZwjsENsPGgBTqH22Lu2l+SAA2uJmisina zQFwbQnWBVey21Zwxgn9gbZkc44Rx/xD417Jq+NtZ+xdQ/Nmz7MZZ6/Eb6VvZyGx7m uMRASrd9LEF9g== Content-Language: en-US In-Reply-To: Received-SPF: neutral client-ip=23.83.223.169; envelope-from=adam@alphapapa.net; helo=slategray.cherry.relay.mailchannels.net X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, NICE_REPLY_A=-1.473, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_NEUTRAL=0.779 autolearn=ham autolearn_force=no X-Spam_action: no action 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:310858 Archived-At: If I may interject: > We don't have a "60FPS goal." "Frames per second" is a metric that > applies to programs which are perpetually redrawing their windows, > either as fast as the monitor refreshes or as fast as the CPU permits. > > I don't type 60 characters per second -- so there is no reason for Emacs > to display at 60 frames per second. > > If you open the GUI inspector tool of any Gtk+ program, then enable its > "frames per second" counter, you will quickly recognize that a GUI > program such as a text editor seldom, if ever, redraws itself at such a > rate. There would seem to be numerous scenarios in which a 60 FPS (or higher) redraw rate would be desired, such as smooth scrolling (i.e. pixel-by-pixel at a high speed), whether text or images are in the buffer (especially if Emacs one day gains improved support for images, i.e. displaying an image across lines of text without splitting it into many smaller images). As well, as we all know, Emacs is much more than merely a text editor; it's a platform upon which a variety of different applications are run. Finally, attaining high redraw rates means leaving a large margin, helping to maintain acceptable performance under heavier loads, ones we may not anticipate at this time. So I think it's very much a worthwhile goal to be able to redraw at 60+ FPS.