> So two dependency graphs that are logically equivalent but list deps in a different order could theoretically get different resolution
What. What!
> So two dependency graphs that are logically equivalent but list deps in a different order could theoretically get different resolution
What. What!
@fasterthanlime oh no
This sounds like what @juliank has been wrestling with lately
@gnomon @fasterthanlime this probably happens in most solvers because we all build them around SAT solvers and tweak their variable selection.
If you construct them around a global optimization function instead like in pseudo boolean optimization you can likely avoid this (not that I have a proof for it).
For distro package management that's an unsolved problem because if you say "minimize installs" it would pick backend-sqlite over a preferred backend-mysql; but language pms may be fine?
@gnomon @fasterthanlime So a language package manager that allows concurrent versions should get the right result if it can optimize over a global function
maximize(highest version) than minimize(installed)
Whereas for example APT could have a tie still between two identical packages A and B and would need another criterion to say minimize(alphabetic)