[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#67008: 30.0.50; Multiple major mode parents
From: |
Stefan Monnier |
Subject: |
bug#67008: 30.0.50; Multiple major mode parents |
Date: |
Sun, 12 Nov 2023 11:41:35 -0500 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
>> Having read a bit further, I'm now not sure that `merge-ordered-lists`
>> implements C3. I suspect it provides a useful primitive with which to
>> implement C3 but whether it gives the same result as C3 or not depends
>> on how we call it.
> Yes, the output seems very sensitive about the input order:
>
> (B A) (C A) (D B) (E D C) -> (E D B C A)
>
> (E D C) (B A) (C A) (D B) -> (E D C B A)
Yes, that's on purpose: when the dependencies expressed by the
(sub)lists don't enforce a unique solution, the order between the
(sub)lists is used to choose between the available options.
> Maybe that's obvious for someone who knows how to use it.
I improved the docstring to try and clarify.
> It could probably be used as a general-purpose topo-sorter but it's not
> a very efficient one (at least quadratic, possibly cubic).
Also it doesn't start from a graph but from a lists of lists (because
for uses in method inheritance it's very desirable that the ordering be
"monotonic": if A comes before B in the linearization of class C's
parents then the same should be true in the linearization of all its
subclasses).
Stefan
- bug#67008: 30.0.50; Multiple major mode parents, (continued)
- bug#67008: 30.0.50; Multiple major mode parents, Dmitry Gutov, 2023/11/10
- bug#67008: 30.0.50; Multiple major mode parents, Mattias Engdegård, 2023/11/11
- bug#67008: 30.0.50; Multiple major mode parents, Stefan Monnier, 2023/11/11
- bug#67008: 30.0.50; Multiple major mode parents, Stefan Monnier, 2023/11/11
- bug#67008: 30.0.50; Multiple major mode parents, Mattias Engdegård, 2023/11/12
- bug#67008: 30.0.50; Multiple major mode parents,
Stefan Monnier <=
- bug#67008: 30.0.50; Multiple major mode parents, Mattias Engdegård, 2023/11/13
- bug#67008: 30.0.50; Multiple major mode parents, Stefan Monnier, 2023/11/13
- bug#67008: 30.0.50; Multiple major mode parents, Mattias Engdegård, 2023/11/13
- bug#67008: 30.0.50; Multiple major mode parents, Stefan Monnier, 2023/11/13
- bug#67008: 30.0.50; Multiple major mode parents, Mattias Engdegård, 2023/11/16
- bug#67008: 30.0.50; Multiple major mode parents, Stefan Monnier, 2023/11/16
- bug#67008: 30.0.50; Multiple major mode parents, Mattias Engdegård, 2023/11/16
- bug#67008: 30.0.50; Multiple major mode parents, Stefan Monnier, 2023/11/16
- bug#67008: 30.0.50; Multiple major mode parents, Mattias Engdegård, 2023/11/17
- bug#67008: 30.0.50; Multiple major mode parents, Stefan Monnier, 2023/11/17