diff options
author | Todd Gamblin <tgamblin@llnl.gov> | 2021-02-05 23:27:05 -0800 |
---|---|---|
committer | Massimiliano Culpo <massimiliano.culpo@gmail.com> | 2021-02-11 15:30:57 +0100 |
commit | 6fe931ccb1bfd9cbd17db167778517600b3857ce (patch) | |
tree | 1f183fb6ba17cee1840788e49084739cd11acd79 /lib | |
parent | 2fbc8caf86e99cd91f0cf4c77a568bba34c500bd (diff) | |
download | spack-6fe931ccb1bfd9cbd17db167778517600b3857ce.tar.gz spack-6fe931ccb1bfd9cbd17db167778517600b3857ce.tar.bz2 spack-6fe931ccb1bfd9cbd17db167778517600b3857ce.tar.xz spack-6fe931ccb1bfd9cbd17db167778517600b3857ce.zip |
spec performance: don't parse in from_node_dict
Constructing a spec from a name instead of setting name directly forces
from_node_dict to call Spec.parse(), which is slow. Avoid this by using a
zero-arg constructor and setting name directly.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/spack/spack/spec.py | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/spack/spack/spec.py b/lib/spack/spack/spec.py index 06767d6c7d..985236bf6d 100644 --- a/lib/spack/spack/spec.py +++ b/lib/spack/spack/spec.py @@ -1786,10 +1786,12 @@ class Spec(object): name = next(iter(node)) node = node[name] - spec = Spec(name, full_hash=node.get('full_hash', None)) + spec = Spec() + spec.name = name spec.namespace = node.get('namespace', None) spec._hash = node.get('hash', None) spec._build_hash = node.get('build_hash', None) + spec._full_hash = node.get('full_hash', None) if 'version' in node or 'versions' in node: spec.versions = vn.VersionList.from_dict(node) |