[macro] Forgot to use portable.loadWithEnv()
[portable] Added portable.isVersion(major, minor)