From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Ted Zlatanov Newsgroups: gmane.emacs.devel Subject: Re: Are there plans for a multi-threaded Emacs? Date: Mon, 08 Dec 2003 11:54:25 -0500 Organization: =?koi8-r?q?=F4=C5=CF=C4=CF=D2=20=FA=CC=C1=D4=C1=CE=CF=D7?= @ Cienfuegos Sender: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Message-ID: <4nsmjv8d32.fsf@collins.bwh.harvard.edu> References: <87oevbes4h.fsf@emacswiki.org> <20031117040607.C6C5D79B72@server2.messagingengine.com> <87ekvpx18d.fsf@emptyhost.emptydomain.de> <4nad6cikxy.fsf@holmes.bwh.harvard.edu> <4nllpt3hr3.fsf@lockgroove.bwh.harvard.edu> <5bad69zd43.fsf@lister.roxen.com> <4noeuon378.fsf@lockgroove.bwh.harvard.edu> <4ny8tsgxy6.fsf@lockgroove.bwh.harvard.edu> <4nhe0ggv0u.fsf@lockgroove.bwh.harvard.edu> <4nk75bwjaf.fsf@lockgroove.bwh.harvard.edu> NNTP-Posting-Host: deer.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: sea.gmane.org 1070902619 29815 80.91.224.253 (8 Dec 2003 16:56:59 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Mon, 8 Dec 2003 16:56:59 +0000 (UTC) Original-X-From: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Mon Dec 08 17:56:54 2003 Return-path: Original-Received: from quimby.gnus.org ([80.91.224.244]) by deer.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 1ATOgo-0007SX-00 for ; Mon, 08 Dec 2003 17:56:54 +0100 Original-Received: from monty-python.gnu.org ([199.232.76.173]) by quimby.gnus.org with esmtp (Exim 3.35 #1 (Debian)) id 1ATOgo-0004tj-00 for ; Mon, 08 Dec 2003 17:56:54 +0100 Original-Received: from localhost ([127.0.0.1] helo=monty-python.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.24) id 1ATPe1-00005Y-Dd for emacs-devel@quimby.gnus.org; Mon, 08 Dec 2003 12:58:05 -0500 Original-Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.24) id 1ATPdU-0008Aw-44 for emacs-devel@gnu.org; Mon, 08 Dec 2003 12:57:32 -0500 Original-Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.24) id 1ATPcw-0007nM-8W for emacs-devel@gnu.org; Mon, 08 Dec 2003 12:57:29 -0500 Original-Received: from [80.91.224.249] (helo=main.gmane.org) by monty-python.gnu.org with esmtp (Exim 4.24) id 1ATPcv-0007kl-G3 for emacs-devel@gnu.org; Mon, 08 Dec 2003 12:56:57 -0500 Original-Received: from list by main.gmane.org with local (Exim 3.35 #1 (Debian)) id 1ATOfS-0004UW-00 for ; Mon, 08 Dec 2003 17:55:30 +0100 X-Injected-Via-Gmane: http://gmane.org/ Original-To: emacs-devel@gnu.org Original-Received: from sea.gmane.org ([80.91.224.252]) by main.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 1ATOfR-0004UO-00 for ; Mon, 08 Dec 2003 17:55:29 +0100 Original-Received: from news by sea.gmane.org with local (Exim 3.35 #1 (Debian)) id 1ATOfQ-0007hY-00 for ; Mon, 08 Dec 2003 17:55:28 +0100 Original-Lines: 52 Original-X-Complaints-To: usenet@sea.gmane.org X-Face: bd.DQ~'29fIs`T_%O%C\g%6jW)yi[zuz6; d4V0`@y-~$#3P_Ng{@m+e4o<4P'#(_GJQ%TT= D}[Ep*b!\e,fBZ'j_+#"Ps?s2!4H2-Y"sx" User-Agent: Gnus/5.1003 (Gnus v5.10.3) Emacs/21.3.50 (usg-unix-v) Cancel-Lock: sha1:e9VPhaSsBEQGdpPXAJdMAH7nmpw= X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.2 Precedence: list List-Id: Emacs development discussions. List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Xref: main.gmane.org gmane.emacs.devel:18555 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:18555 On 07 Dec 2003, monnier@iro.umontreal.ca wrote: > Making Emacs scalable is probably best done by starting all over > from scratch. The current structure of the C code together with the > semantics of elisp means that it's about as far from scalable as > you'll ever get. > > Now, that doesn't mean you can't do it, but just that it's going to > be a lot of work and it might introduce subtle incompatibilities, so > you need a lot of motivation to start the effort and you'll need > really good arguments to convince RMS that breaking compatibility is > worth the pay off. Now what is the payoff ? Speed. Given the fact > that elisp is known to be slow, and that pretty much no work has > been done to speed up Emacs in the last N years, I get the > impression that nobody really cares about speed here. I have faith that the applications will come, once the core supports them. Just think, for instance, of a mapcar that spreads out onto as many processors as possible - doesn't that sound exciting? In addition, I should point out that speed in itself is not my stated goal. Yes, maybe there will be some speed improvements, but that's not what I've been asking for. Multithreading makes software more responsive to the user, especially if the UI thread can be separated from the other threads. Even if the software is actually slower, it will serve the user better when it's more responsive, and it will seem faster. I'm generalizing quite a bit, but have you ever waited for a web browser to load all the images before proceeding to use the web page? That's what using Emacs feels like sometimes, as wonderful as it is. That being said, I realize that asking the Emacs developers to drop other work to write multi-threading support is a tough call, and I'm not the one to make it. I just hope the core developers get excited enough about the possibilities that they will plan for some sort of multithreading. > What people do care about a little is the "non-blocking thingy" > which might require some form of multithreading but does not require > any kind of scalability and does not require nearly as much work > (and as much breakage of backward compatibility). So I'd recommend > people start with this if they want to work on something like that. > Once this is done, we might be able to start thinking about > scalability. I'm convinced, based on the many posts made, that the best way to approach multithreading is slowly and incrementally. I would not dream of imposing any particular implementation, but it does seem that most people prefer a single "main" thread and no preemption, since those would preserve backwards compatibility best. Ted