4 ms·
Is the multi threaded implementation, being talked about for some time part of this release? Sometimes the single threaded nature of emacs causes problems while
by billfruit 8y ago
Is the multi threaded implementation, being talked about for some time part of this release? Sometimes the single threaded nature of emacs causes problems while running complex setups like cider, nrepl etc.
- nine_k 8y agoThere are several rewrites. - Guile Emacs does not seem very alive: http://git.hcoop.net/?p=bpt/emacs.git http://git.hcoop.net/?p=bpt/emacs.git - Remacs, a Rust port, seems to be more alive: https://github.com/remacs/remacs https://github.com/remacs/remacs Does not look usable as a daily driver, though. I sometimes wish that Xi editor adopted an elisp port as one of the scripting engines. Not very likely, though; a suitable port does not exist in the first place so far.
- steveklabnik 8y agoRemacs is supposed to be an in-place re-write, so it should be just as usable as upstream.
- nine_k 8y agoWow, I should try it then :) OTOH, being an in-place rewrite, it likely cannot afford to change some of the more important architectural decisions, very likely including the ones that prevent multithreading.
- steveklabnik 8y agoWell, yes and no; the more that gets into Rust, the more that can be refactored. I don’t know much about the details though.
- peterbecich 8y agoNot from this release, but this is the most recent thing I've been able to find about concurrency: > This is also only the first step in bringing threading to Emacs Lisp. Right now there’s effectively a global interpreter lock (GIL), and threads only run one at a time cooperatively. Like with generators, the Python influence is obvious. In theory, sometime in the future this interpreter lock will be removed, making way for actual concurrency. https://nullprogram.com/blog/2018/05/31/ https://nullprogram.com/blog/2018/05/31/
- deleted 8y ago[deleted]
- kazinator 8y agoCooperative threads serialized with a global lock didn't originate with Python. In fact, the traditional Unix kernel was that way and so was Linux initially.
- phillord 8y agoEmacs-26 has threads yes. How many packages use them at the current time I do not know. With nrepl, though, most of the problems are likely to get from the interaction with an external process which has been able to happen asynchronously for a long time. So, threading (or its lack) might not be the problem.