ed2191b4a3f7be4d139a323d9f766a7b07ce496b
* Initializers lowering fix: clone init blocks. In order to let following phases to modify IR we need to clone init blocks for each constructor before inserting it. * Used DeepCopyIRTreeWithDescriptors. * Shared variables lowering must be performed before local functions lowering. Local functions lowering makes all variables non-shared, thus they must be transformed into Ref<> before this. * Moved all initializers into a method. In order not to deal with copying of IR at all it is easier to create a method 'initialize' which will be called from each constructor. * Used right parameters for call. * If class has primary constructor then move initializers to it. * review fixes
Kotlin-native backend
Download dependencies:
./gradlew dependencies:update
Then build the compiler:
./gradlew dist
After that you should be able to compile your programs like that:
./dist/bin/konanc hello.kt -o hello
For an optimized compilation use -opt:
./dist/bin/konanc hello.kt -o hello -opt
For some tests, use:
./gradlew backend.native:tests:run
To run blackbox compiler tests from JVM Kotlin use (takes time):
./gradlew run_external
Description
Languages
Kotlin
79.9%
Java
10.4%
Swift
4.3%
C
2.8%
C++
2.1%
Other
0.3%