开工福利|免费学 2200+ 精品线上课,企业成员人人可得! 了解详情
写点什么

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

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

关注

评论

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

账户经常被盗号怎么办?防盗“黑科技”了解一下

华为云开发者联盟

华为云 云安全 主机安全 双因子认证 弱密码

Docker商业版受限,胖容器是个选择

BoCloud博云

Docker 容器 博云

原创 | 使用JPA实现DDD持久化-O/R阻抗失配(1/2)

编程道与术

Java hibernate DDD JDBC jpa

让这家有12万名员工、1.7万种产品的钢铁厂平滑上云的黑科技是什么?

华为云开发者联盟

大数据 云服务 华为云 非对称加密 KYON

上手Elasticsearch

北漂码农有话说

week11 作业

Geek_196d0f

《精益创业》续

孙苏勇

随笔杂谈 精益创业

在木莲庄酒店和孩子一起体验“团队作战”的乐趣!

InfoQ_967a83c6d0d7

架构师训练营 第11周

大丁💸💵💴💶🚀🐟

架构师训练营第十一周作业

Hanson

年薪80万技术专家,面试通过后,被发现简历造假!合并8年前多段工作,惨遭警告和淘汰!

程序员生活志

程序员 面试 职场

薪水真的不是工作的全部

escray

学习 面试

分手快乐 祝你快乐 你可以找到更好的

escray

学习 面试

Flink状态管理-8

小知识点

大数据 flink scal

如何在面试中表现你所没有的能力

escray

学习 面试

云原生技术采用增加,全球60%后端开发人员都在使用容器

BoCloud博云

Kubernetes 容器 云原生 CaaS 博云

一个用户秘密加密验证功能

elfkingw

用户注册密码保存与校验(golang版)

2流程序员

架构师训练营第十一周总结

Hanson

易实战Spring Boot 2 资源汇总 从入门到精通 内含实战github代码 毫无保留分享

John(易筋)

redis Spring Boot 2 RestTemplate thymeleaf HikariCP

开源流数据公司 StreamNative 推出 Pulsar 云服务,推进企业“流优先”进程

Apache Pulsar

Apache Pulsar 消息系统 消息中间件

oeasy教您玩转linux010105详细手册man

o

性能相关,进程调度

Linuxer

满足消费者仪式感要求,木莲庄酒店做得很到位

InfoQ_967a83c6d0d7

week11 小结

Geek_196d0f

计算机网络基础(二十一)---传输层-TCP连接的四次挥手

书旅

TCP 四次挥手 TCP/IP 协议族

ARTS挑战打卡的100天,我学到了这些

老胡爱分享

ARTS 打卡计划

大数据技术思想入门(五):分布式计算特点

cristal

Java 大数据 hadoop 分布式

升级的华为云“GaussDB”还能战否?

华为云开发者联盟

MySQL 数据库 开源 Elastic Stack GaussDB

代理,一文入魂

苹果看辽宁体育

Java 后端 代理

“DNAT+云链接+CDN”加速方案,助力出海企业落地生长

华为云开发者联盟

CDN 网络 华为云 企业出海 网络加速

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