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 02:01:03 +0300 Message-ID: <5207474e-6cdf-963d-58c4-c6fa8faa2dde@gutov.dev> References: <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> <83fs38c2yv.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="20049"; 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, acm@muc.de, incal@dataswamp.org, emacs-devel@gnu.org To: Stefan Kangas , Eli Zaretskii , Po Lu Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Fri Sep 22 01:02:23 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 1qjSgf-0004zi-NR for ged-emacs-devel@m.gmane-mx.org; Fri, 22 Sep 2023 01:02:22 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qjSfk-0006qG-96; Thu, 21 Sep 2023 19:01:24 -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 1qjSfe-0006mo-Ei for emacs-devel@gnu.org; Thu, 21 Sep 2023 19:01:21 -0400 Original-Received: from wout2-smtp.messagingengine.com ([64.147.123.25]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qjSfZ-0006Cz-LP; Thu, 21 Sep 2023 19:01:17 -0400 Original-Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.west.internal (Postfix) with ESMTP id 82F9D3200786; Thu, 21 Sep 2023 19:01:08 -0400 (EDT) Original-Received: from mailfrontend2 ([10.202.2.163]) by compute4.internal (MEProxy); Thu, 21 Sep 2023 19:01:09 -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= 1695337268; x=1695423668; bh=9pqvw5x55qrsojADrnDZBdUYfm7Z21bLUUP Y4N2VKVY=; b=AUWisKgFCm3UEB0U94INRXXsCN0ThDX7k/uATzlRbIcvqLdv9yH 9xKoD/r1YKAHR41eTLAHRcF851bY0BcbSDyQObSVLDmugUHxo+eiDwpJ41Mu/MRq ZoP5Sbs1jkOyri9y0BEdTfH9eE1eGe4k+0vUA6AHEkmGQD/cuguMNSk3lNt33RJ3 bh9DHY3dyR7pbWCyz2crjYi5GcUw6IVFdWKgneyqbqOsqg9sCodjFoXsXMscfMiT 69yn23EO7JYOD+Fn/aXRRaKS3K9L1PK9HpHqYwBusXa7WAjAsXZx4U0hpSagkBgo mLt4+ues+FiAzJXtl+2NfFGHttocLuIT/yg== 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= 1695337268; x=1695423668; bh=9pqvw5x55qrsojADrnDZBdUYfm7Z21bLUUP Y4N2VKVY=; b=atunUhTn2ORadkz1RjyHhPZSq5n9J9ESl3kTt4hxj32T78ztwFU ew3XaQJh7j/tUD1/kLsGUuoCzlff8g2BR0DG/VJtoT9Z4/q1OicVpbDR3RHJPLgW W5aDK36NrocPQ4xH9PIrJ2B7lT9pq+/v8oHH0QB/tvo+pcKT1VXfnnwg42lrgT3A xtReha8tIV91LccoAih9eGeVni+tOu69YUiwmsmyy1bjZj1HtGqT1QS3rVCflbJk Haydbu+rgFT5XBmnZ+EJWHdZhIGDk7hyi7HiVd1BleL1M77R2VOxHzSgdx0uB5rZ azIO79AbAH9UHnJIs6HU3cNeVjKIWe2J+5g== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedviedrudekjedgudegucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepkfffgggfuffvvehfhfgjtgfgsehtjeertddtfeejnecuhfhrohhmpeffmhhi thhrhicuifhuthhovhcuoegumhhithhrhiesghhuthhovhdruggvvheqnecuggftrfgrth htvghrnhepieejkeettdffjefgffejudehtdffudeukedtfeelhfejvddtleeiteeiieef udfgnecuffhomhgrihhnpehrvgguughithdrtghomhdpghhithhhuhgsrdgtohhmnecuve hluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepughmihhtrhih sehguhhtohhvrdguvghv X-ME-Proxy: Feedback-ID: i0e71465a:Fastmail Original-Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu, 21 Sep 2023 19:01:06 -0400 (EDT) Content-Language: en-US In-Reply-To: Received-SPF: pass client-ip=64.147.123.25; envelope-from=dmitry@gutov.dev; helo=wout2-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:310934 Archived-At: On 22/09/2023 01:21, Stefan Kangas wrote: > Dmitry Gutov writes: > >> - People using LSP likely see better performance because of VC Code >> being able to parse the server's output in a different thread (or web >> worker? I haven't seen the exact design). LSP-Mode folks wrote a POC >> branch of Emacs which parallelizes the JSON parsing as well: >> https://www.reddit.com/r/emacs/comments/ymrkyn/async_nonblocking_jsonrpc_or_lsp_performance/ >> Some work toward mainlining this feature (perhaps after generalizing) >> could help. Or maybe the "multiple concurrent interpreters" approach >> could yield similar gains. > Could someone please contact them and ask if they plan to upstream it? I think they're too busy and not motivated enough at the moment: https://github.com/emacs-lsp/emacs/issues/7 Further, it seems that at least for some users the current solution is not working very well: https://github.com/emacs-lsp/emacs/issues/9, but that seems macOS specific. Anyway, I think it might need more work to get into upstreamable shape, but it's up for discussion how much it's going to be. Overall, the diff is not huge, and the first question would be is how generic we'd want this feature to be, or whether a separate JSON-parsing thread is more-or-less fine.