From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.devel Subject: Re: [nongnu] elpa/org-contrib eaef050f28: lisp/ox-bibtex.el (org-bibtex-goto-citation): Add missing require Date: Tue, 30 Jan 2024 12:31:25 -0500 Message-ID: References: <170661605561.6823.12101770977814458206@vcs2.savannah.gnu.org> <20240130120056.91DA8C0EFEF@vcs2.savannah.gnu.org> <871q9yonl8.fsf@localhost> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="23953"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Cc: emacs-devel@gnu.org To: Ihor Radchenko Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue Jan 30 18:32:45 2024 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 1rUryW-00062Z-CW for ged-emacs-devel@m.gmane-mx.org; Tue, 30 Jan 2024 18:32:44 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rUrxM-0001B2-Tx; Tue, 30 Jan 2024 12:31:32 -0500 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 1rUrxL-0001Ae-9f for emacs-devel@gnu.org; Tue, 30 Jan 2024 12:31:31 -0500 Original-Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rUrxJ-0007WB-0S for emacs-devel@gnu.org; Tue, 30 Jan 2024 12:31:31 -0500 Original-Received: from pmg1.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id EFF8B1000DA; Tue, 30 Jan 2024 12:31:26 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1706635886; bh=YopauEIySBwIOzOWowKBPQi336lvPrnlsujUU95AbNQ=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=m+HCCezSdYBw6J8ZCrf+FTtamZefQNVuwDFVdRgOUsjHU4TLl4V67Hi3LD+8mJ8Io fEKSwC3nxQwHCmz7IiqEsUZlzZd2BpdhjQONxIU8Ksl+nSOm6JF6NmIuHpTzeYjDxI Jq8TxDNQRqva9fc9bD2B1l/FyelY252pY+9ZJaJPd7gVG/1WESwPOgjQtBre93OFHD Nt60Fqz716rWJ1JqtuZ31A7WSZXAcHOFRZ6mBKjNLkE6uPlbs8cMT1BBidDcQs/1W3 8JElhpvg7ELCxdCH1G8vUqs0S9LEVGPnghqmMCxJVxRaW6isDza44cg1X1dfwhYb1U Jm0W3zOGi2NqQ== Original-Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id EB4BE100054; Tue, 30 Jan 2024 12:31:25 -0500 (EST) Original-Received: from alfajor (unknown [23.233.149.155]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id D0B1E12062F; Tue, 30 Jan 2024 12:31:25 -0500 (EST) In-Reply-To: <871q9yonl8.fsf@localhost> (Ihor Radchenko's message of "Tue, 30 Jan 2024 15:19:47 +0000") Received-SPF: pass client-ip=132.204.25.50; envelope-from=monnier@iro.umontreal.ca; helo=mailscanner.iro.umontreal.ca X-Spam_score_int: -42 X-Spam_score: -4.3 X-Spam_bar: ---- X-Spam_report: (-4.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=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:315641 Archived-At: Ihor Radchenko [2024-01-30 15:19:47] wrote: > Stefan Monnier writes: >> The `declare-function` should be placed right next (after) the >> `require`. In practice it (currently) makes no difference (because of >> technical details of how `declare-function` is (currently) implemented), >> but in theory it clarifies that you do not intend to claim that it's safe >> to call `obe-citations` from anywhere within `ox-bibtex`, but only from >> within `org-bibtex-goto-citation`. > > Interesting. > I am wondering if byte-compiler can somehow detect such scenarios and > throw a warning. In theory, if you "fix" the code as I suggested and call `obe-citations` from outside of `org-bibtex-goto-citation`., the byte-compiler could emit a warning. Is that what you mean? If you mean that the byte-compiler should warn about the current code, it's kind of impossible: `declare-function` is specifically designed to tell the compiler about the fact that a function is available when the compiler doesn't know it. IOW in order to figure out that the warning is ill-placed the compiler would need to know how/when that function is defined, thus making the declaration unnecessary anyway. But yes, we could try and improve the tooling that checks those `declare-function`s, tho currently we only provide checks to make sure the function is indeed defined in the specified file. We don't try to figure out if that function will indeed be loaded/available at the point the `declare-function` is placed (which is a much more difficult problem). Stefan