当前位置: 首页 > 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
  • axios请求、和返回数据拦截,统一请求报错提示_012
  • canvas 绘制双线技巧
  • CEF与代理
  •  D - 粉碎叛乱F - 其他起义
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • EOS是什么
  • express如何解决request entity too large问题
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • interface和setter,getter
  • JavaScript DOM 10 - 滚动
  • leetcode46 Permutation 排列组合
  • Linux后台研发超实用命令总结
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • python 装饰器(一)
  • python大佬养成计划----difflib模块
  • SwizzleMethod 黑魔法
  • 构建二叉树进行数值数组的去重及优化
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 前端_面试
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 使用API自动生成工具优化前端工作流
  • 首页查询功能的一次实现过程
  • 数组的操作
  • 小试R空间处理新库sf
  • 一文看透浏览器架构
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • ionic异常记录
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • #define、const、typedef的差别
  • #Spring-boot高级
  • (html转换)StringEscapeUtils类的转义与反转义方法
  • (JS基础)String 类型
  • (Oracle)SQL优化技巧(一):分页查询
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (solr系列:一)使用tomcat部署solr服务