苹果“最强编程语言”10周年重磅更新——Swift 6正式发布:全面支持Linux和Windows、增强与C++的互操作性
创始人
2024-09-19 08:53:39
0

Swift 是苹果公司推出的编程语言,旨在替代 Objective-C,后者自 20 世纪 80 年代初以来基本没有任何更新,缺乏现代语言功能。

2014 年 6 月 2 日,苹果在 WWDC 上首次发布了 Swift,以及第一个公开使用 Swift 编写的应用程序:WWDC 应用程序,同时向苹果的注册开发者发布了 Swift 语言的测试版,但未承诺最终版本与测试版本的源代码相互兼容。

苹果宣称 Swift 的特点是:快速、现代、安全、互动,而且明显优于 Objective-C 语言。

2014 年 9 月 9 日,Swift 1.0 和 iOS 8、Xcode 6.0 一同正式发布GM版本,达成了一个重要的里程碑。

就在今天,苹果为 Swift 发布了 10 周年重磅更新:Swift 6

该版本带来了语言和标准库的增强、改进的调试工具、跨平台库的扩展以及对嵌入式开发和生产力工具的支持。

Swift 6 的发布为 Swift 语言带来了显著的进步,包括对并发、类型化异常抛出、所有权、C++ 互操作性、嵌入式 Swift 以及 128 位整数的支持和改进。

它引入了新的同步库、类型化抛出机制、对不可复制类型的支持以及对嵌入式开发的初步支持。

此外,Swift 6 还增强了对 C++ 的互操作性,统一了 Foundation 在所有平台上的实现,并推出了全新的 Swift Testing 库。

该版本还提供了对 Linux 和 Windows 平台的全面支持,包括对更多 Linux 发行版和 Windows 架构的支持,以及为 Linux 提供了全静态 SDK

Swift 6 还致力于提高生产效率,通过引入新的生产力增强功能和改进的调试宏,使得开发者能够更高效地编写和调试代码。

几个亮点:

并发安全

Swift 长期以来一直提供内存安全性,确保变量在使用前初始化,内存在释放后不会被访问,并且会检查数组索引是否存在越界错误。

Swift 6 现在包含一种新的可选语言模式,该模式扩展了 Swift 的安全保证,通过将代码中潜在的数据争用诊断为编译器错误来防止并发代码中的数据争用。

数据竞争安全检查以前在 Swift 5.10 中通过编译器标志-strict-concurrency=complete 以警告形式提供。

得益于改进的推理和用于将可变状态从一个参与者转移到另一个参与者的新编译器分析,Swift 6 关于数据竞争安全的警告误报更少。

Swift 6 标志着数据竞争安全性的起步,该旅程将大大简化。Swift 6 还附带了一个用于低级并发 API 的新同步库,包括原子操作和新的互斥 API。

类型化异常抛出

Swift 6 允许函数在其签名中指定其抛出的错误类型。此功能在转发客户端代码中抛出的错误时,或在无法分配内存的资源受限环境中(例如嵌入式 Swift 代码)非常有用。

例如:

funcparseRecord(from string: String)throws(ParseError) ->Record{

// ...

}

调用parseRecord(from:)将返回一个Record实例或抛出一个类型的错误ParseErrordo..catch块将推断变量ParseError的类型error

do{

letrecord =tryparseRecord(from: myString)

} catch{

// 'error' has type 'ParseError'

}

C++ 互操作性

Swift 5.9 引入了与 C++ 的双向互操作性,将 Swift 无缝引入更多现有项目。

Swift 6 将互操作性支持扩展到 C++ 仅移动类型、虚拟方法、默认参数以及更多标准库类型包括std::mapstd::optional

嵌入式 Swift

Swift 6 包含 Embedded Swift 的实验性预览版,这是一种语言子集和编译模式,适用于嵌入式软件开发,例如编程微控制器。该工具链支持 ARM 和 RISC-V 裸机目标。

Embedded Swift 依靠通用特化生成小型独立二进制文件。由于它不依赖于运行时或类型元数据,因此 Embedded Swift 适用于内存限制严格的平台以及运行时依赖性有限的低级环境。

嵌入式 Swift 仍然是一个实验性功能,在未来的 Swift 版本中提供稳定支持之前仍需持续开发。

Swift 6 提供了统一的 Foundation 实现,确保了跨平台的一致性和可靠性,并且为 Linux 和 Windows 平台提供了全面的支持。

Swift 6 统一了 Foundation 在所有平台上的实现。现代、可移植的 Swift 实现提供了跨平台的一致性,它更加强大,并且是开源的。

macOS 和 iOS 开始使用 Foundation 的 Swift 实现以及 Swift 5.9,而 Swift 6 将这些改进带到了 Linux 和 Windows。

核心类型如 JSONDecoder、URL、Calendar、FileManager、ProcessInfo 等已在 Swift 中完全重新实现。这些类型与 macOS 15 和 iOS 18 共享其实现,从而提供了全新级别的跨平台一致性、可靠性和性能。

Swift 6 推出了 Swift Testing 库,这是一个专为 Swift 设计的全新测试框架,它提供了丰富的 API 和宏支持,使得编写和组织测试变得更加容易。

