diff --git a/lib/spack/spack/spec.py b/lib/spack/spack/spec.py index 1317df8d077312483281f8113303146697244166..409a866849f7d1f78ac13587b98dd4c690ba81b8 100644 --- a/lib/spack/spack/spec.py +++ b/lib/spack/spack/spec.py @@ -310,10 +310,6 @@ def platform(self, value): refer to valid platforms. """ value = str(value) if value is not None else None - - if value is not None: - spack.architecture.verify_platform(value) - self._platform = value @property @@ -429,6 +425,8 @@ def to_dict(self): @staticmethod def from_dict(d): + if type(d['arch']) != type(d): + return ArchSpec('spackcompat', 'v08', d['arch']) d = d['arch'] return ArchSpec(d['platform'], d['platform_os'], d['target']) @@ -874,7 +872,7 @@ def _set_architecture(self, **kwargs): new_vals = tuple(kwargs.get(arg, None) for arg in arch_attrs) self.architecture = ArchSpec(*new_vals) else: - new_attrvals = [(a, v) for a, v in kwargs.iteritems() + new_attrvals = [(a, v) for a, v in kwargs.iteritems() if a in arch_attrs] for new_attr, new_value in new_attrvals: if getattr(self.architecture, new_attr):