From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Ihor Radchenko Newsgroups: gmane.emacs.devel Subject: Re: Emacs design and architecture. How about copy-on-write? Date: Wed, 20 Sep 2023 11:38:00 +0000 Message-ID: <87cyyd8487.fsf@localhost> 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> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="3422"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Dmitry Gutov , 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 Wed Sep 20 13:37:42 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 1qivWY-0000hF-CK for ged-emacs-devel@m.gmane-mx.org; Wed, 20 Sep 2023 13:37:42 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qivVk-0004uv-Vf; Wed, 20 Sep 2023 07:36:53 -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 1qivVi-0004tn-RY for emacs-devel@gnu.org; Wed, 20 Sep 2023 07:36:50 -0400 Original-Received: from mout01.posteo.de ([185.67.36.65]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qivVg-0005Um-5a for emacs-devel@gnu.org; Wed, 20 Sep 2023 07:36:50 -0400 Original-Received: from submission (posteo.de [185.67.36.169]) by mout01.posteo.de (Postfix) with ESMTPS id 4ED41240029 for ; Wed, 20 Sep 2023 13:36:46 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1695209806; bh=xoPyQg2uxmWz94mwfJb+CMFw8N+B/IMO8/xbI2WEmzs=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:From; b=Hq0Z/LhIPmBBfmeO57DEjXZj5cB6J06qe0kScpoN0j3bV3n0Pq4woU2VVEHwXHpbN TdTe8krScPaoTPRVzYyzOwjSRKSqYP0MQS3C9IghgQSPguqPINLmJZkpm0NOK6kT9t G79zafCNuCYEosoYEthmfCbj7j9O3X+nnkpCaBLE5xlGZNsXtv4BZRJJVe5vgzWE/9 CHtyVPzuKp3Z7CxRH6ET+KTZrVJcopxiuRfY9sqINYx2MFtPEfTYlym1oq2AkGrWoa /91UA+GaURin+QjvKNrNepYdZCQ8TwKUKp8Tp71836lX+Hyau27Q/ioLWozIzytSRS taoX7AfgxhhFQ== Original-Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4RrGhY1R95z6tyd; Wed, 20 Sep 2023 13:36:44 +0200 (CEST) In-Reply-To: <83y1h1axtq.fsf@gnu.org> Received-SPF: pass client-ip=185.67.36.65; envelope-from=yantar92@posteo.net; helo=mout01.posteo.de X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=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:310819 Archived-At: Eli Zaretskii writes: > With enough text properties and overlays, you can definitely see a > tangible slowdown in frame rate. E.g., Org developers don't want to > use text properties because they slow down redisplay, and thus they > consider them not scalable enough. I do not think that it needs be addressed by async threads. The main problem with text properties, AFAIK, is that segment tree Emacs uses makes searching for next single property change scale with the total number of segments where _any_ arbitrary property changes, not with actual number of that searched property segments. I believe that it is more a question of rewriting text property handling into multiple segment trees dedicated to individual properties. -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at . Support Org development at , or support my work at