[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Are there plans for a multi-threaded Emacs?

From: Kim F. Storm
Subject: Re: Are there plans for a multi-threaded Emacs?
Date: 04 Dec 2003 17:17:43 +0100
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3.50

David Kastrup <address@hidden> writes:

> Ted Zlatanov <address@hidden> writes:
> > I agree with all those.  Converting a single-threaded application to
> > multithreaded, especially one as complex as Emacs, is a daunting
> > task.  I think it's worthwhile.
> Not everything that is worthwhile gets done.  

I don't really agree that this is worthwhile.

IMO, there are many other improvements that are more important than
multi-threading.  Of course, if we had unlimited development _and_
_testing_ resources, it would be a nice thing to add, but I don't like
the idea of adding something _really complex_ like that which may
potentially de-stabilize emacs for a long time.

Even if you add multi-threading to Elisp, the applications need to be
made aware of that.  How much -additional- work would be it be to
rework, say, GNUS to be multi-threaded?

Actually, a lot of code could already be improved today with better
use of process filters and sentinels, but that hasn't been done.
So even if we had multi-threading, I doubt that it would be widely

> So changing Emacs' scopes to lexical is a prerequisite for any
> meaningful attempt at multithreading, anyway.

The lexical binding could be on a per-project or per-file basis,
rather than an over-all change to Elisp.  That would allow projects
which requires multi-threading to use lexical scoping.  _IF_ they
use dynamic scoping, it will result in unexplicable errors, but
the byte-compiler might warn against such uses, so we don't need
run-time checking.

IIRC the plans to add lexical scoping to Elisp is per-file, and
rumours is that there already exist patches to achieve this.

> Apart from giving people perhaps more enthusiasm for working on the
> lexical binding problem, I don't see what actually workable
> perspectives the multithreading buys us.  Even then, it would be
> unfair to suggest people that if their desire is to get
> multithreading, that finishing some lexical binding project will make
> their goal come into easy reach.  It is a prerequisite in my opinion,
> but quite far from making the ultimate goal easy to achieve.

I still wonder why people want multi-threading in Elisp -- IMHO, emacs
works just fine without it!

I admit (synchronous) GNUS is a problem, but except for that, I don't
really see that much code which will benefit vastly from being executed
by a multi-threaded emacs.

And for GNUS, you can just run two instances of emacs on your
multi-tasking OS.

Likewise, if you have some vast app writting in Elisp, just start
a second emacs to run it.

Problem solved!

Kim F. Storm <address@hidden> http://www.cua.dk

reply via email to

[Prev in Thread] Current Thread [Next in Thread]