ITADN
swiftlang/swift
swiftlang/swift · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈
Swift logo

Swift 编程语言

欢迎使用 Swift

Swift 是一种高性能的系统编程语言。 它具有简洁 且现代的语法,提供对现有 C 和 Objective-C 代码 及框架的无缝访问,并且默认是内存安全的。

尽管受到 Objective-C 和许多其他语言的启发,但 Swift 本身并不是 一种 C 衍生语言。作为一种完整且独立的语言,Swift 封装了核心 功能,如流程控制、数据结构和函数,以及高级 构造,如对象、协议、闭包和泛型。Swift 拥抱 模块,消除了对头文件及其所导致的代码重复的需求。

要了解有关使用该语言的更多信息,请访问 swift.org。 要了解有关编译器内部设计的更多信息,请参阅 文档索引

为 Swift 做贡献

欢迎并鼓励为 Swift 做出贡献!请参阅 为 Swift 做贡献指南

在提交拉取请求之前,请确保您已测试了您的 更改 并且它们遵循 Swift 项目的贡献 代码指南

要成为一个真正伟大的社区,Swift.org 需要欢迎 来自各行各业、拥有不同背景以及广泛经验的 开发者。一个多元化且友好的社区将拥有更多出色的 想法、更多独特的视角,并产出更多优秀的代码。我们将努力 使 Swift 社区对每个人都具有包容性。

为了明确对我们成员的期望,Swift 已采纳 由 Contributor Covenant 定义的行为准则。该文档被 许多开源社区使用,我们认为它很好地 阐述了我们价值观。更多详情,请参阅 行为准则

入门指南

如果你对以下内容感兴趣:

  • 为编译器贡献修复和功能:请参阅我们的 如何提交你的第一个 Pull Request 指南
  • 一次性构建编译器:请参阅我们的 [入门指南][]。
  • 一次性构建工具链:遵循 [入门指南][] 直到“构建项目”部分。之后,请遵循 下方 Swift 工具链 部分中的说明。

我们还有一份 FAQ,回答了常见问题。

Swift 工具链

构建

Swift 工具链是使用脚本 build-toolchain 创建的。该 脚本由 swift.org 的 CI 用于生成快照,并允许 本地重现此类构建,用于开发或分发目的。典型的 调用方式如下:

  $ ./swift/utils/build-toolchain $BUNDLE_PREFIX

其中 $BUNDLE_PREFIX 是一个字符串,将被前置到构建日期之前,以构成工具链 Info.plist 的 bundle identifier。例如,如果 $BUNDLE_PREFIX was com.example,则生成的工具链的 bundle identifier 将为 com.example.YYYYMMDD。它将在你运行脚本的目录中创建,文件名形式为:swift-LOCAL-YYYY-MM-DD-a-osx.tar.gz

除了构建工具链之外,build-toolchain 还支持以下(非详尽的)一组有用选项:

  • --dry-run:执行一次试运行构建。默认关闭。
  • --test:在工具链编译完成后对其进行测试。默认关闭。
  • --distcc:使用 distcc 通过分发 swift 构建中的 C++ 部分来加速构建。默认关闭。
  • --sccache:使用 sccache 通过缓存更多 C++ 构建产物来加速编译器的后续构建。默认关闭。

随着时间推移,可能会添加更多选项。请向 build-toolchain 传递 --help 以查看完整的选项集。

安装到 Xcode

在 macOS 上,如果要将此类工具链安装到 Xcode:

  1. 解压缩并将工具链复制到 /Library/Developer/Toolchains/~/Library/Developer/Toolchains/ 之一。例如:
  $ sudo tar -xzf swift-LOCAL-YYYY-MM-DD-a-osx.tar.gz -C /
  $ tar -xzf swift-LOCAL-YYYY-MM-DD-a-osx.tar.gz -C ~/

该脚本还会生成一个包含调试符号的归档, 该归档可安装在主归档之上,从而允许对任何 编译器崩溃进行符号化。

  $ sudo tar -xzf swift-LOCAL-YYYY-MM-DD-a-osx-symbols.tar.gz -C /
  $ tar -xzf swift-LOCAL-YYYY-MM-DD-a-osx-symbols.tar.gz -C ~/
  1. 通过 Xcode->Toolchains 指定 Xcode 使用的本地工具链。

构建失败

尝试 排查构建问题 中的建议。

确保你使用的是 Xcode 的正确版本

如果你已更改 Xcode 版本但仍遇到看似与 Xcode 版本相关的错误,请尝试将 --clean 传递给 build-script

当发布 Xcode 新版本时,你可以通过将 --reconfigure 传递给 build-script 来更新构建,而无需重新编译整个项目。