You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is most noticeable on Windows, where the file system I/O between opam / OCaml is effectively slower, but the problem can be seen in less-cached environments - e.g. in a Docker container on Linux.
For a git remote, opam is able to short-circuit reloading the entire repository when it detects that there are no changes (this is a good reason for using git remotes, as it's a faster check than for the https remote). However, if there are any changes, the entire repository is reloaded.
It seems we could be fairly easily doing something a little better, and possibly also for the https remote on update. The update is actually applied by means of a patch (even for git remotes), which means that opam always knows exactly which files have changed.
I had a look at this again and it would require #5892 (and also use this diff implementations for VCSs) or someone needs to go on a deep dive and find a way to fix hannesm/patch#17 that matches every implementations of diff
This is most noticeable on Windows, where the file system I/O between opam / OCaml is effectively slower, but the problem can be seen in less-cached environments - e.g. in a Docker container on Linux.
For a git remote, opam is able to short-circuit reloading the entire repository when it detects that there are no changes (this is a good reason for using git remotes, as it's a faster check than for the https remote). However, if there are any changes, the entire repository is reloaded.
It seems we could be fairly easily doing something a little better, and possibly also for the https remote on update. The update is actually applied by means of a patch (even for git remotes), which means that opam always knows exactly which files have changed.
Related to @kit-ty-kate's work on #5741 (and also #5648).
The text was updated successfully, but these errors were encountered: