From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Dmitry Gutov Newsgroups: gmane.emacs.devel Subject: Re: Emacs design and architecture. How about copy-on-write? Date: Fri, 22 Sep 2023 04:29:11 +0300 Message-ID: <372e203e-f455-5c1c-d730-bceaf1168f60@gutov.dev> References: <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> <83fs38c2yv.fsf@gnu.org> <83o7hw9ee1.fsf@gnu.org> <87il84q845.fsf@yahoo.com> <83il849bx6.fsf@gnu.org> <87a5tfri8c.fsf@yahoo.com> <878r8z27cs.fsf@localhost> <44e98df7-f683-ac07-e644-40757f1d26f9@gutov.dev> <87msxfzts6.fsf@localhost> <837cojadg2.fsf@gnu.org> <33e6ecd3-8f1c-fa02-b5fc-bb39c87b53d7@gutov.dev> <83v8c38wtz.fsf@gnu.org> 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="38202"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Cc: yantar92@posteo.net, luangruo@yahoo.com, acm@muc.de, incal@dataswamp.org, emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Fri Sep 22 03:30:09 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 1qjUzg-0009g0-0J for ged-emacs-devel@m.gmane-mx.org; Fri, 22 Sep 2023 03:30:09 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qjUyz-0003eG-Ik; Thu, 21 Sep 2023 21:29:25 -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 1qjUyx-0003e3-CW for emacs-devel@gnu.org; Thu, 21 Sep 2023 21:29:23 -0400 Original-Received: from out3-smtp.messagingengine.com ([66.111.4.27]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qjUyu-0000CD-LQ; Thu, 21 Sep 2023 21:29:22 -0400 Original-Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 09CBE5C016C; Thu, 21 Sep 2023 21:29:16 -0400 (EDT) Original-Received: from mailfrontend2 ([10.202.2.163]) by compute1.internal (MEProxy); Thu, 21 Sep 2023 21:29:16 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc :cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:sender:subject:subject:to:to; s=fm1; t= 1695346156; x=1695432556; bh=B+xsg6ib9jlIq1gvX4jucAdL1/sB1CuBZgy RYtcTGgw=; b=yYM1xQTtVFQCnFZEpszpvY9fVOv+haS0J/WZbEvZgL4/zEIuJIt UZRUU6N2rBJomU7O75SiIGTuth4QEAvCd27tFglglAj4IyiIMZ7hxUCbiexvh5Of t/hp6ey7mEEU8l1vHaVoeubVfiIFTKXNLcc+3J+S/1OxkZc4YxMBZ1Ns7AlZvBoa XgbUkwvviNkgE+2sZm8bkiecKF78POa9oSJWA7LHyvGSZkO8aCGuzfxzIqzVe6iE KQ3x8T/EVLUXC4tiic0WvsdZkbzmr8GLiIOEEbgu/Qjky3p3bovA35/RzCvwImoR y8NutcRJ0EtU2Hfub1Nyrr0SFYzKc+vcY2A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:sender:subject:subject:to:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t= 1695346156; x=1695432556; bh=B+xsg6ib9jlIq1gvX4jucAdL1/sB1CuBZgy RYtcTGgw=; b=BAfhfHpa0/gZDU/rAoINcIHcqYjPfAZyfpbheHzJbWAAdHix30k daLlekUG3fasdgNnX6xEIjh1usZuA00r+AYPdwi14OpwGCM4KdwzwIo7/L35TD7y n/irWPqO9ZK6Pb3NxhYUEDqtxODQPTD/aSZ9tbBMuknc66Aj94tcsZ2xcLx9j9Im 7fkgW+HxMBkRmp/dM2VXdSbIzfGDVouw4N4FOm9ut+6vU8U1ipUEwyrpUCtPoCFY Mx2Ex4VXXBk1/qcRaiycpbLYwW29feMb1KcR5oWjnN30IDIJrcrREU3j90fcfyy8 dwxYexxyRUUSuRZZGp9oitgAv96FQAexDbg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedviedrudekjedggeehucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepkfffgggfuffvvehfhfgjtgfgsehtjeertddtfeejnecuhfhrohhmpeffmhhi thhrhicuifhuthhovhcuoegumhhithhrhiesghhuthhovhdruggvvheqnecuggftrfgrth htvghrnhepiefgteevheevveffheeltdeukeeiieekueefgedugfefgefhudelgfefveel vdevnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepug hmihhtrhihsehguhhtohhvrdguvghv X-ME-Proxy: Feedback-ID: i0e71465a:Fastmail Original-Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu, 21 Sep 2023 21:29:13 -0400 (EDT) Content-Language: en-US In-Reply-To: <83v8c38wtz.fsf@gnu.org> Received-SPF: pass client-ip=66.111.4.27; envelope-from=dmitry@gutov.dev; helo=out3-smtp.messagingengine.com X-Spam_score_int: -42 X-Spam_score: -4.3 X-Spam_bar: ---- X-Spam_report: (-4.3 / 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_LOW=-0.7, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 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:310937 Archived-At: On 21/09/2023 16:44, Eli Zaretskii wrote: >> Date: Thu, 21 Sep 2023 16:30:00 +0300 >> Cc: luangruo@yahoo.com, acm@muc.de, incal@dataswamp.org, emacs-devel@gnu.org >> From: Dmitry Gutov >> >> On 21/09/2023 16:00, Eli Zaretskii wrote: >>> You are basically proposing us to provide broken, incorrect, and >>> outdated display in some cases. That won't fly, so it's a >>> non-starter. >> >> If might prove an okay experience, if the "outdated" part is within >> certain bounds. Like if the current buffer refreshes at 30/60fps, and >> the mode-line at 10/20fps, for example. > > That's not what was proposed. The proposal was to do a > "quick-and-dirty" layout first, and use the results if the "accurate" > layout takes too long. I think I've also commented on the potential problems in my first reply to that. But since it's just an abstract suggestion at this point, we can try and see the constructive aspects of it. > The quick-and-dirty layout can only be based > on ignoring changes in fonts and disregarding images and stuff like > that, so the screen lines will be wrong, and you will see them jump > and/or rearrange after some delay, which could be some seconds. Some > browsers do that when they need to download images, and it always jars > me when that happens. Usually, I also lose the place where I was > reading. Some details on what the browsers really do: - When the images are not downloaded yet, it's possible that the browser doesn't know how to lay out the page yet, and the time to download sad images is not guaranteed. So what you're describing is really the best-effort approach, which has been most noticeable in the past, over slow network connections (or in countries/locations with poor network coverage even nowadays). Either way, it's a best practice for the web page authors to include the dimensions of the images in the tags -- when they are present, the layout can be done correctly even while the images are not downloaded yet. - If a web page is complex enough, and I scroll it down after opening very quickly, it can happen so Firefox doesn't manage to render the page quickly enough, perhaps due to other load. When that happens, it shows the bottom of the page in a sort of blurry haze (which is replaced as soon as it's ready). Overall, it feels good enough usability-wise, because it doesn't look jerky or "blinky" or etc. And of course it's a rare occasion overall.