Swift 6 引入了 Swift Testing,这是一个从零开始为 Swift 设计的新测试库。它包含了富有表现力的 API,使编写和组织测试变得简单。当测试失败时,它使用像 #expect 这样的宏提供详细的输出。

此外,它还具备参数化等功能,能够轻松地在大型代码库中以不同参数重复执行测试。

例如:

@Test("Continents mentioned in videos", arguments: [

"A Beach",

"By the Lake",

"Camping in the Woods"

])

func mentionedContinents(videoName: String) asyncthrows {

letvideoLibrary = tryawaitVideoLibrary

letvideo = try#require(awaitvideoLibrary.video(named: videoName))

#expect(video.mentionedContinents.count <= 3)

}

Swift 6 对调试工具进行了改进,包括引入了新的调试宏,以及提高了 LLDB 调试器的启动性能

Swift 6 提供了一种新的调试宏,可以轻松自定义在使用 p 命令时对象在 LLDB 中的显示方式,以及在 Xcode 和 VSCode 的变量视图中,采用一种不运行任意代码的格式方案。

符合 CustomDebugStringConvertible 协议的类型提供了一个 debugDeion 属性,该属性返回描述对象的字符串。

在 LLDB 中,po 命令调用该计算属性。相比之下,p 命令使用 LLDB 的类型摘要格式化程序直接根据其存储属性值来格式化对象。

@DebugDeion 是标准库中的一个新宏,它允许开发者直接在代码中为自己的类型指定 LLDB 类型摘要。该宏处理 debugDeion 属性,将涉及存储属性的简单字符串插值转换为 LLDB 类型摘要。

这使得即使在使用 p 时,LLDB 也能使用您的自定义格式,并且可以在 Xcode 或 VSCode 的变量显示窗口中使用。

该宏可以利用现有的 CustomDebugStringConvertible 符合性,也可以仅为 LLDB 的 p 命令提供单独的字符串插值。

平台支持

Swift 6 全面为 Linux 和 Windows 带来了重大改进,包括支持更多 Linux 发行版和 Windows 架构。

Swift 6 支持为 Linux 构建完全静态链接的可执行文件;这些文件没有外部依赖项,因此非常适合想要将程序直接复制到系统或容器中并运行它而无需安装任何额外软件的情况。该 SDK 还可用于从其他平台交叉编译到 Linux。

Swift 6 增加了对 Debian 和 Fedora 以及 Ubuntu 24.04的官方支持和测试。Windows 构建性能方面,预构建的工具链现已适用于 arm64 架构,这为 ARM 主机上的 Windows 提供了改进的编译器性能。

在 Swift 6 中,Swift 包管理器还默认在 Windows 上的多个核心上并行构建。在 10 核机器上,可以将构建性能提高多达 10 倍。

Swift 6 下载地址:

https://www.swift.org/install/

Swift 6 发布公告:

https://www.swift.org/blog/announcing-swift-6

延伸阅读

END

热门文章

分享、在看与点赞Orz

相关内容

月之暗面Kimi K2发布...
月之暗面今天宣布,正式发布Kimi K2模型,并同步开源。Kimi...
2025-07-12 06:12:21
OpenAI的开源语言模型...
据报道,OpenAI的开源语言模型即将发布。
2025-07-10 15:12:37
原创 ...
国行苹果的AI功能要凉了!这可能是最近这两天听到讨论最多的内容。至...
2025-07-09 22:13:44
还在为AI数据发愁?张文涛...
1. 基本介绍 近年来,大模型发展主要由大型科技公司主导,其领先的...
2025-07-09 10:42:14
AI赋能游戏“出海” 精准...
本报记者 丁 蓉 今年以来,多地因地制宜出台新政,支持游戏企业拓展...
2025-07-08 10:12:29
扎克伯格继续挖人:苹果负责...
苹果公司负责人工智能模型的高管将跳槽至Meta,这对这家iPhon...
2025-07-08 09:44:55

热门资讯

原创 2... #春日生活好物种草季#近年来,笔记本电脑市场迎来技术爆发期,尤其在手机厂商跨界入局后,轻薄本在性能、...
AMD锐龙AI 9 HX 37... 2024年6月3日,AMD正式发布全新的锐龙AI 300系列处理器。该系列处理器一经发布就引发大家的...
骁龙本这么猛?联想YOGA A... 在人人都是自媒体的时代,一部手机可以解决出镜拍摄问题,而商务出差、大量码字、图像处理等需求用笔记本则...
5个AI模特生成软件推荐 当前AI模特生成软件市场提供了多样化的解决方案,以下是几款备受推崇的工具: 触站AI:强烈推荐!...
2023年CentOS与Ubu... CentOS与Ubuntu的市场格局与技术特性探讨 在服务器操作系统领域,CentOS与Ubuntu...
苹果macOS 15.1:允许... 苹果公司在其最新的macOS 15.1版本中,推出了一项引人注目的新功能——允许用户将Mac App...
原创 苹... 前言 IQUNIX在做好看的桌面产品上,一直都给我留下非常深刻的印象。而且早期和苹果产品的设计风格...
原创 华... 想在竞争残酷的市场中发力,必须要带来一些激进的卖点,但是随着功能特性的提升,硬件也必须要进行给力才可...
原创 华... 在2024年这个被誉为"AI元年"的关键时刻,随着生成式AI的流行,各家手机厂商都在积极备战AI手机...