anchor.diff:  
   For now, we will have to distribute these DLLs with our application, or tell our users to download and install the link:https://www.microsoft.com/en-us/download/details.aspx?id=52685[{ms-cpp-2015-redist}] to get the `VCRUNTIME140.dll` for Java 11-based native images, or link:https://www.microsoft.com/en-hk/download/details.aspx?id=13523[{ms-cpp-2010-redist}] to get the `msvcr100.dll` for Java 8-based native images.
   
  -
  -== Cross-Compilation
  -
  -GraalVM does not support cross-compilation, although it https://github.com/oracle/graal/issues/407[may in the future].
  -For now, we need to compile on Linux to get a Linux executable,
  -compile on MacOS to get a MacOS executable, and compile on Windows to get a Windows executable.
  -
  -We can simulate this by setting up a Continuous Integration/Continuous Deployment tool chain.
  -The https://github.com/remkop/picocli-native-image-demo[picocli-native-image-demo]
  -is an example Gradle project that uses some popular CI/CD tools to build and test native images for multiple platforms. That project also contains some experimental work with using HTTPS in native images.
  -The https://github.com/remkop/picocli-native-image-maven-demo[picocli-native-image-maven-demo] is a similar example Maven project.
  -
  +GraalVM does not support cross-compilation, although it may in the future. For now, we need to compile on Linux to get a Linux executable, compile on MacOS to get a MacOS executable, and compile on Windows to get a Windows executable.
   
   == Conclusion
   
  
positive.code: 
  === Great CLI Apps are Helpful
  
  We made a trade-off: by choosing a command line interface (CLI)
  instead of a graphical user interface (GUI), our application is less easy to learn to use for new users. We can partially make up for that by providing good online help.
  
  Our application should show a usage help message when the user requests help with the `-h` or `--help` option, or when invalid user input is specified. It should also show version information when requested with `-V` or `--version`. We will see how picocli makes it easy to do this.
  
  ==== User Experience
  
  We can make our application more user-friendly by using colors on supported platforms. This doesn’t just look good, it also reduces the cognitive load on the user: the contrast make the important information like commands, options, and parameters stand out from the surrounding text.
  
  The usage help message generated by a picocli-based application uses colors by default. Our `checksum` example looks something like this:
  
  image::checksum-usage-help.png[]
  
  
negative.code: 
  The `picocli-codegen` module includes an annotation processor that can build a model from the picocli annotations at compile time rather than at runtime.
  
  The annotation processor generates Graal configuration files under `META-INF/native-image/picocli-generated/$project` during compilation, to be included in the application jar.
  This includes configuration files for https://github.com/oracle/graal/blob/master/substratevm/REFLECTION.md[reflection], https://github.com/oracle/graal/blob/master/substratevm/RESOURCES.md[resources] and https://github.com/oracle/graal/blob/master/substratevm/DYNAMIC_PROXY.md[dynamic proxies].
  By embedding these configuration files, your jar is instantly Graal-enabled.
  In most cases no further configuration is needed when generating a native image.
  