NHacker Next
  • new
  • past
  • show
  • ask
  • show
  • jobs
  • submit
Solving Boolean satisfiability and integer programming with Python packaging (mmaaz.ca)
ziofill 2 hours ago [-]
Is the opposite possible? I mean to have the dependency resolver use a sat solver? Would it be faster/slower?
philipov 54 minutes ago [-]
The Conda package manager is available to users of the Anaconda/Miniconda distribution, which is very popular. Conda uses a sat solver for dependency resolution. It's a lot slower than pip, but it's not a thing that has to happen often enough for that to be a problem.

It's a good thing, however, that using conda doesn't preclude one from also using pip.

scheme271 2 hours ago [-]
Totally possible. Some dependency resolvers use a sat solver. The speed depends on the solver and optimizations in the solver vs resolver.
amelius 8 hours ago [-]
I wouldn't be surprised if pip had a SAT solver as a dependency.
philipkglass 6 hours ago [-]
The alternative Python package manager "Conda" does use a SAT solver, which sounds elegant at first but can be frustrating when it runs into slow-to-resolve situations. (This happens frequently, which is why I no longer use Conda on my machines).

https://www.anaconda.com/blog/understanding-and-improving-co...

curiousgal 4 hours ago [-]
Mamba is a drop in replacement for conda which solves that.
akoboldfrying 1 hours ago [-]
"Solves" in what sense? Dependency resolution is an NP-hard problem; if the tool you're using is guaranteed to run quickly, then either (1) there are cases it can't handle but conda can, or (2) the tool's author has just proven P=NP.
__MatrixMan__ 6 hours ago [-]
SAT solvers are great for when you want to create space in your day for idly thinking about the halting problem.
woodruffw 5 hours ago [-]
I think pip’s current resolving backend (resolvelib) doesn’t do any SAT solving.
3abiton 2 hours ago [-]
This was a fun read, very ignobel spirit!
Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact
Rendered at 08:58:24 GMT+0000 (UTC) with Wasmer Edge.