From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: "Perry E. Metzger" Newsgroups: gmane.emacs.devel Subject: Re: Concurrency, again Date: Wed, 12 Oct 2016 16:59:11 -0400 Message-ID: <20161012165911.58437154@jabberwock.cb.piermont.com> 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> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Trace: blaine.gmane.org 1476306019 28764 195.159.176.226 (12 Oct 2016 21:00:19 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Wed, 12 Oct 2016 21:00:19 +0000 (UTC) Cc: Eli Zaretskii , emacs-devel@gnu.org To: Stefan Monnier Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Oct 12 23:00:14 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 1buQcx-0004UY-4u for ged-emacs-devel@m.gmane.org; Wed, 12 Oct 2016 22:59:51 +0200 Original-Received: from localhost ([::1]:35906 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1buQcv-0003NQ-TW for ged-emacs-devel@m.gmane.org; Wed, 12 Oct 2016 16:59:49 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:60945) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1buQcQ-0003NG-Vh for emacs-devel@gnu.org; Wed, 12 Oct 2016 16:59:19 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1buQcP-0004Mt-4A for emacs-devel@gnu.org; Wed, 12 Oct 2016 16:59:17 -0400 Original-Received: from hacklheber.piermont.com ([166.84.7.14]:38757) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1buQcK-0004L3-28; Wed, 12 Oct 2016 16:59:12 -0400 Original-Received: from snark.cb.piermont.com (localhost [127.0.0.1]) by hacklheber.piermont.com (Postfix) with ESMTP id BE2D9270; Wed, 12 Oct 2016 16:59:11 -0400 (EDT) Original-Received: from jabberwock.cb.piermont.com (jabberwock.cb.piermont.com [10.160.2.107]) by snark.cb.piermont.com (Postfix) with ESMTP id A3E322DE01E; Wed, 12 Oct 2016 16:59:11 -0400 (EDT) In-Reply-To: X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 166.84.7.14 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:208187 Archived-At: 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. 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 -- Perry E. Metzger perry@piermont.com