Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Cargo isn't satisfied with its own solver either. Solvers are a hard and messy problem.

The problem is theoretically NP complete (a SAT solver), but even harder than that: users also care about picking solutions that optimize for multiple criteria like minimal changes, more recent versions, minimal duplication (if multiple versions can coexist), all while having easy-to-understand errors when dependencies can't be satisfied, and with better-than-NP performance. It ends up being complex and full of compromises.





Go’s solver has been my favorite so far. But it relies on semver actually being meaningful.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: