'The OS of the architecture spec will update the platform field
if the OS is set to one of the reserved OS types so that the
default OS type can be resolved.  Since the reserved OS
information is only available for the host machine, the platform
will assumed to be the host machine\'s platform.'

@platform_os.setter
def platform_os(self, value):

    value = (str(value) if (value is not None) else None)
    if (value in spack.architecture.Platform.reserved_oss):
        curr_platform = str(spack.architecture.platform())
        self.platform = (self.platform or curr_platform)
        if (self.platform != curr_platform):
            raise ValueError(("Can't    set    arch    spec    OS    to    reserved    value    '%s'    when    the    arch    platform    (%s)    isn't    the    current    platform    (%s)" % (value, self.platform, curr_platform)))
        spec_platform = spack.architecture.get_platform(self.platform)
        value = str(spec_platform.operating_system(value))
    self._platform_os = value
