Kotlin/Nativev0.3,將Kotlin編譯成機器碼
隨著版本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
文章轉載自 開源中國社群 [http://www.oschina.net]
相關文章
- 【譯】說服Kotlin編譯器程式碼安全Kotlin編譯
- [譯] Kotlin VS Java:編譯速度大比拼KotlinJava編譯
- 淺談Kotlin語法篇之lambda編譯成位元組碼過程完全解析(七)Kotlin編譯
- [譯] 將 Kotlin 應用於現有 Java 程式碼的策略KotlinJava
- [譯] 使用 Kotlin 將你的應用程式從 iOS 轉換成 AndroidKotliniOSAndroid
- 【譯】將 Android 專案遷移到 Kotlin 語言AndroidKotlin
- 【Android】書客編輯器安卓Kotlin版Android安卓Kotlin
- 優化使用kotlin開發Android app的編譯速度優化KotlinAndroidAPP編譯
- 將你的 C 語言程式碼編譯成 .NET編譯
- [譯] Kotlin 標準方法備忘Kotlin
- [譯] 當設計模式遇上 Kotlin設計模式Kotlin
- 【譯】當 Kotlin 遇見 GradleKotlinGradle
- 【Kotlin】初識Kotlin(二)Kotlin
- Dive Into Kotlin(一):初探 KotlinKotlin
- 【Kotlin】Kotlin環境搭建Kotlin
- Kotlin-48.JavaScript呼叫Kotlin(Call Kotlin from JavaScript)KotlinJavaScript
- spring boot kotlin java 混編Spring BootKotlinJava
- Java 已老,Kotlin 或將取而代之?JavaKotlin
- Kotlin 概覽——如何看待 Google 將 Kotlin 選為 Android 官方語言?KotlinGoAndroid
- Kotlin 1.3 正式釋出:Coroutine 『畢業』、Kotlin/Native 達成 1.0 Beta 等Kotlin
- 【譯】使用kotlin協程提高app效能KotlinAPP
- [譯] Kotlin 協程高階使用技巧Kotlin
- Kotlin(android)協程中文翻譯KotlinAndroid
- Kotlin-first - 谷歌宣佈Kotlin成為Android開發首選語言Kotlin谷歌Android
- 從 Java 到 Kotlin - 介紹 KotlinJavaKotlin
- Kotlin 學習(2) Kotlin基礎Kotlin
- [Kotlin基礎] Java 呼叫 Kotlin(一)KotlinJava
- Java的指令碼機制、編譯器APIJava指令碼編譯API
- 【譯】kotlin 協程官方文件(6)-通道(Channels)Kotlin
- 【譯】Spring Framework 5.0 中引入 Kotlin 支援SpringFrameworkKotlin
- Kotlin 官方參考文件翻譯完畢Kotlin
- 【Kotlin】初識Kotlin之物件導向Kotlin物件
- Kotlin 知識梳理(1) Kotlin 基礎Kotlin
- 使用 Kotlin DSL 編寫網路爬蟲Kotlin爬蟲
- Kotlin 2版本即將釋出Kotlin
- 程式碼線上編譯器(上)- 編輯及編譯編譯
- MVP+Kotlin原始碼體驗MVPKotlin原始碼
- Kotlin成為正式的Android程式語言KotlinAndroid