Swift 周报 第一期

简介: 从本周开始,我们 Swift 社区将开始与 SwiftWeekly 合作更新关于 Swift 社区最新的进展与动向。让我们乘着社区的风帆,一起荡起双桨,让 Swift 成为世界上最好的语言。

前言

从本周开始,我们 Swift 社区将开始与 SwiftWeekly 合作更新关于 Swift 社区最新的进展与动向。让我们乘着社区的风帆,一起荡起双桨,让 Swift 成为世界上最好的语言。

播客

在 Swift by Sundell 播客的第 103 期中,SwiftLee 的创建者 Antoine van der Lee 加入了 John Sundell

他们从新的 concurrency 系统到 convenience 特性以及各种改进等方向讨论了 Swift 5.5 新引入的一部分功能。

新闻和社区

Xcode 各版本的 最低要求和支持的 SDK

Antoine van der Lee 写了一篇博文,探讨在 Swift 中解包或 throw 的解决方案

Leonardo Maia Pugliese 写了一篇关于如何在 Swift 中使用 @available 进行 API 约束的博客文章。

John Sundell 写了一篇文章解释了如何在 switch 语句中使用 @unknown default

Bas Broek 写了一篇博文,探讨如何在 Swift 中弃用 Workarounds

正在审查的提案

SE-0321: Package Registry Service - Publish Endpoint 正在审查中

软件包注册表负责确定哪些软件包版本可提供给消费者使用。

目前,软件包版本的可用性由 out-of-band 流程决定。例如,注册表可以查询公共 Swift 软件包的索引,并为每个标签提供具有有效版本号的版本。

拥有发布新版本到软件包注册表的标准端点将增强维护者分发其软件的能力,并促进服务提供商之间的互操作性。

Swift 论坛

Dimitri Racordon 提出了一个用私有字段实现协议的想法

在协议中,所有字段(propertiesmethods)都将获得符合条件类型的访问可见性。例如,符合具有公共类型的协议将提示其所有要求都是公共的。

Evan Wilde 提出了一项重新审视 async main 语义的提案。

  • main 函数应该同步运行到第一个暂停点
  • main 函数应该在 main actor 上运行
  • MainActor 应该为默认的 runloop 行为提供用户指定的替代方案。
  • main 任务应该从 getCurrentThreadPriority 拉取优先级,而不是 hard-coded 默认优先级

Anders Bertelrud 提议修改 SE-0303:插件 API,使用 @main 作为插件入口点。

我想提议修改 SE-0303SwiftPM 插件使用 @main 作为入口点,而不是 top-level 作为入口点。 虽然这样做有点冗长,但是可以为每种插件定制入口点,并且还可以更加清楚地说明每个插件的输入和预期输出是什么。

Jeremy Saklad 提出了一项提案,该提案将允许使用具体的相关协议类型

Karoy Lorentey 发布了 Swift Collections 1.0 版

Konrad ktoso Malawski 发布了 Swift Server Workgroup 2021 年 8 月 4 日的会议记录

Doug Gregor 提出了 在 Sendable 检查中实施 Staging 的提案。

SE-0302 引入了 Sendable 协议,该协议明确地指出哪些类型的值可以安全地跨过 actors 进行复制。通俗的讲,就是拷贝的值和原始值可以同时在上下文使用。

Sendable 检查在所有 Swift 代码中应用,消除了由 shared mutable state 引起的大量数据竞争。Swift 5.5 没有完全实现 Sendable 检查,因为这样做会导致太多的编译器 errorsdiagnostics,从而导致该功能不可用。

我认为可以逐步采用 Sendable 检查来提高数据竞争的安全性。我们提出了两个想法分段完成 Sendable 检查:

  • 增量采用并发并且引入更多的 Sendable 检查。
  • 不能让用户模块之外的 Sendable 问题阻挡进度,防止过度的注释

Aura Lily Vulcano 推荐了一个 Swift 默认提供的新模块

该模块将重新导出包含当前平台的 POSIX 或类似 POSIX 的 C 标准库的正确模块(如果有的话)。

默认情况该模块不会被导入,但是允许 “reasonably cross-platform” 代码,以避免使用冗长的 #if canImport(…) 链来访问所有的标准库,因为它们在不同的操作系统上有不同的名称。

例如,模块可以命名为 CStdlib。

Robert Widmann(@CodaFi_)提出了一个关于开始可变参数泛型的想法。

作为改进泛型系统的人体工程学的一部分,以及为使用 tuples 抽象提供更好的支持,我想用 surface syntax 和 preliminary semantics 来实现这个想法。 由于这是一个很大的主题领域,对语言和后续提案的方向都有很大影响,因此你的反馈在此阶段对于塑造此功能集的方向至关重要。

我要感谢 Alejandro Alonso, Doug GregorSlava Pestov,感谢他们为我在这个问题上的思考奠定了基础。

可以在这里看到原文的链接 TypeSequences.md · GitHub

关于我们

我们是由 Swift 爱好者共同维护,我们会分享以 Swift 实战、SwiftUI、Swift 基础为核心的技术内容,也整理收集优秀的学习资料。

感谢 SwiftWeekly 与我们的合作,开启 Swift 周报中文版发布之旅。

周报仓库:https://github.com/SwiftCommunityRes

后续还会翻译大量资料到我们公众号,有感兴趣的朋友,可以加入我们

目录
相关文章
|
人工智能 小程序 机器人
Swift 周报 第二十期
在这个来去匆匆风云变幻的季节,Swift社区更像一个密不透风的茧,为的只是有朝一日能够破茧成蝶。👊👊👊
124 0
|
安全 搜索推荐 编译器
Swift 周报 第十三期
昔孔子登泰山而小天下, 今诸君阅Swift社区皆足矣。请君浅读,与君共勉!👊👊👊
170 0
Swift 周报 第十三期
|
人工智能 自动驾驶 程序员
Swift 周报 第十九期 |技术汇总
十期磨一剑,废铁亦有形,Swift社区就是你梦想已久的香格里拉,哪怕青冥长天,纵然绿水波澜!👊👊👊
166 0
|
存储 供应链 API
Swift 周报 第十八期
蝴蝶的生命之所以如此短暂,因为它的翅膀太过精致了。Swift社区之所以浩瀚汹涌,因为它总想牵动起每一位读者的心!👊👊👊
152 0
Swift 周报 第十八期
|
Web App开发 安全 Linux
Swift 周报 第十七期
风起雨坠袭大地,叶落冬来又一年。Swift社区,和你同风雨,与你共未来!👊👊👊
124 0
|
安全 API 开发工具
Swift 周报 第十六期
当你来到双水村以外的大世界,你的人生目标便不单单是一名庄稼人了。Swift社区陪你一起成长,一起创造更多可能!👊👊👊
130 0
Swift 周报 第十六期
|
传感器 存储 数据采集
Swift 周报 第十五期
果然,十一假期与新一轮疫情撞了个满怀,远方的你还好吗?Swift社区愿与你携手,一起尖叫一起笑,一起撑伞一起闹!👊👊👊
172 0
Swift 周报 第十五期
|
安全 程序员 编译器
Swift 周报 第十四期
小时候幸福很简单,长大后简单很幸福。Swift社区有你未领取的小幸福,等你简简单单来开启!👊👊👊
131 0
|
安全 5G 网络安全
Swift 周报 第十二期
夏夜恬静月色柔,绵绵思绪埋心头,Swift社区常逗留,今夕明朝百事欧。欧拉欧拉👊👊👊
220 0
|
供应链 算法 JavaScript
Swift 周报 第十一期
平凡的八月,不平凡的世界,你若落后,必定挨打,你若前进,方得始终!**Swift社区**,给你最新的指引,给你最真的铠甲!
289 0
Swift 周报 第十一期