前言

这一期(200期)将是我最后一期以主要贡献者身份参与项目。我想要感谢开启这个项目的Jesse Squires,以及相信我并接替我继续运营这个项目的Bas Broek。同样我还要感谢所有帮助撰写、审阅或提供内容的贡献者。这确实是一个社区运行的项目。谢谢!

播客

在Sundell 播客 Swift 的第 110 集中,Tim Condon与John Sundell一起讨论客户端和服务端 Swift 开发人员如何利用新的内置并发系统,以及分布式和其他即将推出的语言功能如何继续下去让 Swift 在服务器上更加强大。

新闻和社区

六年前,即 2015 年 12 月 3 日,Swift 语言开源了。

Xcode 13.2 已经发布。该版本略有下降,但具有一些显著的Swift 特性。

Swift Playgrounds 4 现已推出。Swift Playgrounds 是学习如何编码的最佳和最简单的方法。借助 Swift Playgrounds 4,您可以使用工具直接在 iPad 上构建 iPhone 和 iPad 应用程序,并将它们直接提交到 App Store Connect。

亚马逊网络服务宣布Swift版本的AWS SDK目前可以开发者预览。

Vincent Pradeilles发布了一段关于 Swift 标准库的视频。

提交和拉取请求

Alejandro Alonso合并了一个删除 ICU的拉取请求。

同意的提案

SE-0331 从不安全的指针类型中删除Sendable已被接受。

SE-0332 包管理器命令插件已接受修改。

正在审查的提案

SE-0335:介绍存在 any 的审查。

Swift 中的存在类型有一个非常轻量级的拼写:类型上下文中的协议名称意味着存在类型。多年来,这已经通过引起混乱上升到主动危害的程度,导致程序员走上错误的道路,一旦他们遇到值级抽象的基本限制,通常需要他们重新编写代码。该提案通过使用 any 明确存在类型的巨大影响。

SE-0336:分布式 actor 隔离的审查。

随着最近在语言中引入了actors,Swift 获得了用于编写线程安全并发程序的强大而基础的构建器。该提案是一系列通过分布式 actor的概念扩展 Swift 的 actor 运行时的提案中的第一个,让开发人员不仅可以在本地环境中,还可以在分布式环境中利用 actor 模型。

对于分布式参与者,我们承认我们生活的世界越来越多地围绕分布式系统构建,我们应该为开发人员提供更好的工具方便在这些环境中工作。我们的目标是简化和推动 Swift 中分布式系统编程的最新技术,就像我们把利用local actors来并发编程和Swift's structured concurrency方法嵌入到Swift语言中。

该提案侧重于扩展分布式actors的actor隔离和类型检查。

SSWG-0018:MQTTNIO建议是审查。

有许多 Swift MQTT 库,但很多都不是建立在 SwiftNIO 之上的。许多只支持一个版本的协议或不提供 WebSocket 或 TLS 连接。MQTTNIO 提供了所有这些。该库最近还新增了新的的 Swift 并发 API。

SE-0327:关于 Actors 和初始化正在接受第二次审查。

针对第一次审查 1 的反馈,该提案经历了多次修改,作者总结为:

  1. 与 actor 无关的 actor 初始值设定项现在允许您从 nonisolated 方法中执行通常可以执行的任何操作。作为交换,Swift 会自动拒绝可能不安全的存储属性的访问。这是问题描述和建议的解决方案 3。
  2. Actor 的析构器不能再访问实例的不可发送的存储属性。这是问题描述和建议的解决方案 1
  3. 类型的存储属性的默认值在非隔离上下文中进行评估。这是问题描述和建议的解决方案
  4. 不再需要定义一个 actor 的委托初始化器时候加上 convenience 关键字。这是其委托初始化程序的问题描述和建议规则,仍在 Sendability 部分。

Swift论坛

Evan Wilde 提出了一个建议 @unavailableFromAsync属性。

