From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Tom Tromey Newsgroups: gmane.emacs.devel Subject: Re: "concurrency" branch updated Date: Thu, 05 Nov 2015 14:49:23 -0700 Message-ID: <87egg415i4.fsf@tromey.com> References: <1B30AC54-4A83-4437-8BA8-B80F4ED6AF1A@raeburn.org> <831tc7vyex.fsf@gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1446760215 3437 80.91.229.3 (5 Nov 2015 21:50:15 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 5 Nov 2015 21:50:15 +0000 (UTC) Cc: johnw@newartisans.com, eliz@gnu.org, Ken Raeburn , emacs-devel@gnu.org To: Richard Stallman Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Nov 05 22:50:02 2015 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1ZuSPx-0004HN-OF for ged-emacs-devel@m.gmane.org; Thu, 05 Nov 2015 22:50:01 +0100 Original-Received: from localhost ([::1]:35504 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZuSPx-0008Co-BK for ged-emacs-devel@m.gmane.org; Thu, 05 Nov 2015 16:50:01 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:52768) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZuSPb-0008Ax-Vn for emacs-devel@gnu.org; Thu, 05 Nov 2015 16:49:40 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZuSPY-0004Kd-OL for emacs-devel@gnu.org; Thu, 05 Nov 2015 16:49:39 -0500 Original-Received: from gproxy6-pub.mail.unifiedlayer.com ([67.222.39.168]:42073) by eggs.gnu.org with smtp (Exim 4.71) (envelope-from ) id 1ZuSPY-0004KO-Hf for emacs-devel@gnu.org; Thu, 05 Nov 2015 16:49:36 -0500 Original-Received: (qmail 11261 invoked by uid 0); 5 Nov 2015 21:49:34 -0000 Original-Received: from unknown (HELO CMOut01) (10.0.90.82) by gproxy6.mail.unifiedlayer.com with SMTP; 5 Nov 2015 21:49:34 -0000 Original-Received: from box522.bluehost.com ([74.220.219.122]) by CMOut01 with id dxpS1r0092f2jeq01xpVHC; Thu, 05 Nov 2015 14:49:33 -0700 X-Authority-Analysis: v=2.1 cv=VOBOwb/X c=1 sm=1 tr=0 a=GsOEXm/OWkKvwdLVJsfwcA==:117 a=GsOEXm/OWkKvwdLVJsfwcA==:17 a=cNaOj0WVAAAA:8 a=f5113yIGAAAA:8 a=zstS-IiYAAAA:8 a=PnD2wP_eR3oA:10 a=q5Y1GWT81MIA:10 a=qtqOOiqGOCEA:10 a=KE9HWB5wImC5WxKgg24A:9 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date:References:Subject:Cc:To:From; bh=e64Am93TLXQe3cmMwLdTHKTko47SVrccDpjuul/jRUw=; b=F6Yz6xLGDc0RgiqfcNEWF0isv6gKDkMZ4kHKrnAQgHn6kPg3OYdT010vhz27lTx756v4uHbWoaXkXn/ZRFCLtVdLMgSI9tSXS7QTpw9ta4IqrMOXp/QDJZnEh5bnrJX1; Original-Received: from [174.16.156.173] (port=35400 helo=pokyo) by box522.bluehost.com with esmtpsa (TLSv1.2:AES128-GCM-SHA256:128) (Exim 4.84) (envelope-from ) id 1ZuSPP-0005KN-0J; Thu, 05 Nov 2015 14:49:27 -0700 X-Attribution: Tom In-Reply-To: (Richard Stallman's message of "Wed, 04 Nov 2015 18:09:32 -0500") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) X-Identified-User: {36111:box522.bluehost.com:elynrobi:tromey.com} {sentby:smtp auth 174.16.156.173 authed with tom+tromey.com} X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 67.222.39.168 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 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-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:193340 Archived-At: RMS> We don't need radical changes such as CPS to implement concurrent Lisp. RMS> All we need is multiple stacks. This is what is done on the branch. RMS> It seems to me that in Emacs there is no need to be able to switch threads RMS> except when a thread is waiting. That should make things much simpler. This is also what is implemented. However, it's better to eventually yield the global lock periodically in somewhere (maybe QUIT, but that might be trouble), so that threads don't have to explicitly yield. FWIW this is what Python does. Tom