Swift 新功能:2026年7月版

欢迎来到“Swift的新动态”,这是一个精选的Swift项目及社区发布、视频和讨论摘要。

Swift 是由贡献者构建的,他们参与的不仅仅是语言和编译器本身。亚历山大·桑德伯格反思了这种贡献的样子,以及为什么你也有属于自己的位置:

嗨,我是亚历克斯。四年前,我加入了Swift网站工作组,帮助维护你正在阅读这段文字的网站。那时我还算是Swift社区的新手,但我想以某种方式参与进来,做出改变。参与Swift听起来应该包括编写编译器或撰写和审查语言演进提案,但语言本身也有很多工作。我实际上花时间帮助改进网站内容和导航,参与大规模改版,撰写发布博客文章,审核拉取请求,以及回答问题和论坛帖子。所有这些都是任何人都能学会的,最终都呈现在所有来访者面前Swift.org——这让即使是最微小的修补也变得值得去做。网站工作组恰好是我进入的途径,但项目中还有类似的小组——服务器、测试、Windows、Android等——每个小组都有几个人负责管理他们在生态系统中的部分。无论你擅长什么或好奇什么,Swift 中可能有某个角落需要你的帮助。该社区页面这是一个很好的起点,你会遇到的人都是我在开源领域遇到的最友好的人之一。四年后,我已经离开了,专注于生活中的其他事情.感谢这些年来所有与我共事的人!我会离开工作组,但不会离开社区,我仍会在力所能及的地方推动Swift的发展。

关于工作组的更多信息,请我们的工作方式页面列出所有工作组。还有Swift论坛如果你想参与,经常会看到工作组共享开放会议!

现在说说关于斯威夫特的其他新闻:

观看视频

近期项目变更

  • 谷歌代码之夏的贡献正在进行中: Ege Kaya 正在为 Swift 并发运行时构建任务注册表(PR #90547Filip Sakellariou 正在为快速句法做出贡献(PR #3378,PR #3390),而Padmashree S S正在sourcekit-lsp中工作(PR #2698,PR #2729).
  • 任务窃取者,Swift Concurrency运行时中的新原始程序,最近合并在七月引发了所有公关中最热烈的讨论之后。它们改变了工作在协作线程池中的分布方式,如果你写的是并发密集的代码,这一底层变化值得关注。
  • SwiftPM成功登陆了参考实现包注册服务的成员,以及基础认证支持如果你正在考虑自架注册表,这是一个很好的起点。
  • 各种工具部门都带来了一些小而受欢迎的修复:VS Code 扩展当Swift安装损坏时会发出很大声的失败声,并获得了一个清理构建文件夹命令而Swift Testing的活动流则获得了ABI。上下文API产生人类可读的输出用于CI工具和仪表盘。

新软件包发布

  • 需要快速分词吗?迅捷-千万代币是一款零复制分词器,最高可达670 MB/s,灵感来自Marcel Roed的gigatoken,支持NEON/CRC32,并兼容WebAssembly和嵌入式Swift。
  • 任意错误快速采用不同的错误处理方法,提供具体的、值语义上的,Hashable这种类型能消除任何Swift错误,无需基础,并且在Swift运行的所有平台上都能正常工作。

快速进化

Swift 项目通过快速进化过程.以下是最近被接受用于未来Swift发布的一些提案。

最近被录取:

  • ST-0025基于标签的测试执行过滤——Swift Testing允许你用命名标签注释测试,并可单独通过正则表达式包含或排除测试,使用--filter以及--skip但没有办法把两者合并并按标签筛选。该提案增加了tag:在这些选项中加上前缀,这样你可以运行像这样的命令swift test --skip tag:uiTest基于标签选择性地运行或跳过测试,而不是依赖一致的命名方式。
  • SE-0513获取当前可执行文件路径的API——目前Swift中没有可移植且可靠的方法来获取当前运行的可执行文件路径。该提案补充道CommandLine.executablePath,这是标准库中新增的属性,提供了在Swift支持的所有平台上一致获得该值的方法。

最近接受并进行了修改:

  • SE-0526 withDeadline- Swift 中的异步操作可以无限运行,使用任务组和时钟睡眠操作手动实现时间限制则冗长且容易出错。该提案增加了withDeadline函数,该函数执行一个异步操作,并设定了一个可组合的绝对时间限制,指定为时钟瞬时,若未及时完成则取消操作。它还允许多个嵌套操作共享同一截止时间,避免了在通话层传递相对时长时积累的漂移。
添加评论
点赞收藏
点踩分享查看原文
评论
?
参与讨论