ocaml / opam

opam is a source-based package manager. It supports multiple simultaneous compiler installations, flexible package constraints, and a Git-friendly development workflow.
https://opam.ocaml.org
Other
1.24k stars 353 forks source link

Improve the performance of opam update/init on Windows #5966

Open kit-ty-kate opened 4 months ago

kit-ty-kate commented 4 months ago

WIP attempt at (temporary) fixing #5741 by throwing more silicon^Wdomains at the problem while #5648 is being worked on.

This currently requires:

Current result:

Partly inspired by NTFS really isn't that bad - Robert Collins (LCA 2020)

Related to #5591 Fixes https://github.com/ocaml/opam/issues/3171 Fixes https://github.com/ocaml/opam/issues/4455 Fixes https://github.com/ocaml/opam/issues/2442

kit-ty-kate commented 4 months ago

The PR is now fully working as far as i tested. However given the untested nature of this change, its presence in such a central piece of code and its reliance on big changes in underlying software (opam-file-format) I don't think it should be in 2.2 but i think it a good place to start to think about:

I'll split this PR into several smaller ones once 2.2.0 is out.