乾明 边策 发自 凹非寺 
量子位 报道 | 公众号 QbitAI

华为方舟编译器终于正式开源,源代码放出,兑现了在8月开源的承诺。

代码不在GitHub,而是在自家开源平台上。这也意味着,华为开源平台也同时问世。

根据官方信息,这次方舟编译器开源信息内容主要有:

编译器框架部分源码,包括编译器中间表示(IR)和语言编译实现,同时搭配编译器其他二进制组件,实现Java程序到aarch64汇编指令的编译过程。

开发者可基于开源代码+二进制,编译构建出编译器工具链,尝试对Java程序进行编译。

社区参与者可以通过框架源码学习方舟编译器的编译器中间表达(IR)及基本的中端编译框架,熟悉方舟编译器的架构思想,并参与诸如对编译器中端优化的贡献。

开源地址:

这是华为兑现开源承诺的第一步,也备受开发者们期待。

有网友认为,方舟编译器的开源,将提升Android的流畅性,缩小与iOS系统的差距。

对于华为来说,也是自证实力的体现。

此前华为曾大力宣传方舟编译器对手机性能的提升,有人质疑华为的技术能否达到此前声称的水平,以及质疑国内公司的自主创新能力。

将代码开源,无疑会打消这些开发者的疑虑。

方舟编译器终开源

早在8月29日晚,华为就放出预告,在8月31日开源方舟编译器,很多用户一大早就开始等待了,大家感受下氛围:

但是直到下午3点左右,开源方舟编译器官方才能够访问。到了傍晚,华为才正式放出代码,但从代码的时间线来看,“赶工”痕迹明显。

不过很多网友对华为此举表示理解,一位名为“Gh0u1L5”知乎网友的评论获得了广泛的认同:

代码放出之后,有匿名开发者第一时间下载试用方舟编译器后发表评论,得到2.5K赞同:

知乎链接:

https://www.zhihu.com/question/343431810

从华为的代码平台来看,开源方舟编译器只是搭建鸿蒙生态系统的第一步,华为今后将在自家平台上陆续发布更多鸿蒙OS细节。

方舟编译器开源了什么?

方舟编译器,是华为历时十多年研发出的编译器,是一种静态的编译方式,于今年4月份正式对外公布。

现有的安卓系统,运行一个应用程序首先启动虚拟机,然后读入应用代码逐条解释执行,无法做到100%做到摆脱虚拟机,这也是当前安卓阵营面临的问题。

华为方舟编译器的静态编译方式可将语言里的动态特性直接翻译成机器码,手机安装应用程序后可全速运行程序,彻底干掉了虚拟机,极大提升了系统运行效率。

华为官方表示,方舟编译器对手机App运行速度提升极大。

使用EMUI 9.1的华为手机,对系统主要服务System Server进行静态编译化后,系统流畅度提升了24%,系统响应性能提升了44%。

华为以第三方微博极速版为例,经过方舟编译器静态化编译后,流畅度提升高达60%。

在2019华为开发者大会期间,余承东也透露了方舟编译器的新动向,未来能支持多语言统一编译,C、C++、Java、JS、Kotlin等都能支持,甚至可以混合编译。

这次方舟编译器开放的框架代码,包括中间语言 IR 框架和编译器中端基础实现,同时搭配编译器其他二进制组件,实现 Java 基础源码到 ARM64 汇编的编译过程。

华为表示,开发者可基于开源代码+二进制,编译构建出编译器工具链,支持对特定 Java SampleCode 的编译。

社区参与者可以通过框架源码学习方舟编译器的中间语言结构(IR)及基本的中端编译框架,熟悉方舟编译器的架构思想,并参与到诸如编译器中端优化 PHASE 的贡献里。

具体来说,方舟编译器框架代码可完成 java 静态编译,包括类层次关系分析、虚方法表和接口表的生成、native 函数的处理等,以及基于引用计数的内存管理方式,提供朴素的 RC 插入功能。

开发者也可通过代码托管平台参与社区贡献,包括文档贡献和代码贡献,同时也可在此平台上反馈相关问题和需求。

如何获取方舟编译器?

方舟编译器可以从方舟编译器开源官网上获取,也可以从华为开源代码托管平台上获取,网址为:

https://code.opensource.huaweicloud.com/HarmonyOS/OpenArkCompiler

它与GitHub平台一样,都是基于Git。

在使用华为的开源托管代码前,需要注册华为云用户,华为表示后续会支持更多的第三方登录平台。

