写点什么

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

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

关注

评论

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

产品的基准线:确定性的产品

boshi

产品设计 研发管理 七日更

图像基本概念,Python 图像算法取经之旅 365 天的第 2 天

梦想橡皮擦

28天写作 3月日更

比电脑屏保还酷?在电脑桌面实时显示当前时间。

彭宏豪95

效率 效率工具 时间 应用 桌面时钟

飞桨刷新分子性质预测榜单,助力AI药物研发

百度大脑

百度 AI 飞桨

Swagger 常用注解

insight

swagger 3月日更

详解 ZooKeeper 数据持久化

HelloGitHub

Java zookeeper ZooKeeper原理

高斯 Redis 在IM场景中的应用

华为云开发者联盟

数据库 IM 华为云 GaussDB(for Redis)

高效使用Chrome浏览器,你可能不知道的10个技巧。

彭宏豪95

chrome 效率 浏览器 使用技巧

产品经理面试常见问题总结1

lenka

3月日更

5G与房地产

ES_her0

28天写作 3月日更

随便说说“借鉴”那些事「Day 26」

道伟

28天写作

密码学系列之:csrf跨站点请求伪造

程序那些事

安全 密码学 CSRF 程序那些事

篮下有球-用例2

z

Go训练营第4周总结

Glowry

都在讲Redis主从复制原理,我来讲实践总结

华为云开发者联盟

数据库 redis 复制 服务器 非关系型数据库

SD-RTN——毫秒级网络加速带来全新的体验

anyRTC开发者

android 5G 音视频 WebRTC RTC

这可能是今年最值得入手的一本思维导图书

博文视点Broadview

有道精品课实时数据中台建设实践

有道技术团队

大数据

京东M-PaaS平台之Android组件化系统私有化部署改造实践

京东科技开发者

系统架构 mPaaS

zookeeper的数据模型详解

大数据技术指南

大数据 zookeeper 28天写作 3月日更

鲸品堂开篇

鲸品堂

行业资讯 通信 科技

数仓集群管理:单节点故障RTO机制分析

华为云开发者联盟

GaussDB 集群 GaussDB(DWS) RTO 单节点故障

防火墙双机热备

MindSpore学习(一)

依旧廖凯

28天写作 3月日更

有意义的选择——初谈心流

Justin

心理学 28天写作 游戏设计

面试官:线程池中多余的线程是如何回收的?

Java小咖秀

Java 面试 多线程

翻译:《实用的Python编程》06_03_Producers_consumers

codists

Python

NA公链双重隐私技术为NAC公链护航涅磐

区块链第一资讯

区块链 公链 挖矿

EGG公链——ETFalk开启了新一代去中心化社交革命

币圈那点事

智汇华云 | ArcherOS Stack共享存储虚拟化技术剖析

华云数据

万象:百度的海量多媒体信息处理系统

百度开发者中心

#富媒体# #信息系统#

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