Swift 2023:强调并发、泛型和 C++ 互操作性,开发 Swift 解析器
Apple Swift 团队的一名工程师兼语言工作组成员 John McCall 在最新发布的一篇博客中介绍了 Swift 的 2023 年度计划。
“Swift 项目中有很多激动人心的工作正在进行,而且很难跟踪所有这些工作,因为它发生在许多不同的存储库、拉取请求和论坛线程中。为了让社区更好地了解全局,核心团队调查了整个项目的工作组和开发人员,并收集了有关他们明年关注的内容的信息。”
社区组织方面,Swift 核心团队最近开始重组,以便由专门的工作组承担更多责任:
- 语言工作组 —— 发展语言和标准库
- 网站工作组 —— 管理
swift.org
网页内容 - 文档工作组 —— 组织文档工具和库的开发
- C++ 互操作性工作组 —— 孵化语言提案以提高与 C++ 的互操作性
根据介绍,这些新的工作组加入了长期存在的 Swift on Server 和 Diversity 工作组,使感兴趣的用户可以更有针对性的加入专门的工作组来做出贡献。核心团队正在研究创建更多的工作组,包括一个致力于提高 Swift 跨平台可用性的工作组。
核心团队的成员也有所更新,Mishal Shah 将加入核心团队。“作为支持 Swift 项目的许多底层基础架构的领导者和倡导者,一段时间以来,Mishal 在支持 Swift 项目的发展方面发挥了重要作用。”
语言发展方面,语言工作组专注于在五个主要语言领域取得进展:
并发。完成对
Sendable
和 actors 提供的严格数据隔离的语言支持。计划包括关闭许多已知的线程安全漏洞,例如围绕全局变量和某些 cross-actor 调用的漏洞。它还包括配备一些功能来解决因 strict isolation 而产生的可用性问题,例如允许 non-Sendable 在受限情况下在隔离域之间移动。泛型。语言工作组打算致力于可变参数泛型语言特性工作。这是一项预计需要多年才能完成的主要功能,最初侧重于设计核心语言模型并实现编译器和运行时基础架构以支持它。一个早期的里程碑将是允许元组类型在其元素符合 Equatable 等协议时有条件地符合协议。
所有权。
开发功能让程序员明确控制内存中值的所有权。
添加对 non-copyable 类型的基本支持。这将提供通过限制关键值的生命周期来实现高性能的新方法。这些控件将启用处理内存中数据的新方法,将当前“不安全”构造的性能与 Swift 标准库功能的安全性相结合。
宏。着眼于进一步支持创建丰富的库和 DSL。这项工作将从创建 vision document 开始,为宏能够在 Swift 中实现什么以及它们如何融入语言进行设计。
-
编写文档,阐述如何使 C++ API 在 Swift 中可用,反之亦然。
稳定当前在 Swift 中使用 C++ 的原型互操作性功能,包括 owned value types、trivial value types、API 模式(例如外部引用类型和迭代器),以及一些关于方法、指针、l-value 和 r-value 引用的一些基本问题。
稳定当前用于从 C++ 使用 Swift 的原型互操作性功能,包括 Swift 值类型、引用类型和函数 exposed 给 C++ 的方式。
此外,语言工作组还正计划为即将到来的 Swift 6 语言模式完成预期的语言修订。Swift 定期引入新的语言模式,以便语言可以在不破坏现有代码的源兼容性的情况下取得进步。以及编译器开发团队正在努力改进编译器与构建系统和自身其他调用的交互方式。
对于 Package Registry,Swift 包管理器的开发重点是与社区一起开始开源 package registry server 实现的工作。目标是创建将 Swift 包生态系统从基于源代码控制的生态系统过渡到基于注册表的系统所需的技术组件,从而增强生态系统的安全性和可靠性。其计划将与 Swift Package Index 等社区运行的项目合作。
2023 年针对 Swift 的其他努力还包括:
开发一个 Swift 解析器,它是用纯 Swift 编写的,并且具有当前 C++ 实现的功能。这开辟了工具开发的新方向,最终将取代 C++ 解析器。
通过将类型推理实现迁移到支持 multi-statement closure 推理的更具可扩展性的基础架构,提高结果 result builders 的类型检查性能。
通过与类型检查器更紧密地集成,提高 code completion 和 lookup-dependent 工具(例如快速帮助和跳转到定义)的可靠性,尤其是在不完整或不明确的代码中。
在某些情况下,通过消除对转换 thunk 的需要,在转换函数时生成更少的代码,尤其是在将 closures 传递给通用函数和导入函数时。
通过解释 type layout 的 compact encoding 而不是发出 specialized functions,在 copying 和 destroying 复杂的结构和枚举时生成更少的代码。
添加 SIL 优化器支持新语言功能和与 object lifetimes 和 copies 相关的可预测优化。团队正在设计一套新的 low-level SIL 实用程序,以在整个现有优化管道中保持所有权不变性。这将导致可靠的诊断和可预测的性能。
在 Swift 中重写当前的过程间 side-effect 和 escape analyses,替换当前的 C++ 实现。新的实现提供了更准确的结果并且明显更简单。
更多详情可查看博客。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
WordPress 创始人称 Tumblr 将支持 ActivityPub 协议
近日,npm 联合创始人 Laurie Voss 发表推文抱怨 Mastodon,称自己花了 7 个小时尝试在服务器上搭建 Mastodon 实例。 WordPress 创始人兼 Automattic CEO Matt Mullenweg 看到后顺势邀请 Laurie Voss 考虑使用 Tumblr,并回复道,公司旗下的 Tumblr 服务即将添加对 ActivityPub 协议的支持,以实现 Tumblr 与 Mastodon 的“互连”。 ActivityPub 是开源、去中心化的社交网络协议,目前被 Mastodon、Pixelfed 和串流服务 PeerTube 等应用使用。它提供了一个客户端到服务器的 API 用于创建、更新和删除内容,以及一个联邦制的服务器到服务器 API 用于传递通知和订阅内容。 ▲ ActivityPub 运行原理 以最近因马斯克收购推特而声名鹊起的 Mastodon 为例。由于 Mastodon 采用了 ActivityPub 协议,因此它允许其它跨服务器的用户对本服务器的内容和用户进行各种允许形式的互动,包括并不限于:创建、删除、点赞、转帖、举报、...
- 下一篇
Asahi Linux 适配 Apple 芯片进度:支持键盘背光,USB 接口升级
Asahi Linux 是由资深操作系统移植专家 Hector Martin(网名 Marcan)众筹发起的项目,目标是将 Linux 移植到搭载 Apple Silicon 芯片的 Mac 设备。Marcan 表示,Asahi Linux 的目标不仅仅是让 Linux 能在这些设备上运行,最终还要将其打磨至可以用作日常操作系统的程度。 近日,Asahi Linux 团队发布了 2022 年 11 月的状态报告,重点介绍了最近在 Linux 下支持 Apple M1/M2 设备的开源进展,11 月的更新包含新硬件(音频、USB 接口、键盘背光)的支持、新功能和针对长期痛点的修复。 以下为进展的概述: 此前,Asahi Linux 只能将 Thunderbolt 端口用作 USB2,而最新的PHY 驱动程序,使得 Thunderbolt 端口支持 USB3 模式,但在快速热插拔设备时可能会出现一些故障。 Asahi Linux 买了一个高音扬声器,然后在测试的时候炸掉了,但这个炸掉的扬声器帮助 Asahi Linux 进一步修复了音量限制和瞬时功率安全系统。在测试的时候MacBook /...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Windows10,CentOS7,CentOS8安装Nodejs环境
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- CentOS8编译安装MySQL8.0.19
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Hadoop3单机部署,实现最简伪集群