From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: John Wiegley Newsgroups: gmane.emacs.bugs Subject: bug#64901: 29.1; use-package fails to require bind-key at runtime in compiled files Date: Tue, 01 Aug 2023 14:37:51 -0700 Message-ID: References: <11c7327a-236e-7dab-e6bd-215fd9aac972@fiander.info> <83jzull2jp.fsf@gnu.org> <83h6ppl1n3.fsf@gnu.org> <83v8e4jzhh.fsf@gnu.org> <87wmykfkqk.fsf@epfl.ch> <83cz0cjkul.fsf@gnu.org> <87a5vgou07.fsf@epfl.ch> <83mszfi28p.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="7767"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (darwin) Cc: contovob@tcd.ie, 64901@debbugs.gnu.org, david@fiander.info To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Tue Aug 01 23:39:19 2023 Return-path: Envelope-to: geb-bug-gnu-emacs@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 1qQx5L-0001oO-34 for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 01 Aug 2023 23:39:19 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qQx57-0001r1-0t; Tue, 01 Aug 2023 17:39:05 -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 1qQx55-0001qp-Vi for bug-gnu-emacs@gnu.org; Tue, 01 Aug 2023 17:39:04 -0400 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qQx55-00051R-23 for bug-gnu-emacs@gnu.org; Tue, 01 Aug 2023 17:39:03 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1qQx54-00032B-H8 for bug-gnu-emacs@gnu.org; Tue, 01 Aug 2023 17:39:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: John Wiegley Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 01 Aug 2023 21:39:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 64901 X-GNU-PR-Package: emacs Original-Received: via spool by 64901-submit@debbugs.gnu.org id=B64901.169092589011598 (code B ref 64901); Tue, 01 Aug 2023 21:39:02 +0000 Original-Received: (at 64901) by debbugs.gnu.org; 1 Aug 2023 21:38:10 +0000 Original-Received: from localhost ([127.0.0.1]:48410 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qQx4E-000310-1b for submit@debbugs.gnu.org; Tue, 01 Aug 2023 17:38:10 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:56704) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qQx4A-00030k-VE for 64901@debbugs.gnu.org; Tue, 01 Aug 2023 17:38:08 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qQx42-0004u6-2q; Tue, 01 Aug 2023 17:37:58 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:References:Date:In-Reply-To:Subject:To: From; bh=saRAXawQg4a4npSDWxQKdTZ1m4kic+eRfe87dKi2x3s=; b=XnyLURn5d4/z3sFSzJGw 3Rjpf3BzMFPZvWy/HP7J0QF1uQuro9hRPO550Y4dbiGQ6WgvuHmfwrKROnDCygk2nB2/rPKvp0V+6 57v2ezA6NB3bmikQoTOuXg55250/c5/9F713bhsk0SUAxLmb/gj/jyWW0YEyEqSpIO5bo4F93y5pP k1ExyuhLYY2bVKwmniwzi5bGC8HW1Dhjve8f9UuGqLM0kxoejWn8Z1kVEqJNgi1XTwnGd4KgyZiuu RNNJsNjO3F7mR9EJflDQ7qCz34VKbPGHGIbEIvy3niMfupromjWKRrGkikNNgn6kzCLEgh7mkla5d rm1E7DaKBAk1RA==; Original-Received: from auth2-smtp.messagingengine.com ([66.111.4.228]) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qQx41-0000Fv-DT; Tue, 01 Aug 2023 17:37:57 -0400 Original-Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailauth.nyi.internal (Postfix) with ESMTP id 32F7527C005A; Tue, 1 Aug 2023 17:37:56 -0400 (EDT) Original-Received: from mailfrontend1 ([10.202.2.162]) by compute2.internal (MEProxy); Tue, 01 Aug 2023 17:37:56 -0400 X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedviedrjeejucetufdoteggodetrfdotffvucfrrh hofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgenuceurghi lhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurh ephffvvefujgffkfhffgggtgfgsehtqhertddtreejnecuhfhrohhmpeflohhhnhcuhghi vghglhgvhicuoehjohhhnhifsehgnhhurdhorhhgqeenucggtffrrghtthgvrhhnpeetle elueejleevgffhgfeggeffvdeiiefgkeetveejleehudetgfejieffgffftdenucffohhm rghinhepnhgvfigrrhhtihhsrghnshdrtghomhenucevlhhushhtvghrufhiiigvpedtne curfgrrhgrmhepmhgrihhlfhhrohhmpehjohhhnhifodhmvghsmhhtphgruhhthhhpvghr shhonhgrlhhithihqdeikeejkedtleeggedqudejjeehfeekudeiqdhjohhhnhifpeepgh hnuhdrohhrghesnhgvfigrrhhtihhsrghnshdrtghomh X-ME-Proxy: Feedback-ID: ib64945b7:Fastmail Original-Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 1 Aug 2023 17:37:55 -0400 (EDT) In-Reply-To: <83mszfi28p.fsf@gnu.org> (Eli Zaretskii's message of "Sat, 29 Jul 2023 10:52:06 +0300") X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:266477 Archived-At: >>>>> Eli Zaretskii writes: >> I have no further notes to add, but I would like to see that restriction >> lifted also. > Any suggestions for how should we go about that? I would suggest that in the macro =E2=80=98bind-key=E2=80=99, we emit =E2= =80=98(require =E2=80=99bind-key)=E2=80=99. I can see now what an oversight this was, since indeed the macro will omit co= de that references a variable that may not be in scope after direct compilatio= n: (defmacro bind-key (key-name command &optional keymap predicate) (let ((namevar (make-symbol "name")) (keyvar (make-symbol "key")) (kmapvar (make-symbol "kmap")) (kdescvar (make-symbol "kdesc")) (bindingvar (make-symbol "binding"))) `(let* ((,namevar ,key-name) (,keyvar ,(if (stringp key-name) (read-kbd-macro key-name) `(if (vectorp ,namevar) ,namevar (read-kbd-macro ,namevar)))) (,kmapvar (or (if (and ,keymap (symbolp ,keymap)) (symbol-value ,keymap) ,keymap) global-map)) (,kdescvar (cons (if (stringp ,namevar) ,namevar (key-description ,namevar)) (if (symbolp ,keymap) ,keymap (quote ,keymap))= )) (,bindingvar (lookup-key ,kmapvar ,keyvar))) (let ((entry (assoc ,kdescvar personal-keybindings)) (details (list ,command (unless (numberp ,bindingvar) ,bindingvar)))) (if entry (setcdr entry details) (add-to-list 'personal-keybindings (cons ,kdescvar details)))) ,(if predicate `(define-key ,kmapvar ,keyvar '(menu-item "" nil :filter (lambda (&optional _) (when ,predicate ,command)))) `(define-key ,kmapvar ,keyvar ,command))))) --=20 John Wiegley GPG fingerprint =3D 4710 CF98 AF9B 327B B80F http://newartisans.com 60E1 46C4 BD1A 7AC1 4BA2