emacs-devel
[Top][All Lists]
Advanced

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

Simulating a multithreaded Emacs with creative lisp..


From: Kevin A. Burton
Subject: Simulating a multithreaded Emacs with creative lisp..
Date: 01 Feb 2002 14:01:08 -0800
User-agent: Gnus/5.0808 (Gnus v5.8.8) Emacs/21.1.50

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1


OK... just some ideas.

One of the major problems with Emacs is that it is not multithreaded.  If you
call a synchronous function your entire Emacs is locked up until it finishes.

For example if I fetch mail with gnus I have to wait as long as 5 minutes until
gnus updated.  I also use the JPDA debugger in the JDE to connect via TCP to a
local port.  Often there are some significant timeouts and this is VERY
frustrating.

Essentially what you want here is the ability to run Emacs in multiple windows
and have them all run with a dedicated process.  This way one Emacs can lock up
and you can still get work done.

I think this might be possible with some creative lisp.

Specifically all you need is:

- - The same buffers open in each emacs process and auto-revert-mode enabled.

- - The ability to use customization and have the variables reflected/updated in
  all running Emacs processes.

- - History variables updated across all processes.

- - Lisp updates.  If any lisp in your load-path is changed you may want this to
  be loaded in your additional processes.

Anything else?

The other problem is Emacs startup time.  My Emacs takes around 60 seconds to
startup.  This is because I have a lot of additional lisp that does ship with
Emacs (tramp, JDE, ECB, semantic, pcl-cvs, eshell, eieio, bbdb, etc).

I think the solution to this could be to re-dump my Emacs binary.  Does anyone
have any comment here?  This should decrease my startup time so that I can run
tons of Emacs processes.

Theoretically this could be called availability.el and would synchronize around
a file ~/.emacs.availability and would save state information similar to
desktop.el.  Every Emacs process could watch this file and update itself when
it changes.

This would provide the feel of a multithreaded Emacs without having to rewrite
everything.  All packages should still be compatible but the user experience
would be *vastly* improved (for me anyway).

Kevin

- -- 
Kevin A. Burton ( address@hidden, address@hidden, address@hidden )
             Location - San Francisco, CA, Cell - 415.595.9965
        Jabber - address@hidden,  Web - http://relativity.yi.org/

Linux is kind of like UNIX but it isn't as expensive, isn't fragmented across
multiple vendor, doesn't restrict your Freedom, and is just infinitely more
pleasant.



-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: Get my public key at: http://relativity.yi.org/pgpkey.txt

iD8DBQE8WxAkAwM6xb2dfE0RAhSMAKCc9uZxrj5TZOezvWAczr7vrnqO6ACgxB04
flEddJFSfx2NPQYyVjRn5Jg=
=RWB2
-----END PGP SIGNATURE-----



reply via email to

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