Swift 并发模型允许任务在不同的线程上挂起和恢复。虽然这种行为允许计算资源的更高效用,但有一些令人讨厌的陷阱可能会出现在毫无戒心的程序员身上。一个陷阱是pthread_mutex_t从与持有锁的线程不同的线程解锁的未定义行为。跨暂停点读取和写入线程本地存储也可能导致意外行为,因为操作可能会在不同的线程上恢复。

Tom Doron提出了一个想法,即默认情况下在支持的平台上静态链接 Swift 运行时库。

Swift 5.3.1 引入了在 Linux 上静态链接 Swift 运行时库。使用此功能,用户可以 --static-swift-stdlib 在调用 SwiftPM 命令(或长格式 -Xswiftc -static-stdlib)时设置标志,以便将 Swift 运行时库静态链接到程序中。

在某些平台上,例如 Linux,这通常是链接程序的首选方式,因为程序更容易部署到目标服务器或以其他方式共享。

该提案探索了在此类平台上构建可执行程序时使其成为 SwiftPM 的默认行为。

Frederick Kellison-Linn提议重新考虑@escaping可选函数型参数。
Kavon Farvardin更新了关于 Actors 和 Initialization的提案。

由于提案与第一次审查有很大不同,所以这类似于竞标。下面是所提议的主要功能的非常非正式且不完整的摘要,以及一些指向文档本身的链接以获取更多详细信息:

  1. 与actor 无关的actor 初始值设定项现在允许您从nonisolated方法中执行通常可以执行的任何操作。作为交换,Swift 会自动拒绝对可能不安全的存储属性的访问。这是问题描述 2和建议的解决方案 1。
  2. Actor 的析构器不能再访问实例的不可发送的存储属性。这是问题描述 1和建议的解决方案
  3. 如果类型的隔离与其初始值设定项不兼容,则类型的存储属性不能具有默认值。这是问题描述和建议的解决方案
  4. 不再需要定义一个actor的委托初始化器时候加上convenience关键字。这是其委托初始化程序的问题描述 3和为其委托初始化器提出的规则 2,仍在Sendability部分。

关于我们

Swift社区是由 Swift 爱好者共同维护的公益组织,我们在国内以微信公众号的运营为主,我们会分享以 Swift实战SwiftUlSwift基础为核心的技术内容,也整理收集优秀的学习资料。

欢迎关注公众号:Swift社区,后台点击进群,可以进入我们社区的各种交流讨论群。希望我们Swift社区是大家在网络空间中的另一份共同的归属。

特别感谢 Swift社区 编辑部的每一位编辑,感谢大家的辛苦付出,为 Swift社区 提供优质内容,为 Swift 语言的发展贡献自己的力量,排名不分先后:
张安宇@微软、戴铭@快手、展菲@ESP、倪瑶@Trip.com、杜鑫瑶@新浪、韦弦@Gwell、张浩@讯飞、张星宇@ByteDance、郭英东@便利蜂

周报仓库:https://github.com/SwiftCommunityRes 文章中外引链接较多,可以点击 阅读原文 更加方便阅读。

