Swift 5.10 已发布

主要观点:Swift 默认设计为安全,可在编译时防止多种编程错误,解决了 C 系语言中未定义行为的问题,如并发代码中的数据竞争。Swift 5.10 实现了全数据隔离,为 Swift 6 做准备,可在编译时诊断数据竞争,同时引入了新的不安全退出机制如nonisolated(unsafe)

关键信息

  • Swift 5.10 实现全数据隔离,是多年开发的重要里程碑,解决了之前未定义行为的问题。
  • 全数据隔离为 Swift 6 做准备,6.0 编译器将默认强制全数据隔离。
  • Swift 5.10 会在某些情况下产生数据竞争警告,6 版本将改进严格并发检查的可用性。
  • 引入nonisolated(unsafe)关键字用于退出演员隔离检查。
  • 下一个版本是 Swift 6,有多个提案在开发以改进全数据隔离的可用性。

重要细节

  • 基于并发代码中意外访问内存的问题,Swift 通过演员和任务提供数据隔离来解决。
  • Swift 5.10 完成了语言各方面的数据竞争安全语义,修复了Sendable和演员隔离检查的错误。
  • 如在 Swift 5.9 中某代码在运行时因初始化位置错误导致隔离断言失败,而在 5.10 中会产生警告。
  • nonisolated(unsafe)可用于存储属性和变量,消除某些情况下的并发警告。
  • 多个语言提案在 Swift 5.10 中被接受和实现,如关于演员和初始化、废弃特定主应用程序入口等。
  • 可通过下载官方二进制文件使用 Swift 5.10,也可参与 Swift 6 的过渡,提供反馈等。
阅读 34
0 条评论