0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Kotlin 1.8.0发布,改进性能和Swift的互操作性

OSC开源社区 来源: OSC开源社区 2023-01-03 15:24 次阅读
Kotlin 1.8.0 版本已经正式发布,以下是该版本更新中的一些主要内容:

针对 JVM 的新实验性功能:递归复制或删除目录内容

Kotlin 1.8.0 为java.nio.file.Path引入了两个新的扩展函数:copyToRecursively()deleteRecursively(),它们允许你以递归方式:
  • 将一个目录及其内容复制到另一个目的地

  • 删除一个目录和它的内容

这些函数作为备份过程的一部分可能非常有用。
用于java.nio.file.path的这些新函数是实验性的。要使用它们,你需要选择加入@OptIn(kotlin.io.path.ExperimentalPathApi::class)@kotlin.io.path.ExperimentalPathApi。另外,你也可以使用编译器选项-opt-in=kotlin.io.path.ExperimentalPathApi

改进了 kotlin-reflect 的性能

利用kotlin-reflect现在是用 JVM target 1.8 编译的这一事实,我们将内部缓存机制迁移到 JavaClassValue。以前我们只缓存KClass,但现在我们也缓存了KTypeKDeclarationContainer。这些变化使得调用typeOf()时的性能得到了明显的改善。

新增 -Xdebug 编译器选项,以获得更好的调试体验

Kotlin 1.8.0 增加了一个新的-Xdebug编译器选项,它可以禁用优化以获得更好的调试体验。目前,该选项禁用了 coroutines 的 "已优化" 功能。在未来,当我们添加了更多的优化功能后,这个选项也将禁用它们。

kotlin-stdlib-jdk7kotlin-stdlib-jdk8合并为kotlin-stdlib

在 Kotlin 1.8.0 中,标准库(kotlin-stdlibkotlin-reflectkotlin-script-*)是用 JVM target 1.8 编译的。此前,标准库是以 JVM target 1.6 编译的。Kotlin 1.8.0 不再支持 JVM targets 1.6 和 1.7。因此,你不再需要在构建脚本中单独声明kotlin-stdlib-jdk7kotlin-stdlib-jdk8,因为这些工件的内容已经并入kotlin-stdlib

改进了 Objective-C/Swift 的互操作性

为了使 Kotlin 与 Objective-C 和 Swift 更具有互操作性,1.8.0 增加了三个新的注解:
  • @ObjCName允许你在 Swift 或 Objective-C 中指定一个更习惯的名字,而不是重新命名 Kotlin 声明。

  • @HiddenFromObjC允许你从 Objective-C 中隐藏一个 Kotlin 声明

  • @ShouldRefineInSwift对于用 Swift 编写的包装器替换 Kotlin 声明很有用

与 Gradle 7.3 兼容

Kotlin 1.8.0 完全支持 Gradle 7.2 和 7.3 版本,这个版本带来了很多变化:
  • 将 Kotlin 编译器选项作为 Gradle 惰性属性公开

  • 提高了最小支持版本

  • 能够禁用 Kotlin 守护程序的回退策略

  • 强制检查相关的 Kotlin 和 Java 编译任务的 JVM target 兼容性是否相等


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • SWIFT
    +关注

    关注

    0

    文章

    89

    浏览量

    23703
  • kotlin
    +关注

    关注

    0

    文章

    60

    浏览量

    4144

原文标题:Kotlin 1.8.0发布,改进性能和Swift的互操作性

