写点什么

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:002142
用户头像

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

关注

评论

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

深入了解Spring之ConfigurationClassPostProcessor

邱学喆

@Bean @ComponentScan @PropertySource @Import @ImportResource

模块七作业

河马先生

架构实战营

css中塌陷问题指的是什么,margin和padding应该怎么区分

你好bk

CSS html css3 大前端

14. DeepMind--会打游戏的人工智能

Databri_AI

人工智能

特洛伊木马-图解VXLAN容器网络通信方案

Lance

【OpenIM原创】C/C++调用golang函数,golang回调C/C++函数

OpenIM

王者荣耀商城异地多活分析-模块7

小牧ah

架构实战营

月薪10K码农,跳槽到40K架构师,技术学习路线图汇总

小傅哥

Java 学习 运维 大前端 后端

模块7作业

柱林

架构训练营模块七作业

喻高咏        

架构训练营 模块七

《联想发布绿色智城解决方案,加速城市绿色低碳转型发展》

科技大数据

【LeetCode】检查平衡性Java题解

Albert

算法 LeetCode 9月日更

聊聊 Jmeter 如何并发执行 Python 脚本

星安果

Python Jmeter 并发 文件上传

模块七-游戏商城异地多活架构设计

babos

#架构实战营

架构实战营模块 7 作业-王者荣耀商城异地多活架构设计

蔸蔸

Kubernetes生态系统与演进路线

博文视点Broadview

计算机中遇到的单位该怎么换算

耳东@Erdong

计算机 9月日更 单位换算

架构实战营 - 模块 7 - 王者荣耀商城异地多活架构设计

雪中亮

架构实战营 #架构实战营

C#多线程开发-任务并行库04

Andy阿辉

C# asp.net 多线程 多线程并发

springboot vue二手交易市场毕设源码

清风

毕业设计

手撸二叉树之二叉树的直径

HelloWorld杰少

九月

架构实战营模块 7 作业

zlz

模块七作业

Mr.He

架构实战营

架构实战营 模块七 作业

脉醉

#架构实战营

架构训练营 模块六

小卷儿

架构实战营模块七作业

子豪sirius

架构实战营

模块七作业

袁小芬

模块七作业

VE

架构实战营

学读代码比学写代码更重要

baiyutang

编程 工程规约 9月日更

【架构训练营】模块七作业

zclau

【Flutter 专题】52 图解可折叠状态栏

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 9月日更

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