为了把本地电脑上的Git与远程的华为开源代码托管平台代码仓库连接到一起,需要先进行授权。授权方式有HTTPS或者SSH两种协议可选。

因为同样使用Git版本控制系统,其余操作与GitHub上托管和下载项目代码的几乎完全一致。

下载好代码后,华为推荐的开发环境是Ubuntu 16.04 x86_64 版本,此外还需要安装clang、llvm 8.0.0、openjdk等运行环境。

另外方舟编译器对电脑的硬件配置也有一定的要求,华为给出的推荐配置为:

  • 2 GHz 双核处理器或者更高等级 CPU

  • 2 GB 系统内存及以上

  • 200GB 可用磁盘空间

下载好源代码后,在openarkcompiler目录下执行以下命令,编译出OpenArkCompiler,默认输出路径为openarkcompiler/out/bin。

source build/envsetup.sh #初始化环境,将OpenArkCompiler工具链路径openarkcompiler/src/bin设置到环境变量中
make #编译OpenArkCompiler的Release版本
make BUILD_TYPE=DEBUG #编译OpenArkCompiler的Debug版本

目前,只是针对方舟编译器的框架进行开源。

其后续具体开源计划如下:

2019年第四季度:上线英文版开源网站。

2020 年:开放 Java 编译器工具链,支持 Java 程序编译。

2021 年:开放对 JavaScript 语言的支持能力,可用于 JS 应用的编译。

华为表示,在孵化委员会期间,方舟编译器代码是托管在华为云上面。

在未来走向开放治理以后,将由所挂靠机构选择的平台进行托管。如果挂靠的机构采取了X平台,就采用这个机构的代码托管模式进行托管。

华为打造开源平台

意料之中,华为没有选择在GitHub上开源。至于为什么,也不难理解。

GitHub毕竟是一家“美国公司”。此前因为美国禁令,对位于伊朗等国家和地区的GitHub用户“断供”。

华为现在给出的替代方案,有“两层”。

首先,针对方舟编译器打造了一个开源网站,用于发布围绕方舟编译器的介绍、指南等信息。

其次,自己打造一个开源平台,名为华为开源代码托管平台,托管代码。

https://code.opensource.huaweicloud.com/home

与GitHub不同的是。华为开源代码托管平台并不允许普通开发者托管自己的代码,主要是官方(华为)发布开源代码。

也就是说,这一平台不会支持普通用户以自助的方式创建自己的开源代码仓库。

但是,在华为给出的example中,已经有不少人呼吁,要创建自己的仓库。

从功能上来看,目前上线的平台只是一个早期的版本,但已经有了Fork、克隆、PR、问题(issues)、标星(关注)等功能。

而其他一系列功能,如CI/CD、Wiki、发布与包管理、静态页面生成等等,还需要迭代才能上线。

对于这种情况,有人表示,太简陋了。不过,也有人表示非常理解:

虽然简陋了点,但中国人自己的开源交流平台的产品原型,就此诞生了!

根据华为之前透露的消息,这应该只是华为开源动作的一小部分,但也是华为开源的一大步。

2019华为开发者大会期间,华为消费者BG软件部总裁王成录透露,一两个月后,中国的开源基金会将正式运营起来。

届时,国内的开源基金会也将借鉴国外的运作模式,根据大家在社区的贡献来确定大家的排名。

在这段时间内,华为也先后宣布要开源更多技术,比如面向未来的操作系统鸿蒙OS,以及全场景AI推理框架MindSpore。

这些开源动作,将会以何种面貌问世,仍旧有不少悬念。

但可以预见的是,来自中国本土的开源力量,已经在呈现新面貌,迈出新步伐,甚至创造新宇宙。

直播 | 揭秘最强中文NLP预训练模型

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态

喜欢就点「在看」吧 !

