Subject: Re: 29.1; call-next-method

From: Stefan Monnier <[email-masked]>
Date: Wed, 19 Mar 2025 17:00:08 -0400

> 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 couldn't make your test work as is, but I used the adjusted file below
and it gives me:

    % /usr/bin/emacs -Q --batch -l ~/tmp/foo.el
    (base alpha beta winner)
    (base beta alpha glop flop)
    %

which seems to match your CLOS expectation.  But that was with Debian
testing's Emacs-30.  I don't have an Emacs-29 handy, so I used Debian
stable's Emacs-28.2 and indeed there I see your problem:

    % /usr/bin/emacs -Q --batch -l ~/tmp/foo.el
    (base alpha beta winner)
    (base glop flop)
    %

So, AFAICT this is already fixed in Emacs-30.  I did rework the way the
hierarchy is flattened (to share it with the same code used for major
mode hierarchies, resulting in the new function 'merge-ordered-lists'),
so that's not completely surprising, tho I can't remember noticing that
it would fix a bug.

        Stefan