From 7db858edda56f5adc48c3bf01713dc8e0b0cd5e3 Mon Sep 17 00:00:00 2001 From: Vasily Levchenko Date: Tue, 27 Sep 2016 14:48:29 +0300 Subject: [PATCH] native.backend: dummy one --- .../backend.native/backend.native.patch | 34 +++++++++++ .../backend.native/bc.frontend/build.gradle | 11 ++++ experiments/backend.native/build.gradle | 57 +++++++++++++++++++ experiments/backend.native/cli.bc/.log | 0 .../backend.native/cli.bc/build.gradle | 57 +++++++++++++++++++ .../cli.native.iml => cli.bc/cli.bc.iml} | 0 .../org/jetbrains/kotlin/cli/bc/K2Native.kt | 4 -- .../cli/bc/K2NativeCompilerArguments.java | 0 .../backend.native/compiler/build.gradle | 11 ++++ .../backend.native/fix_core_imports.patch | 25 ++++++++ experiments/backend.native/frontend.patch | 12 ++++ .../update_dependencies.xml.patch | 13 +++++ 12 files changed, 220 insertions(+), 4 deletions(-) create mode 100644 experiments/backend.native/backend.native.patch create mode 100644 experiments/backend.native/bc.frontend/build.gradle create mode 100644 experiments/backend.native/build.gradle create mode 100644 experiments/backend.native/cli.bc/.log create mode 100644 experiments/backend.native/cli.bc/build.gradle rename experiments/backend.native/{cli.native/cli.native.iml => cli.bc/cli.bc.iml} (100%) rename experiments/backend.native/{cli.native => cli.bc}/src/org/jetbrains/kotlin/cli/bc/K2Native.kt (98%) rename experiments/backend.native/{cli.native => cli.bc}/src/org/jetbrains/kotlin/cli/bc/K2NativeCompilerArguments.java (100%) create mode 100644 experiments/backend.native/compiler/build.gradle create mode 100644 experiments/backend.native/fix_core_imports.patch create mode 100644 experiments/backend.native/frontend.patch create mode 100644 experiments/backend.native/update_dependencies.xml.patch diff --git a/experiments/backend.native/backend.native.patch b/experiments/backend.native/backend.native.patch new file mode 100644 index 00000000000..e807e9881aa --- /dev/null +++ b/experiments/backend.native/backend.native.patch @@ -0,0 +1,34 @@ +diff --git a/compiler/backend/backend.iml b/compiler/backend/backend.iml +index 35bbf20..cfbb3dc 100644 +--- a/compiler/backend/backend.iml ++++ b/compiler/backend/backend.iml +@@ -15,5 +15,6 @@ + + + ++ + + +\ No newline at end of file +diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/state/GenerationState.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/state/GenerationState.kt +index 39077d2..f0cbb87 100644 +--- a/compiler/backend/src/org/jetbrains/kotlin/codegen/state/GenerationState.kt ++++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/state/GenerationState.kt +@@ -20,6 +20,7 @@ import com.intellij.openapi.project.Project + import com.intellij.openapi.util.ModificationTracker + import com.intellij.psi.PsiElement + import org.jetbrains.kotlin.backend.jvm.JvmIrCodegenFactory ++import org.jetbrains.kotlin.backend.native.NativeIrCodegenFactory + import org.jetbrains.kotlin.builtins.ReflectionTypes + import org.jetbrains.kotlin.codegen.* + import org.jetbrains.kotlin.codegen.`when`.MappingsClassesForWhenByEnum +@@ -69,7 +70,8 @@ class GenerationState @JvmOverloads constructor( + // TODO: get rid of it with the proper module infrastructure + val outDirectory: File? = null, + private val onIndependentPartCompilationEnd: GenerationStateEventCallback = GenerationStateEventCallback.DO_NOTHING, +- val codegenFactory: CodegenFactory = if (configuration.getBoolean(JVMConfigurationKeys.IR)) JvmIrCodegenFactory else DefaultCodegenFactory ++ //val codegenFactory: CodegenFactory = if (configuration.getBoolean(JVMConfigurationKeys.IR)) NativeIrCodegenFactory else DefaultCodegenFactory ++ val codegenFactory: CodegenFactory = NativeIrCodegenFactory + ) { + abstract class GenerateClassFilter { + abstract fun shouldAnnotateClass(processingClassOrObject: KtClassOrObject): Boolean diff --git a/experiments/backend.native/bc.frontend/build.gradle b/experiments/backend.native/bc.frontend/build.gradle new file mode 100644 index 00000000000..02f67980c44 --- /dev/null +++ b/experiments/backend.native/bc.frontend/build.gradle @@ -0,0 +1,11 @@ +buildscript { + ext.kotlin_version = '1.0.3' + repositories { + mavenCentral() + } + dependencies { + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.0.3" + } +} +apply plugin: 'java' +apply plugin: 'kotlin' \ No newline at end of file diff --git a/experiments/backend.native/build.gradle b/experiments/backend.native/build.gradle new file mode 100644 index 00000000000..ca1d8289770 --- /dev/null +++ b/experiments/backend.native/build.gradle @@ -0,0 +1,57 @@ +buildscript { + ext.kotlin_version = '1.0.3' + repositories { + mavenCentral() + } + + dependencies { + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + } + +} + +apply plugin: 'java' +apply plugin: 'kotlin' + + +dependencies { + compile files('../kotlin-ir/dist//kotlin-build-common-sources.jar', + '../kotlin-ir/dist//kotlin-compiler-before-shrink.jar', + '../kotlin-ir/dist//kotlin-compiler-for-maven.jar', + '../kotlin-ir/dist//kotlin-compiler-javadoc.jar', + '../kotlin-ir/dist//kotlin-compiler-sources.jar', + '../kotlin-ir/dist//kotlin-mock-runtime-for-test.jar', + '../kotlin-ir/dist//kotlin-reflect-before-jarjar.jar', + '../kotlin-ir/dist//kotlin-reflect-jarjar.jar', + '../kotlin-ir/dist//kotlin-reflect-sources-for-maven.jar', + '../kotlin-ir/dist//kotlinc/lib/android-extensions-compiler.jar', + '../kotlin-ir/dist//kotlinc/lib/kotlin-annotation-processing.jar', + '../kotlin-ir/dist//kotlinc/lib/kotlin-ant.jar', + '../kotlin-ir/dist//kotlinc/lib/kotlin-build-common-test.jar', + '../kotlin-ir/dist//kotlinc/lib/kotlin-build-common.jar', + '../kotlin-ir/dist//kotlinc/lib/kotlin-compiler.jar', + '../kotlin-ir/dist//kotlinc/lib/kotlin-daemon-client.jar', + '../kotlin-ir/dist//kotlinc/lib/kotlin-jslib-sources.jar', + '../kotlin-ir/dist//kotlinc/lib/kotlin-jslib.jar', + '../kotlin-ir/dist//kotlinc/lib/kotlin-preloader.jar', + '../kotlin-ir/dist//kotlinc/lib/kotlin-reflect-internal-bootstrap.jar', + '../kotlin-ir/dist//kotlinc/lib/kotlin-reflect.jar', + '../kotlin-ir/dist//kotlinc/lib/kotlin-runner.jar', + '../kotlin-ir/dist//kotlinc/lib/kotlin-runtime-internal-bootstrap.jar', + '../kotlin-ir/dist//kotlinc/lib/kotlin-runtime-sources.jar', + '../kotlin-ir/dist//kotlinc/lib/kotlin-runtime.jar', + '../kotlin-ir/dist//kotlinc/lib/kotlin-test-internal-bootstrap.jar', + '../kotlin-ir/dist//kotlinc/lib/kotlin-test.jar') +} + +sourceSets { + main.java.srcDirs += 'compiler/ir/backend.native/src/' + main.kotlin.srcDirs += 'compiler/ir/backend.native/src/' +} + +task jars { + project.buildscript.configurations.classpath.each { + String jarName = it.getName(); + print jarName + ":" + } +} \ No newline at end of file diff --git a/experiments/backend.native/cli.bc/.log b/experiments/backend.native/cli.bc/.log new file mode 100644 index 00000000000..e69de29bb2d diff --git a/experiments/backend.native/cli.bc/build.gradle b/experiments/backend.native/cli.bc/build.gradle new file mode 100644 index 00000000000..cae496d406e --- /dev/null +++ b/experiments/backend.native/cli.bc/build.gradle @@ -0,0 +1,57 @@ +buildscript { + ext.kotlin_version = '1.0.3' + repositories { + mavenCentral() + } + + dependencies { + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + } + +} + +apply plugin: 'java' +apply plugin: 'kotlin' + + +dependencies { + compile files('../../kotlin-ir/dist//kotlin-build-common-sources.jar', + '../../kotlin-ir/dist//kotlin-compiler-before-shrink.jar', + '../../kotlin-ir/dist//kotlin-compiler-for-maven.jar', + '../../kotlin-ir/dist//kotlin-compiler-javadoc.jar', + '../../kotlin-ir/dist//kotlin-compiler-sources.jar', + '../../kotlin-ir/dist//kotlin-mock-runtime-for-test.jar', + '../../kotlin-ir/dist//kotlin-reflect-before-jarjar.jar', + '../../kotlin-ir/dist//kotlin-reflect-jarjar.jar', + '../../kotlin-ir/dist//kotlin-reflect-sources-for-maven.jar', + '../../kotlin-ir/dist//kotlinc/lib/android-extensions-compiler.jar', + '../../kotlin-ir/dist//kotlinc/lib/kotlin-annotation-processing.jar', + '../../kotlin-ir/dist//kotlinc/lib/kotlin-ant.jar', + '../../kotlin-ir/dist//kotlinc/lib/kotlin-build-common-test.jar', + '../../kotlin-ir/dist//kotlinc/lib/kotlin-build-common.jar', + '../../kotlin-ir/dist//kotlinc/lib/kotlin-compiler.jar', + '../../kotlin-ir/dist//kotlinc/lib/kotlin-daemon-client.jar', + '../../kotlin-ir/dist//kotlinc/lib/kotlin-jslib-sources.jar', + '../../kotlin-ir/dist//kotlinc/lib/kotlin-jslib.jar', + '../../kotlin-ir/dist//kotlinc/lib/kotlin-preloader.jar', + '../../kotlin-ir/dist//kotlinc/lib/kotlin-reflect-internal-bootstrap.jar', + '../../kotlin-ir/dist//kotlinc/lib/kotlin-reflect.jar', + '../../kotlin-ir/dist//kotlinc/lib/kotlin-runner.jar', + '../../kotlin-ir/dist//kotlinc/lib/kotlin-runtime-internal-bootstrap.jar', + '../../kotlin-ir/dist//kotlinc/lib/kotlin-runtime-sources.jar', + '../../kotlin-ir/dist//kotlinc/lib/kotlin-runtime.jar', + '../../kotlin-ir/dist//kotlinc/lib/kotlin-test-internal-bootstrap.jar', + '../../kotlin-ir/dist//kotlinc/lib/kotlin-test.jar') +} + +sourceSets { + main.java.srcDirs += 'src' + main.kotlin.srcDirs += 'src' +} + +task jars { + project.buildscript.configurations.classpath.each { + String jarName = it.getName(); + print jarName + ":" + } +} \ No newline at end of file diff --git a/experiments/backend.native/cli.native/cli.native.iml b/experiments/backend.native/cli.bc/cli.bc.iml similarity index 100% rename from experiments/backend.native/cli.native/cli.native.iml rename to experiments/backend.native/cli.bc/cli.bc.iml diff --git a/experiments/backend.native/cli.native/src/org/jetbrains/kotlin/cli/bc/K2Native.kt b/experiments/backend.native/cli.bc/src/org/jetbrains/kotlin/cli/bc/K2Native.kt similarity index 98% rename from experiments/backend.native/cli.native/src/org/jetbrains/kotlin/cli/bc/K2Native.kt rename to experiments/backend.native/cli.bc/src/org/jetbrains/kotlin/cli/bc/K2Native.kt index f0834cd3002..e51afe39df8 100644 --- a/experiments/backend.native/cli.native/src/org/jetbrains/kotlin/cli/bc/K2Native.kt +++ b/experiments/backend.native/cli.bc/src/org/jetbrains/kotlin/cli/bc/K2Native.kt @@ -21,10 +21,6 @@ import java.lang.System.out import java.util.Collections.emptyList import kotlin.reflect.jvm.internal.impl.load.java.JvmAbi -/** - * Created by minamoto on 14/09/16. - */ - class K2Native : CLICompiler() { override fun doExecute(arguments: K2NativeCompilerArguments, configuration: CompilerConfiguration, rootDisposable: Disposable): ExitCode { configuration.put(CommonConfigurationKeys.MODULE_NAME, JvmAbi.DEFAULT_MODULE_NAME) diff --git a/experiments/backend.native/cli.native/src/org/jetbrains/kotlin/cli/bc/K2NativeCompilerArguments.java b/experiments/backend.native/cli.bc/src/org/jetbrains/kotlin/cli/bc/K2NativeCompilerArguments.java similarity index 100% rename from experiments/backend.native/cli.native/src/org/jetbrains/kotlin/cli/bc/K2NativeCompilerArguments.java rename to experiments/backend.native/cli.bc/src/org/jetbrains/kotlin/cli/bc/K2NativeCompilerArguments.java diff --git a/experiments/backend.native/compiler/build.gradle b/experiments/backend.native/compiler/build.gradle new file mode 100644 index 00000000000..02f67980c44 --- /dev/null +++ b/experiments/backend.native/compiler/build.gradle @@ -0,0 +1,11 @@ +buildscript { + ext.kotlin_version = '1.0.3' + repositories { + mavenCentral() + } + dependencies { + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.0.3" + } +} +apply plugin: 'java' +apply plugin: 'kotlin' \ No newline at end of file diff --git a/experiments/backend.native/fix_core_imports.patch b/experiments/backend.native/fix_core_imports.patch new file mode 100644 index 00000000000..771b8cf1950 --- /dev/null +++ b/experiments/backend.native/fix_core_imports.patch @@ -0,0 +1,25 @@ +diff --git a/core/builtins/src/kotlin/Progressions.kt b/core/builtins/src/kotlin/Progressions.kt +index 704d49f..509baaa 100644 +--- a/core/builtins/src/kotlin/Progressions.kt ++++ b/core/builtins/src/kotlin/Progressions.kt +@@ -18,6 +18,7 @@ + + package kotlin.ranges + ++import java.lang.IllegalArgumentException + import kotlin.internal.getProgressionLastElement + + /** +diff --git a/core/builtins/src/kotlin/internal/progressionUtil.kt b/core/builtins/src/kotlin/internal/progressionUtil.kt +index 026c99f..f7a222e 100644 +--- a/core/builtins/src/kotlin/internal/progressionUtil.kt ++++ b/core/builtins/src/kotlin/internal/progressionUtil.kt +@@ -16,6 +16,8 @@ + + package kotlin.internal + ++import java.lang.IllegalArgumentException ++ + // a mod b (in arithmetical sense) + private fun mod(a: Int, b: Int): Int { + val mod = a % b diff --git a/experiments/backend.native/frontend.patch b/experiments/backend.native/frontend.patch new file mode 100644 index 00000000000..67ecb985ce4 --- /dev/null +++ b/experiments/backend.native/frontend.patch @@ -0,0 +1,12 @@ +diff --git a/compiler/frontend/frontend.iml b/compiler/frontend/frontend.iml +index 15545cc..00b8bed 100644 +--- a/compiler/frontend/frontend.iml ++++ b/compiler/frontend/frontend.iml +@@ -15,5 +15,6 @@ + + + ++ + + +\ No newline at end of file diff --git a/experiments/backend.native/update_dependencies.xml.patch b/experiments/backend.native/update_dependencies.xml.patch new file mode 100644 index 00000000000..edc9ee99bff --- /dev/null +++ b/experiments/backend.native/update_dependencies.xml.patch @@ -0,0 +1,13 @@ +diff --git a/update_dependencies.xml b/update_dependencies.xml +index cbfcb42..b5c029f 100644 +--- a/update_dependencies.xml ++++ b/update_dependencies.xml +@@ -74,7 +74,7 @@ + + + + +