Extract reflection implementation to module runtime.jvm

This commit is contained in:
Alexander Udalov
2014-11-07 20:08:38 +03:00
parent 4f0d83a7fe
commit 57d37a3860
29 changed files with 33 additions and 12 deletions
+1
View File
@@ -41,6 +41,7 @@
<module fileurl="file://$PROJECT_DIR$/idea/kotlin-android-plugin/kotlin-android-plugin.iml" filepath="$PROJECT_DIR$/idea/kotlin-android-plugin/kotlin-android-plugin.iml" group="ide" /> <module fileurl="file://$PROJECT_DIR$/idea/kotlin-android-plugin/kotlin-android-plugin.iml" filepath="$PROJECT_DIR$/idea/kotlin-android-plugin/kotlin-android-plugin.iml" group="ide" />
<module fileurl="file://$PROJECT_DIR$/compiler/preloader/preloader.iml" filepath="$PROJECT_DIR$/compiler/preloader/preloader.iml" group="compiler/cli" /> <module fileurl="file://$PROJECT_DIR$/compiler/preloader/preloader.iml" filepath="$PROJECT_DIR$/compiler/preloader/preloader.iml" group="compiler/cli" />
<module fileurl="file://$PROJECT_DIR$/core/reflection/reflection.iml" filepath="$PROJECT_DIR$/core/reflection/reflection.iml" group="core" /> <module fileurl="file://$PROJECT_DIR$/core/reflection/reflection.iml" filepath="$PROJECT_DIR$/core/reflection/reflection.iml" group="core" />
<module fileurl="file://$PROJECT_DIR$/core/reflection.jvm/reflection.jvm.iml" filepath="$PROJECT_DIR$/core/reflection.jvm/reflection.jvm.iml" group="core" />
<module fileurl="file://$PROJECT_DIR$/core/runtime.jvm/runtime.jvm.iml" filepath="$PROJECT_DIR$/core/runtime.jvm/runtime.jvm.iml" group="core" /> <module fileurl="file://$PROJECT_DIR$/core/runtime.jvm/runtime.jvm.iml" filepath="$PROJECT_DIR$/core/runtime.jvm/runtime.jvm.iml" group="core" />
<module fileurl="file://$PROJECT_DIR$/core/serialization/serialization.iml" filepath="$PROJECT_DIR$/core/serialization/serialization.iml" group="core" /> <module fileurl="file://$PROJECT_DIR$/core/serialization/serialization.iml" filepath="$PROJECT_DIR$/core/serialization/serialization.iml" group="core" />
<module fileurl="file://$PROJECT_DIR$/core/serialization.java/serialization.java.iml" filepath="$PROJECT_DIR$/core/serialization.java/serialization.java.iml" group="core" /> <module fileurl="file://$PROJECT_DIR$/core/serialization.java/serialization.java.iml" filepath="$PROJECT_DIR$/core/serialization.java/serialization.java.iml" group="core" />
+4 -2
View File
@@ -625,13 +625,14 @@
</sequential> </sequential>
</macrodef> </macrodef>
<new_kotlinc src="${basedir}/core/builtins/src ${basedir}/core/runtime.jvm/src ${basedir}/core/reflection/src" <new_kotlinc src="${basedir}/core/builtins/src ${basedir}/core/runtime.jvm/src ${basedir}/core/reflection/src ${basedir}/core/reflection.jvm/src"
output="${output}/classes/runtime" output="${output}/classes/runtime"
classpath="${basedir}/core/runtime.jvm/src"/> classpath="${basedir}/core/runtime.jvm/src${path.separator}${basedir}/core/reflection.jvm/src"/>
<javac2 destdir="${output}/classes/runtime" debug="true" debuglevel="lines,vars,source" includeAntRuntime="false" <javac2 destdir="${output}/classes/runtime" debug="true" debuglevel="lines,vars,source" includeAntRuntime="false"
source="${java.target}" target="${java.target}"> source="${java.target}" target="${java.target}">
<src path="${basedir}/core/runtime.jvm/src"/> <src path="${basedir}/core/runtime.jvm/src"/>
<src path="${basedir}/core/reflection.jvm/src"/>
<classpath location="${output}/classes/runtime"/> <classpath location="${output}/classes/runtime"/>
</javac2> </javac2>
@@ -660,6 +661,7 @@
<fileset dir="${basedir}/core/builtins/src" includes="**/*"/> <fileset dir="${basedir}/core/builtins/src" includes="**/*"/>
<fileset dir="${basedir}/core/runtime.jvm/src" includes="**/*"/> <fileset dir="${basedir}/core/runtime.jvm/src" includes="**/*"/>
<fileset dir="${basedir}/core/reflection/src" includes="**/*"/> <fileset dir="${basedir}/core/reflection/src" includes="**/*"/>
<fileset dir="${basedir}/core/reflection.jvm/src" includes="**/*"/>
<fileset dir="${basedir}/libraries/stdlib/src" includes="**/*"/> <fileset dir="${basedir}/libraries/stdlib/src" includes="**/*"/>
<zipfileset file="${kotlin-home}/build.txt" prefix="META-INF"/> <zipfileset file="${kotlin-home}/build.txt" prefix="META-INF"/>
@@ -18,12 +18,14 @@ package org.jetbrains.jet.codegen.forTestCompile;
import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.io.FileUtil;
import com.intellij.util.ArrayUtil; import com.intellij.util.ArrayUtil;
import kotlin.Function1;
import kotlin.KotlinPackage; import kotlin.KotlinPackage;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.JetTestUtils; import org.jetbrains.jet.JetTestUtils;
import org.jetbrains.jet.cli.common.ExitCode; import org.jetbrains.jet.cli.common.ExitCode;
import org.jetbrains.jet.cli.jvm.K2JVMCompiler; import org.jetbrains.jet.cli.jvm.K2JVMCompiler;
import org.jetbrains.jet.utils.Profiler; import org.jetbrains.jet.utils.Profiler;
import org.jetbrains.jet.utils.UtilsPackage;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
@@ -37,9 +39,9 @@ import java.util.regex.Pattern;
* @see #runtimeJarForTests * @see #runtimeJarForTests
*/ */
public class ForTestCompileRuntime { public class ForTestCompileRuntime {
private static final String BUILT_INS_SRC_PATH = "core/builtins/src"; private static final String[] PATHS = {
private static final String RUNTIME_JVM_SRC_PATH = "core/runtime.jvm/src"; "core/builtins/src", "core/runtime.jvm/src", "core/reflection/src", "core/reflection.jvm/src"
private static final String REFLECTION_SRC_PATH = "core/reflection/src"; };
private ForTestCompileRuntime() { private ForTestCompileRuntime() {
} }
@@ -59,12 +61,10 @@ public class ForTestCompileRuntime {
} }
public static void compileBuiltIns(@NotNull File destDir) throws IOException { public static void compileBuiltIns(@NotNull File destDir) throws IOException {
compileKotlinToJvm("built-ins", destDir, compileKotlinToJvm("built-ins", destDir, UtilsPackage.join(Arrays.asList(PATHS), File.pathSeparator), PATHS);
BUILT_INS_SRC_PATH + File.pathSeparator + RUNTIME_JVM_SRC_PATH + File.pathSeparator + REFLECTION_SRC_PATH,
BUILT_INS_SRC_PATH, RUNTIME_JVM_SRC_PATH, REFLECTION_SRC_PATH);
JetTestUtils.compileJavaFiles( JetTestUtils.compileJavaFiles(
javaFilesUnder(RUNTIME_JVM_SRC_PATH), javaFilesUnder(PATHS),
Arrays.asList( Arrays.asList(
"-classpath", destDir.getPath(), "-classpath", destDir.getPath(),
"-d", destDir.getPath() "-d", destDir.getPath()
@@ -73,8 +73,13 @@ public class ForTestCompileRuntime {
} }
@NotNull @NotNull
private static List<File> javaFilesUnder(@NotNull String path) { private static List<File> javaFilesUnder(@NotNull String... paths) {
return FileUtil.findFilesByMask(Pattern.compile(".*\\.java"), new File(path)); return KotlinPackage.flatMap(Arrays.asList(paths), new Function1<String, List<File>>() {
@Override
public List<File> invoke(String path) {
return FileUtil.findFilesByMask(Pattern.compile(".*\\.java"), new File(path));
}
});
} }
private static void compileStdlib(@NotNull File destDir) throws IOException { private static void compileStdlib(@NotNull File destDir) throws IOException {
@@ -36,7 +36,7 @@ public class JetCodeConformanceTest extends TestCase {
private static final Pattern SOURCES_FILE_PATTERN = Pattern.compile("(.+\\.java|.+\\.kt|.+\\.js)"); private static final Pattern SOURCES_FILE_PATTERN = Pattern.compile("(.+\\.java|.+\\.kt|.+\\.js)");
private static final List<File> EXCLUDED_FILES_AND_DIRS = Arrays.asList( private static final List<File> EXCLUDED_FILES_AND_DIRS = Arrays.asList(
new File("android.tests.dependencies"), new File("android.tests.dependencies"),
new File("core/runtime.jvm/src/kotlin/reflect/jvm/internal/pcollections"), new File("core/reflection.jvm/src/kotlin/reflect/jvm/internal/pcollections"),
new File("libraries/tools/runtime/target/copied-sources"), new File("libraries/tools/runtime/target/copied-sources"),
new File("dependencies"), new File("dependencies"),
new File("examples"), new File("examples"),
+12
View File
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="kotlin-runtime" level="project" />
</component>
</module>
+1
View File
@@ -35,6 +35,7 @@
<fileset dir="${basedir}/../../../core/builtins/src"/> <fileset dir="${basedir}/../../../core/builtins/src"/>
<fileset dir="${basedir}/../../../core/runtime.jvm/src"/> <fileset dir="${basedir}/../../../core/runtime.jvm/src"/>
<fileset dir="${basedir}/../../../core/reflection/src"/> <fileset dir="${basedir}/../../../core/reflection/src"/>
<fileset dir="${basedir}/../../../core/reflection.jvm/src"/>
</copy> </copy>
</target> </target>
</configuration> </configuration>