From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: sbaugh@catern.com Newsgroups: gmane.emacs.devel Subject: Re: call-process should not block process filters from running Date: Tue, 04 Jul 2023 08:42:31 -0400 Message-ID: <877crfq24o.fsf@catern.com> References: <83cz1fvjef.fsf@gnu.org> <83h6qnpieb.fsf@gnu.org> <837criq321.fsf@gnu.org> <87r0pprhfd.fsf@catern.com> <87o7kts4ba.fsf@yahoo.com> <87lefwrif5.fsf@catern.com> <834jmkn7zt.fsf@gnu.org> <878rbwrb86.fsf@catern.com> <87pm58qpqb.fsf@yahoo.com> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="38345"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) To: emacs-devel@gnu.org Cancel-Lock: sha1:bcrnwUw2bQKOylU6EYsR9nGkAx0= Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue Jul 04 14:57:12 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 1qGfah-0009io-Jn for ged-emacs-devel@m.gmane-mx.org; Tue, 04 Jul 2023 14:57:11 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qGfa6-0006Pq-8H; Tue, 04 Jul 2023 08:56:34 -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 1qGfMh-0000K9-LD for emacs-devel@gnu.org; Tue, 04 Jul 2023 08:42:43 -0400 Original-Received: from ciao.gmane.io ([116.202.254.214]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qGfMe-0004yO-Hx for emacs-devel@gnu.org; Tue, 04 Jul 2023 08:42:43 -0400 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1qGfMc-000AES-Rr for emacs-devel@gnu.org; Tue, 04 Jul 2023 14:42:38 +0200 X-Injected-Via-Gmane: http://gmane.org/ Received-SPF: pass client-ip=116.202.254.214; envelope-from=ged-emacs-devel@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.25, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Tue, 04 Jul 2023 08:56:25 -0400 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:307415 Archived-At: Po Lu writes: > It's not a bug. It doesn't have to be fixed. If your particular use > case is okay with running Lisp while waiting for a process to complete, > then it should use accept-process-output, not call-process. Sure. So I would go through Emacs, changing call-process users case-by-case to instead use accept-process-output in a synchronous way, if they are okay with running Lisp. I'm fine with doing that, but others appear to be concerned that that would hurt performance. Also, it's worth noting that process-file makes doing that a little tricky. process-file already usually runs Lisp while waiting for the process when it's using a remote file name handler, but when it's running locally it just uses call-process. So users of process-file would need to be converted to start-file-process so that they're uniformly asynchronous. But, some TRAMP backends support process-file but not start-file-process. So it's not clear what a programmer should do if they want to synchronously run a process through a file name handler, and they're fine with Lisp running during that. (Making call-process optionally support running Lisp neatly solves this: process-file users can just bind call-process-run-lisp to t around process-file.)