From unknown Fri Jun 20 07:12:54 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#71814 <71814@debbugs.gnu.org> To: bug#71814 <71814@debbugs.gnu.org> Subject: Status: define-globalized-minor-mode Should predicate variable be defined before? Reply-To: bug#71814 <71814@debbugs.gnu.org> Date: Fri, 20 Jun 2025 14:12:54 +0000 retitle 71814 define-globalized-minor-mode Should predicate variable be def= ined before? reassign 71814 emacs submitter 71814 "Elijah G." severity 71814 normal thanks From debbugs-submit-bounces@debbugs.gnu.org Fri Jun 28 02:05:06 2024 Received: (at submit) by debbugs.gnu.org; 28 Jun 2024 06:05:06 +0000 Received: from localhost ([127.0.0.1]:51479 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sN4jJ-0000qx-Mf for submit@debbugs.gnu.org; Fri, 28 Jun 2024 02:05:06 -0400 Received: from lists.gnu.org ([209.51.188.17]:57570) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sN4jI-0000q1-Oa for submit@debbugs.gnu.org; Fri, 28 Jun 2024 02:05:05 -0400 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 1sN0IQ-0000Xr-2R for bug-gnu-emacs@gnu.org; Thu, 27 Jun 2024 21:21:02 -0400 Received: from mail-oo1-xc42.google.com ([2607:f8b0:4864:20::c42]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sN0IO-0003P4-Ah for bug-gnu-emacs@gnu.org; Thu, 27 Jun 2024 21:21:01 -0400 Received: by mail-oo1-xc42.google.com with SMTP id 006d021491bc7-5c21f1bb810so35594eaf.3 for ; Thu, 27 Jun 2024 18:20:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1719537658; x=1720142458; darn=gnu.org; h=mime-version:user-agent:message-id:date:subject:to:from:from:to:cc :subject:date:message-id:reply-to; bh=FPbjUL+o1dafXQeWMjjqEV4UfP3aszNbVqM//DVCkm4=; b=Nos0sndAHbEv+zRTqHaaMLp/Ze4fh5eQiFJFCqbEfGd18YiWLDcnO0Q4aWh2Ulyg6E 36dSNDTAjccsitgs5/LWPMpfvK3GgqgUl3Uwz/DTDYZO7Hx0+CF9b46/P7CCwt2gRcVb 4h+Djax30Sd4zVKVyHuS+ALVfalWrQLfHIBEG7Rv8XT2KpfDTuIbD+ANSwGAA+YML86Z WbT6nhB+r9RBABZ6WUp2lHzQLz0SfFoXiMfik785D+qo+0ISKWgDV9bHDdrqrtv42N1O ytEWRevC+IR3yjoEyJCI1yRy/En1nYjNwsCIlvnLjwQGvpbCSALPpmSIYsfSVjWfR8In iwyg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719537658; x=1720142458; h=mime-version:user-agent:message-id:date:subject:to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=FPbjUL+o1dafXQeWMjjqEV4UfP3aszNbVqM//DVCkm4=; b=AjQyWLN7iw0agzM5PuIAV/EE/3cXGQb3YhuWbkKZSzUAldnlPIWgICYhC5NM20PIsh SCqNbukUQTyY5ESnXzW8ZSuGn3NZzT1K90CU3jlq3lE0swLrKrFU7sM9zxdFGC5JWRIL oVyPqEwRsWE52jRjMavsqgxCLKEOwT7uGdVjHTHyxH3CYDcKFHMJjGhuah8fst3gR9GT knicXT3d15i4cDUfX/fbAe5Rv3R93Edm+Sdx2RnlY6QmBNqwsefCidnLPnNbBAkJz6U9 a13nz3gfOAbvik2GFWvRA+HHovfeFobimDOtHtGlfJSOmdM3l8zqYo7GzQdRch+/LIMX Rqig== X-Gm-Message-State: AOJu0YxfmdFAo/8aWzdivE6y11crG6a7BFHnvFLa7rqyDZLwsf7U5I0t XHZjNIRSMwoDrok2PVjqNaDQX7YibVEXW1jXEzKLjuDEgIJPLs5Tg+PtbNsM X-Google-Smtp-Source: AGHT+IHr8OSdXXs+HYVjPEfVKeaLYcrseQe5TluYlgCCIKojYF2EP+d7/vCAC7HXhlESaPkxh6cqfQ== X-Received: by 2002:a4a:ea36:0:b0:5c2:268c:278 with SMTP id 006d021491bc7-5c229e1a3b9mr6338646eaf.0.1719537657911; Thu, 27 Jun 2024 18:20:57 -0700 (PDT) Received: from LIBERO ([187.184.26.123]) by smtp.gmail.com with ESMTPSA id 006d021491bc7-5c41480bf48sm109737eaf.2.2024.06.27.18.20.57 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Jun 2024 18:20:57 -0700 (PDT) From: "Elijah G." To: bug-gnu-emacs@gnu.org Subject: define-globalized-minor-mode Should predicate variable be defined before? Date: Thu, 27 Jun 2024 19:20:53 -0600 Message-ID: <864j9d7thm.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (windows-nt) MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=2607:f8b0:4864:20::c42; envelope-from=eg642616@gmail.com; helo=mail-oo1-xc42.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.1 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.1 (--) Hello, i've noticed when defining a globalized minor mode using the define-globalized-minor-mode macro, gives a byte-compile warning about the auto-generated :predicate variable not being defined. I found that it's because the macro defines the predicate user option after defining the minor mode: (put ',global-mode 'globalized-minor-mode t) :autoload-end (defvar-local ,MODE-major-mode nil)) ;; The actual global minor-mode (define-minor-mode ,global-mode ,(concat (format "Toggle %s in all buffers.\n" pretty-name) (internal--format-docstring-line ...) ;; Setup hook to handle future mode changes and new buffers. (if ,global-mode (add-hook 'after-change-major-mode-hook #',MODE-enable-in-buffer) (remove-hook 'after-change-major-mode-hook #',MODE-enable-in-buffer)) ;; Go through existing buffers. (dolist (buf (buffer-list)) (with-current-buffer buf (if ,global-mode (funcall ,turn-on-function) (when ,mode (,mode -1))))) ,@body) ,(when predicate `(defcustom ,MODE-predicate ,(car predicate) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ My question is, should it be defined before defining the minor mode? if not, then why it's defined like that? I made a little patch for solve this, since i think it would be it would be beneficial for packages that use that macro (also i barely remember that there are some built-in packages that defines the user-option before using the macro for solve this issue). Thanks. --8<---------------cut here---------------start------------->8--- diff --git a/lisp/emacs-lisp/easy-mmode.el b/lisp/emacs-lisp/easy-mmode.el index ba0f8bad393..69cc1332282 100644 --- a/lisp/emacs-lisp/easy-mmode.el +++ b/lisp/emacs-lisp/easy-mmode.el @@ -525,6 +525,36 @@ define-globalized-minor-mode (put ',global-mode 'globalized-minor-mode t) :autoload-end (defvar-local ,MODE-major-mode nil)) + ,(when predicate + `(defcustom ,MODE-predicate ,(car predicate) + ,(format "Which major modes `%s' is switched on in. +This variable can be either t (all major modes), nil (no major modes), +or a list of modes and (not modes) to switch use this minor mode or +not. For instance + + (c-mode (not message-mode mail-mode) text-mode) + +means \"use this mode in all modes derived from `c-mode', don't use in +modes derived from `message-mode' or `mail-mode', but do use in other +modes derived from `text-mode'\". An element with value t means \"use\" +and nil means \"don't use\". There's an implicit nil at the end of the +list." + mode) + :type '(choice + (const :tag "Enable in all major modes" t) + (const :tag "Don't enable in any major mode" nil) + (repeat + :tag "Rules (earlier takes precedence)..." + (choice + (const :tag "Enable in all (other) modes" t) + (const :tag "Don't enable in any (other) mode" nil) + (symbol :value fundamental-mode + :tag "Enable in major mode") + (cons :tag "Don't enable in major modes" + (const :tag "Don't enable in..." not) + (repeat (symbol :value fundamental-mode + :tag "Major mode")))))) + ,@group)) ;; The actual global minor-mode (define-minor-mode ,global-mode ,(concat (format "Toggle %s in all buffers.\n" pretty-name) @@ -565,37 +595,6 @@ define-globalized-minor-mode (when ,mode (,mode -1))))) ,@body) - ,(when predicate - `(defcustom ,MODE-predicate ,(car predicate) - ,(format "Which major modes `%s' is switched on in. -This variable can be either t (all major modes), nil (no major modes), -or a list of modes and (not modes) to switch use this minor mode or -not. For instance - - (c-mode (not message-mode mail-mode) text-mode) - -means \"use this mode in all modes derived from `c-mode', don't use in -modes derived from `message-mode' or `mail-mode', but do use in other -modes derived from `text-mode'\". An element with value t means \"use\" -and nil means \"don't use\". There's an implicit nil at the end of the -list." - mode) - :type '(choice - (const :tag "Enable in all major modes" t) - (const :tag "Don't enable in any major mode" nil) - (repeat - :tag "Rules (earlier takes precedence)..." - (choice - (const :tag "Enable in all (other) modes" t) - (const :tag "Don't enable in any (other) mode" nil) - (symbol :value fundamental-mode - :tag "Enable in major mode") - (cons :tag "Don't enable in major modes" - (const :tag "Don't enable in..." not) - (repeat (symbol :value fundamental-mode - :tag "Major mode")))))) - ,@group)) - ;; Autoloading define-globalized-minor-mode autoloads everything ;; up-to-here. :autoload-end --8<---------------cut here---------------end--------------->8--- -- E.G. from Gnus The Emacs Newsreader and E-mail client From debbugs-submit-bounces@debbugs.gnu.org Fri Jun 28 23:28:25 2024 Received: (at 71814) by debbugs.gnu.org; 29 Jun 2024 03:28:25 +0000 Received: from localhost ([127.0.0.1]:36562 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sNOlF-0008H3-4R for submit@debbugs.gnu.org; Fri, 28 Jun 2024 23:28:25 -0400 Received: from mail-ed1-f54.google.com ([209.85.208.54]:50245) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sNOlD-0008Gm-DP for 71814@debbugs.gnu.org; Fri, 28 Jun 2024 23:28:23 -0400 Received: by mail-ed1-f54.google.com with SMTP id 4fb4d7f45d1cf-585e774fd3dso1603647a12.0 for <71814@debbugs.gnu.org>; Fri, 28 Jun 2024 20:28:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1719631638; x=1720236438; darn=debbugs.gnu.org; h=to:subject:message-id:date:mime-version:references:in-reply-to:from :from:to:cc:subject:date:message-id:reply-to; bh=r0tDMp+knW3wcQjlLoXSDBtpkC8/0s3oQ7vS/lNP3lY=; b=arBlTJ18Z9bPdAvRqlQwU4KVKh2zv+8F9RHgecXz0noqhtOJlM0xadH9jzMst1H/ig fisBW9Oj/XTZazY5O/29E8m/ft5ANZRR0hA5YhWloZJMDehZGAB+raooSCm1smKf3E9K NZFuWd8ESOfvKJZXS5sGPoS1WI7aOt09gEqHWyy3zwNxO7tpdvmivOqQlKYdEJ1Odo1l ylzW3URoPsE0LHKYC02Z9M/N5sA8YG+iK0tbgoZhhIYB4nM9L1KhV7UUGdtkzS68p0h8 9n0JICGsAbqV/EepOuUeU1860/P/yOcfJmH3pfS9EmSq+HrjgBlerN9JTAyEtGp86oSb Cceg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719631638; x=1720236438; h=to:subject:message-id:date:mime-version:references:in-reply-to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=r0tDMp+knW3wcQjlLoXSDBtpkC8/0s3oQ7vS/lNP3lY=; b=DbA3QI4+RV7mKN2d/WGwVpXHubCSIphO0LT1ZyToG35fBjC7n34T/yUwAvjgkJMLAT U9EUbrGeeAPKqQgyzNIMmE0ddQsg+MoYaGxUidpUlQPH+5PBYGlSKYQotQUrAiNiaDvW AwGiyE1pd4GRAEMRAvC8KFiJl4RBwA/Z7NSX1RrTKRHa3cDJ26P2an7YVx7aq5SHagzK 6Z7/CbxcxT/4DZjPwAgi9JFs5ZjGOsJ5va8TmrIGuYH9rXMYXpHyFcOy2fHDHebXq7Lb 0xtA5mor0to+ONvD1zUQ5FWPlKzZXppp8K4Mhc8kPMmRJbpLbQpcN6RvjtsWEhkVGhzw nNVQ== X-Forwarded-Encrypted: i=1; AJvYcCWLWV8VYYpsEB1NUTai5nzLOnbJL76YxFW3N+swnKMGsbjMiQgpfxFW08C0TmtiijizWrSQU9HWr05FalqtsnwEYP0/OqU= X-Gm-Message-State: AOJu0Yw050tcDXbB/78o+0pXR7FFG3PfptNZeKp0z1urlLZosmNJPrzu fH1dtC1O2nnI85DEwjCx5ToGic/3P04z5zjWdScL+0keSFK8asDJKryNDqyjSN/D5yUgzxfEKll FzHRDjCImnsea7mr8kN2UxiOyo2LVJ8hnEEY= X-Google-Smtp-Source: AGHT+IEw8PL0N56l05cUDgj2vtLjKYZAkBb5Y00P4g27GAeOkuH8Br1QsmYQ34/3bKSRu/J42n91U89ntBlemwW7Xhg= X-Received: by 2002:a50:d61b:0:b0:57d:10bb:4588 with SMTP id 4fb4d7f45d1cf-57d4bde09e5mr10336150a12.41.1719631638131; Fri, 28 Jun 2024 20:27:18 -0700 (PDT) Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Fri, 28 Jun 2024 20:27:17 -0700 From: Stefan Kangas In-Reply-To: <864j9d7thm.fsf@gmail.com> References: <864j9d7thm.fsf@gmail.com> MIME-Version: 1.0 Date: Fri, 28 Jun 2024 20:27:17 -0700 Message-ID: Subject: Re: bug#71814: define-globalized-minor-mode Should predicate variable be defined before? To: "Elijah G." , 71814@debbugs.gnu.org Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 71814 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) "Elijah G." writes: > Hello, i've noticed when defining a globalized minor mode using the > define-globalized-minor-mode macro, gives a byte-compile warning about > the auto-generated :predicate variable not being defined. Thanks for the bug report and proposed fix. Could you please provide a recipe to reproduce the problem? From debbugs-submit-bounces@debbugs.gnu.org Sat Jun 29 00:34:47 2024 Received: (at 71814) by debbugs.gnu.org; 29 Jun 2024 04:34:47 +0000 Received: from localhost ([127.0.0.1]:36650 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sNPnS-0001kS-Pl for submit@debbugs.gnu.org; Sat, 29 Jun 2024 00:34:47 -0400 Received: from mail-qt1-f194.google.com ([209.85.160.194]:50338) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sNPnR-0001kE-Ew for 71814@debbugs.gnu.org; Sat, 29 Jun 2024 00:34:46 -0400 Received: by mail-qt1-f194.google.com with SMTP id d75a77b69052e-444fa159caeso11358481cf.0 for <71814@debbugs.gnu.org>; Fri, 28 Jun 2024 21:34:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1719635620; x=1720240420; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=VHhtsXdOI5ACnxVmqs00SjGwt1InlUveIPu60sOH4H4=; b=W29QdHNP/WCECgw8qp9Njs8zCpFGHX5mqWMeCI8L+xFQGVZbBqMRV6DpbpYyRycZX7 0C2eYPq3XaFM8Si3wAoW0o+wjgmUgezsGUztrkd3WOBK8R8myV4BA3cscSYSZI7c0st6 7wbqkKqPbdqhN2wheZXF8r7zN8AFX3Os9OzAL0yfIRwB4DA1X0fArTNuzb32KxIRUeGF +eRSCFTCv2mmc3mHyIo1P75K2+lzpX7NYcjEAGBDMEZnmo/yWkqeh2xbphE1NmkT4h+/ 5A60YK/qsftGdB4nvOFPznfS6kNZUZeB6iqFB1RMz36iTMvwkbrWWrvlJXs9tLSJ5OXy fnPA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719635620; x=1720240420; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=VHhtsXdOI5ACnxVmqs00SjGwt1InlUveIPu60sOH4H4=; b=oBx4g0ol22rN3I1og3qFFy7bWly3Ke0bz2UUWYL8vct7jwhGy0FBhzH5i19rPvX1va kbERiHzDEytU2isTv9ewiMEA2wIPgijSXHdt0bzZOEAAcj0Sbp4WS2f/oXtraWDxvEpX 2TLJmcGe01tc7pmDJd46RaXkp8IChbgvWJPlT0reAivZxB9Vi8GPOAo+Ag02Q6wptnrZ iq7ILxNIHkSOsGYBePE6rt3+NyJrrJKVkn6/aV/yR4qBBW8uQ/J3O1raj+CtrkDI138k hRDbCXTa9ZZ4z+cdIoUzdKX3b71/kqjH4pDdELgOMFHqX8m9TrDfmtufj3owkMxoZR+l bavA== X-Gm-Message-State: AOJu0YxRo4Mc30gXdqu/VTaAN5BwC7I3MOGRWKjWDTjH1MI1N8Gx9KMP XF1zWu1I6etOub0m6k1fabgpz8OUON47SMOeau6vs3qhMlop6dsq4cHyHm2jBNsVSqsksKzK1gn F9FEOVTJKCgh7b60/kSO9PlUlniw= X-Google-Smtp-Source: AGHT+IHOTckf3D6BZ6G7+TOX66L0ZJ5ZgK55FsJkT6HhEF85snIL9yhw0apggjQpMyxD46pn1+rIbOHqmek+WRjJJac= X-Received: by 2002:ac8:5d49:0:b0:446:34e5:a63a with SMTP id d75a77b69052e-44662df2943mr561961cf.22.1719635620261; Fri, 28 Jun 2024 21:33:40 -0700 (PDT) MIME-Version: 1.0 References: <864j9d7thm.fsf@gmail.com> In-Reply-To: From: Elijah G Date: Fri, 28 Jun 2024 22:33:25 -0600 Message-ID: Subject: Re: bug#71814: define-globalized-minor-mode Should predicate variable be defined before? To: Stefan Kangas Content-Type: multipart/alternative; boundary="00000000000049f4dc061bffdeaf" X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 71814 Cc: 71814@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --00000000000049f4dc061bffdeaf Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable El vie., 28 de junio de 2024 9:27 p. m., Stefan Kangas < stefankangas@gmail.com> escribi=C3=B3: > "Elijah G." writes: > > > Hello, i've noticed when defining a globalized minor mode using the > > define-globalized-minor-mode macro, gives a byte-compile warning about > > the auto-generated :predicate variable not being defined. > > Thanks for the bug report and proposed fix. > > Could you please provide a recipe to reproduce the problem? > Sure. 1. create a .el file 2. insert this snippet into to file: ``` (define-minor-mode test-mode "") (define-globalized-minor-mode global-test-mode test-mode #'ignore :group 'test :predicate '(prog-mode text-mode)) ``` 3. byte-compile the file 4. in the compile log buffer should appear this warning: `Warning: reference to free variable =E2=80=98global-test-modes=E2=80=99` which is the variable generated by the macro. > --00000000000049f4dc061bffdeaf Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
El vie., 28 de junio de 2024 9:27 p. m., Stefan Kangas <stefankangas@gmail.com> escri= bi=C3=B3:
"Elijah G." <= ;eg642616@gmail.com> writes:

