uv/scripts/benchmarks
Charlie Marsh 471a1d657d
Migrate resolver proof-of-concept to PubGrub (#97)
## Summary

This PR enables the proof-of-concept resolver to backtrack by way of
using the `pubgrub-rs` crate.

Rather than using PubGrub as a _framework_ (implementing the
`DependencyProvider` trait, letting PubGrub call us), I've instead
copied over PubGrub's primary solver hook (which is only ~100 lines or
so) and modified it for our purposes (e.g., made it async).

There's a lot to improve here, but it's a start that will let us
understand PubGrub's appropriateness for this problem space. A few
observations:

- In simple cases, the resolver is slower than our current (naive)
resolver. I think it's just that the pipelining isn't as efficient as in
the naive case, where we can just stream package and version fetches
concurrently without any bottlenecks.
- A lot of the code here relates to bridging PubGrub with our own
abstractions -- so we need a `PubGrubPackage`, a `PubGrubVersion`, etc.
2023-10-15 22:05:44 -04:00
..
compile.sh Migrate resolver proof-of-concept to PubGrub (#97) 2023-10-15 22:05:44 -04:00
requirements-large.txt Add benchmark scripts (#69) 2023-10-08 23:37:38 +00:00
requirements.in Add benchmark scripts (#69) 2023-10-08 23:37:38 +00:00
requirements.txt Add benchmark scripts (#69) 2023-10-08 23:37:38 +00:00
sync.sh Add benchmark scripts (#69) 2023-10-08 23:37:38 +00:00
uninstall.sh Add a script to benchmark uninstalls (#78) 2023-10-09 16:59:15 -04:00