Create module 'builtins', move 'runtime' -> 'runtime.jvm'
'builtins' will be used for platform-independent core built-in definitions, 'runtime.jvm' for things that should be present at runtime in order for Kotlin code to execute correctly on JVM ProgressionUtil goes to 'builtins' right now because progression iterators depend on it, but should be rewritten to Kotlin later
This commit is contained in:
@@ -50,20 +50,32 @@ fun floatToIntBits(v: String) = "java.lang.Float.floatToIntBits($v)"
|
||||
fun doubleToLongBits(v: String) = "java.lang.Double.doubleToLongBits($v)"
|
||||
|
||||
|
||||
val OUTPUT_DIR: File by Delegates.lazy {
|
||||
val result = File("runtime/kt/")
|
||||
|
||||
fun existingDirectory(path: String): File {
|
||||
val result = File(path)
|
||||
if (!result.exists()) {
|
||||
throw IllegalStateException("Output dir does not exist: ${result.getAbsolutePath()}")
|
||||
}
|
||||
result
|
||||
return result
|
||||
}
|
||||
|
||||
fun generateRuntimeFile(name: String, generate: (PrintWriter) -> Unit) {
|
||||
val file = File(OUTPUT_DIR, name)
|
||||
val BUILT_INS_DIR: File by Delegates.lazy { existingDirectory("core/builtins/src/jet/") }
|
||||
val RUNTIME_JVM_DIR: File by Delegates.lazy { existingDirectory("core/runtime.jvm/src/jet/") }
|
||||
|
||||
fun generateFile(dir: File, name: String, generate: (PrintWriter) -> Unit) {
|
||||
val file = File(dir, name)
|
||||
println("generating $file")
|
||||
PrintWriter(file) use generate
|
||||
}
|
||||
|
||||
fun generateBuiltInFile(name: String, generate: (PrintWriter) -> Unit) {
|
||||
generateFile(BUILT_INS_DIR, name, generate)
|
||||
}
|
||||
|
||||
fun generateRuntimeJvmFile(name: String, generate: (PrintWriter) -> Unit) {
|
||||
generateFile(BUILT_INS_DIR, name, generate)
|
||||
}
|
||||
|
||||
fun generatedBy(out: PrintWriter, generator: String) {
|
||||
out.println("// Generated by $generator")
|
||||
out.println()
|
||||
|
||||
@@ -122,11 +122,11 @@ class GenerateFunctions(val out: PrintWriter, val kind: FunctionKind) {
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
for (kind in FunctionKind.values()) {
|
||||
generateRuntimeFile(kind.getFileName()) {
|
||||
generateBuiltInFile(kind.getFileName()) {
|
||||
GenerateFunctions(it, kind).generateFunctionClasses()
|
||||
}
|
||||
|
||||
generateRuntimeFile(kind.getImplFileName()) {
|
||||
generateRuntimeJvmFile(kind.getImplFileName()) {
|
||||
GenerateFunctions(it, kind).generateFunctionImplClasses()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ class GenerateIterators(val out: PrintWriter) {
|
||||
}
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
generateRuntimeFile("Iterators.kt") {
|
||||
generateBuiltInFile("Iterators.kt") {
|
||||
GenerateIterators(it).generate()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -84,7 +84,7 @@ class GenerateProgressions(val out: PrintWriter) {
|
||||
}
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
generateRuntimeFile("Progressions.kt") {
|
||||
generateBuiltInFile("Progressions.kt") {
|
||||
GenerateProgressions(it).generate()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -81,7 +81,7 @@ class GenerateRanges(val out: PrintWriter) {
|
||||
}
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
generateRuntimeFile("Ranges.kt") {
|
||||
generateBuiltInFile("Ranges.kt") {
|
||||
GenerateRanges(it).generate()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user