您当前的位置:首页 > 生活百科 > 科学

华为终于放出方舟编译器源代码!

时间:2019-09-02 14:03:01  来源:  作者:

乾明 边策 发自 凹非寺

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

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

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

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

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

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

开源地址:

https://www.openarkcompiler.cn/home

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

有网友认为,方舟编译器的开源,将提升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。

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

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

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

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

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

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

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

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

华为打造开源平台

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



Tags:方舟编译器   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
华为方舟编译器终于正式开源,源代码放出,兑现了在8月开源的承诺。...【详细内容】
2019-09-02  Tags: 方舟编译器  点击:(356)  评论:(0)  加入收藏
今日华为EMUI官方微信发文宣布,方舟编译器开源准备就绪,将于8月31日起开源。方舟编译器是完全替代了语言虚拟机的静态编译器,从此不再需要解释器。相比现有的编译机制有以下明...【详细内容】
2019-08-30  Tags: 方舟编译器  点击:(200)  评论:(0)  加入收藏
这是一篇纯个人观点分享文章,也是一篇用大白话分析“华为方舟编译器”的文章,这里面大多数技术环节都是经过我个人理解“翻译”过来的,或许会有描述错误的地方,但大框架是很值得...【详细内容】
2019-07-04  Tags: 方舟编译器  点击:(447)  评论:(0)  加入收藏
▌简易百科推荐
日本在今年又给大家带来了一个巨大消息,日本著名的球星本田圭佑出资设立的一家公司,正式发售了飞行摩托车。 在之前可是在电视或者是电影中才能看到的,是具备了未来科幻的一个...【详细内容】
2021-12-28  科学知识点    Tags:飞行摩托   点击:(4)  评论:(0)  加入收藏
在海洋、陆地、天空三片领域中,都有处在食物链顶端的王者,它们站在食物链顶端,拥有王者的身份,如海洋霸主虎鲸是毫无争议的海洋王者,在海洋中,基本上是所向披靡,没有天敌,而草原王者...【详细内容】
2021-12-17  小楠动物世界    Tags:   点击:(8)  评论:(0)  加入收藏
氦元素在全宇宙的质量中大约占了24%,但是在地球大气中的浓度为5.2 ppm(1ppm=0.0001%)[1],因此称它为稀有气体。稀有气体也被称为惰性气体,化学反应上的惰性也是造成氦气在地球上含...【详细内容】
2021-12-15  中科院物理所    Tags:稀有气体   点击:(8)  评论:(0)  加入收藏
在管理工作中,有些传统的做法是错误的,我们要避免犯这些错误。以下这11条,都是错的。 01 . 拒绝承担个人责任有一次,有一项工作出了差错,董事长把我叫去骂了一顿。我对董事长说,“...【详细内容】
2021-12-14  股权设计布局    Tags:管理   点击:(5)  评论:(0)  加入收藏
对光的研究起源于古希腊,在那里,哲学家们开始思考视觉是如何工作的。柏拉图和毕达哥拉斯等思想家认为,我们的眼睛会发出微弱的光线进行探测。这些光线将收集我们周围物体的信息...【详细内容】
2021-12-08    中科院物理所  Tags:   点击:(12)  评论:(0)  加入收藏
据阿根廷布宜诺斯艾利斯经济新闻网12月6日报道,进食后感到困倦或疲惫是很常见的。这可以解释为,在那一刻,身体所有的能量都“投入”在消化过程中,短时间内感到有点昏昏欲睡非常...【详细内容】
2021-12-08    参考消息  Tags:犯困   点击:(8)  评论:(0)  加入收藏
量子力学能用来干什么?更该问的是它不能干什么!在知道了量子力学这个学科后,许多人就会来问:它能用来干什么?实际上,这个问题问偏了。真正有意义的问题是:量子力学不能用来干什么?因...【详细内容】
2021-12-07  中科院物理所    Tags:量子力学   点击:(16)  评论:(0)  加入收藏
电流是什么?首先回想下,我们学过的电流的定义是什么?很简单,导体中的带电粒子的定向运动就是电流。只有当物质内具有能自由移动的带电粒子,它才可以传输电流——即导电...【详细内容】
2021-12-07    中科院物理所  Tags:电流   点击:(25)  评论:(0)  加入收藏
要理解光速不变原理。首先要有抛弃固有的思维模式的思想准备,否则不容易理解。因为爱因斯坦这个理论有点离经叛道。 我们都知道,描叙一个运动,必须有参考系才有意义。说一列火...【详细内容】
2021-11-30  宇宙探索    Tags:光速不变   点击:(18)  评论:(0)  加入收藏
一半是彻夜无眠,而床上的另一半是呼噜声连绵不绝。这个场景恐怕是很多家庭的真实写照了吧。更让人崩溃的是,推一下不打了,下一秒又开始了“呼~~~呼~~呼”。给我闭嘴!!!那为什么“...【详细内容】
2021-11-17    科普中国  Tags:打呼噜   点击:(22)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条