From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: Modules: should_quit vs. process_input in Emacs 27 Date: Tue, 23 Jul 2019 17:52:10 +0300 Message-ID: <83lfwopzvp.fsf@gnu.org> References: <87tvbdn4mq.fsf@hpdeifel.de> Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="156066"; mail-complaints-to="usenet@blaine.gmane.org" Cc: emacs-devel@gnu.org To: Hans-Peter Deifel Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Jul 23 16:52:33 2019 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1hpw9T-000eMb-ES for ged-emacs-devel@m.gmane.org; Tue, 23 Jul 2019 16:52:27 +0200 Original-Received: from localhost ([::1]:44496 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hpw9R-0004mZ-Lw for ged-emacs-devel@m.gmane.org; Tue, 23 Jul 2019 10:52:25 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:35686) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hpw9O-0004mF-IF for emacs-devel@gnu.org; Tue, 23 Jul 2019 10:52:23 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:55832) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hpw9N-00067d-TJ; Tue, 23 Jul 2019 10:52:21 -0400 Original-Received: from [176.228.60.248] (port=3207 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1hpw9N-0002qq-97; Tue, 23 Jul 2019 10:52:21 -0400 In-reply-to: <87tvbdn4mq.fsf@hpdeifel.de> (message from Hans-Peter Deifel on Mon, 22 Jul 2019 23:25:33 +0200) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 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.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:238842 Archived-At: > From: Hans-Peter Deifel > Date: Mon, 22 Jul 2019 23:25:33 +0200 > > I'm writing a dynamic module in C that includes a long-running > computation. It uses `should_quit' as per the documentation to check > from time to time if the user wants to quit, in which case the > computation is immediately aborted. This works great on Emacs 26.2, but > doesn't on master: The computation just keeps on computing, no matter > how often the user presses C-g. > > The git log and the info manual in master mention the new environment > function `process_inputs' that should be used instead of `should_quit'. > This does indeed work, but now the module is no longer compatible with > Emacs 26. > > What should module authors in this case do to keep their modules > compatible with older Emacs versions? Conditional compilation? Not conditional compilation; dynamic discovery of the Emacs version in which the module is running. How to do that is described in the "Module Initialization" node of the ELisp manual. > Also, what's the purpose of the current `should_quit' in master, if it > doesn't work for the above use-case any more. Why doesn't it simply > behave like the following? > > process_input (env) == emacs_process_input_quit AFAIR, because process_input processes pending input events. Sometimes you may wish not to do that.