all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: arthur miller <arthur.miller@live.com>
To: HaiJun Zhang <netjune@outlook.com>,
	Michael Albinus <michael.albinus@gmx.de>,
	Eli Zaretskii <eliz@gnu.org>
Cc: "38807@debbugs.gnu.org" <38807@debbugs.gnu.org>
Subject: bug#38807: [Feature request]: Support lisp workers like web workers.
Date: Tue, 31 Dec 2019 01:39:29 +0000	[thread overview]
Message-ID: <VI1P194MB042988D3D831EADE88E6D1FC96260@VI1P194MB0429.EURP194.PROD.OUTLOOK.COM> (raw)
In-Reply-To: <PS1PR03MB36060210788E2BCB16A235D4B7260@PS1PR03MB3606.apcprd03.prod.outlook.com>

[-- Attachment #1: Type: text/plain, Size: 2459 bytes --]

Cool idea.

I have a question.  Is it even necessary for lisp machine to control UI?

Couldn't lisp machine post its "ui events" to a some kind of render queue and maybe input queue, instead of drawing and handling stuff immediately in an OS window? That could decouple drawing from the rest and could open for some other interesting stuff when it comes for rendering.

I don't know maybe another thread for input queue. Probably too much work and I really don't know if that would be possible with Emacs architecture, at least as of current.

I mean does lisp machine really need to know where it draws? It could as well just "draw" some events to a queue which could be rendered away in different passes, by different threads and so on.

Skickat från min Samsung Galaxy-smartphone.



-------- Originalmeddelande --------
Från: HaiJun Zhang <netjune@outlook.com>
Datum: 2019-12-31 01:42 (GMT+01:00)
Till: Michael Albinus <michael.albinus@gmx.de>, Eli Zaretskii <eliz@gnu.org>
Kopia: 38807@debbugs.gnu.org
Ämne: bug#38807: [Feature request]: Support lisp workers like web workers.

在 2019年12月31日 +0800 AM3:19,Eli Zaretskii <eliz@gnu.org>,写道:
From: Michael Albinus <michael.albinus@gmx.de>
Cc: HaiJun Zhang <netjune@outlook.com>, 38807@debbugs.gnu.org
Date: Mon, 30 Dec 2019 19:31:26 +0100

The point seems to be that there is a dedicated UI thread. That we don't
have (yet) in Emacs, and I like this idea.

We do have that on MS-Windows. Except that you'll be surprised how
much of "UI" in Emacs cannot be done in a separate thread, mainly
because the Lisp machine is under such complete control of what the UI
does, and you cannot run several instances of the Lisp machine
simultaneously and asynchronously.

What about the following idea:
1. Make the current lisp machine be customized which has two profiles:
    + full featured: as the current running lisp machine in emacs
    + subset one: without all UI functions
2. Run the full featured one as emacs does now. It acts as the master lisp machine(for UI only), which behave like the UI thread(process) in the web browser.
3. Run some subset ones for workers. Workers are started by the master lisp machine. Workers can send messages to the master machine by calling some APIs. The messages are copied to the master lisp machine, so GCs don’t need to work across machines.
4. Provide some APIs for them to communicate with each other.


[-- Attachment #2: Type: text/html, Size: 3738 bytes --]

  reply	other threads:[~2019-12-31  1:39 UTC|newest]

Thread overview: 70+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <aade4dc9-4992-4751-9706-9802389ff732@Spark>
2019-12-30  5:27 ` bug#38807: [Feature request]: Support lisp workers like web workers HaiJun Zhang
2019-12-30 15:23   ` Eli Zaretskii
2019-12-30 15:40     ` Dmitry Gutov
2019-12-30 16:26       ` Eli Zaretskii
2020-01-01  3:20         ` HaiJun Zhang
2020-01-01  3:37           ` Eli Zaretskii
2020-01-01  3:57             ` HaiJun Zhang
     [not found]             ` <39f1e59e-08db-4862-98db-c31c3bcbab06@Spark>
2020-01-01  4:02               ` HaiJun Zhang
2020-01-01 15:32                 ` Eli Zaretskii
2020-01-03  2:05                   ` HaiJun Zhang
2020-01-03 13:38                     ` arthur miller
2020-01-04  5:59                       ` HaiJun Zhang
2020-01-04  8:11                   ` HaiJun Zhang
2020-01-04  9:07                     ` Eli Zaretskii
2020-01-04  9:10                   ` HaiJun Zhang
2020-01-01  3:06       ` HaiJun Zhang
2019-12-30 18:31     ` Michael Albinus
2019-12-30 19:19       ` Eli Zaretskii
2019-12-30 19:22         ` Eli Zaretskii
2019-12-31  0:40         ` HaiJun Zhang
2019-12-31  1:39           ` arthur miller [this message]
2020-01-01  3:47             ` HaiJun Zhang
2020-01-01 16:23               ` Eli Zaretskii
2020-01-03  3:45                 ` HaiJun Zhang
2020-01-03  6:06                   ` Eli Zaretskii
2020-01-04  5:47                     ` HaiJun Zhang
2019-12-31 16:35           ` Eli Zaretskii
2020-01-01  2:59             ` HaiJun Zhang
2020-01-01 16:21               ` Eli Zaretskii
2020-01-03  3:18                 ` HaiJun Zhang
2020-01-03  6:02                   ` Eli Zaretskii
2020-01-04  5:26                     ` HaiJun Zhang
2020-01-04  9:00                       ` Eli Zaretskii
2020-03-21  2:24                         ` HaiJun Zhang
2020-03-21  8:16                           ` Eli Zaretskii
2020-03-22  1:12                             ` HaiJun Zhang
2020-03-22 14:32                               ` Eli Zaretskii
2020-03-24  4:22                                 ` HaiJun Zhang
2020-03-24 14:40                                   ` Eli Zaretskii
2020-03-26 13:37                                     ` HaiJun Zhang
2020-03-26 14:44                                       ` Eli Zaretskii
2020-03-26 18:14                                         ` Ivan Yonchovski
2020-03-29  2:41                                           ` HaiJun Zhang
2020-03-29  2:12                                         ` HaiJun Zhang
2020-03-25 16:44                                   ` Ivan Yonchovski
2020-03-25 17:05                                     ` Eli Zaretskii
2020-03-25 17:21                                       ` Ivan Yonchovski
2020-03-26 13:49                                     ` HaiJun Zhang
2020-01-04  5:55                     ` HaiJun Zhang
2020-01-03  3:34                 ` HaiJun Zhang
2020-01-03 14:10                   ` arthur miller
2020-01-04  6:41                     ` HaiJun Zhang
2020-01-01  3:16       ` HaiJun Zhang
2020-01-01  9:14         ` Michael Albinus
2020-01-03  2:52           ` HaiJun Zhang
2020-01-03  5:59             ` Eli Zaretskii
2020-01-04  5:19               ` HaiJun Zhang
2020-01-04  8:59                 ` Eli Zaretskii
2020-01-04  9:33                   ` HaiJun Zhang
2020-01-04  9:51                     ` Eli Zaretskii
2020-01-06  5:08                       ` HaiJun Zhang
2020-01-06 16:07                         ` Eli Zaretskii
2020-01-01 14:52   ` arthur miller
2020-01-03  1:49     ` HaiJun Zhang
2020-01-03 13:35       ` arthur miller
2020-01-03 14:26         ` Eli Zaretskii
2020-01-03 15:14           ` arthur miller
2020-01-03 14:19   ` arthur miller
2020-01-03 14:39     ` Eli Zaretskii
2022-04-30 12:32   ` Lars Ingebrigtsen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=VI1P194MB042988D3D831EADE88E6D1FC96260@VI1P194MB0429.EURP194.PROD.OUTLOOK.COM \
    --to=arthur.miller@live.com \
    --cc=38807@debbugs.gnu.org \
    --cc=eliz@gnu.org \
    --cc=michael.albinus@gmx.de \
    --cc=netjune@outlook.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.