文章出处:【微信号:OSC开源社区,微信公众号:OSC开源社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    新思科技成功实现与英特尔PCIe 6.0测试芯片的互操作性

    新思科技PCIe 6.0 IP与英特尔 PCIe 6.0测试芯片实现互操作 在64GT/s 高速连接下成功验证互操作性,降低高性能计算SoC的集成风险 新思科技近日宣布,新思科技PCI
    的头像 发表于 10-16 09:22 485次阅读

    RH27C:精确的操作性放大数据表 ADI

    电子发烧友网为你提供ADI(ADI)RH27C:精确的操作性放大数据表相关产品参数、数据手册,更有RH27C:精确的操作性放大数据表的引脚图、接线图、封装手册、中文资料、英文资料,RH27C:精确的操作性放大数据表真值表,RH2
    发表于 10-08 16:12
    RH27C:精确的<b class='flag-5'>操作性</b>放大数据表 ADI

    由Java改为 Kotlin过程中遇到的坑

    最近了解了下 Kotlin ,其中的很多语法糖很有意思,并且可以与 Java 无缝兼容。故尝试在一个 SpringBoot 工程上将部分类修改为 Kotlin ,下面记录了由 Java 改为
    的头像 发表于 09-30 16:51 455次阅读
    由Java改为 <b class='flag-5'>Kotlin</b>过程中遇到的坑

    工具链之间的二进制操作性应用说明

    浮点硬件支持的目标上运行。 如果代码旨在与可能为没有硬件浮点支持的目标链接的其他代码或可能为基本PC编译的其他代码进行操作,则必须为基本PC编译代码,或者必须为两个PCS变体提供代码的替代版本
    发表于 08-29 07:59

    移动应用高级语言开发——并发探索

    Swift希望能够提供无损化的易用的API,在设计、可维护、安全、可伸缩以及性能等方面持续改进
    发表于 08-28 17:08

    光模块兼容性:确保通信系统的互操作性和可靠性

    在现代通信系统中,光模块作为重要的传输组件,其兼容性对于确保通信系统的互操作性和可靠性至关重要。光模块的兼容性涉及到多个方面,包括物理接口、协议和性能等。本文将探讨光模块兼容性的重要性以及如何确保光模块在通信系统中的良好兼容性。
    的头像 发表于 08-22 16:20 464次阅读
    光模块兼容性:确保通信系统的互<b class='flag-5'>操作性</b>和可靠性

    CiA组织CAN XL互操作性测试会议及最新进展

    点击蓝字关注我们摘要SummaryCiA协会在密歇根州特洛伊组织了第三次CANXL互操作性测试。来自博世、Kvaser和Vector的IP核以及博世、英飞凌、恩智浦和德州仪器的CANSICXL收发器
    的头像 发表于 07-31 22:17 653次阅读
    CiA组织CAN XL互<b class='flag-5'>操作性</b>测试会议及最新进展

    3件6Gb/s SAS控制器的互操作性报告

    电子发烧友网站提供《3件6Gb/s SAS控制器的互操作性报告.pdf》资料免费下载
    发表于 07-29 10:13 0次下载
    3件6Gb/s SAS控制器的互<b class='flag-5'>操作性</b>报告

    Android自定义Toast Kotlin

    电子发烧友网站提供《Android自定义Toast Kotlin.zip》资料免费下载
    发表于 06-16 11:43 0次下载
    Android自定义Toast <b class='flag-5'>Kotlin</b>

    KiCad 7.0.5发布

    7.0.3及7.0.4由于存在bug,短时间上线后快速下架。目前官方已发布稳定版7.0.5, 可以去以下链接下载:https://downloads.kicad.org/kicad/windows
    发表于 05-29 15:26

    Linux 6.4-rc1发布

    https://lkml.org/lkml/2023/5/7/206 Linus Torvalds 本周初发布了 Linux 6.4-rc1,这也标志着令人兴奋的 Linux 6.4 周期合并窗口
    发表于 05-25 08:18

    KiCad 7.0.4发布啦!

    7.0.3由于存在严重bug,没有向公众发布。今天官方已发布稳定版7.0.4 可以去以下链接下载:https://downloads.kicad.org/kicad/windows/explore
    发表于 05-23 15:22

    如何使用Swift提高代码质量

    京喜APP最早在2019年引入了Swift,使用Swift完成了第一个订单模块的开发。
    的头像 发表于 05-19 09:42 291次阅读
    如何使用<b class='flag-5'>Swift</b>提高代码质量

    设备仿真模拟软件 QEMU 8.0 发布改进对 ARM / RISC-V 架构支持

    和 HPPA 平台带来各种新功能和改进。 QEMU (Quick Emulator)是业界主流的设备仿真模拟软件之一,可以在一种架构(如 X86 PC)的物理机上运行支持其它架构的操作系统和程序,从而
    发表于 05-05 09:48

    # 面向万物智联的应用框架的思考和探索(上)

    (imperative)编程方式。2014年Apple推出了Swift语言,在简洁,安全性能等方面都有进一步的提升。2019年,在Swift
    发表于 05-04 10:48