# Compile independent modules in parallel

**URL:** <https://discuss.kotlinlang.org/t/compile-independent-modules-in-parallel/750>\
**Category:** Uncategorized\
**Created:** [September 1, 2013, 12:05pm UTC](https://discuss.kotlinlang.org/t/compile-independent-modules-in-parallel/750 "2013-09-01T12:05:16Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![programingjd](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.kotlinlang.org/programingjd/32/1526_2.png) [@programingjd](https://discuss.kotlinlang.org/u/programingjd)\
**Post date:** [September 1, 2013, 12:05pm UTC](https://discuss.kotlinlang.org/t/compile-independent-modules-in-parallel/750/1 "2013-09-01T12:05:16Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![abreslav](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.kotlinlang.org/abreslav/32/8279_2.png) [@abreslav](https://discuss.kotlinlang.org/u/abreslav)\
**Post date:** [September 2, 2013, 8:07am UTC](https://discuss.kotlinlang.org/t/compile-independent-modules-in-parallel/750/2 "2013-09-02T08:07:46Z")

</div>

This option is not supported