Swift 周报 第九期相关推荐

  1. 上行受阻,主流币种陷高位震荡——陀螺财经周报第九期

     一周重点资讯回顾 热点事件 1. SEC监管人员称允许以合法方式筹集资金 2. 伊朗司法部门禁止Telegram,指责其会引起骚乱 3. 超100家韩国公司在 ...

  2. Swift 周报 第六期

    前言 译者言:周日立冬,北方多地迎来 2021 年的第一场雪,上海也降下大雨,此时你所在的城市降温了吗?记得添衣保暖,避免感冒生病影响工作和生活. Xcode 13.2 Beta 版已具备并发支持,该 ...

  3. Swift 周报 第二十九期

    文章目录 前言 新闻和社区 担心泄密!外媒:苹果公司限制员工使用ChatGPT 苹果公司大幅削减其MR头显销售预期,不足百万台 提案 通过的提案 正在审查的提案 Swift 论坛 1.讨论 Swift ...

  4. Swift 周报 第四期

    前言 最近 Swift.org 进行了一些非常好的改进,包括对 dark mode 的支持. 对于在 iOS 上使用 dark mode 的用户,该网站将自动切换模式以匹配. 为了 Swift 社区周 ...

  5. T Chat 第九期「 李泽磊 - 我在百度做阅读器 」9 月 1 日晚 8 点开播

    "T Chat | 我在大厂做研发"系列直播活动第九期 9 月 1 日晚 8 点正式开播! 活动详情 讲师 & 活动简介 本场我们邀请到了百度小说客户端团队负责人李泽磊,来 ...

  6. Datawhale第九期组队学习计划

    Datawhale 组队学习 第九期Datawhale组队学习计划马上就要开始啦! 这次共组织三个组队学习,涵盖了编程.机器学习理论以及动手实践的内容,大家可以按照需要选择参加. 数据结构与算法(上) ...

  7. 西南民族大学计算机基础技能应用培训基地,计科学院第九期Office应用培训开班典礼顺利举办...

    10月28日,由学校学生工作部(处)主办.计算机科学与工程学院承办的计算机基础技能应用培训基地第九期Office应用培训开班典礼在航空港校区举办.学校学生工作部(处)负责人.学生发展中心指导老师,计算 ...

  8. 西门子fifo_查缺补漏必备 |三菱西门子学员知识问答汇总(技成周报134期)

    有朋友问怎么能快速找到以前的周报,今天小编把往期周报内容汇总在一起,方便大家查询,如果觉得有帮助记得点赞,分享哦.点击文章标题可以直接查阅文章内容. [技成学习周报第1期]西门子常见问题解答 [技成学 ...

  9. 【Azure Show】|第九期 “我的计算机入门之路” 嘉宾秦婷婷汪宇杰文轩

    欢迎来到Azure Show! Azure Show 欢迎来到Azure Show 第九期!继上期[搭上AI快车]为大家带来数位微软技术专家于各自IT技术领域的经验分享,有2400多人在线上通过b站看 ...

最新文章

  1. 视觉里程计的轨迹评估的工具:evo
  2. Visual C++ dll
  3. Py之mpld3:mpld3的简介、安装、使用方法之详细攻略
  4. delphi 7 学习步骤
  5. fullcalendar 显示的时间间隔只有四十五分钟_【体能新视点】——女子篮球运动员比赛期间的心率、血乳酸浓度和时间运动分析...
  6. 手把手教你用Java的swing制作计算器
  7. js 数字序号 转 字母序号
  8. java preference,Java使用Preference类保存上一次记录的方法
  9. 【caffe-windows】 caffe-master 之Matlab中model的分类应用
  10. Go语言第一深坑 - interface 与 nil 的比较 (转)
  11. React:组件的生命周期
  12. 创建第一个mybatis程序 遇到的问题
  13. 【余压监控系统】实时性、数字化、智能化,自动化,连续动态监控
  14. 关于嵌入式linux下的串口通讯问题---回车、换行、缓冲
  15. html输入框密码颜色,css解决浏览器输入框记住账号密码后的背景色
  16. 使用哈希函数:H(k)=3k MOD 11,并采用链地址法处理冲突。试对关键字序列(22,41,53,46,30,13,01,67)构造哈希表,求等概率情况下查找成功的查找长度,并设计构造哈希表
  17. Windows - 关于网络唤醒设置的说明
  18. 【红队APT】钓鱼篇Office-CVE漏洞RLO隐藏压缩包释放免杀打包捆绑
  19. 流畅的python第十四章可迭代的对象,迭代器和生成器学习记录
  20. #HHD32F107# AD采集

热门文章

  1. 洛谷 P3400 仓鼠窝
  2. 编程小白和大神都想要的百元级物理外挂(装逼利器)----KeyPad++编程键盘
  3. python设置折线图标题字体为宋体_python中matplotlib画折线图实例(坐标轴数字、字符串混搭及标题中文显示)...
  4. Android Audio FastMixer 实例
  5. python3 分离gif
  6. Java使用Itext5与html模板生成pdf并支持下载
  7. 2020《更好的明年》广东卫视跨年演讲
  8. Java 老矣,尚能饭否? 1
  9. Sputtr--万能搜索引擎
  10. 雄牛PVC地板革新胶地板行业成环保绿色新选择