Kotlin/Native v0.3 发布,将 Kotlin 编译成机器码
http://www.oschina.net/news/86090/kotlinnative-v-0-3
发布于2017年06月23日
我们很高兴地宣布 Kotlin / Native v0.3 发布了。随着版本v0.3的发布,Windows作为编译主机和执行目标以及Google Android设备作为本机活动的执行目标都被支持。所以Windows API'Hello World'将变得很简单:
import win32.* fun main(args: Array<String>) { MessageBoxW(null, "Привет!","标题", MB_YESNOCANCEL or MB_ICONQUESTION) }
调试
新版本支持源级调试(仅限单步)。例如:
$ bin/konanc string0.kt -g -o string0 $ lldb ./string0.kexe (lldb) target create "string0.kexe" Current executable set to 'string0.kexe' (x86_64). (lldb) b string0.kt:1 Breakpoint 1: where = string0.kexe`kfun:main(kotlin.Array<kotlin.String>) + 4 at string0.kt:1, address = 0x0000000100001344 (lldb) r Process 12288 launched: '/Users/jetbrains/kotlin/kotlin-native-release/kotlin-native/string0.kexe' (x86_64) Process 12288 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1 frame #0: 0x0000000100001344 string0.kexe`kfun:main(kotlin.Array<kotlin.String>) at string0.kt:1 -> 1 fun main(args: Array<String>) { 2 val str = "hello" 3 println(str.equals("HElLo", true)) 4 val strI18n = "Привет" 5 println(strI18n.equals("прИВет", true)) 6 println(strI18n.toUpperCase()) 7 println(strI18n.toLowerCase()) (lldb) s Process 12288 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = step in frame #0: 0x0000000100001354 string0.kexe`kfun:main(kotlin.Array<kotlin.String>) at string0.kt:3 1 fun main(args: Array<String>) { 2 val str = "hello" -> 3 println(str.equals("HElLo", true)) 4 val strI18n = "Привет" 5 println(strI18n.equals("прИВет", true)) 6 println(strI18n.toUpperCase()) 7 println(strI18n.toLowerCase())
库
我们引入了一个新的库格式,称为.klib,它将作为Kotlin / Native库的默认分发格式。本地库和框架可以轻松地与.klib进行互操作,并通过指定-library库命令行标志或库Gradle插件选项与Kotlin / Native编译器一起使用。
二进制文件可以在下面下载:
完整更新信息请查看发行说明。
Kotlin/Native 能把 Kotlin 编译成机器码,由 JetBrains 公司开发。注意,该项目仍处于实验性阶段,请选择合适的场景进行使用。
Kotlin/Native 利用 LLVM 将 Kotlin 编译成机器码,现在已支持 4 个平台:
-
Linux (暂时只是 Ubuntu)
-
Mac OS
-
iOS
-
Raspberry Pi