0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Swift 2023:强调并发、泛型和C++互操作性,开发Swift解析器

OSC开源社区 来源:OSC开源社区 作者:OSC开源社区 2022-11-25 15:53 次阅读

Apple Swift 团队的一名工程师兼语言工作组成员 John McCall 在最新发布的一篇博客中介绍了 Swift 的 2023 年度计划。 “Swift 项目中有很多激动人心的工作正在进行,而且很难跟踪所有这些工作,因为它发生在许多不同的存储库、拉取请求和论坛线程中。为了让社区更好地了解全局,核心团队调查了整个项目的工作组和开发人员,并收集了有关他们明年关注的内容的信息。”

3806d89a-6bf8-11ed-8abf-dac502259ad0.png

社区组织方面,Swift核心团队最近开始重组,以便由专门的工作组承担更多责任:

语言工作组—— 发展语言和标准库

网站工作组—— 管理swift.org网页内容

文档工作组—— 组织文档工具和库的开发

C++ 互操作性工作组—— 孵化语言提案以提高与 C++ 的互操作性

根据介绍,这些新的工作组加入了长期存在的 Swift on Server 和 Diversity 工作组,使感兴趣的用户可以更有针对性的加入专门的工作组来做出贡献。核心团队正在研究创建更多的工作组,包括一个致力于提高 Swift 跨平台可用性的工作组。 核心团队的成员也有所更新,Mishal Shah将加入核心团队。“作为支持 Swift 项目的许多底层基础架构的领导者和倡导者,一段时间以来,Mishal 在支持 Swift 项目的发展方面发挥了重要作用。” 语言发展方面,语言工作组专注于在五个主要语言领域取得进展:

并发。完成对Sendable和actors提供的严格数据隔离的语言支持。计划包括关闭许多已知的线程安全漏洞,例如围绕全局变量和某些 cross-actor 调用的漏洞。它还包括配备一些功能来解决因strict isolation而产生的可用性问题,例如允许 non-Sendable 在受限情况下在隔离域之间移动。

泛型。语言工作组打算致力于可变参数泛型语言特性工作。这是一项预计需要多年才能完成的主要功能,最初侧重于设计核心语言模型并实现编译器和运行时基础架构以支持它。一个早期的里程碑将是允许元组类型在其元素符合 Equatable 等协议时有条件地符合协议。

所有权。

开发功能让程序员明确控制内存中值的所有权。

添加对 non-copyable 类型的基本支持。这将提供通过限制关键值的生命周期来实现高性能的新方法。这些控件将启用处理内存中数据的新方法,将当前 “不安全” 构造的性能与 Swift 标准库功能的安全性相结合。

宏。着眼于进一步支持创建丰富的库和 DSL。这项工作将从创建vision document开始,为宏能够在 Swift 中实现什么以及它们如何融入语言进行设计。

C++ 互操作性。

编写文档,阐述如何使 C++ API 在 Swift 中可用,反之亦然。

稳定当前在 Swift 中使用 C++ 的原型互操作性功能,包括 owned value types、trivial value types、API 模式(例如外部引用类型和迭代器),以及一些关于方法、指针、l-value 和 r-value 引用的一些基本问题。

稳定当前用于从 C++ 使用 Swift 的原型互操作性功能,包括 Swift 值类型、引用类型和函数 exposed 给 C++ 的方式。

此外,语言工作组还正计划为即将到来的 Swift 6 语言模式完成预期的语言修订。Swift 定期引入新的语言模式,以便语言可以在不破坏现有代码的源兼容性的情况下取得进步。以及编译器开发团队正在努力改进编译器与构建系统和自身其他调用的交互方式。 对于 Package Registry,Swift 包管理器的开发重点是与社区一起开始开源 package registry server 实现的工作。目标是创建将 Swift 包生态系统从基于源代码控制的生态系统过渡到基于注册表的系统所需的技术组件,从而增强生态系统的安全性和可靠性。其计划将与 Swift Package Index 等社区运行的项目合作。 2023 年针对 Swift 的其他努力还包括:

