From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Tomas Hlavaty Newsgroups: gmane.emacs.devel Subject: Re: continuation passing in Emacs vs. JUST-THIS-ONE Date: Mon, 17 Apr 2023 22:51:22 +0200 Message-ID: <87v8hup705.fsf@logand.com> References: <87leizif4r.fsf@logand.com> <874jpmfaw9.fsf@logand.com> <87v8i2dnm3.fsf@logand.com> <83jzyh8w7l.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="16759"; mail-complaints-to="usenet@ciao.gmane.io" Cc: monnier@iro.umontreal.ca, jporterbugs@gmail.com, karthikchikmagalur@gmail.com, emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon Apr 17 22:52:42 2023 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1poVq5-0004AI-PH for ged-emacs-devel@m.gmane-mx.org; Mon, 17 Apr 2023 22:52:41 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1poVp4-0000Je-OT; Mon, 17 Apr 2023 16:51:38 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1poVp3-0000JP-Ie for emacs-devel@gnu.org; Mon, 17 Apr 2023 16:51:37 -0400 Original-Received: from logand.com ([37.48.87.44]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1poVp2-0006OD-1t; Mon, 17 Apr 2023 16:51:37 -0400 Original-Received: by logand.com (Postfix, from userid 1001) id D731819E6A5; Mon, 17 Apr 2023 22:51:24 +0200 (CEST) X-Mailer: emacs 28.2 (via feedmail 11-beta-1 I) In-Reply-To: <83jzyh8w7l.fsf@gnu.org> Received-SPF: pass client-ip=37.48.87.44; envelope-from=tom@logand.com; helo=logand.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:305389 Archived-At: On Wed 12 Apr 2023 at 09:13, Eli Zaretskii wrote: > Async subprocesses are currently the only feature in Emacs that > provides an opportunity for writing asynchronous code. Do you not consider, for example, using implementations of async/await using promisses and CPS rewriting "writing asynchronous code"? Do you not consider, for example, doing the same using callbacks as "writing asynchronous code"? >> I do not know how useable threads in Emacs are at the moment, >> but they are already there and the examples I tried worked well. > > If you think Lisp threads in Emacs allow asynchronous processing, you > are mistaken: they don't. Only one such thread can be running at any > given time. The examples I wrote worked fine with threads. The examples did not require parallelism. I do not think that what you suggest disqualifies threads for "writing asynchronous code". It would be great to have better thread implementation, but that does not seem to have anything to do with "writing asynchronous code". Here is what I understand under synchronous code: (plus 1 2) returns 3 immediatelly Here is what I understand under asynchronous code: (plus 1 2) returns something immediately and then some time later 3 appers in the *Message* buffer, for example How that is achieved is an implementation (possibly leaky) detail. It does not require anything running in parallel.