Get or create a zinc compiler based on compiler setup.
Get the compiler interface for this compiler setup.
Get the compiler interface for this compiler setup. Compile it if not already cached. NB: This usually occurs within the compilerCache entry lock, but in the presence of multiple zinc processes (ie, without nailgun) we need to be more careful not to clobber another compilation attempt.
Create a new zinc compiler based on compiler setup.
Create new globals cache.
Java API for creating compiler.
Create a new java compiler.
Create a new scala compiler.
Create the scala instance for the compiler.
Create the scala instance for the compiler. Includes creating the classloader.
Create a new classloader with the root loader as parent (to avoid zinc itself being included).
Get the actual scala version from the compiler.
Get the actual scala version from the compiler.properties in a classloader. The classloader should only contain one version of scala.