方舟编译器开源,华为自家开源平台面世!(附编译过程)

科技资讯 2019-09-1187未知admin

  原标题:方舟编译器开源,华为自家开源平台面世!(附编译过程)

  大数据文摘出品

  作者:曹培信

  8月9日,华为EMUI官方微博发了这么一条微博。

  8月31日,华为如约开源方舟编译器,并将源代码放出。然而开源并非是在GitHub上,而是自建了一个“华为开源平台”。

  这意味着华为自己的开源平台也一并问世。

  坊间猜测,这是由于7月底GitHub封禁了一批伊朗账户,让华为意识到了将方舟编译器和鸿蒙系统在GitHub上开源的风险,因此赶工赶出来一个开源平台。

  难怪有人表示:“这是我见过的最简洁的网站了”。

  同时,华为还在码云(gitee)上建立了方舟编译器开源代码官方镜像仓库,如今标星已达3.6k。

  打响了鸿蒙OS开源的第一枪

  8月9日,在广东东莞举办的华为开发者大会HDC.2019上,华为消费者业务CEO余承东正式发布了鸿蒙HarmonyOS,并宣布鸿蒙OS全部开源!

  次日,华为消费者软件副总裁刘丹对华为开源的系统设计和运作模式作了更详细的说明。

  刘丹表示,华为软件开源,秉承的是自信、包容、公平、共建和共赢五大基本准则,在运作模式上,华为会参考国际常规模式,先以孵化委员会的简化模式进行初期探索,方舟编译器首先开源,随后其他模块也将分批开源。

  对于未来的开源计划,现场也放出了一张表。

  方舟编译器作为“排头兵”,打响了鸿蒙OS开源的第一枪。

  方舟编译器开源范围

  如今,方舟编译器首先在自家平台上开源了自定的编译器IR(Intermediate Representation)——MAPLE IR,RC(Reference Counting)和多语言设计思想等,用于与业界,学术界沟通交流。后续将陆续开源编译器前端,后端,支持其它语言(如Java)的编译。

  后续华为也会按照计划在2020年开始开源Java编译器工具链,支持Java程序编译;到2021年开始开源Java编译器工具链,可用于JS程序的编译。

  安卓卡顿的“终结者”

  华为开发方舟编译器花了十年,为了解决安卓系统的“四大命门”,华为工程师们夜以继日,只为“再造安卓”。

  方舟编译器官网上的一篇文章,生动地诉说了这一段历程。

  文章地址:

  2009年,华为启动5G基础技术研究的同时,开始创建编译组,第一批海内外研究人员加入。

  2013年,华为推出面向基站领域的自研编译器,并正式提出编译器框架构想。

  2014年,众多海内外专家加入华为,方舟项目正式启动。

  2016年,成立编译器与编程语言实验室。

  2019年,华为方舟编译器正式面世!

  2018年春节前一周,方舟编译器跑通安卓系统所有后台服务,并成功移植到手机。成功开机后,项目组成员甚至流下了激动的泪水!

  大年初一清晨,总架构师发来了第一条方舟经编译器编译的程序发出来的拜年消息:

  春节快乐,方舟大吉!

  方舟编译器的优势在两方面,一是首次在Java领域将去掉了虚拟机,也是史上首次将Java/C/C++等混合代码一次编译成机器码直接在手机上运行,彻底告别Java的JNI额外开销,也彻底告别了虚拟机GC内存回收带来的应用进程掉线,使操作流畅度大幅提升。

  方舟编译器整体框架

  二是方舟编译器用空间换性能,直接将编译器的代码优化搬到了开发者环境,不再被手机端的硬件资源所限制,为代码优化提供了无限可能。

  根据华为官方测试,方舟编译器提升手机系统操作流畅度高达24%,系统响应性能提升44%。

  方舟编译器源码编译

  方舟编译器开源之后,引起了业界广泛关注,方舟编译器仓库的文档也表示开发者可以根据方舟官方文档编译出OpenArkCompiler。

  其中知乎网友“小乖他爹”根据文档进行了编译并撰写了《方舟编译器学习笔记》系列,文摘菌在取得作者授权后,将源码编译过程转载如下,快跟文摘菌一起一睹为快吧!

  1、操作系统环境:

  64位版本的Ubuntu(官方推荐Ubuntu 16.04)。我自己本身就有Ubuntu 16.04的虚拟机,所以直接就在上面编译了。

  2、基础配置:

  官方推荐安装上述库,但是即使是在Ubuntu 16.04上,这里很多库的版本较低。但是小版本号应该没什么太大的影响,我的本地环境以前编译过别的程序,所以导致很多库的版本都比这个推荐的要高,最终没有影响我的编译。所以不用太苛求其版本号。

  3、源码下载:

  下载GN,在tools下新建目录GN,将GN可执行文件放到GN目录之下。

  命令说明:

  至此,完成方舟编译器源码的编译。编译完成之后的界面如图所示:

  编译完成之后,在OpenArkCompiler/out目录之下,会有如下几个文件:

  另外附上作者方舟编译器学习笔记系列链接。

  方舟编译器学习笔记1:方舟相关资料

  方舟编译器学习笔记2:源码编译

  方舟编译器学习笔记3:方舟可执行文件简介

  方舟编译器学习笔记4:文档导读

  方舟编译器学习笔记5:方舟开始接受代码合并请求

  方舟编译器学习笔记6:方舟开源目录简介

Copyright © 2010-2020 正式龙网 版权所有  

联系QQ:1352848661