2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

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

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

关注

评论

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

华为云弹性负载均衡ELB,如何保障服务器不瘫痪?

爱科技的水月

华为云连接CC服务助企业联通全球

爱科技的水月

【kubernetes入门到精通】Kubernetes的健康监测机制以及常见ExitCode问题分析「探索篇」

码界西柚

Kubernetes 云原生 服务监控 12月月更

安全可靠,弹性灵活--华为虚拟专用网络VPN

清欢科技

从各行业的实际运用中,窥见华为云虚拟专用网络VPN的强大性能

清欢科技

华为云智能云接入ICA,助力企业轻松上云

与时俱进的时代

无代码的未来

俞凡

无代码

更加灵活、稳定,华为云虚拟专用网络VPN双活网关优势明显!

清欢科技

出海有“云”!华为云全球加速助力跨国企业提升网络体验

与时俱进的时代

华为云弹性负载均衡服务,如何助企业应付流量压力

爱科技的水月

GitHub屠榜第一的微服务架构深度解析,简直太硬核了

小小怪下士

Java 程序员 微服务

华为云智能云接入ICA,企业数据上云的信赖之选

与时俱进的时代

8年java技术岗面试官总结:2022超强面试大全,抓住2022的小尾巴

钟奕礼

程序员 Java 面试 Java、 java 编程

史上最全JVM大全详解!java程序员细节到极致的一次,魔鬼

钟奕礼

程序员 Java 面试 Java、 java 编程

什么是WebSocket

穿过生命散发芬芳

websocket 12月月更

华为虚拟专用网络VPN,为何备受游戏厂商喜爱?

清欢科技

华为云VPN,经典跟专业版企业应该怎么选?

清欢科技

公共网络安全,还得看华为云虚拟专用网络VPN

清欢科技

运维训练营第十课作业

好吃不贵

BAT大厂java程序员面试必问:JVM+Spring+分布式+tomcat+MyBatis

钟奕礼

程序员 Java 面试 Java、 java 编程

笑对过往、活在当下、期盼未来

阿Q说代码

程序员 flag 年度总结

5分钟搞懂Web3架构

俞凡

架构 web3

2022年度盘点|聚焦运维服务,云智慧的高光时刻

云智慧AIOps社区

运维 AIOPS 智能运维 云智慧 智能运维AIOps

Github星标80k的阿里大牛强推JDK源码笔记,6到飞起

程序知音

Java 源码 jdk 后端技术

【web 开发基础】PHP8中对数组操作的新变化(56)

迷彩

List 数组 字符串 PHP基础 PHP8

5分钟搞懂BFF

俞凡

架构 BFF

如何实现线上线下良好互通?华为云CC支持一点接入多点通达

爱科技的水月

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