unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* How about running some slave lisp virtual machines in emacs to do background work?
@ 2018-06-28 16:39 Zhang Haijun
  0 siblings, 0 replies; 2+ messages in thread
From: Zhang Haijun @ 2018-06-28 16:39 UTC (permalink / raw)
  To: emacs-devel@gnu.org

The slave lisp machine knows nothing in the master lisp machine 
(buffers, windows, frames ...), and it can't interact with the user. 
They are just background workers, and can only run lisp code in it's own 
environment.

Every slave machine is standalone, and doesn't share data with other 
machines(maybe can share copy-on-write data). So it can be fully 
multi-threading and can do heavy computing work.

Lisp programs in the main machine can send tasks(or lisp codes) to slave 
machines, and wait for results. And programs in the slave machine can 
send notifications to the master machine. Here they need a IPC framework 
to work better with each other.

The slave lisp machines may be limited to be a sandbox to run only safe 
codes.

Lisp programs in the master machine can create slave machines to use.

Something like async.el, but can share data more efficiently.

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: How about running some slave lisp virtual machines in emacs to do background work?
       [not found] <8c76d527-b2c7-8a53-d92c-40dcdb263fc7@outlook.com>
@ 2018-07-14 11:50 ` Zhang Haijun
  0 siblings, 0 replies; 2+ messages in thread
From: Zhang Haijun @ 2018-07-14 11:50 UTC (permalink / raw)
  To: emacs-devel@gnu.org

Find something similar (web worker):

https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Using_web_workers


On 06/29/2018 12:39 AM, jun wrote:
> The slave lisp machine knows nothing in the master lisp machine 
> (buffers, windows, frames ...), and it can't interact with the user. 
> They are just background workers, and can only run lisp code in it's own 
> environment.
> 
> Every slave machine is standalone, and doesn't share data with other 
> machines(maybe can share copy-on-write data). So it can be fully 
> multi-threading and can do heavy computing work.
> 
> Lisp programs in the main machine can send tasks(or lisp codes) to slave 
> machines, and wait for results. And programs in the slave machine can 
> send notifications to the master machine. Here they need a IPC framework 
> to work better with each other.
> 
> The slave lisp machines may be limited to be a sandbox to run only safe 
> codes.
> 
> Lisp programs in the master machine can create slave machines to use.
> 
> Something like async.el, but can share data more efficiently.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2018-07-14 11:50 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-06-28 16:39 How about running some slave lisp virtual machines in emacs to do background work? Zhang Haijun
     [not found] <8c76d527-b2c7-8a53-d92c-40dcdb263fc7@outlook.com>
2018-07-14 11:50 ` Zhang Haijun

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).