From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: joakim@verona.se Newsgroups: gmane.emacs.devel Subject: Re: Concurrency, again Date: Wed, 12 Oct 2016 23:24:34 +0200 Message-ID: References: <87wq97i78i.fsf@earlgrey.lan> <86k2dk77w6.fsf@molnjunk.nocrew.org> <9D64B8EA-DB52-413D-AE6A-264416C391F3@iotcl.com> <83int1g0s5.fsf@gnu.org> <83twckekqq.fsf@gnu.org> <83mvi9a3mh.fsf@gnu.org> <20161012165911.58437154@jabberwock.cb.piermont.com> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: blaine.gmane.org 1476307530 18950 195.159.176.226 (12 Oct 2016 21:25:30 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Wed, 12 Oct 2016 21:25:30 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1.50 (gnu/linux) Cc: Eli Zaretskii , Stefan Monnier , emacs-devel@gnu.org To: "Perry E. Metzger" Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Oct 12 23:25:25 2016 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1buR1S-0002WG-HC for ged-emacs-devel@m.gmane.org; Wed, 12 Oct 2016 23:25:10 +0200 Original-Received: from localhost ([::1]:35993 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1buR1R-0001KC-4x for ged-emacs-devel@m.gmane.org; Wed, 12 Oct 2016 17:25:09 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:38026) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1buR1K-0001Jf-R6 for emacs-devel@gnu.org; Wed, 12 Oct 2016 17:25:03 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1buR1J-0002Wj-Rf for emacs-devel@gnu.org; Wed, 12 Oct 2016 17:25:02 -0400 Original-Received: from mx6.bahnhof.se ([213.80.101.16]:6725) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1buR1F-0002Uq-RY; Wed, 12 Oct 2016 17:24:57 -0400 Original-Received: from localhost (mf.bahnhof.se [213.80.101.20]) by mx6-reinject (Postfix) with ESMTP id F100F41778; Wed, 12 Oct 2016 23:24:54 +0200 (CEST) X-Virus-Scanned: by amavisd-new using ClamAV at bahnhof.se (MF4) Original-Received: from mf4.bahnhof.se ([127.0.0.1]) by localhost (mf4.bahnhof.se [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id LpJeaf5h4H1O; Wed, 12 Oct 2016 23:24:51 +0200 (CEST) Original-Received: from mta.verona.se (h-235-62.a149.priv.bahnhof.se [85.24.235.62]) by mf4.bahnhof.se (Postfix) with ESMTP id 3C4663D791C; Wed, 12 Oct 2016 23:24:50 +0200 (CEST) Original-Received: from localhost (unknown [127.0.0.1]) by mta.verona.se (Postfix) with ESMTP id E970A4FC6F7; Wed, 12 Oct 2016 21:24:50 +0000 (UTC) X-Virus-Scanned: amavisd-new at verona.se Original-Received: from mta.verona.se ([127.0.0.1]) by localhost (exodia.verona.se [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ELO9BI5eCUZg; Wed, 12 Oct 2016 23:24:34 +0200 (CEST) Original-Received: from exodia.verona.se (www.verona.se [192.168.200.15]) by mta.verona.se (Postfix) with ESMTP id 79BC64FC6F3; Wed, 12 Oct 2016 23:24:34 +0200 (CEST) In-Reply-To: <20161012165911.58437154@jabberwock.cb.piermont.com> (Perry E. Metzger's message of "Wed, 12 Oct 2016 16:59:11 -0400") X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 213.80.101.16 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 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.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:208190 Archived-At: "Perry E. Metzger" writes: > On Wed, 12 Oct 2016 15:43:12 -0400 Stefan Monnier > wrote: >> - I want semantic-mode to scan my buffers in the background and to >> scan several buffers at the same time, to make use of my 8 cores. >> The concurrency branch doesn't really try to solve this problem. >> I'm not sure what's the best way to solve this problem, and I >> don't even know what would be a "simple" way to solve this problem. > > One possibility: move to a multiple processes paradigm where each > buffer has an associated process, and global variable values are > propagated via message passing to a master process. Think Hoare's CSP > or Go or Erlang for precedents, though perhaps with more sugaring to > make it easy for Emacs users to not think much about global state. It would be useful if this kind of model could be utilized over a network connection. For instance to share buffers between emacsen running on different machines. > > This sort of model might be especially important if Emacs starts > being used as a serious web browser by lots of its community, given > how much CPU modern browsers can eat. > > Perry -- Joakim Verona joakim@verona.se