Conversation
- Fixes uninstall by hash and other places where we need to match a specific spec. - Fix an error in provider_index (satisfies() call was backwards) - Fix an error in satisfies_dependencies(): checks were too shallow.
|
@alalazo: This brings test time down from 8 min -> 4 min so I'm curious how this will do in conjunction with your |
Do you mean on Travis? Because in the linked tests I still see 8-9 minutes. Anyhow, I see no improvement with respect to time on my laptop when rebasing the pytest PR, and apparently neither on Travis too 😭 |
|
@alalazo I thought I meant Travis. But I must've looked at the wrong thing 😢 |
|
|
||
| # Simulate specs that were installed before and after a change to | ||
| # Spack's hashing algorithm. This just reverses s2's hash. | ||
| s2._hash = s1.dag_hash()[-1::-1] |
There was a problem hiding this comment.
Whoa, had no idea you could do this in Python. Very neat.
|
This is hard to test since the problems I was seeing are very intermittent (and may only occur after a hash change), but next time I can't uninstall something I'll give this a shot. Btw, do |
|
@adamjstewart: they should. Those were all the same bug -- that matching a concrete spec didn't require a hash match; the parser looked up the spec by hash and compared the whole DAG of the looked up spec. If one DAG was a superset of that, it would still match, so you could get multiple matches for one hash. This should fix the hash matching issues. |
This fixes the problem described in spack#3374, which describes `spack find` ignore explicit/implicit. I believe that this was broken in spack#2626. This restores the behavior of implicit/explicit for me. I believe that it does not screw anything else up, but ....
This fixes the problem described in spack#3374, which describes `spack find` ignore explicit/implicit. I believe that this was broken in spack#2626. This restores the behavior of implicit/explicit for me. I believe that it does not screw anything else up, but ....
This fixes the problem described in spack#3374, which describes `spack find` ignore explicit/implicit. I believe that this was broken in spack#2626. This restores the behavior of implicit/explicit for me. I believe that it does not screw anything else up, but ....
This fixes the problem described in spack#3374, which describes `spack find` ignore explicit/implicit. I believe that this was broken in spack#2626. This restores the behavior of implicit/explicit for me. I believe that it does not screw anything else up, but ....
Fixes #1992. Fixes #1178. Fixes #1377. Fixes #2123.
Fixes:
satisfies()fixed for concrete specs with DAG hashesinstalled_dependents()moved to DB fromPackagebecause we might not know aSpec'sPackageanymore. New version handles specs with unknown packages.Spec.tree()spec.pyImprovements:
spack findandspack.store.db.query()are now faster for simple hash lookupssatisfies()ifquery()only needs to look up by hashspack findusesquery()better.Test:
satisfies()respectsdag_hash()for concrete specs.@davydden @eschnett @alalazo @adamjstewart @becker33