private boolean performCompilation(List<String> vmOptions,
                                     List<String> args,
                                     StringWriter out,
                                     StringWriter err,
                                     Map<String, List<String>> outputs,
                                     CompileContext context,
                                     ModuleChunk chunk) {
    String bytecodeTarget = JpsGroovycRunner.getBytecodeTarget(context, chunk);
    if (bytecodeTarget != null && System.getProperty(GroovyRtConstants.GROOVY_TARGET_BYTECODE) == null) {
      synchronized (ourGlobalEnvironmentLock) {
        try {
          System.setProperty(GroovyRtConstants.GROOVY_TARGET_BYTECODE, bytecodeTarget);
          return performCompilationInner(vmOptions, args, out, err, outputs, context, chunk);
        }
        finally {
          System.clearProperty(GroovyRtConstants.GROOVY_TARGET_BYTECODE);
        }
      }
    }

    return performCompilationInner(vmOptions, args, out, err, outputs, context, chunk);
  }
private boolean performCompilation(List<String> vmOptions,
                                     List<String> args,
                                     StringWriter out,
                                     StringWriter err,
                                     Map<String, List<String>> outputs,
                                     CompileContext context,
                                     ModuleChunk chunk)