近日 Swift 社区发布公告,为了进一步提供 Swift 和 C++ 之间的互操性支持,他们成立了 Swift 和 C++ 互操性工作组,以作为 Swift 项目的一部分。这个新的工作组的职责就是负责开发和设计 C++ 和苹果开发的 Swift 之间的互操作性模型。
在公告中,Swift 开发者 Alex Lorenz 表示,之所以要成立 Swift 与 C++ 工作组是如今已有大量的开发者对这两种语言之间的双向互操作性产生了极大的兴趣。因此该工作组将提供一个框架,以完善互操作层的目标和设计,并探讨对 Swift 编译器进行修改的方案,以支持两种语言的双向互操作性。
工作组的工作细节:
- 该工作组负责开发和设计 C++ 和 Swift 之间的互操作性模型
- 工作组将通过视频每周开会一次
- 工作组最初将集中讨论如何快速迭代这两种语言之间的互操作性模型
- 该工作组是对现有 Swift 开发过程的补充。工作组将首先设计互操作性模型,然后将其带回 Swift 社区进行正式评估和讨论。
Swift 论坛:
论坛上的 "开发" 板块将会有一个新的 "C++ 互操作性" 子板块,该板块对所有人开放,将承载关于 C++ 互操作性的相关技术讨论帖子。除了技术讨论之外,还将包括工作组会议的会议记录。
如今在 zoecarver、egor.zhdan、gribozavr 和 Michael Forster 等开发者的贡献下,目前 Swift 编译器已经能够导入和使用一些 C++ 的 API,其中就包括像 std::string
和 std::vector
这样的 C++ 标准库类型。在工作组成立之后,两者之间的互操作性有望获得进一步提升。
除了工作组现有成员以外,其他对这个项目感兴趣的开发者也可以参与进来,其中就包括:
- 在 Swift 编译器的互操作性层中进行代码更改
- 为此功能编写面向用户的文档
- 审查相关的 PR 和/或提案
- 提供设计输入,用于在两种语言之间映射特定的代码模式
但所提出的修改都必须符合 Swift 的目标和理念,创建 Swift 语言或标准库的分支,以及创建一个没有分支的 dialect 都不是他们的选择。
感兴趣的开发者可以查看发布在 Swift GitHub 页面上的 "C++互操文档",里面详细描述了 Swift 和 C++ 之间双向 API 互操作性的目标和设计。