Compile independent modules in parallel


#1

Is the option to compile independent modules in parallel supported (from the compiler options in IntelliJ idea) ?

I had this option enabled and was puzzled by the exception below, until I had the idea to check the compiler settings and tried to disable this option (without it it builds with no error):

Kotlin: [Internal Error] java.lang.IllegalArgumentException: Missing extension point: com.intellij.clsStubBuilderFactory in area null
  at com.intellij.openapi.extensions.impl.ExtensionsAreaImpl.getExtensionPoint(ExtensionsAreaImpl.java:403)
  at com.intellij.openapi.extensions.impl.ExtensionsAreaImpl.getExtensionPoint(ExtensionsAreaImpl.java:38)
  at com.intellij.openapi.extensions.Extensions.getExtensions(Extensions.java:110)
  at com.intellij.openapi.extensions.Extensions.getExtensions(Extensions.java:98)
  at com.intellij.psi.impl.compiled.ClassFileStubBuilder.buildStubTree(ClassFileStubBuilder.java:47)
  at com.intellij.psi.impl.compiled.ClassFileStubBuilder.buildStubTree(ClassFileStubBuilder.java:32)
  at com.intellij.psi.stubs.StubTreeBuilder.buildStubTree(StubTreeBuilder.java:51)
  at com.intellij.psi.stubs.CoreStubTreeLoader.readOrBuild(CoreStubTreeLoader.java:48)
  at com.intellij.psi.impl.compiled.ClsFileImpl.getStubTree(ClsFileImpl.java:422)
  at com.intellij.psi.impl.compiled.ClsFileImpl.getStub(ClsFileImpl.java:407)
  at com.intellij.psi.impl.compiled.ClsFileImpl.getClasses(ClsFileImpl.java:147)
  at com.intellij.core.CoreJavaDirectoryService.getClasses(CoreJavaDirectoryService.java:59)
  at com.intellij.psi.impl.JavaPsiFacadeImpl$PsiElementFinderImpl.getClasses(JavaPsiFacadeImpl.java:339)
  at com.intellij.psi.impl.JavaPsiFacadeImpl$PsiElementFinderImpl.getClasses(JavaPsiFacadeImpl.java:330)
  at com.intellij.psi.impl.JavaPsiFacadeImpl.getClasses(JavaPsiFacadeImpl.java:244)
  at com.intellij.psi.impl.file.PsiPackageImpl.getClasses(PsiPackageImpl.java:150)
  at com.intellij.psi.impl.file.PsiPackageImpl.getClasses(PsiPackageImpl.java:140)
  at org.jetbrains.jet.lang.resolve.java.PsiClassFinderImpl.findPsiClasses(PsiClassFinderImpl.java:140)
  at org.jetbrains.jet.lang.resolve.java.provider.MembersCache.buildMembersByNameCache(MembersCache.java:116)
  at org.jetbrains.jet.lang.resolve.java.provider.PackagePsiDeclarationProviderImpl.buildMembersCache(PackagePsiDeclarationProviderImpl.java:51)
  at org.jetbrains.jet.lang.resolve.java.provider.PsiDeclarationProviderBase.getMembersCache(PsiDeclarationProviderBase.java:28)
  at org.jetbrains.jet.lang.resolve.java.resolver.JavaFunctionResolver.resolveFunctionGroup(JavaFunctionResolver.java:413)
  at org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver.resolveFunctionGroup(JavaDescriptorResolver.java:264)
  at org.jetbrains.jet.lang.resolve.java.scope.JavaPackageScopeWithoutMembers.computeFunctionDescriptor(JavaPackageScopeWithoutMembers.java:45)
  at org.jetbrains.jet.lang.resolve.java.scope.JavaBaseScope.getFunctions(JavaBaseScope.java:106)
  at org.jetbrains.jet.lang.resolve.QualifiedExpressionResolver.lookupSimpleNameReference(QualifiedExpressionResolver.java:269)
  at org.jetbrains.jet.lang.resolve.QualifiedExpressionResolver.lookupSelectorDescriptors(QualifiedExpressionResolver.java:208)
  at org.jetbrains.jet.lang.resolve.QualifiedExpressionResolver.lookupDescriptorsForQualifiedExpression(QualifiedExpressionResolver.java:197)
  at org.jetbrains.jet.lang.resolve.QualifiedExpressionResolver.processImportReference(QualifiedExpressionResolver.java:78)
  at org.jetbrains.jet.lang.resolve.ImportsResolver.processImportsInFile(ImportsResolver.java:125)
  at org.jetbrains.jet.lang.resolve.ImportsResolver.processImportsInFile(ImportsResolver.java:94)
  at org.jetbrains.jet.lang.resolve.ImportsResolver.processImports(ImportsResolver.java:85)
  at org.jetbrains.jet.lang.resolve.ImportsResolver.processMembersImports(ImportsResolver.java:79)
  at org.jetbrains.jet.lang.resolve.DeclarationResolver.process(DeclarationResolver.java:97)
  at org.jetbrains.jet.lang.resolve.TopDownAnalyzer.doProcess(TopDownAnalyzer.java:126)
  at org.jetbrains.jet.lang.resolve.TopDownAnalyzer.analyzeFiles(TopDownAnalyzer.java:261)
  at org.jetbrains.jet.lang.resolve.java.AnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration(AnalyzerFacadeForJVM.java:198)
  at org.jetbrains.jet.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$1.invoke(KotlinToJVMBytecodeCompiler.java:318)
  at org.jetbrains.jet.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$1.invoke(KotlinToJVMBytecodeCompiler.java:313)
  at org.jetbrains.jet.cli.common.messages.AnalyzerWithCompilerReport.analyzeAndReport(AnalyzerWithCompilerReport.java:233)
  at org.jetbrains.jet.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyze(KotlinToJVMBytecodeCompiler.java:312)
  at org.jetbrains.jet.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyzeAndGenerate(KotlinToJVMBytecodeCompiler.java:292)
  at org.jetbrains.jet.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyzeAndGenerate(KotlinToJVMBytecodeCompiler.java:273)
  at org.jetbrains.jet.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModule(KotlinToJVMBytecodeCompiler.java:107)
  at org.jetbrains.jet.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules(KotlinToJVMBytecodeCompiler.java:128)
  at org.jetbrains.jet.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.java:141)
  at org.jetbrains.jet.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.java:52)
  at org.jetbrains.jet.cli.common.CLICompiler.exec(CLICompiler.java:128)
  at org.jetbrains.jet.cli.common.CLICompiler.exec(CLICompiler.java:114)
  at org.jetbrains.jet.cli.jvm.K2JVMCompiler.exec(K2JVMCompiler.java:185)
  at org.jetbrains.jet.cli.jvm.K2JVMCompiler.exec(K2JVMCompiler.java:52)
  at org.jetbrains.jet.cli.common.CLICompiler.exec(CLICompiler.java:42)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  at java.lang.reflect.Method.invoke(Method.java:597)
  at org.jetbrains.jet.compiler.runner.CompilerRunnerUtil.invokeExecMethod(CompilerRunnerUtil.java:116)
  at org.jetbrains.jet.compiler.runner.KotlinCompilerRunner.execInProcess(KotlinCompilerRunner.java:78)
  at org.jetbrains.jet.compiler.runner.KotlinCompilerRunner.access$000(KotlinCompilerRunner.java:40)
  at org.jetbrains.jet.compiler.runner.KotlinCompilerRunner$1.fun(KotlinCompilerRunner.java:63)
  at org.jetbrains.jet.compiler.runner.KotlinCompilerRunner$1.fun(KotlinCompilerRunner.java:60)
  at org.jetbrains.jet.compiler.runner.CompilerRunnerUtil.outputCompilerMessagesAndHandleExitCode(CompilerRunnerUtil.java:125)
  at org.jetbrains.jet.compiler.runner.KotlinCompilerRunner.runInProcess(KotlinCompilerRunner.java:60)
  at org.jetbrains.jet.compiler.runner.KotlinCompilerRunner.runCompiler(KotlinCompilerRunner.java:52)
  at org.jetbrains.jet.jps.build.KotlinBuilder.build(KotlinBuilder.java:125)
  at org.jetbrains.jps.incremental.IncProjectBuilder.runModuleLevelBuilders(IncProjectBuilder.java:1070)
  at org.jetbrains.jps.incremental.IncProjectBuilder.runBuildersForChunk(IncProjectBuilder.java:798)
  at org.jetbrains.jps.incremental.IncProjectBuilder.buildTargetsChunk(IncProjectBuilder.java:829)
  at org.jetbrains.jps.incremental.IncProjectBuilder.buildChunkIfAffected(IncProjectBuilder.java:761)
  at org.jetbrains.jps.incremental.IncProjectBuilder.access$800(IncProjectBuilder.java:78)
  at org.jetbrains.jps.incremental.IncProjectBuilder$BuildParallelizer$2.run(IncProjectBuilder.java:730)
  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
  at java.util.concurrent.FutureTask.run(FutureTask.java:138)
  at com.intellij.util.concurrency.BoundedTaskExecutor$1.run(BoundedTaskExecutor.java:35)
  at org.jetbrains.jps.service.impl.SharedThreadPoolImpl$1.run(SharedThreadPoolImpl.java:41)
  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
  at java.util.concurrent.FutureTask.run(FutureTask.java:138)
  at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
  at java.lang.Thread.run(Thread.java:662)

This is with a build based on maven for an android project, in case it makes a difference.

Should I report the issue to YouTrack or is this just not implemented yet?


#2

This option is not supported