GNU bug report logs - #77123
29.1; call-next-method

Previous Next

Package: emacs;

Reported by: Christopher Stacy <cstacy <at> dtpq.com>

Date: Wed, 19 Mar 2025 18:21:02 UTC

Severity: normal

Found in version 29.1

Fixed in version 30.1

Done: Stefan Monnier <monnier <at> iro.umontreal.ca>

Bug is archived. No further changes may be made.

Full log


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

From: Christopher Stacy <cstacy <at> dtpq.com>
To: bug-gnu-emacs <at> gnu.org
Cc: Eric Ludlam <zappo <at> gnu.org>, Stefan Monnier <monnier <at> iro.umontreal.ca>
Subject: 29.1; call-next-method
Date: Wed, 19 Mar 2025 14:20:38 -0400
[Message part 1 (text/plain, inline)]
In GNU Emacs 29.1 (build 1, x86_64-apple-darwin20.6.0, Carbon Version
164 AppKit 2022.7) of 2023-08-08 built on Mac-1691499221282.local

eieio-version:  1.4

cl-call-next-method is not calling all the methods I expected.
It does call the methods in the direct superclasses, but it seems to be 
skipping all the indirect ones.

For a subclass FOO of A, B, a call-next-method from an instance of FOO 
will correctly call the  A and B methods. But if for example superclass 
A has mixins X and Y, neither the X or Y methods will be called. These 
are just primary methods. None of the inherited superclass methods are 
being run by call-next-method.

Attached is an example test program,
including test results. There are two
versions: one for Emacs Lisp,
and one is for Common Lisp (CLOS).
CL does it correctly (of course),
but EL gets the wrong answer.

I tested with two different CLOS implementations,
just to make sure I'm not crazy.

The files are identical except for
the compatibility preamble and results,
so you can compare them easily.
TEST#1 illustrates the case where things work right.
The differing answer is just in TEST#2.

Thanks for looking into this!
[simple-test.el (text/plain, attachment)]
[simple-test.lisp (text/plain, attachment)]

This bug report was last modified 86 days ago.

Previous Next


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