开发一个 Swift 解析器,它是用纯 Swift 编写的,并且具有当前 C++ 实现的功能。这开辟了工具开发的新方向,最终将取代 C++ 解析器。

通过将类型推理实现迁移到支持 multi-statement closure 推理的更具可扩展性的基础架构,提高结果 result builders 的类型检查性能。

通过与类型检查器更紧密地集成,提高 code completion 和 lookup-dependent 工具(例如快速帮助和跳转到定义)的可靠性,尤其是在不完整或不明确的代码中。

在某些情况下,通过消除对转换 thunk 的需要,在转换函数时生成更少的代码,尤其是在将 closures 传递给通用函数和导入函数时。

通过解释 type layout 的 compact encoding 而不是发出 specialized functions,在 copying 和 destroying 复杂的结构和枚举时生成更少的代码。

添加 SIL 优化器支持新语言功能和与 object lifetimes 和 copies 相关的可预测优化。团队正在设计一套新的 low-level SIL 实用程序,以在整个现有优化管道中保持所有权不变性。这将导致可靠的诊断和可预测的性能。

在 Swift 中重写当前的过程间 side-effect 和 escape analyses,替换当前的 C++ 实现。新的实现提供了更准确的结果并且明显更简单。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 函数
    +关注

    关注

    3

    文章

    4273

    浏览量

    62302
  • C++
    C++
    +关注

    关注

    21

    文章

    2094

    浏览量

    73445
  • 生态系统
    +关注

    关注

    0

    文章

    696

    浏览量

    20688

原文标题:Swift 2023:强调并发、泛型和C++互操作性,开发Swift解析器

