-
Notifications
You must be signed in to change notification settings - Fork 365
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[opam 2.1~alpha3] opam list --installable is really slow #4311
Comments
The bottleneck is in universe check. @AltGr, an idea? |
... which is the actual installability check 😬 the explanation can only be in the differences in how the universe is encoded, I'll check but there might be no easy way out. |
Just a follow-up, here is the same command when the switch invariant is not the default one when upgrading from 2.0:
(it seems to be getting worse? 😟) |
FWIW I'm hitting the same issue; an |
Another example, using opam-repository at
takes:
|
dev meeting: this one's pretty important, but it could go in after rc as its quite a targetted fix. Not completely blocking 2.1.0 but would be nice to fix before 2.1.1 |
Interestingly enough
with ocaml/opam-repository@0b5927e, takes more than 6 minutes to tell me
|
As far as I can see, this issue was fixed by #4882 and seems even faster than before. |
Nice! Thanks a lot for the fix and the update. |
Addresses some remaining costly cases in ocaml#4311 The patch includes a small reorganisation of `OpamSolver`, but the general idea is to fix the performance regression compared to 2.0: - with the introduction of solver invariants, the pre-processing that trimmed packages conflicting with the base in `OpamState` was removed - it was replaced by something much more general (and reliable) at the `OpamCudf` level - but only for calls to the external solver, until now NOTE: this enforces the invariant even for `opam install --coinstallable-with`, which is consistent with 2.0 but had changed in 2.1. Without it we can't really expect reasonable performance in general anyway.
Addresses some remaining costly cases in ocaml#4311 The patch includes a small reorganisation of `OpamSolver`, but the general idea is to fix the performance regression compared to 2.0: - with the introduction of solver invariants, the pre-processing that trimmed packages conflicting with the base in `OpamState` was removed - it was replaced by something much more general (and reliable) at the `OpamCudf` level - but only for calls to the external solver, until now NOTE: this enforces the invariant even for `opam install --coinstallable-with`, which is consistent with 2.0 but had changed in 2.1. Without it we can't really expect reasonable performance in general anyway.
Addresses some remaining costly cases in ocaml#4311 The patch includes a small reorganisation of `OpamSolver`, but the general idea is to fix the performance regression compared to 2.0: - with the introduction of solver invariants, the pre-processing that trimmed packages conflicting with the base in `OpamState` was removed - it was replaced by something much more general (and reliable) at the `OpamCudf` level - but only for calls to the external solver, until now NOTE: this enforces the invariant even for `opam install --coinstallable-with`, which is consistent with 2.0 but had changed in 2.1. Without it we can't really expect reasonable performance in general anyway.
Addresses some remaining costly cases in ocaml#4311 The patch includes a small reorganisation of `OpamSolver`, but the general idea is to fix the performance regression compared to 2.0: - with the introduction of solver invariants, the pre-processing that trimmed packages conflicting with the base in `OpamState` was removed - it was replaced by something much more general (and reliable) at the `OpamCudf` level - but only for calls to the external solver, until now NOTE: this enforces the invariant even for `opam install --coinstallable-with`, which is consistent with 2.0 but had changed in 2.1. Without it we can't really expect reasonable performance in general anyway.
Addresses some remaining costly cases in ocaml#4311 The patch includes a small reorganisation of `OpamSolver`, but the general idea is to fix the performance regression compared to 2.0: - with the introduction of solver invariants, the pre-processing that trimmed packages conflicting with the base in `OpamState` was removed - it was replaced by something much more general (and reliable) at the `OpamCudf` level - but only for calls to the external solver, until now NOTE: this enforces the invariant even for `opam install --coinstallable-with`, which is consistent with 2.0 but had changed in 2.1. Without it we can't really expect reasonable performance in general anyway.
Addresses some remaining costly cases in ocaml#4311 The patch includes a small reorganisation of `OpamSolver`, but the general idea is to fix the performance regression compared to 2.0: - with the introduction of solver invariants, the pre-processing that trimmed packages conflicting with the base in `OpamState` was removed - it was replaced by something much more general (and reliable) at the `OpamCudf` level - but only for calls to the external solver, until now NOTE: this enforces the invariant even for `opam install --coinstallable-with`, which is consistent with 2.0 but had changed in 2.1. Without it we can't really expect reasonable performance in general anyway.
With
opam 2.1~alpha3
:With
opam 2.0.7
:You can use
docker run --rm -it ocurrent/opam:debian-10-ocaml-4.10
to reproduce this.The text was updated successfully, but these errors were encountered: