当前位置: 首页 > news >正文

回顾 Swift 多平台移植进度 #2

作者:uraimo,原文链接,原文日期:2016-03-11
译者:Crystal Sun;校对:星夜暮晨;定稿:Cee

自上个月以来,已有一些 Swift 平台移植方面的代码迁移到了 master 分支上。现在就让我们回顾一下二月里都发生了哪些事情吧,并且看看当前还有哪些正处于开发状态中。

Windows

由 Han Sangjin 主导的 Cygwin Windows 平台在两周前已完成合并,您可以查看 PR #1108 了解更多信息。

PR #1466 之后的开发仍在进行,这项功能对其他平台来说也非常有用。目前开发主要集中在 PR #1516 上,主要就是把 swiftc 二进制文件链接到 Windows MSVC 库当中。

Android

由 Zhuowei Zhang、多产的 Brian Gesiak 以及其他人组建的安卓移植团队已经打开了 PR #1442 ,用以收集过去两个月里所有已完成的工作成果,他们的扩展目前正处于审查状态。

这一系列巨大的变化很有可能会被分解成一堆小的 PR,如果你对 Android 下的 Swift 感兴趣,我建议你跟进这个 PR,或者只是直接去学习一下 toolchain 的内部结构,感谢代码中那些有趣的注释,阅读源码才不至于枯燥无味。

ARM

PR #1157 中通过 William Dillon 的一些新的贡献,现已能够支持 Google's Gold linker。另外,thumb 架构类型现在可以使用了,您可以在 thumb/thumb 2 扩展所支持的地方,完成编译二进制文件的工作。

至于 ARMv6 上的 Swift,Swift 3.0 二进制文件目前已经可以下载了,这个版本比之前发布的 2.2 版本有了显著改善(包含了 Foundation 和 XCTest),因此我推荐您推荐使用这个版本。这个版本在二月中旬的时候就从 Swift master 分支的一个快照中完成了编译。

PowerPC64le

实际上上次我忘记介绍这个平台了,该平台在一月份的时候由 Anton Blanchard 在 PR #979 中引进。那时候,似乎还仅支持 PowerPC64 构架下的小端模式(little endian),系统是众望所归的 Linux。

交叉编译

对于从 OSX 到其他操作系统的交叉编译(Cross compilation)工作来说,在过去几个月里已由多个人完成了调研,@froody 在 PR #1398 里提供了一个例子,演示了实现的过程。

增加对交叉编译的支持可以用很多种不同的方法实现,但是尽可能少的使用移动部件从而提供代码的简洁性将不是一件简单的事情。这项功能似乎是下次更新所要解决的首要问题。

本文由 SwiftGG 翻译组翻译,已经获得作者翻译授权,最新文章请访问 http://swift.gg。

相关文章:

  • css3 渐变实例2径向渐变
  • 重构第24天 分解复杂的判断(Remove Arrowhead Antipattern)
  • 数据库下载
  • 聊聊并发(四)深入分析ConcurrentHashMap
  • Android 使用ViewPager实现左右循环滑动图片
  • Python 命令行参数和getopt模块详解
  • 图的广度优先搜索(BFS)
  • Sql Server之旅——第九站 看公司这些DBA们设计的这些复合索引
  • svn服务器的搭建
  • Atitit.获取某个服务 网络邻居列表 解决方案
  • 通过Android源代码分析startActivity()过程(下)
  • 转:MyBatis学习总结(Mybatis总结精华文章)
  • 【LINUX 学习】使用find和xargs[转摘自《shell编程和unix命令》]
  • 关于PowerBuilder 9.0中如何修改项目工程名字
  • MapReduce实现TopK
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • avalon2.2的VM生成过程
  • LeetCode29.两数相除 JavaScript
  • leetcode388. Longest Absolute File Path
  • MyEclipse 8.0 GA 搭建 Struts2 + Spring2 + Hibernate3 (测试)
  • PAT A1120
  • SpiderData 2019年2月25日 DApp数据排行榜
  • uva 10370 Above Average
  • 当SetTimeout遇到了字符串
  • 分布式熔断降级平台aegis
  • 强力优化Rancher k8s中国区的使用体验
  • 提醒我喝水chrome插件开发指南
  • 微信开源mars源码分析1—上层samples分析
  • 译自由幺半群
  • 终端用户监控:真实用户监控还是模拟监控?
  • python最赚钱的4个方向,你最心动的是哪个?
  • 从如何停掉 Promise 链说起
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • ###C语言程序设计-----C语言学习(3)#
  • #{}和${}的区别是什么 -- java面试
  • (ZT)一个美国文科博士的YardLife
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • (一)80c52学习之旅-起始篇
  • (转)setTimeout 和 setInterval 的区别
  • .bashrc在哪里,alias妙用
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法)
  • .NET建议使用的大小写命名原则
  • .NET上SQLite的连接
  • @Repository 注解
  • @RunWith注解作用
  • []error LNK2001: unresolved external symbol _m
  • [AI]文心一言出圈的同时,NLP处理下的ChatGPT-4.5最新资讯
  • [Android Studio] 开发Java 程序
  • [Android 数据通信] android cmwap接入点
  • [android] 看博客学习hashCode()和equals()
  • [bzoj 3124][sdoi 2013 省选] 直径