文章出处:【微信号:OSC开源社区,微信公众号:OSC开源社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    使用带陶瓷电容器的低电压SWIFT DC/DC转换

    电子发烧友网站提供《使用带陶瓷电容器的低电压SWIFT DC/DC转换.pdf》资料免费下载
    发表于 10-12 09:44 0次下载
    使用带陶瓷电容器的低电压<b class='flag-5'>SWIFT</b> DC/DC转换<b class='flag-5'>器</b>

    TPS54x80和TPS54x73 SWIFT DC/DC转换的时序控制

    电子发烧友网站提供《TPS54x80和TPS54x73 SWIFT DC/DC转换的时序控制.pdf》资料免费下载
    发表于 10-11 11:17 0次下载
    TPS54x80和TPS54x73 <b class='flag-5'>SWIFT</b> DC/DC转换<b class='flag-5'>器</b>的时序控制

    采用28引脚HTSSOP的SWIFT DC/DC转换的热性能

    电子发烧友网站提供《采用28引脚HTSSOP的SWIFT DC/DC转换的热性能.pdf》资料免费下载
    发表于 10-11 09:16 0次下载
    采用28引脚HTSSOP的<b class='flag-5'>SWIFT</b> DC/DC转换<b class='flag-5'>器</b>的热性能

    M-LVDS和总线LVDS的操作性

    电子发烧友网站提供《M-LVDS和总线LVDS的操作性.pdf》资料免费下载
    发表于 09-29 09:46 0次下载
    M-LVDS和总线LVDS的<b class='flag-5'>互</b><b class='flag-5'>操作性</b>

    Swift 6.0引领编程语言新趋势

    近日,苹果公司公布了一系列重磅消息:推出iOS/iPadOS 18和macOS 15 Sequoia等操作系统更新,以及Swift编程语言的全新版本——Swift 6.0。此番升级重点关注编程安全
    的头像 发表于 09-20 15:57 268次阅读

    操作性对智能家居的重要

    在智能家居领域,操作性对不同群体有不同的意义。消费者希望有多种选择、较高的灵活性、简单的设置以及安全感,确保设备不会被黑客攻击。最重要的是,他们希望设备能够“正常工作”。
    的头像 发表于 08-26 17:29 3.5w次阅读
    <b class='flag-5'>互</b><b class='flag-5'>操作性</b>对智能家居的重要<b class='flag-5'>性</b>

    苹果推出全新开源Swift软件包

    七月三十一日,苹果企业总部对外正式发表公告,宣布昨日(即七月二十九日)成功推出全新的开源 Swift 软件包—— (唤名为 swift-homomorphic-encryption)。此举旨在为 Swift 编程语言带来应用便利
    的头像 发表于 07-31 15:17 313次阅读

    2-A宽量程降压SWIFT™转换TPS5420-EP 数据表

    电子发烧友网站提供《2-A宽量程降压SWIFT™转换TPS5420-EP 数据表.pdf》资料免费下载
    发表于 04-22 09:40 0次下载
    2-A宽量程降压<b class='flag-5'>SWIFT</b>™转换<b class='flag-5'>器</b>TPS5420-EP 数据表

    1-宽输入范围降压SWIFT™转换TPS5410数据表

    电子发烧友网站提供《1-宽输入范围降压SWIFT™转换TPS5410数据表.pdf》资料免费下载
    发表于 04-22 09:38 0次下载
    1-宽输入范围降压<b class='flag-5'>SWIFT</b>™转换<b class='flag-5'>器</b>TPS5410数据表

    3-A宽量程降压SWIFT™转换TPS5430数据表

    电子发烧友网站提供《3-A宽量程降压SWIFT™转换TPS5430数据表.pdf》资料免费下载
    发表于 04-22 09:32 0次下载
    3-A宽量程降压<b class='flag-5'>SWIFT</b>™转换<b class='flag-5'>器</b>TPS5430数据表

    具有Eco-Mode™ 的4.5-V至18-V输入、4-A 同步降压SWIFT™ 转换TPS54428数据表

    电子发烧友网站提供《具有Eco-Mode™ 的4.5-V至18-V输入、4-A 同步降压SWIFT™ 转换TPS54428数据表.pdf》资料免费下载
    发表于 04-19 09:27 0次下载
    具有Eco-Mode™ 的4.5-V至18-V输入、4-A 同步降压<b class='flag-5'>型</b><b class='flag-5'>SWIFT</b>™ 转换<b class='flag-5'>器</b>TPS54428数据表

    具有Eco-mode™ 的4.5-V至18-V输入、5-A 同步降压 SWIFT™ 转换TPS54228数据表

    电子发烧友网站提供《具有Eco-mode™ 的4.5-V至18-V输入、5-A 同步降压 SWIFT™ 转换TPS54228数据表.pdf》资料免费下载
    发表于 04-18 11:03 0次下载
    具有Eco-mode™ 的4.5-V至18-V输入、5-A 同步降压<b class='flag-5'>型</b> <b class='flag-5'>SWIFT</b>™ 转换<b class='flag-5'>器</b>TPS54228数据表

    3.8V 至 17V输入、12A 同步降压SWIFT™转换TPS56C215数据表

    电子发烧友网站提供《3.8V 至 17V输入、12A 同步降压SWIFT™转换TPS56C215数据表.pdf》资料免费下载
    发表于 03-25 09:56 0次下载
    3.8V 至 17V输入、12A 同步降压<b class='flag-5'>SWIFT</b>™转换<b class='flag-5'>器</b>TPS56<b class='flag-5'>C</b>215数据表

    TC387 rdc(解析器)代码不起作用的原因?

    我正在解码解析器信号,我正在使用为 TC38x 电机控制软件下载的 edsadc 和 rdc 库。 当我馈送解析器信号时,我看不到任何转换结果,因为它在 1 到 65536 值之间滑动。 正如你在
    发表于 01-22 06:17

    “踩坑”经验分享:Swift语言落地实践

    Swift认为字符串是由一个个字形群集 (grapheme clusters)组成的,字形群集的大小不固定所以不能用整数去索引 (字形群集其实就是Swift中的Character(字符)类)。
    的头像 发表于 12-28 17:37 775次阅读