皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

Kotlin/Native 0.5 支持在Swift, C和LLVM 5中使用 Kotlin

Kotlin/Native 0.5 支持在Swift, C和LLVM 5中使用 Kotlin

Kotlin/Native 圣诞节特别版 —— Kotlin/Native v0.5 已正式发布。该版本的亮点较多,Kotlin/Native v0.5 增加了在 C, Objective-C APIs 和 Swift 中使用 Kotlin 代码的支持,支持使用 iOS 模拟器的开发,还支持 LLVM 5,还能从 Linux 和 Windows 主机创建 WebAssembly。

添加从 Swift 和 Objective-C 中调用 Kotlin 代码的支持

例如下面这行 Swift 代码

private let parser = KAPPartialParser(composer: KAPCalculator(), partialComposer: PartialRenderer())

创建 Kotlin 类 PartialParser 的实例,并为其提供实现 Kotlin 接口 ExpressionComposer 的 Swift 类 PartialRenderer 的实例。

构建项目

Kotlin/Native 0.5 支持在Swift, C和LLVM 5中使用 Kotlin

IntelliJ IDEA 中的 Kotlin 代码:

Kotlin/Native 0.5 支持在Swift, C和LLVM 5中使用 Kotlin

Kotlin 与 C 语言的互操作性

if (PyArg_ParseTuple(args, "Lss", &session_arg, &string_arg1, &string_arg2)) {
       T_(Server) server = getServer();
       T_(Session) session = { (void*)(uintptr_t)session_arg };
       const char* string = __ kotlin.demo.Server.concat(server, session, string_arg1, string_arg2);
       result = Py_BuildValue("s", string);
       __ DisposeString(string);
    } else {
        result = Py_BuildValue("s", NULL);
    }

Kotlin/Native 编译器生成一个动态库,然后 Python distutils 构建工具生成另一个动态库。因此,Python 启动器代码通过 C 语言桥接调用 Kotlin/Native 对象,并正确转换对象和原始类型。

其他改进

  • 在Kotlin 1.2中,kotlin.math软件包被添加到 Kotlin 标准库中。该版本已支持kotlin.math包中的操作
  • 支持LLVM 5.0.0,clang工具链和bitcode 代码生成器和优化器也支持
  • 现在可以从Linux和Windows主机生成WebAssembly(-target wasm32)的代码
  • 改进Workers API
  • 漏洞修复和改进

详细更新说明和下载地址:https://blog.jetbrains.com/

转自 http://www.oschina.net/news/91686/kotlinnative-0-5-released