From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Richard Stallman Newsgroups: gmane.emacs.devel Subject: Re: Emacs design and architecture. How about copy-on-write? Date: Tue, 19 Sep 2023 06:20:37 -0400 Message-ID: References: <43d642a8-d1b4-05ed-41e0-6e52d22df2d4@gutov.dev> <83edizjn0v.fsf@gnu.org> <0518f65b-1dd1-6923-8497-da4d3aeac631@gutov.dev> <87sf7fc7kd.fsf@dataswamp.org> <834jjuk68t.fsf@gnu.org> <87cyyhc7uu.fsf@dataswamp.org> <83ttrsg9nx.fsf@gnu.org> Reply-To: rms@gnu.org Content-Type: text/plain; charset=Utf-8 Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="40075"; mail-complaints-to="usenet@ciao.gmane.io" Cc: eliz@gnu.org, incal@dataswamp.org, emacs-devel@gnu.org To: Alan Mackenzie Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue Sep 19 12:21:08 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 1qiXqt-000AE3-Fj for ged-emacs-devel@m.gmane-mx.org; Tue, 19 Sep 2023 12:21:07 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qiXqS-0001M5-4x; Tue, 19 Sep 2023 06:20:40 -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 1qiXqQ-0001LJ-Q7 for emacs-devel@gnu.org; Tue, 19 Sep 2023 06:20:38 -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 1qiXqP-0007oj-Rg; Tue, 19 Sep 2023 06:20:37 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=Date:References:Subject:In-Reply-To:To:From: mime-version; bh=jwqieIu49SFjZW5ZjjL984yuRFVddBp+R9zglMLwZAU=; b=MJDvWkuYukGV MmsrdO+VHHpgX4Vkycc/d4TWTaGgbwcLKsJdSI9nrGmvkx61fCmhFF5uf9H38C7I4Ml5d4FCnox2B NwPfpjFV3tBlBut0wfED6sax23HCW4Gt9tdsAT/xHlqEIRza0rtx/nNB1x2CZAGbkwS+RGn6fP9+K q7PG2NW9DYUxB7zVxFs/+nfpqfxrFfCDvYiamAArFkZ2En76kAUs2ekz8ihYRCd/8Hb8YcgK3QJbG 5PbwiDCAC+ZEOfqBcDpQPNC+dP/GJ/vxX+06nYGQdxXkrh0qV/59QJjcZBOPW9lI/kqSIvlNSsqlq hQiUwbsi7kf0ZVnHKEjQ6Q==; Original-Received: from rms by fencepost.gnu.org with local (Exim 4.90_1) (envelope-from ) id 1qiXqP-0004XB-2D; Tue, 19 Sep 2023 06:20:37 -0400 In-Reply-To: (message from Alan Mackenzie on Sun, 17 Sep 2023 15:36:11 +0000) 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:310742 Archived-At: [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > A value in a value-cell (etc.) would have an associated thread value, the > thread which "owns" it. When thread1 gets cloned from thread0, it > continues to use thread0's data state until it writes foo (e.g. by > binding it). This would create a new value/thread pair, foo/thread1. > Further writes of foo by thread1 would continue to access foo/thread1. It sounds reasonable to me. It might be feasible to implement as part of the mechanism that handles local values. -- Dr Richard Stallman (https://stallman.org) Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org)