nanonyme commented on issue #1988:
URL: https://github.com/apache/buildstream/issues/1988#issuecomment-2625428686

   > The order comes from the `_dependency_cmp()` function, but it seems not 
everything is compared against everything, e.g. I see `bison` compared against 
`gtk-doc` in 3.12 but not against `python3-markdown`, and vice versa in 3.13, 
which leads to them being flipped in the dependencies list of 
`gobject-introspection-base`, which in turn leads to calculating a different 
cache key. So it seems we somehow have a partial order (which is hence 
sensitive to changes in the sorting algorithm) instead of total order, but I 
don't know why yet. That or we have a total order and that's a regression in 
Cython, but us having a imperfect comparison function sounds more likely to me 
somehow.
   
   I guess this is expected in Timsort that not all entries are necessarily 
compared against each other. The result of earlier comparisons may result in 
lack of further comparisons and it doesn't really care that there is such a 
concept as dependencies. It looked like to me that with the 10 items we have 
here, Timsort took around 21 comparisons to sort the list with Python 3.13.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to