From unknown Sat Aug 09 20:51:07 2025 X-Loop: help-debbugs@gnu.org Subject: bug#62959: [PATCH] Recognize defstruct slot names in various eieio functions Resent-From: Thuna Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 19 Apr 2023 22:17:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 62959 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: 62959@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.168194258528518 (code B ref -1); Wed, 19 Apr 2023 22:17:02 +0000 Received: (at submit) by debbugs.gnu.org; 19 Apr 2023 22:16:25 +0000 Received: from localhost ([127.0.0.1]:36051 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ppG5y-0007Pb-Gi for submit@debbugs.gnu.org; Wed, 19 Apr 2023 18:16:25 -0400 Received: from lists.gnu.org ([209.51.188.17]:36780) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ppG5r-0007PO-E5 for submit@debbugs.gnu.org; Wed, 19 Apr 2023 18:16:07 -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 1ppG5r-0002Eg-02 for bug-gnu-emacs@gnu.org; Wed, 19 Apr 2023 18:16:03 -0400 Received: from mail-ej1-x635.google.com ([2a00:1450:4864:20::635]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ppG5p-00067c-6B for bug-gnu-emacs@gnu.org; Wed, 19 Apr 2023 18:16:02 -0400 Received: by mail-ej1-x635.google.com with SMTP id a5so1955270ejb.6 for ; Wed, 19 Apr 2023 15:16:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1681942559; x=1684534559; h=mime-version:message-id:date:subject:to:from:from:to:cc:subject :date:message-id:reply-to; bh=ljvDATw9R2xJH0n6mVlpx+PLgeHqOdC2RAIVyqI6y0g=; b=N+U9D4WW5Aa87pp1Hwfmp2QonauwKyq/XP4aVcro44OYOUIz8RGaXSg9fseOxk3hlg qK0NAICwZSJ2AIMk3dcdThgBbbOQtA/k/2V8T4ZKnWxdcMkyrradHDMrZn7mOk89VyV9 S844ZlxqtkneA8Gg48FJbM+WnirqVvrkzTumsoJhRJEFGaD8kmnfrlyVinJAESKTANm7 8rTWKYUcTIkvqec2E4WN8mMeHSEE1c1oUjB1ex3pjqCNAk5w/kwhXCn0MFvxlspMBjHv ZYyQ1335H+uxLAslneZvY4LFE3J/DP/4dH3gvOUXJsHuyx/fKjdbMEj0xrwBnTplLHlG /38A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681942559; x=1684534559; h=mime-version:message-id:date:subject:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=ljvDATw9R2xJH0n6mVlpx+PLgeHqOdC2RAIVyqI6y0g=; b=GQtgsiU+WpoBDcZrnkAbIbB2FVyk45r+z6yKbnkKfnmUJi52jqMk+6C6FL5e11bBa5 cKKDkZcB8S5jg2kTnVSWlVUdqTvqAEiOZNcRFlQKiT1kRyhFPNRwW6vPJEqG+mXmqAk6 +rqo+bNGCB5/C8kCYQmtqpiOoonlS981W0UNdjNwDXQB5qnxqGruLgOLLnb/Y/TWOgqm DOQ6vrSOVCs73KHCYYfxy2Fb6+D/LVYRK6ztjbnmeIFg6skXQFQGNjHgUYH5fHotkPGF aKx/mUDu09iQsR51RXoG8kZQAvIYrDbC0UH6MFrCha6gcsQ+j7KGbSbi9OgEDuNocTh9 Z/vQ== X-Gm-Message-State: AAQBX9f3yg/G2LWGHvvwvYgyBaubsom57GxwYGzKN69bE93uDQmpl6vQ 17feKNFsmhtdqYjEkzL/YXuIJvsAStg= X-Google-Smtp-Source: AKy350YY4AWwdf875DxolGfSppF7+hTgZFspahhF4TRdR+kF68KxQaXh69WjvnCyFhVPlvz+cQYu/A== X-Received: by 2002:a17:906:4e0b:b0:94e:bd38:49bb with SMTP id z11-20020a1709064e0b00b0094ebd3849bbmr18416938eju.23.1681942558774; Wed, 19 Apr 2023 15:15:58 -0700 (PDT) Received: from thuna ([78.177.102.2]) by smtp.gmail.com with ESMTPSA id z4-20020a170906434400b0094f2dca017fsm6097ejm.50.2023.04.19.15.15.57 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Apr 2023 15:15:58 -0700 (PDT) From: Thuna Date: Thu, 20 Apr 2023 00:15:50 +0200 Message-ID: <87o7njv7qh.fsf@gmail.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Received-SPF: pass client-ip=2a00:1450:4864:20::635; envelope-from=thuna.cing@gmail.com; helo=mail-ej1-x635.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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-Spam-Score: -1.3 (-) 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.0 (/) --=-=-= Content-Type: text/plain The function `eieio--known-slot-name-p' is used by some eieio functions (specifically eieio-oref, eieio-oref-default, and eieio-oset-default) to check whether a slot name is known or not, and if not signals an "Unknown slot" warning. Structs do not make their slots known to `eieio--known-slot-name-p', so the warning is signaled even for valid slot names. Since eieio aims for compatibility with defstruct, this should probably be considered a bug. The function `eieio--known-slot-name-p' checks the variable `eieio--known-slot-names' but also has a fallback for the name's `slot-name' property. In the patch I opted to use the latter. --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-Recognize-defstruct-slot-names-in-various-eieio-func.patch Content-Description: The patch >From 86ed1ed7d024a0d40286d5fe4697258dc98a1b9e Mon Sep 17 00:00:00 2001 From: Thuna Date: Wed, 19 Apr 2023 23:43:22 +0200 Subject: [PATCH] Recognize defstruct slot names in various eieio functions * lisp/emacs-lisp/cl-preloaded.el (cl-struct-define): Set each slot's name's `slot-name' property so that `eieio--known-slot-name-p' can recognize them. --- lisp/emacs-lisp/cl-preloaded.el | 1 + 1 file changed, 1 insertion(+) diff --git a/lisp/emacs-lisp/cl-preloaded.el b/lisp/emacs-lisp/cl-preloaded.el index 9445093f143..5235be52996 100644 --- a/lisp/emacs-lisp/cl-preloaded.el +++ b/lisp/emacs-lisp/cl-preloaded.el @@ -176,6 +176,7 @@ cl-struct-define (i 0) (offset (if type 0 1))) (dolist (slot slots) + (put (car slot) 'slot-name t) (let* ((props (cl--plist-to-alist (cddr slot))) (typep (assq :type props)) (type (if (null typep) t -- 2.39.2 --=-=-=-- From unknown Sat Aug 09 20:51:07 2025 X-Loop: help-debbugs@gnu.org Subject: bug#62959: [PATCH] Recognize defstruct slot names in various eieio functions Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 20 Apr 2023 06:51:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 62959 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Thuna , Stefan Monnier Cc: 62959@debbugs.gnu.org Received: via spool by 62959-submit@debbugs.gnu.org id=B62959.168197344228177 (code B ref 62959); Thu, 20 Apr 2023 06:51:01 +0000 Received: (at 62959) by debbugs.gnu.org; 20 Apr 2023 06:50:42 +0000 Received: from localhost ([127.0.0.1]:36351 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ppO7u-0007KN-Fp for submit@debbugs.gnu.org; Thu, 20 Apr 2023 02:50:42 -0400 Received: from eggs.gnu.org ([209.51.188.92]:45970) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ppO7s-0007KA-Le for 62959@debbugs.gnu.org; Thu, 20 Apr 2023 02:50:41 -0400 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 1ppO7l-0006kx-SA; Thu, 20 Apr 2023 02:50:34 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=sb65ja3qV+EUuA3z7Txa7xjFDygpwFbfotGAHYhJKTU=; b=LBs6ZVc6gi4M 2eAJQIJT/5aXYn92cQqsrqJBfJ3F5bYQvX6GYmaNnc4QmnAfnQg6xTKmRr2tcxKweneIXBOjMCc/o di0KtW/wEC6d/8I6eQl3hRPVaQqC1e1c8MHT/4abJ/q2X/k2imJStYAG2jE1SxRv7xVRQC+lSF7vP CxXWKv5nIWx7qyn+8PVZkgK7LI7SF2wxQgrkUORdzjtDNz3RPNCuINe8f7K47ZUZZZjL/TqeUmNU1 c+sJyQSwxWPlj27X4K/+ENP6LPyXkxFdnZEevsRCHHPF5CCYlSFFK1dJrO5cT+Ee1PO3MV/tCJh59 sESBpimaZWVK6MxbjNOe1w==; Received: from [87.69.77.57] (helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ppO7k-0007FV-Bf; Thu, 20 Apr 2023 02:50:32 -0400 Date: Thu, 20 Apr 2023 09:50:46 +0300 Message-Id: <83cz3z6o8p.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <87o7njv7qh.fsf@gmail.com> (message from Thuna on Thu, 20 Apr 2023 00:15:50 +0200) References: <87o7njv7qh.fsf@gmail.com> X-Spam-Score: -2.3 (--) 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: -3.3 (---) > From: Thuna > Date: Thu, 20 Apr 2023 00:15:50 +0200 > > The function `eieio--known-slot-name-p' is used by some eieio functions > (specifically eieio-oref, eieio-oref-default, and eieio-oset-default) to > check whether a slot name is known or not, and if not signals an > "Unknown slot" warning. > > Structs do not make their slots known to `eieio--known-slot-name-p', so > the warning is signaled even for valid slot names. Since eieio aims for > compatibility with defstruct, this should probably be considered a bug. > > The function `eieio--known-slot-name-p' checks the variable > `eieio--known-slot-names' but also has a fallback for the name's > `slot-name' property. In the patch I opted to use the latter. > > > >From 86ed1ed7d024a0d40286d5fe4697258dc98a1b9e Mon Sep 17 00:00:00 2001 > From: Thuna > Date: Wed, 19 Apr 2023 23:43:22 +0200 > Subject: [PATCH] Recognize defstruct slot names in various eieio functions > > * lisp/emacs-lisp/cl-preloaded.el (cl-struct-define): Set each slot's > name's `slot-name' property so that `eieio--known-slot-name-p' can > recognize them. > --- > lisp/emacs-lisp/cl-preloaded.el | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/lisp/emacs-lisp/cl-preloaded.el b/lisp/emacs-lisp/cl-preloaded.el > index 9445093f143..5235be52996 100644 > --- a/lisp/emacs-lisp/cl-preloaded.el > +++ b/lisp/emacs-lisp/cl-preloaded.el > @@ -176,6 +176,7 @@ cl-struct-define > (i 0) > (offset (if type 0 1))) > (dolist (slot slots) > + (put (car slot) 'slot-name t) > (let* ((props (cl--plist-to-alist (cddr slot))) > (typep (assq :type props)) > (type (if (null typep) t > -- > 2.39.2 > Stefan, any comments? From unknown Sat Aug 09 20:51:07 2025 X-Loop: help-debbugs@gnu.org Subject: bug#62959: [PATCH] Recognize defstruct slot names in various eieio functions Resent-From: Stefan Monnier Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 02 May 2023 20:49:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 62959 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Eli Zaretskii Cc: 62959@debbugs.gnu.org, Thuna Received: via spool by 62959-submit@debbugs.gnu.org id=B62959.168306049911306 (code B ref 62959); Tue, 02 May 2023 20:49:02 +0000 Received: (at 62959) by debbugs.gnu.org; 2 May 2023 20:48:19 +0000 Received: from localhost ([127.0.0.1]:45137 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ptwv1-0002vt-IE for submit@debbugs.gnu.org; Tue, 02 May 2023 16:48:19 -0400 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:51145) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ptwuw-0002ug-9T for 62959@debbugs.gnu.org; Tue, 02 May 2023 16:48:14 -0400 Received: from pmg1.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id BCA461000BF; Tue, 2 May 2023 16:48:04 -0400 (EDT) Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id 475A7100048; Tue, 2 May 2023 16:48:03 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1683060483; bh=3JeHNwvbl/t2IW7Awc7FnvqnnAsqEEf6x44S+dM4W8Y=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=kGywSPoenvXX79BuYqSU3QIOSrIWvE3qNIzbjcelIeTPu8BfQuRaT2C3zZSvnGlB0 0uai6rMgk5ck5b+Y6zbRJpG1t6F7Xcao3lNkOPqIyV7PdwPs6lFIGre+tj4pnJW+/T SL4SBYvdoalrJ1PEKDBWDWyv/wj5+vq73LUG46uDY947tjmVmOflomf+ohxGGRe2ls YUYN8UJR7tXQEMW0sFTD9YP/CxmHEWPq5RG1zew9vBRBScnrwEL1OQIwQuDzGmDk/D Qe4H7HL2dnnR92R4C07QlZh1D37FsXfgvIrE0biZTjzu5LVWXpibMJ75QtYjBKhr5a +mYqG3dLaT+bQ== Received: from lechazo (lechon.iro.umontreal.ca [132.204.27.242]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 1E3761202AF; Tue, 2 May 2023 16:48:03 -0400 (EDT) From: Stefan Monnier In-Reply-To: <83cz3z6o8p.fsf@gnu.org> (Eli Zaretskii's message of "Thu, 20 Apr 2023 09:50:46 +0300") Message-ID: References: <87o7njv7qh.fsf@gmail.com> <83cz3z6o8p.fsf@gnu.org> Date: Tue, 02 May 2023 16:48:02 -0400 User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL 0.048 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain T_SCC_BODY_TEXT_LINE -0.01 - X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) 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: -3.3 (---) >> diff --git a/lisp/emacs-lisp/cl-preloaded.el b/lisp/emacs-lisp/cl-preloaded.el >> index 9445093f143..5235be52996 100644 >> --- a/lisp/emacs-lisp/cl-preloaded.el >> +++ b/lisp/emacs-lisp/cl-preloaded.el >> @@ -176,6 +176,7 @@ cl-struct-define >> (i 0) >> (offset (if type 0 1))) >> (dolist (slot slots) >> + (put (car slot) 'slot-name t) >> (let* ((props (cl--plist-to-alist (cddr slot))) >> (typep (assq :type props)) >> (type (if (null typep) t >> -- >> 2.39.2 >> > > Stefan, any comments? LGTM, thanks, Stefan From unknown Sat Aug 09 20:51:07 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Thuna Subject: bug#62959: closed (Re: bug#62959: [PATCH] Recognize defstruct slot names in various eieio functions) Message-ID: References: <837ctpmybl.fsf@gnu.org> <87o7njv7qh.fsf@gmail.com> X-Gnu-PR-Message: they-closed 62959 X-Gnu-PR-Package: emacs X-Gnu-PR-Keywords: patch Reply-To: 62959@debbugs.gnu.org Date: Wed, 03 May 2023 11:47:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1683114422-2354-1" This is a multi-part message in MIME format... ------------=_1683114422-2354-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #62959: [PATCH] Recognize defstruct slot names in various eieio functions which was filed against the emacs package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 62959@debbugs.gnu.org. --=20 62959: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D62959 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1683114422-2354-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 62959-done) by debbugs.gnu.org; 3 May 2023 11:46:44 +0000 Received: from localhost ([127.0.0.1]:45762 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1puAwW-0000bS-78 for submit@debbugs.gnu.org; Wed, 03 May 2023 07:46:44 -0400 Received: from eggs.gnu.org ([209.51.188.92]:42468) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1puAwS-0000bE-MD for 62959-done@debbugs.gnu.org; Wed, 03 May 2023 07:46:43 -0400 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 1puAwM-0006U6-9s; Wed, 03 May 2023 07:46:34 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=ODUjnVHnvrDf9RrYzJfRhayIO2WeRcgDMU86uPWwFT0=; b=Z+dDOlQQuBrL G/EASJ5EbJLrhws+etlZAcJETHlF1S+qtLj5Hr36KIVkzHt+WL1qq7DQPazcxpRKQnjn4gIJSLu7J b79q5dplXrsN+QQvv3Pa7q0fwA9hosITcqRbJkNpJu8CwtWd5GAXqxk8qd1RfF1SdEkwBhSGoMYLJ GnQjnCWayc2b3swPiK5/SYq/9I47mojY6UFOftSC9zs/UWabzlzKmiZSE6kewm1NFwxqS81/x0Q80 LrAeASP5ZmzOOpLJC6OZh3J/IL2uG2gJoo+SM8qMG3wEvxQ34307Gm97/NueZDsufLw4VBt46vCNX efQOM+P6rL+y+8ZE+75WIA==; Received: from [87.69.77.57] (helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1puAwK-00056M-B7; Wed, 03 May 2023 07:46:33 -0400 Date: Wed, 03 May 2023 14:47:10 +0300 Message-Id: <837ctpmybl.fsf@gnu.org> From: Eli Zaretskii To: Stefan Monnier In-Reply-To: (message from Stefan Monnier on Tue, 02 May 2023 16:48:02 -0400) Subject: Re: bug#62959: [PATCH] Recognize defstruct slot names in various eieio functions References: <87o7njv7qh.fsf@gmail.com> <83cz3z6o8p.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 62959-done Cc: 62959-done@debbugs.gnu.org, thuna.cing@gmail.com 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: -3.3 (---) > From: Stefan Monnier > Cc: Thuna , 62959@debbugs.gnu.org > Date: Tue, 02 May 2023 16:48:02 -0400 > > >> diff --git a/lisp/emacs-lisp/cl-preloaded.el b/lisp/emacs-lisp/cl-preloaded.el > >> index 9445093f143..5235be52996 100644 > >> --- a/lisp/emacs-lisp/cl-preloaded.el > >> +++ b/lisp/emacs-lisp/cl-preloaded.el > >> @@ -176,6 +176,7 @@ cl-struct-define > >> (i 0) > >> (offset (if type 0 1))) > >> (dolist (slot slots) > >> + (put (car slot) 'slot-name t) > >> (let* ((props (cl--plist-to-alist (cddr slot))) > >> (typep (assq :type props)) > >> (type (if (null typep) t > >> -- > >> 2.39.2 > >> > > > > Stefan, any comments? > > LGTM, thanks, Thanks, installed on the emacs-29 branch, and closing. ------------=_1683114422-2354-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 19 Apr 2023 22:16:25 +0000 Received: from localhost ([127.0.0.1]:36051 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ppG5y-0007Pb-Gi for submit@debbugs.gnu.org; Wed, 19 Apr 2023 18:16:25 -0400 Received: from lists.gnu.org ([209.51.188.17]:36780) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ppG5r-0007PO-E5 for submit@debbugs.gnu.org; Wed, 19 Apr 2023 18:16:07 -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 1ppG5r-0002Eg-02 for bug-gnu-emacs@gnu.org; Wed, 19 Apr 2023 18:16:03 -0400 Received: from mail-ej1-x635.google.com ([2a00:1450:4864:20::635]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ppG5p-00067c-6B for bug-gnu-emacs@gnu.org; Wed, 19 Apr 2023 18:16:02 -0400 Received: by mail-ej1-x635.google.com with SMTP id a5so1955270ejb.6 for ; Wed, 19 Apr 2023 15:16:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1681942559; x=1684534559; h=mime-version:message-id:date:subject:to:from:from:to:cc:subject :date:message-id:reply-to; bh=ljvDATw9R2xJH0n6mVlpx+PLgeHqOdC2RAIVyqI6y0g=; b=N+U9D4WW5Aa87pp1Hwfmp2QonauwKyq/XP4aVcro44OYOUIz8RGaXSg9fseOxk3hlg qK0NAICwZSJ2AIMk3dcdThgBbbOQtA/k/2V8T4ZKnWxdcMkyrradHDMrZn7mOk89VyV9 S844ZlxqtkneA8Gg48FJbM+WnirqVvrkzTumsoJhRJEFGaD8kmnfrlyVinJAESKTANm7 8rTWKYUcTIkvqec2E4WN8mMeHSEE1c1oUjB1ex3pjqCNAk5w/kwhXCn0MFvxlspMBjHv ZYyQ1335H+uxLAslneZvY4LFE3J/DP/4dH3gvOUXJsHuyx/fKjdbMEj0xrwBnTplLHlG /38A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681942559; x=1684534559; h=mime-version:message-id:date:subject:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=ljvDATw9R2xJH0n6mVlpx+PLgeHqOdC2RAIVyqI6y0g=; b=GQtgsiU+WpoBDcZrnkAbIbB2FVyk45r+z6yKbnkKfnmUJi52jqMk+6C6FL5e11bBa5 cKKDkZcB8S5jg2kTnVSWlVUdqTvqAEiOZNcRFlQKiT1kRyhFPNRwW6vPJEqG+mXmqAk6 +rqo+bNGCB5/C8kCYQmtqpiOoonlS981W0UNdjNwDXQB5qnxqGruLgOLLnb/Y/TWOgqm DOQ6vrSOVCs73KHCYYfxy2Fb6+D/LVYRK6ztjbnmeIFg6skXQFQGNjHgUYH5fHotkPGF aKx/mUDu09iQsR51RXoG8kZQAvIYrDbC0UH6MFrCha6gcsQ+j7KGbSbi9OgEDuNocTh9 Z/vQ== X-Gm-Message-State: AAQBX9f3yg/G2LWGHvvwvYgyBaubsom57GxwYGzKN69bE93uDQmpl6vQ 17feKNFsmhtdqYjEkzL/YXuIJvsAStg= X-Google-Smtp-Source: AKy350YY4AWwdf875DxolGfSppF7+hTgZFspahhF4TRdR+kF68KxQaXh69WjvnCyFhVPlvz+cQYu/A== X-Received: by 2002:a17:906:4e0b:b0:94e:bd38:49bb with SMTP id z11-20020a1709064e0b00b0094ebd3849bbmr18416938eju.23.1681942558774; Wed, 19 Apr 2023 15:15:58 -0700 (PDT) Received: from thuna ([78.177.102.2]) by smtp.gmail.com with ESMTPSA id z4-20020a170906434400b0094f2dca017fsm6097ejm.50.2023.04.19.15.15.57 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Apr 2023 15:15:58 -0700 (PDT) From: Thuna To: bug-gnu-emacs@gnu.org Subject: [PATCH] Recognize defstruct slot names in various eieio functions Date: Thu, 20 Apr 2023 00:15:50 +0200 Message-ID: <87o7njv7qh.fsf@gmail.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Received-SPF: pass client-ip=2a00:1450:4864:20::635; envelope-from=thuna.cing@gmail.com; helo=mail-ej1-x635.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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-Spam-Score: -1.3 (-) 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: -0.0 (/) --=-=-= Content-Type: text/plain The function `eieio--known-slot-name-p' is used by some eieio functions (specifically eieio-oref, eieio-oref-default, and eieio-oset-default) to check whether a slot name is known or not, and if not signals an "Unknown slot" warning. Structs do not make their slots known to `eieio--known-slot-name-p', so the warning is signaled even for valid slot names. Since eieio aims for compatibility with defstruct, this should probably be considered a bug. The function `eieio--known-slot-name-p' checks the variable `eieio--known-slot-names' but also has a fallback for the name's `slot-name' property. In the patch I opted to use the latter. --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-Recognize-defstruct-slot-names-in-various-eieio-func.patch Content-Description: The patch >From 86ed1ed7d024a0d40286d5fe4697258dc98a1b9e Mon Sep 17 00:00:00 2001 From: Thuna Date: Wed, 19 Apr 2023 23:43:22 +0200 Subject: [PATCH] Recognize defstruct slot names in various eieio functions * lisp/emacs-lisp/cl-preloaded.el (cl-struct-define): Set each slot's name's `slot-name' property so that `eieio--known-slot-name-p' can recognize them. --- lisp/emacs-lisp/cl-preloaded.el | 1 + 1 file changed, 1 insertion(+) diff --git a/lisp/emacs-lisp/cl-preloaded.el b/lisp/emacs-lisp/cl-preloaded.el index 9445093f143..5235be52996 100644 --- a/lisp/emacs-lisp/cl-preloaded.el +++ b/lisp/emacs-lisp/cl-preloaded.el @@ -176,6 +176,7 @@ cl-struct-define (i 0) (offset (if type 0 1))) (dolist (slot slots) + (put (car slot) 'slot-name t) (let* ((props (cl--plist-to-alist (cddr slot))) (typep (assq :type props)) (type (if (null typep) t -- 2.39.2 --=-=-=-- ------------=_1683114422-2354-1--