From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: miha@kamnitnik.top Newsgroups: gmane.emacs.devel Subject: Re: continuation passing in Emacs vs. JUST-THIS-ONE Date: Thu, 16 Mar 2023 22:35:57 +0100 Message-ID: <87ttyknzuq.fsf@miha-pc> References: <627090382.312345.1678539189382@office.mailbox.org> Mime-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="12552"; mail-complaints-to="usenet@ciao.gmane.io" To: Thomas Koch , "emacs-devel@gnu.org" Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Thu Mar 16 22:32:18 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 1pcvCr-00034P-Se for ged-emacs-devel@m.gmane-mx.org; Thu, 16 Mar 2023 22:32:18 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pcvBz-00009i-EA; Thu, 16 Mar 2023 17:31:23 -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 1pcvBt-000091-R1 for emacs-devel@gnu.org; Thu, 16 Mar 2023 17:31:20 -0400 Original-Received: from kamnitnik.top ([2001:19f0:5001:bf2:5400:2ff:fee0:2626] helo=mail.kamnitnik.top) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pcvBq-0000ql-Tw for emacs-devel@gnu.org; Thu, 16 Mar 2023 17:31:17 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kamnitnik.top; s=mail; t=1679002269; bh=YilsMMaYPOwCZpd3Epz0jw269Np8lp65nfZ67464g1g=; h=From:To:Subject:In-Reply-To:References:Date:From; b=iEJ0HyEeXubE3IvTSrTud0dVMwirBhL2Cq94dvScJ4EX78eB9BZxxNOGfmeW5Nan9 LdBX72iaMH/tlw6fA7xQUd+GeV/CLke1Nv6ny0j7NSlXFn62ecVH9YjAg5GcJH/qZA z2vWgpZIGAKovLXGkSV/C/lKuZWqcZNG+OJLAPl5ljdg+ZfQgYi2CHkbfhGi3U9G5T s74/NA3F0S1vGEvXTw1e6+rfgl9kBitviOeCMSA0VwCMJVFltimkTKC5X7luCKPTpJ SqGBeYuvLwjnQE2WAZvjqePyZvn4KkMwZrXgNLTpCuvBVcvCsy5NxfdVt33sxRZ24I vXTzQCierni6A== In-Reply-To: <627090382.312345.1678539189382@office.mailbox.org> Received-SPF: pass client-ip=2001:19f0:5001:bf2:5400:2ff:fee0:2626; envelope-from=miha@kamnitnik.top; helo=mail.kamnitnik.top X-Spam_score_int: -15 X-Spam_score: -1.6 X-Spam_bar: - X-Spam_report: (-1.6 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FROM_SUSPICIOUS_NTLD=0.499, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_PDS_OTHER_BAD_TLD=0.01 autolearn=no 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:304532 Archived-At: --=-=-= Content-Type: text/plain There's also the issue that using continuation passing (async-io) doesn't auto-magically solve the re-entrancy issues. Consider the following hypothetical command, written using JS-style async/await operators: (async-defun insert-some-parent-dirs () (interactive) (insert (await (locate-dominating-file default-directory "go.mod"))) (insert "\n") (insert (await (locate-dominating-file default-directory "go.work")))) If the user executed such a command multiple times in quick succession, the executions could happen in parallel and would trample over each other. For each use of "await", the programmer has to think about the possibility of other code running "in-between". This style of programming may be harder in Elisp which has a lot of global state in form of buffer contents, markers and overlays. --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQJHBAEBCAAxFiEEmxVnesoT5rQXvVXnswkaGpIVmT8FAmQTi70THG1paGFAa2Ft bml0bmlrLnRvcAAKCRCzCRoakhWZPybFD/97HmRRbBNeVMWxmaDWYRQrLEuKbaS1 5Bj8DGDeL4XYIttN/LZ+zkDErH8t4tiGLDh1XJ7qIbLAy2L6LNTN16j40/xrBBQ8 xN6r3c6kS1wJWTXLozkoC4XrZG4JZ5Ki7Hcy6b42rH9yIrmDiSJTxFFFqakQhkH1 WAAPTLF3Xn9fLCW/eJd3E03MsLpQh8FNpPJxY9bm0wzG9htypSQH2g0v+JCk596L 2h610+17pj4rhrlVAIvbpdQ1rz6u0pbm10YAXG8lkGwFcDV8UZ5wNMpvLna2Mi0U tbMZYD33A+0xSItF/QtBZy3GiCIDF/8tr0ZzBLCUN5LrYlnWcOFAyYZo6Pk37JAg RTaS9/WQNYzoeIXxml/Hac5jbryTwDDKzHXIkV9cMTsFhT0bJJHH/8jSVhhLmW3u TT2kqrvBAd5KUJeap4MkRfPxjew5uK6A/8Aj1AMPmIX2oS5cCJTErIc3anWhHBws JqC3Rp4wV+sHM5tqkKlwRoyWxYtMTTuPllmsVoGjXYq3g26WlinfFFn8gouxPDmP jbt4PLprY1DRsW1asDZxwfKT+UtvfBDlbU3nvXZapf77YJavnXQt8A70JIN/vt4F vZDMpwQqLkP9GIOmzwioHzpbdJ2n/h+mtUY+GEanhya+NXE+gSjndbC8BrsZaI89 ysYY81NJ6t/oGg== =MTSH -----END PGP SIGNATURE----- --=-=-=--