Le 02/04/2021 à 22:56, Emmanuel Bourg a écrit : > Step 5: how to build Kotlin 0.6.2350 ???
I have the next steps, the decompiler code was refactored in the SDK in the commit f6c6bec7361fba61ecb3aa955e4145a789d4ed97, and this wasn't used until Kotlin 0.6.2443. Kotlin 0.6.2350 builds with Kotlin 0.6.2338 and the SDK at the preceding commit a28195118431b514179fffe75c9ef5ed1247d6a6. And it works up to Kotlin 0.6.2389. Starting with Kotlin 0.6.2407 two new jar files are required, kotlin-jdk-annotations.jar and kotlin-android-sdk-annotations.jar, they do no contain any code, just xml files defining the JDK methods that are null safe. They can be downloaded from http://teamcity.jetbrains.com (the URL are in the update_dependencies.xml file). With these files the build climbs to Kotlin 0.6.2415. Kotlin 0.6.2422 fails at the "builtins" phase, adding kotlin-runtime.jar to the classpath fixes the issue. Kotlin 0.6.2433 requires a new version of the SDK, the latest from the 134 line (commit 1168c7b8cb4dc8318b8d24037b372141730a0d1f) works fine. There is also a minor nullable type definition to fix in JavaToKotlinTranslator.kt. It continues up to Kotlin 0.6.2500 (except 0.6.2463 which was a short lived branch). Kotlin 0.6.2516 fails because the jet.* packages were renamed to kotlin.*. It turns out the bootstrap compiler must be built with the bootstrap.build.no.tests=true parameter. This embeds the runtime into the compiler jar and allows it to build a more recent, incompatible compiler/runtime. I picked Kotlin 0.6.2451 as the bootstrap compiler to build Kotlin 0.6.2516, then built Kotlin 0.6.2516 with itself and bootstrap.build.no.tests=false. The resulting compiler is able to build Kotlin 0.6.2517. And this is the end of the 0.6.x line. There are missing symbols when building the first 0.7.x tag, I'm still working on it. Emmanuel Bourg