Swift 周报 第九期
前言
这一期(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 的反馈,该提案经历了多次修改,作者总结为:
- 与 actor 无关的 actor 初始值设定项现在允许您从
nonisolated
方法中执行通常可以执行的任何操作。作为交换,Swift 会自动拒绝可能不安全的存储属性的访问。这是问题描述和建议的解决方案 3。 - Actor 的析构器不能再访问实例的不可发送的存储属性。这是问题描述和建议的解决方案 1
- 类型的存储属性的默认值在非隔离上下文中进行评估。这是问题描述和建议的解决方案
- 不再需要定义一个
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的提案。
由于提案与第一次审查有很大不同,所以这类似于竞标。下面是所提议的主要功能的非常非正式且不完整的摘要,以及一些指向文档本身的链接以获取更多详细信息:
- 与actor 无关的actor 初始值设定项现在允许您从
nonisolated
方法中执行通常可以执行的任何操作。作为交换,Swift 会自动拒绝对可能不安全的存储属性的访问。这是问题描述 2和建议的解决方案 1。 - Actor 的析构器不能再访问实例的不可发送的存储属性。这是问题描述 1和建议的解决方案
- 如果类型的隔离与其初始值设定项不兼容,则类型的存储属性不能具有默认值。这是问题描述和建议的解决方案
- 不再需要定义一个
actor
的委托初始化器时候加上convenience
关键字。这是其委托初始化程序的问题描述 3和为其委托初始化器提出的规则 2,仍在Sendability
部分。
关于我们
Swift社区是由 Swift 爱好者共同维护的公益组织,我们在国内以微信公众号的运营为主,我们会分享以 Swift实战、SwiftUl、Swift基础为核心的技术内容,也整理收集优秀的学习资料。
欢迎关注公众号:Swift社区,后台点击进群,可以进入我们社区的各种交流讨论群。希望我们Swift社区是大家在网络空间中的另一份共同的归属。
特别感谢 Swift社区 编辑部的每一位编辑,感谢大家的辛苦付出,为 Swift社区 提供优质内容,为 Swift 语言的发展贡献自己的力量,排名不分先后:
张安宇@微软、戴铭@快手、展菲@ESP、倪瑶@Trip.com、杜鑫瑶@新浪、韦弦@Gwell、张浩@讯飞、张星宇@ByteDance、郭英东@便利蜂
周报仓库:https://github.com/SwiftCommunityRes 文章中外引链接较多,可以点击 阅读原文 更加方便阅读。
Swift 周报 第九期相关推荐
- 上行受阻,主流币种陷高位震荡——陀螺财经周报第九期
一周重点资讯回顾 热点事件 1. SEC监管人员称允许以合法方式筹集资金 2. 伊朗司法部门禁止Telegram,指责其会引起骚乱 3. 超100家韩国公司在 ...
- Swift 周报 第六期
前言 译者言:周日立冬,北方多地迎来 2021 年的第一场雪,上海也降下大雨,此时你所在的城市降温了吗?记得添衣保暖,避免感冒生病影响工作和生活. Xcode 13.2 Beta 版已具备并发支持,该 ...
- Swift 周报 第二十九期
文章目录 前言 新闻和社区 担心泄密!外媒:苹果公司限制员工使用ChatGPT 苹果公司大幅削减其MR头显销售预期,不足百万台 提案 通过的提案 正在审查的提案 Swift 论坛 1.讨论 Swift ...
- Swift 周报 第四期
前言 最近 Swift.org 进行了一些非常好的改进,包括对 dark mode 的支持. 对于在 iOS 上使用 dark mode 的用户,该网站将自动切换模式以匹配. 为了 Swift 社区周 ...
- T Chat 第九期「 李泽磊 - 我在百度做阅读器 」9 月 1 日晚 8 点开播
"T Chat | 我在大厂做研发"系列直播活动第九期 9 月 1 日晚 8 点正式开播! 活动详情 讲师 & 活动简介 本场我们邀请到了百度小说客户端团队负责人李泽磊,来 ...
- Datawhale第九期组队学习计划
Datawhale 组队学习 第九期Datawhale组队学习计划马上就要开始啦! 这次共组织三个组队学习,涵盖了编程.机器学习理论以及动手实践的内容,大家可以按照需要选择参加. 数据结构与算法(上) ...
- 西南民族大学计算机基础技能应用培训基地,计科学院第九期Office应用培训开班典礼顺利举办...
10月28日,由学校学生工作部(处)主办.计算机科学与工程学院承办的计算机基础技能应用培训基地第九期Office应用培训开班典礼在航空港校区举办.学校学生工作部(处)负责人.学生发展中心指导老师,计算 ...
- 西门子fifo_查缺补漏必备 |三菱西门子学员知识问答汇总(技成周报134期)
有朋友问怎么能快速找到以前的周报,今天小编把往期周报内容汇总在一起,方便大家查询,如果觉得有帮助记得点赞,分享哦.点击文章标题可以直接查阅文章内容. [技成学习周报第1期]西门子常见问题解答 [技成学 ...
- 【Azure Show】|第九期 “我的计算机入门之路” 嘉宾秦婷婷汪宇杰文轩
欢迎来到Azure Show! Azure Show 欢迎来到Azure Show 第九期!继上期[搭上AI快车]为大家带来数位微软技术专家于各自IT技术领域的经验分享,有2400多人在线上通过b站看 ...
最新文章
- 视觉里程计的轨迹评估的工具:evo
- Visual C++ dll
- Py之mpld3:mpld3的简介、安装、使用方法之详细攻略
- delphi 7 学习步骤
- fullcalendar 显示的时间间隔只有四十五分钟_【体能新视点】——女子篮球运动员比赛期间的心率、血乳酸浓度和时间运动分析...
- 手把手教你用Java的swing制作计算器
- js 数字序号 转 字母序号
- java preference,Java使用Preference类保存上一次记录的方法
- 【caffe-windows】 caffe-master 之Matlab中model的分类应用
- Go语言第一深坑 - interface 与 nil 的比较 (转)
- React:组件的生命周期
- 创建第一个mybatis程序 遇到的问题
- 【余压监控系统】实时性、数字化、智能化,自动化,连续动态监控
- 关于嵌入式linux下的串口通讯问题---回车、换行、缓冲
- html输入框密码颜色,css解决浏览器输入框记住账号密码后的背景色
- 使用哈希函数:H(k)=3k MOD 11,并采用链地址法处理冲突。试对关键字序列(22,41,53,46,30,13,01,67)构造哈希表,求等概率情况下查找成功的查找长度,并设计构造哈希表
- Windows - 关于网络唤醒设置的说明
- 【红队APT】钓鱼篇Office-CVE漏洞RLO隐藏压缩包释放免杀打包捆绑
- 流畅的python第十四章可迭代的对象,迭代器和生成器学习记录
- #HHD32F107# AD采集
热门文章
- 洛谷 P3400 仓鼠窝
- 编程小白和大神都想要的百元级物理外挂(装逼利器)----KeyPad++编程键盘
- python设置折线图标题字体为宋体_python中matplotlib画折线图实例(坐标轴数字、字符串混搭及标题中文显示)...
- Android Audio FastMixer 实例
- python3 分离gif
- Java使用Itext5与html模板生成pdf并支持下载
- 2020《更好的明年》广东卫视跨年演讲
- Java 老矣,尚能饭否? 1
- Sputtr--万能搜索引擎
- 雄牛PVC地板革新胶地板行业成环保绿色新选择