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

Swift 5.10 发布

Swift 5.10 发布

Holly Borla 是苹果 Swift 团队的工程师,也是 Swift 核心团队、语言指导小组和 Swift 多样性工作组的成员。
Swift 的设计默认情况下是安全的,可以在编译时防止整类编程错误。在基于 C 的语言中,未定义行为的来源,如在初始化前使用变量或使用后免定义,在 Swift 中都被定义掉了。

一个越来越重要的未定义行为源是并发代码,它无意中访问了一个线程的内存,而同时另一个线程正在写入相同的内存。这种不安全性被称为数据竞赛,数据竞赛使得并发程序异常难以正确编写。Swift 通过行为体和任务提供的数据隔离解决了这一问题,数据隔离保证了对共享可变状态的互斥访问。自 2020 年发布 Swift 并发路线图以来,数据隔离的实施一直在积极开发中。

Swift 5.10 在并发语言模型中实现了完全数据隔离。这一重要的里程碑经过了多年的积极开发,历经多个版本。Swift 5.5 引入了并发模型,包括 async/await、actors 和结构化并发。Swift 5.7 引入了 Sendable 作为线程安全类型的基本概念,其值可在任意并发上下文中共享,而不会引入数据竞赛风险。现在,在 Swift 5.10 中,当启用完全并发检查选项时,语言的所有区域都会在编译时强制执行完全数据隔离。

Swift 5.10 中的完全数据隔离为下一个重要版本 Swift 6 做好了准备。Swift 6.0 编译器将提供一种新的、可选择的 Swift 6 语言模式,默认情况下将强制执行完全数据隔离,我们将开始过渡到消除所有使用 Swift 编写的软件中的数据竞赛。

Swift 5.10 将在某些情况下产生数据竞赛警告,而在这些情况下,通过额外的编译器分析可以证明代码是安全的。Swift 6 版本语言开发的一个主要重点是通过减少已被证明安全的常见代码模式中的并发错误,提高严格并发检查的可用性。

请继续阅读,了解 Swift 5.10 中的完全数据隔离、针对行为隔离检查的新的不安全选择退出,以及 Swift 6 中剩余的并发性演进。

更多 Swift.org – Swift 5.10 Released