memoized semver check