From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: John Wiegley Newsgroups: gmane.emacs.devel Subject: Re: Concurrency, again Date: Thu, 13 Oct 2016 10:25:26 -0700 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> <20161012173314.799d1dc5@jabberwock.cb.piermont.com> <8360owaj2s.fsf@gnu.org> <20161013092701.77461800@jabberwock.cb.piermont.com> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" X-Trace: blaine.gmane.org 1476380035 3653 195.159.176.226 (13 Oct 2016 17:33:55 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Thu, 13 Oct 2016 17:33:55 +0000 (UTC) User-Agent: Gnus/5.130014 (Ma Gnus v0.14) Emacs/25.1.50 (darwin) Cc: emacs-devel@gnu.org To: Stefan Monnier Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Oct 13 19:33:50 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 1bujt0-0007pu-Ep for ged-emacs-devel@m.gmane.org; Thu, 13 Oct 2016 19:33:42 +0200 Original-Received: from localhost ([::1]:42097 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bujsz-0003xX-4Q for ged-emacs-devel@m.gmane.org; Thu, 13 Oct 2016 13:33:41 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:58020) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bujsg-0003qi-JK for emacs-devel@gnu.org; Thu, 13 Oct 2016 13:33:23 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bujse-0003QW-Sk for emacs-devel@gnu.org; Thu, 13 Oct 2016 13:33:22 -0400 Original-Received: from mail-pf0-x234.google.com ([2607:f8b0:400e:c00::234]:36630) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bujse-0003QL-F2 for emacs-devel@gnu.org; Thu, 13 Oct 2016 13:33:20 -0400 Original-Received: by mail-pf0-x234.google.com with SMTP id e6so37589784pfk.3 for ; Thu, 13 Oct 2016 10:33:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:in-reply-to:date:message-id:references :user-agent:mail-followup-to:mime-version; bh=+shRxR42S3f1KjkrwCn1PY7wfD0U1PFP8o3jkTOI3c4=; b=lPtFpx11ynEgwdY6vVDOuZTTHVR7IL0AUhoHpscaFW96TmHm2nt8XtFa08PF5hfTO0 xaBEm0Kdpx0zB/tt5dKXdVfISRdtXyHbJEYt+iEr8JnVhmymtUCjdZK6v5qsuQI7SaM6 Iy/Vv/mrrzNX201UMnRFhy4Zr9xnKrk6i3+2tDqMLZ2Qa3gPANCUAel+jfnFXYlGvCen 8F/NON6RlBj7z7KuopO/7tL9TpKpY/duOscRWs22fFxjJOXeNpaUwdnZ5Virlf32j4MG S/BlQS902Ij5ZUUyqK3feSoNm95LTNTbubR1ebMgGj0s1eDvNDB1d9Vhhx8UM+lCshm2 WnpA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:in-reply-to:date:message-id :references:user-agent:mail-followup-to:mime-version; bh=+shRxR42S3f1KjkrwCn1PY7wfD0U1PFP8o3jkTOI3c4=; b=leViEUDhUj+pGekp6UukvHcvbl8nV3rzIxgzQ/JC/r2HAtCSLkHPeRpmiIsGKzy/6h ZMKHi90PgAY9Qoh5Od9MJA81TQAznPX/XTs0iOSwOueAVNMmEm/AKuzg57DCKe7Hh8x+ dYGS2PSw4uPv0Ufgy8zYgTx7xPkqMO55t5fhMRRD0bKeBNy3+Xy9UvjSm8LaQty5NxdK YkyNhP1sm/wTSQa/4WFiIRJw5/k46f+kn3GD8kiuq9cwnmCpCleAuIbYLGckTZsNMV3X OlPJO9U1ELctl3rdMfUwK3Wvzjc2IEzgXjoD0Gsxl9BGFG9R+VPeaiwZ4MANIiuAdhIu BsYQ== X-Gm-Message-State: AA6/9RkeYGbu3xi+EdETRqh3aXqN+dWvRyfhg/71hUv6mkYKhWClITb6X8E4SqwcjZp+gg== X-Received: by 10.98.73.218 with SMTP id r87mr11673983pfi.91.1476379999593; Thu, 13 Oct 2016 10:33:19 -0700 (PDT) Original-Received: from Vulcan.local (76-234-69-149.lightspeed.frokca.sbcglobal.net. [76.234.69.149]) by smtp.gmail.com with ESMTPSA id xs10sm21186154pac.24.2016.10.13.10.33.13 (version=TLS1 cipher=AES128-SHA bits=128/128); Thu, 13 Oct 2016 10:33:13 -0700 (PDT) X-Google-Original-From: "John Wiegley" Original-Received: by Vulcan.local (Postfix, from userid 501) id 2D22B2F72664; Thu, 13 Oct 2016 10:33:13 -0700 (PDT) In-Reply-To: (Stefan Monnier's message of "Thu, 13 Oct 2016 11:05:38 -0400") Mail-Followup-To: Stefan Monnier , emacs-devel@gnu.org X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2607:f8b0:400e:c00::234 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:208209 Archived-At: --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable >>>>> "SM" =3D=3D Stefan Monnier writes: SM> IOW if we want to take advantage of tens of cores in Emacs, we have to SM> think very differently. A language with STM or with "communicating agen= ts" SM> won't cut it, I think. I can't think of too many cases where existing Emacs Lisp would immediately benefit from being massively parallel, either. Too much code is written in = an imperative manner (manipulating variables) than a functional one (generating new values from inputs). If Lars had written much of Gnus using a map/reduce pattern, I could see it suddenly speeding up if we parallelized those primitives. But I'm guessing a fair bit of rewrite would be needed to take advantage of extra cores. Note too that all of this perceived benefit is still theoretical. We've yet= to answer the main question -- in my mind, the only question when it comes to whether we should consider including this type of support: Will it solve the annoyance people have of Emacs blocking when they ask it to do certain thin= gs? Examples of my own, coffee-break inducing moments: - Asking for 10,000 back articles in Gnus, with sorting and threading on - Applying a keyboard macro to manipulate 1000 file contents in dired - Hitting 'g' in Magit in a repository with tons of stashes, pull requests, pending changes, etc. - Waiting for ERC to replay message logs from ZNC in 20 channels - Asking Proof General to check a file that depends on 30 other files And yet, this list is *about it* for me, and I practically live in Emacs. I= 'm not even completely sure yet that solving these would appreciably benefit my workflow. I don't mind the occasional coffee break. I just want to make sure we're not try to solve the technical problem just because it's solvable; we should only solve it if it's a real problem that = is getting in people's way, or is stopping us from doing the Next Cool Thing. So, thanks to Eli I'm open to considering the concurrency branch for mergin= g. But I'm also in no hurry whatsoever, and I'd prefer to avoid the extra complexity if it doesn't actually represent a significant improvement. =2D-=20 John Wiegley GPG fingerprint =3D 4710 CF98 AF9B 327B B80F http://newartisans.com 60E1 46C4 BD1A 7AC1 4BA2 --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQGcBAEBCgAGBQJX/8OGAAoJEMFE2PTxn+YwBLQMAICtmYvdR8XZiJbKgQErcjJE Ly2T4zerd95bU4s/ftN2lKZmge2mtP54z/2LSG80ojV/lMs8w6iYF4bVqnj262EN SXDAXTZ6dqu5FzieCg5ZFmDzecWnXn0yJg6V1+jvF/W/Olyc8GOI2NTIdgj6lf7F fQ/pmmwr+KAhrjJB3apvbxdPzsudwqa0cdpyhzoQfg2Mcz+xFeXQjwD7QCSeb036 njOwnCDbVOhI5VtfYD1J9QNOMXvPUlyXKM2bS+Y2R6Rm5gLnwAvYUPBPHuXvPfnM I9Pb4i91UMAdDxSomEVqVOlTG0jE4Uw4lL7dFEP+bPxfn+SCZ6IWDzveAWcqsHrT m9xmxb2gZfljVz1uQdZQLJlAWp4mSjPlKt8V3Ung5vOThOVYoQxx+Zo4oVxTfN1o hP6L1/Hz9UBxOKF+echY6VRwmLONbxkRT+6yFZzC+ec1qgvcV7n3V0ivwH476vA+ FtckA/Bx1sCvfFsoUoQ2MHrOmWzWztk06a4sOCI6rA== =MAQK -----END PGP SIGNATURE----- --=-=-=--