写点什么

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

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

关注

评论

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

SICP 习题解答 1.10

十元

程序员是如何解决问题的

ES_her0

28天写作 3月日更

云边协同

lenka

云计算 产品经理 3月日更

Dubbo SPI 使用源码分析

Yangjing

dubbo spi ProxyFactory 服务暴露 ExtensionFactory

LinqToExcel.Extend 源码分析

happlyfox

28天写作 3月日更

LeetCode题解:279. 完全平方数,动态规划,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

Python 环境搭建

依旧廖凯

Python 28天写作 3月日更

架构师训练营 4 期 第10周

引花眠

架构师训练营 4 期

IntellIJ IDEA 命令行运行一个 HelloWorld Python 程序

HoneyMoose

「架构师训练营 4 期」 第九周 - 001&2

凯迪

架构师训练营 4 期

世界上最好的排序算法是什么?

Nick

数据结构 算法 快速排序

IDEA 常用插件与配置

TroyLiu

Java vim ide idea插件 IntelliJ IDEA

数据分析师

Nydia

学习曾国藩:职场咸鱼的翻身之法

boshi

七日更 职业生涯

程序员成长第二十二篇:做任务分配时,要考虑员工的成长。

石云升

项目管理 程序员 28天写作 职场经验 3月日更

力扣(LeetCode)刷题,简单题+中等题(第20期)

不脱发的程序猿

LeetCode 力扣 28天写作 算法面经 3月日更

两会热议区块链,未来将呈现四大趋势

CECBC

区块链

【笔记】第六周 - 第 2 课

Geek_娴子

自动化测试环境搭建

IT蜗壳-Tango

IT蜗壳自动化 21天

5分钟介绍AI人工智能,机器学习和深度学习,John 易筋 ARTS 打卡 Week 40

John(易筋)

ARTS 打卡计划 arts

与前端训练营的日子 -- Week18

SamGo

学习

(28DW-S8-Day16) 在线教育体验课

mtfelix

28天写作

【自动化】Day01

IT蜗壳

恋物志(三):“美丽到牙齿”的智能硬件圈地运动

脑极体

容器 & 服务:K8s 与 Docker 应用集群 (三)

程序员架构进阶

Docker 容器 kubernet 28天写作 3月日更

阶段性正确

广之巅

阶段性正确

GitHub开源的超逼真俄罗斯方块游戏

不脱发的程序猿

GitHub 开源 28天写作 俄罗斯方块游戏 3月日更

拖延症这个毛病「Day 16」

道伟

28天写作

Python 语言基础之 变量和常量

HoneyMoose

快速排序算法实现及优化

Silently9527

Java 排序算法 快速排序

python常用库简介

张鹤羽

28天写作 3月日更

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