产品派
返回

Swift 6.4发布:Wasm提速40倍并新增子进程库

工具InfoQ 中文站2026/9/28 19:06:07
AI 导读

Swift 6.4正式发布,更新重点覆盖性能、并发、跨语言互操作和工具链。新版本扩展了不可复制值的使用范围,生成的Wasm代码最高可提速40倍,同时加入稳定版Subprocess库,为启动外部进程及与其交换数据提供跨平台API。

语法层面,开发者可使用AType?替代较繁琐的可选类型写法,并通过新增的@diagnose属性控制编译器诊断与警告;当多个模块存在同名符号时,可使用“模块名::”形式进行消歧。并发代码也得到简化,部分语句可直接使用异步关键字,不再需要额外创建Task包装异步调用。新增的withTaskCancellationShield则能在任务被取消时暂时屏蔽取消信号,确保清理逻辑执行完成。

为减少数组操作中的不必要拷贝和内存分配,Swift 6.4引入UniqueArray、UniqueBox、Ref、MutableRef和Iterable等类型或协议。相关能力支持独占堆内存、不可复制语义和高效扩容;Iterable可借用方式遍历元素。Span与InlineArray也支持借用或修改访问器,并可通过属性读取或更新;不可复制类型还可以遵循Equatable、Comparable和Hashable协议。

工具链方面,新版本加强了模块调试支持,并在所有受支持平台上默认使用Swift Build,推动构建系统统一。Subprocess现已稳定,开发者可以通过Subprocess.run启动进程,例如执行“ls -la”并将标准输出限制为4096字节后读取结果。

互操作性方面,新增@c和@implementation属性,可直接在Swift中提供C头文件实现,无需另行编写C声明;Span还可与C++20的std::span透明桥接。Java互操作获得多项扩展,基于JavaScriptKit的Wasm桥接速度则比动态桥接快40倍。此次版本还包含更多改动,完整内容可参考官方发布公告。

SwiftWasm并发编程跨语言互操作

本文基于公开渠道信息整理,内容可能存在不准确或遗漏之处,不代表本站立场,如内容涉及侵权或错误,请联系我们处理。

阅读原文