3 ms·
Composer, the defacto package manager for PHP, uses a SAT solver. It's pretty interesting looking at the code!
by tphan 8y ago
Composer, the defacto package manager for PHP, uses a SAT solver. It's pretty interesting looking at the code!
- blattimwind 8y ago... and also a frequent source of performance and memory issues.
- spdionis 8y agoConsidering it's only a problem when updating dependencies and how good and reliable the result is, it's totally worth it. Worst case in extremely big projects you just add some swap and let it run for a while, the time required is still in the order of tens of minutes. Compare that to hours long c++ build times.
- bojanz 8y agoComposer's solver is pretty advanced. It started as a PHP port of libsolv, which is the library used by both SuSE (zypper) and Fedora (DNF).
- jhayward 8y agoThe Anaconda distribution's package/environment manager for Python (named conda) at one time used the picosat SAT solver for dependency resolution as well. I'm not certain they still do, they've removed blog entries etc. referring to it at some point.
- kalefranz 8y agoYes, it’s still picosat (wrapped in a python library called pycosat). At some point it may be switched out with an alternate SAT implementation, but I suspect SAT in general is very much destined to stay an integral part of conda.