GNU bug report logs - #78782
31.0.50 ; remove eieio's *-list-p

Previous Next

Package: emacs;

Reported by: Pip Cet <pipcet <at> protonmail.com>

Date: Fri, 13 Jun 2025 13:28:04 UTC

Severity: normal

Found in version 31.0.50

Done: Pip Cet <pipcet <at> protonmail.com>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 78782 in the body.
You can then email your comments to 78782 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#78782; Package emacs. (Fri, 13 Jun 2025 13:28:05 GMT) Full text and rfc822 format available.

Acknowledgement sent to Pip Cet <pipcet <at> protonmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Fri, 13 Jun 2025 13:28:05 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Pip Cet <pipcet <at> protonmail.com>
To: bug-gnu-emacs <at> gnu.org, Stefan Monnier <monnier <at> iro.umontreal.ca>
Subject: 31.0.50 ; remove eieio's *-list-p
Date: Fri, 13 Jun 2025 13:27:04 +0000
This code in eieio-core.el:

          (lambda (obj)
            (:documentation
             (format
              "Test OBJ to see if it a list of objects which are a child of type %s"
              cname))
            (when (listp obj)
              (let ((ans t)) ;; nil is valid
                ;; Loop over all the elements of the input list, test
                ;; each to make sure it is a child of the desired object class.
                (while (and obj ans)
                  (setq ans (and (eieio-object-p (car obj))
                                 (object-of-class-p (car obj) 'cname)))
                  (setq obj (cdr obj)))
                ans))))

creates *-list-p, which then tests whether a list of objects are all
descendants of class 'cname, a literal symbol.  This works only if the
class we're defining is called "cname", and no one noticed, so it's time
to remove this obsolete function (obsoleted in 25.1).

The code has been in place since:

commit 2c47eaa18a4a3f7eb53ed826d8c5d018ac843586
AuthorDate: Tue May 18 17:13:37 2021 -0400

This would probably also make (defclass proper nil 'x) work, instead of
redefining proper-list-p to be a different function.

OK to do this on master?





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78782; Package emacs. (Fri, 13 Jun 2025 14:15:04 GMT) Full text and rfc822 format available.

Message #8 received at 78782 <at> debbugs.gnu.org (full text, mbox):

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Pip Cet <pipcet <at> protonmail.com>
Cc: 78782 <at> debbugs.gnu.org
Subject: Re: 31.0.50 ; remove eieio's *-list-p
Date: Fri, 13 Jun 2025 10:14:36 -0400
> OK to do this on master?

+1


        Stefan





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78782; Package emacs. (Sat, 28 Jun 2025 09:15:04 GMT) Full text and rfc822 format available.

Message #11 received at 78782 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Pip Cet <pipcet <at> protonmail.com>
Cc: 78782 <at> debbugs.gnu.org, monnier <at> iro.umontreal.ca
Subject: Re: bug#78782: 31.0.50 ; remove eieio's *-list-p
Date: Sat, 28 Jun 2025 12:14:32 +0300
> Date: Fri, 13 Jun 2025 13:27:04 +0000
> From:  Pip Cet via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org>
> 
> This code in eieio-core.el:
> 
>           (lambda (obj)
>             (:documentation
>              (format
>               "Test OBJ to see if it a list of objects which are a child of type %s"
>               cname))
>             (when (listp obj)
>               (let ((ans t)) ;; nil is valid
>                 ;; Loop over all the elements of the input list, test
>                 ;; each to make sure it is a child of the desired object class.
>                 (while (and obj ans)
>                   (setq ans (and (eieio-object-p (car obj))
>                                  (object-of-class-p (car obj) 'cname)))
>                   (setq obj (cdr obj)))
>                 ans))))
> 
> creates *-list-p, which then tests whether a list of objects are all
> descendants of class 'cname, a literal symbol.  This works only if the
> class we're defining is called "cname", and no one noticed, so it's time
> to remove this obsolete function (obsoleted in 25.1).
> 
> The code has been in place since:
> 
> commit 2c47eaa18a4a3f7eb53ed826d8c5d018ac843586
> AuthorDate: Tue May 18 17:13:37 2021 -0400
> 
> This would probably also make (defclass proper nil 'x) work, instead of
> redefining proper-list-p to be a different function.
> 
> OK to do this on master?

Fine by me, thanks.




Reply sent to Pip Cet <pipcet <at> protonmail.com>:
You have taken responsibility. (Sat, 28 Jun 2025 09:18:02 GMT) Full text and rfc822 format available.

Notification sent to Pip Cet <pipcet <at> protonmail.com>:
bug acknowledged by developer. (Sat, 28 Jun 2025 09:18:03 GMT) Full text and rfc822 format available.

Message #16 received at 78782-done <at> debbugs.gnu.org (full text, mbox):

From: Pip Cet <pipcet <at> protonmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: monnier <at> iro.umontreal.ca, 78782-done <at> debbugs.gnu.org
Subject: Re: bug#78782: 31.0.50 ; remove eieio's *-list-p
Date: Sat, 28 Jun 2025 09:17:37 +0000
"Eli Zaretskii" <eliz <at> gnu.org> writes:

>> Date: Fri, 13 Jun 2025 13:27:04 +0000
>> From:  Pip Cet via "Bug reports for GNU Emacs,
>>  the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org>
>>
>> This code in eieio-core.el:
>>
>>           (lambda (obj)
>>             (:documentation
>>              (format
>>               "Test OBJ to see if it a list of objects which are a child of type %s"
>>               cname))
>>             (when (listp obj)
>>               (let ((ans t)) ;; nil is valid
>>                 ;; Loop over all the elements of the input list, test
>>                 ;; each to make sure it is a child of the desired object class.
>>                 (while (and obj ans)
>>                   (setq ans (and (eieio-object-p (car obj))
>>                                  (object-of-class-p (car obj) 'cname)))
>>                   (setq obj (cdr obj)))
>>                 ans))))
>>
>> creates *-list-p, which then tests whether a list of objects are all
>> descendants of class 'cname, a literal symbol.  This works only if the
>> class we're defining is called "cname", and no one noticed, so it's time
>> to remove this obsolete function (obsoleted in 25.1).
>>
>> The code has been in place since:
>>
>> commit 2c47eaa18a4a3f7eb53ed826d8c5d018ac843586
>> AuthorDate: Tue May 18 17:13:37 2021 -0400
>>
>> This would probably also make (defclass proper nil 'x) work, instead of
>> redefining proper-list-p to be a different function.
>>
>> OK to do this on master?
>
> Fine by me, thanks.

Done in:

    af68c6e8255: Remove eieio's ...-list-p predicate (bug#78782)

I'd kept the bug open in case there would be any problems, but there
weren't.  Closing now.

Pip





bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sat, 26 Jul 2025 11:24:12 GMT) Full text and rfc822 format available.

This bug report was last modified 15 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.