华为终于放出方舟编译器源代码!开源平台同步亮相,网友:硬核项目相关推荐

  1. 华为方舟编译器正式开源,采用自主平台托管

    前不久华为开发者大会上,华为给出了鸿蒙OS及方舟编译器的开源时间表,这着实让开发者们兴奋了一把.现在华为兑现承诺,8月31日,华为方舟编译器开源官网正式上线了. 方舟开源,自主托管 根据公布的信息,本 ...

  2. 方舟编译器将开源!华为邀广大开发者助力鸿蒙系统

    [TechWeb]近日,在上海举行的中国开源峰会2019上,华为战略与产业发展副总裁肖然表示,华为方舟编译器将于今年8月正式开源.华为诚邀广大合作伙伴和应用开发者一起加入"方舟朋友圈&quo ...

  3. 华为正式开源方舟编译器,开源了,它真的开源了!

    点击"开发者技术前线",选择"星标?" 13:21 在看|星标|留言,  真爱 编辑: 可可| 来自:开发者技术前线作者:可可 昨日,华为云鲲鹏社区官网出现了华 ...

  4. 鸿蒙华为方舟编译器JAVA反射_撑起鸿蒙OS一片天,华为方舟编译器已开源!它靠什么取胜安卓? - 王石头...

    日前,华为开发者大会上鸿蒙OS系统已经正式亮相,它是基于微内核的全场景分布式OS,可以实现模块化耦合,针对不同的设备,如智慧屏.穿戴设备.车机.智能音箱.手机等能够弹性部署,华为消费者业务CEO对鸿蒙 ...

  5. 华为宣布方舟编译器将开源;​苹果秋季发布会定档9月10日;TypeScript 3.6 发布 | 极客头条...

    快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「CSDN 极客头条」,是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道.风里雨里,我们将每天为朋友们,播报最新鲜有 ...

  6. 华为鸿蒙系统学习笔记5-华为方舟编译器正式开源及相关源码下载

    8月9日至8月11日,华为面向全球开发者的2019年开发者大会,将在东莞松山湖举行.据悉,今年也是华为第一次在华为松山湖基地欧洲小镇里举办开发者大会. 前不久,余承东曾在微博上预告:"让我们 ...

  7. 华为新贵!方舟编译器的荣光和使命

    本文由MO编辑部出品,文字超1万,查阅的资料多达上百万文字,并且与华为方舟编译器的专家做过深度访谈.文章高度概括了波澜壮阔的软件产业发展史,解析了华为在编译器和手机系统方面做的多年准备. 2017年5 ...

  8. 亮相2022南京软博会,创邻科技携Galaxybase图平台展现信创硬核实力

    11月23日,2022中国(南京)国际软件产品和信息服务交易博览会(以下简称"软博会")在南京博览中心隆重开幕.此次展会以"软件赋能 数智转型"为主题,由江苏省 ...

  9. 相差400!OPPO、华为千元5G手机对比,谁的实力更硬核?

    如今5G手机已经成为市场的主流,5G手机的价格也不断下探,千元价位也不乏有配置全面.体验优秀的5G手机,像是OPPO A53和华为畅享20便是近期千元市场的热门手机.不过两款手机各方面的配置和价格都有 ...

最新文章

  1. vs2008中,在OCX控件中应用doc/view基本步骤
  2. VTK:Utilities之ExtractFaces
  3. TCP粘包问题分析和解决(全)
  4. MySQL性能调优与架构设计-架构篇
  5. 50 行代码教 AI 实现动作平衡 | 附完整代码
  6. 服务器端可控情形的Javascript跨域访问解决方法
  7. 从语音识别到语义识别,中间还有多长的路要走?-模拟/电源-与非网
  8. MYSQL数学函数哪些事
  9. 自绘LISTVIEW的滚动条(Delphi实现)
  10. 2021全国大学生数学建模 C题 解题思路和细节展示
  11. cad快速看图能合并图纸吗_CAD快速看图可以图纸对比吗?可以!
  12. apng java,免费的APNG、WebP格式转换工具-iSparta
  13. 【Java网络编程】:Netty实现OIO和NIO
  14. CH341a烧录器烧录华硕BIOS
  15. 留美CS学习的第一学期总结
  16. 大连海事大学计算机基础线上考试虚拟机环境配置
  17. 关于鸿基暗影骑士笔记本键盘win键失灵的问题
  18. 花花世界迷人眼,没有实力别赛脸,做Python实力派(万字精华,初学者,收藏必备!!!)
  19. C#到底是面向对象还是面向过程
  20. 清理计算机磁盘碎片,电脑磁盘碎片清理我帮你

热门文章

  1. Mac环境下sublime实现列选择或编辑的方法
  2. hdu5094(上海邀请赛E) 状态压缩bfs:取钥匙开门到目的地
  3. 分布式一致Hash算法
  4. Android App定位和规避内存泄露方法研究
  5. Cardinality 对执行计划的重要性
  6. page_index--template.html(0)源码
  7. h5滚动时侧滑出现_H5触摸事件中如何判断用户滑动方向
  8. python怎么编程上传资料_Python实现文件上传
  9. PHP菜刀工具WebHandler
  10. Unity 2D游戏开发教程之使用脚本实现游戏逻辑