From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: Info: No GIL Multithreading strat for Python Date: Sun, 03 Mar 2024 17:56:17 +0200 Message-ID: <86bk7vnwbi.fsf@gnu.org> References: Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="15855"; mail-complaints-to="usenet@ciao.gmane.io" Cc: emacs-devel@gnu.org To: Arthur Miller Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sun Mar 03 16:56:46 2024 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 1rgoCj-0003vv-KE for ged-emacs-devel@m.gmane-mx.org; Sun, 03 Mar 2024 16:56:45 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rgoCM-0004Fw-4t; Sun, 03 Mar 2024 10:56:22 -0500 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 1rgoCK-0004FU-OE for emacs-devel@gnu.org; Sun, 03 Mar 2024 10:56:20 -0500 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 1rgoCK-0004I0-6I; Sun, 03 Mar 2024 10:56:20 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=J3rFvIIBVCWZetNd+hyASRKYHKspvV60pU2xhZO58R0=; b=G8JFJp3q5uewBnAkmtdc fOIdsB3UZAqM6iDApvJjGYRwoAaXkrijetFl4i+BkTD/7mRIoWq2QC3QYirA/7xLtOV85s9L/M/H+ rxtEzwMJubRSVSek9gOsehRrqFJbVkHiImz2UupvBJfOhRhhbpBFrz2n/GTkRCgZRjkbaFATCwYOi smF+0JMog2IJdZo0Yr6JuT96yT7S6m5lLdqLwHbcAJ3Tql1AEtEWg/IR2feU51pPRE0TtD5SKD3s/ 8d4NiqiTs6JJQr3jcjo2UA0ka7Aha0m11s1DDv9lqzSksbXzJP13F1vQdYnVflVtp9E19QH/GbMQY 9Z8lahYHpCPQ9g==; In-Reply-To: (message from Arthur Miller on Sun, 03 Mar 2024 12:50:18 +0100) 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:316760 Archived-At: > From: Arthur Miller > Date: Sun, 03 Mar 2024 12:50:18 +0100 > > > I just stumbled over an intersting presentation of a multithreading experiment > for a "no-gil" Python, with relatively well-explained strategy they use, > problems they face and what it offers: > > https://www.youtube.com/watch?v=rImAmkS2ySE&t=2s > > The presentation is about ~ ½ year old, I have no idea what is the status and > how well it works. But some of what they discuss is perhaps of the interest for > emacs devs. Python is a programming language, where the programmers are responsible for what the parallel programs they write do and how do they cope with the various dangers of concurrency. If the program crashes, the programmer has only him/herself to blame. By contrast, Emacs is a program that lets users process text in various scenarios, where users expect Emacs to react gracefully to errors. Emacs the program has a very large global state that doesn't work well with any concurrency, and which any programmer will keep as far from as possible. If Emacs crashes, users blame Emacs, not the Lisp they wrote. So there's a large difference, and therefore not every technique used by a programming language can be used by Emacs to achieve similar goals.