> Hello, i've noticed when defining a globalized minor mode using th= e
> define-globalized-minor-mode macro, gives a byte-compile warning about=
> the auto-generated :predicate variable not being defined.

Thanks for the bug report and proposed fix.

Could you please provide a recipe to reproduce the problem?

Sure.

1. create a .el file
2. insert this snippet into to file:
```
(define-minor-mode test-mode "")
(define-globalized-minor-mode global-test-mode
=C2=A0 test-mode #'ignore
=C2=A0 :grou= p 'test
=C2=A0 :predicate '(prog-mode text-m= ode))
```
3. byte-compile the= file
4. in the compile log buffer should appear thi= s warning:
`Warning: reference to free variable =E2= =80=98global-test-modes=E2=80=99`
which is the varia= ble generated by the macro.
--00000000000049f4dc061bffdeaf-- From debbugs-submit-bounces@debbugs.gnu.org Sat Jun 29 08:45:00 2024 Received: (at 71814-done) by debbugs.gnu.org; 29 Jun 2024 12:45:00 +0000 Received: from localhost ([127.0.0.1]:37376 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sNXRs-000722-0R for submit@debbugs.gnu.org; Sat, 29 Jun 2024 08:45:00 -0400 Received: from mail-ed1-f45.google.com ([209.85.208.45]:45334) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sNXRp-00071q-G3 for 71814-done@debbugs.gnu.org; Sat, 29 Jun 2024 08:44:57 -0400 Received: by mail-ed1-f45.google.com with SMTP id 4fb4d7f45d1cf-57d15b85a34so1658012a12.3 for <71814-done@debbugs.gnu.org>; Sat, 29 Jun 2024 05:44:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1719665037; x=1720269837; darn=debbugs.gnu.org; h=content-transfer-encoding:cc:to:subject:message-id:date :mime-version:references:in-reply-to:from:from:to:cc:subject:date :message-id:reply-to; bh=cC3MbljH7zgTzIxI2r/RgIQFjic5Kj+EFOR8I1I6GMw=; b=Wg8E/0X1+/RE6FQ0GFizkaNpLAUakd8brx3r9bnDkv4cV+AALF9pYllLEjfI2d+ViI 9eDopPuYnSpx+GfpFDJIWOnS89D7pYjOyNIRk/IO/X66MXARXAUOu+B75knkneKji+4u jb7d0hyjs0LK8yQNMSSFiC6+q1Hl2GOmGMaEXnUlhRe8Ok9dGUKzcVlqJVPb+cTsJ5Uu ten3KxMtEQpW6Z25kfT/a+zKUDpiEOEanGFh64PKgNEzXX2e/RGLn/svg520WP60i7qp k/aLSIHef+F5kwSyDodzZ0cLYRdJE1paAAInBg/qT23WdmoA7S4ObreLIBs15tsbC+6G dwUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719665037; x=1720269837; h=content-transfer-encoding:cc:to:subject:message-id:date :mime-version:references:in-reply-to:from:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=cC3MbljH7zgTzIxI2r/RgIQFjic5Kj+EFOR8I1I6GMw=; b=F89KeJBXiyhoaBUf3D5BT1xB9WaK8BUvhYl7VYxPigASUqjGb9ULt5PpBcWy77RjN2 j4hc7CgOYseOYNds2VzM+5tIO+mmUSkSPP+cPvwyIko0LvyIFBcq3phXk+UB6WtGKi2/ 0y1O4ShBa/1Zl4r1GfmpS168pLZVNPFzi5/vjKdUZrS9J+DKQs7y7UCyNlsWk5SQVGEm jSdSsGBvwB/2xRe04snkUV+gg3oDCO73PZnoIV5ONMpxhQXLagkgxv/o6WdTXS4+j2BL VkyMP0y6XPT7T4JCg3WPjkcZSZWVedsfiHe2Y8Y315htb2lDlYh2nDv7hFlgzOgd3Hyd 9dmg== X-Gm-Message-State: AOJu0YwNYzSjMmsE8WVHT335rQEqEhkyNZ8GrudRDE3bSev/sLWS8o8w lO2QpgXxrgL7jRrtG4d6YqD0kaTH19r2Ww6CynesqQIv5LuiRIw6GIGsltOwgzeCQTefVzE4McD 5wDjx9wQyWcbnhaX5IVA8oszkQRcSlwSYqdQ= X-Google-Smtp-Source: AGHT+IG1IUM69SidkpIgKqrmp8YJ37YErKCv918Jc2uxzXR6TAGTkqXPekiNuwVj2h8kj8E1VZRjD41duuT0DlZIEik= X-Received: by 2002:a05:6402:2289:b0:57c:bf3b:76f5 with SMTP id 4fb4d7f45d1cf-587a0bfeb12mr560226a12.35.1719665036733; Sat, 29 Jun 2024 05:43:56 -0700 (PDT) Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Sat, 29 Jun 2024 05:43:56 -0700 From: Stefan Kangas In-Reply-To: References: <864j9d7thm.fsf@gmail.com> MIME-Version: 1.0 Date: Sat, 29 Jun 2024 05:43:56 -0700 Message-ID: Subject: Re: bug#71814: define-globalized-minor-mode Should predicate variable be defined before? To: Elijah G Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 71814-done Cc: 71814-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Elijah G writes: > 1. create a .el file > 2. insert this snippet into to file: > ``` > (define-minor-mode test-mode "") > (define-globalized-minor-mode global-test-mode > test-mode #'ignore > :group 'test > :predicate '(prog-mode text-mode)) > ``` > 3. byte-compile the file > 4. in the compile log buffer should appear this warning: > `Warning: reference to free variable =E2=80=98global-test-modes=E2=80=99` > which is the variable generated by the macro. Thanks, I've now fixed this on emacs-30 (commit a65b6aac6b5). From unknown Fri Jun 20 07:12:54 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sun, 28 Jul 2024 11:24:07 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator