写点什么

Apple 开源了 Swift Migrator

  • 2017-07-12
  • 本文字数:675 字

    阅读完需:约 2 分钟

Apple 近期在 WWDC 2017 大会上宣布,已经开源在了 Xcode 9 中提供的的 Swift 4 Migrator。

Swift Migrator 现已完全重写,业已成为编译器的一个组成部分,而不再是一个独立的工具,并对 Swift 3 和 Swift 4 提供同等优秀的支持。Migrator 的工作是通过下面一系列的测试(Pass)完成的:

  • Pre-fix-it 测试。在编译器不能对主输入文件做类型检查时,执行该测试。在此情况下,Migrator 会应用编译器给出的所有 fix-it 建议,该过程至多重新尝试两次,目的在于生成代码的抽象语法树(AST)表示。
  • AST 测试。如果开发人员需要迁移 Swift 4 之前的代码,那么需要在 Pre-fix-it 测试之后开展 AST 测试。测试包括考虑所有以前的 SDK 在 API 层次上的改进,使得源代码能匹配新的 SDK API。
  • Post-fix-it 测试。该测试尝试去应用所有 Swift 4 模式编译器给出的 fix-it 建议。这一步骤最多执行七次,因为在每个 fix-it 测试过程中可能会出现新的问题。

在 Pre-fix-it 和 Post-fix-it 测试阶段,对于所有关联到错误的 fix-it,Migrator 是默认应用的;而对于关联到警告的 fix-it,Migrator 是选择性使用的。

值得注意的是,虽然Apple 鼓励项目迁移到Swift 4,但代码迁移并非是严格要求的,因为Swift 3.2 和4 的编译目标可以共存并链接到一起。此外,开发人员不应该期待被迁移的代码块会自动生成一个可编译项目,迁移后的代码也无法保证是正确的,或是符合语言习惯的。一系列迁移到Swift 4 的已知问题,以及所有可用的解决方案,都以文档形式提供于 Xcode 9 的发行说明中,文档对所有注册的开发人员可用。

查看英文原文: Apple Open-sources the Swift Language Migrator

2017-07-12 19:002171
用户头像

发布了 227 篇内容, 共 74.8 次阅读, 收获喜欢 28 次。

关注

评论

发布
暂无评论
发现更多内容

让三驾马车奔腾:华为如何推动空间智能化发展?

脑极体

全屋智能

有奖活动 | 大咖论道:一同畅聊鸿蒙生态

HarmonyOS开发者

HarmonyOS

Zebec Protocol ,不止于 Web3 世界的 “Paypal”

威廉META

CMake中使用vcpkg

芯动大师

Zebec Protocol ,不止于 Web3 世界的 “Paypal”

西柚子

Go 注释

小万哥

Go 程序员 云原生 后端 开发

代码随想录Day41 - 动态规划(三)

jjn0703

企业轻量应用,云耀云服务器L实例能帮大忙!

YG科技

挖掘数据价值,助力企业智能升级丨华为云华为云通用AI解决方案简评

YG科技

适合自己企业的erp系统怎么选?这8条关键因素缺一不可!

优秀

ERP系统

吴声年度演讲,关于Notion 的“模版”和 CLG |highlight

B Impact

深入理解 HDFS(三):HRPC

冰心的小屋

hdfs RPC hadoop rpc

JVM内存管理--GC算法精解(五分钟教你终极算法---分代搜集算法)

java易二三

编程 程序员 计算机 科技 技术宅

【腾讯云 Cloud Studio 实战训练营】使用Cloud Studio快速构建React完成点餐H5页面还原

小小白

腾讯云 Cloud Studio

Programming abstractions in C阅读笔记:p76-p83

codists

Zebec Protocol ,不止于 Web3 世界的 “Paypal”

大瞿科技

Zebec Protocol ,不止于 Web3 世界的 “Paypal”

股市老人

并发中atomic BUG分享

FunTester

TextBrewer:融合并改进了NLP和CV中的多种知识蒸馏技术、提供便捷快速的知识蒸馏框架、提升模型的推理速度,减少内存占用

汀丶人工智能

人工智能 自然语言处理 知识蒸馏

梳理日常开发涉及的负载均衡

WizInfo

负载均衡 网关

Zebec Protocol ,不止于 Web3 世界的 “Paypal”

鳄鱼视界

何时使用Elasticsearch而不是MySql

越长大越悲伤

MySQL elasticsearch

10. 数据类型 - 元组详解

茶桁

Python 数据类型 tuple

erp系统都有哪几家,如何选择适合自己企业的erp系统?

优秀

ERP系统

【腾讯云 Cloud Studio 实战训练营】使用Cloud Studio构建SpringSecurity权限框架

小鲍侃java

Java' spring、

Zebec Protocol ,不止于 Web3 世界的 “Paypal”

BlockChain先知

探索式测试-用Scrum的套路做测试

大头

Scrum 敏捷测试 探索测试 敏捷迭代

k8s安装prometheus

tiandizhiguai

k8s Promethues

SpringBoot3进阶用法

Java 架构 springboot SpringBoot3

Apple开源了Swift Migrator_Linux_Sergio De Simone_InfoQ精选文章