华为终于放出方舟编译器源代码!开源平台同步

  • 日期:09-22
  • 点击:(1212)


免责声明:本文是来自微信公众号的量子比特(ID:QbitAI),作者:干出政策方面,联盟所有者授权转载发布。

华为Ark编译器终于正式开源,源代码发布,实现了8月开源的承诺。

代码不在GitHub上,而是在自己的开源平台上。这也意味着华为的开源平台也可以同时使用。

根据官方资料,Ark编译器的开源信息内容主要包括:

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

开发人员可以基于开源代码+二进制构建编译器工具链,并尝试编译Java程序。

社区参与者可以通过框架源代码学习Ark编译器的编译器中间表示(IR)和基本的中端编译框架,熟悉Ark编译器的架构思想,并参与编译器的优化等贡献。中端。

开源地址:

这是华为履行开源承诺的第一步,也是开发人员的期望。

一些网友认为,Ark编译器的开源将提高Android的流畅度并缩小与iOS系统的差距。

对华为而言,它也是自我认证的体现。

此前,华为大力推动Ark编译器在手机上的性能提升。有人质疑华为的技术能否达到之前声称的水平,并质疑国内公司的自主创新能力。

开源代码无疑会消除这些开发人员的疑虑。

Ark编译器是开源的

早在8月29日,华为就发布了一则通知。 8月31日,开源方舟编译器,很多用户在清晨开始等待,大家都感受到了气氛:

但直到下午3点左右,开源Ark编译器才能正式访问。晚上,华为正式发布了代码,但从代码的时间线来看,“追赶”的痕迹显而易见。

然而,许多网民表达了对此举的理解。知道网民的名为“Gh0u1L5”的评论已得到广泛认可:

代码发布后,匿名开发人员将在首次下载试用Ark编译器后发布评论,并获得2.5K批准:

知道链接:

从华为代码平台的角度来看,开源Ark编译器只是构建红盟生态系统的第一步。未来,华为将在自己的平台上发布更多关于鸿盟操作系统的细节。

什么是Ark编译器开源?

Ark编译器是华为开发的编译器已有十多年了。这是一种静态编译方法,于今年4月正式公布。

在现有的Android系统中,运行应用程序首先启动虚拟机,然后读取应用程序代码逐一解释执行,并且不能100%去掉虚拟机,这也是问题所面临的问题。目前的Android阵营。

华为Ark编译器的静态编译模式可以直接将语言中的动态特性转换为机器码。安装应用程序后,手机可以全速运行程序,彻底查杀虚拟机,大大提高了系统运行效率。

华为正式表示,Ark编译器大大提高了移动应用的运行速度。

使用EMUI 9. 1华为手机静态编译系统主服务System Server后,系统流畅度提高24%,系统响应性能提高44%。

华为以第三方微博速度版为例。经过Ark编译器的静态编译后,流畅度提高了60%。

在2019年的华为开发者大会上,于成东也透露了Ark编译器的新趋势。在未来,它可以支持多语言统一编译,可以支持C,C ++,Java,JS,Kotlin等,甚至可以混合编译。

这次Ark编译器的开放框架代码,包括中间语言IR框架和编译器的中间基础实现,以及编译器的其他二进制组件,实现了ARM基本组件编译过程的Java基本源代码。

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

社区参与者可以通过框架源代码学习Ark编译器的中间语言结构(IR)和基本的中端编译框架,熟悉Ark编译器的架构思想,并参与编译器优化的贡献相。

具体来说,Ark编译器框架代码可以完成java静态编译,包括类层次结构分析,虚拟方法表和接口表生成,本机函数处理和基于引用计数的内存管理,提供简单的RC插入。特征。

开发人员还可以通过代码托管平台参与社区贡献,包括文档贡献和代码贡献,以及对此平台上的问题和要求的反馈。

我如何获得Ark编译器?

Ark编译器可以从Ark编译器开源网站或华为开源代码托管平台获得。网址是:

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

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

为了将本地计算机上的Git连接到远程华为开源代码托管平台代码库,您需要先进行授权。授权方法可以使用HTTPS或SSH。

因为使用了相同的Git版本控制系统,所以其余操作几乎与在GitHub上托管和下载项目代码相同。

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

另外,Ark编译器对计算机的硬件配置有一定的要求。华为推荐的配置是:

2 GHz双核处理器或更高级别

2 GB系统内存及以上

200GB可用磁盘空间

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

Source build/envsetup.sh #Initialize环境,将OpenArkCompiler工具链路径openarkcompiler/src/bin设置为环境变量make #compile OpenArkCompiler发布版本make BUILD_TYPE=DEBUG #Compile OpenArkCompiler调试版

目前,它只是Ark编译器框架的开源。

其随后的具体开源计划如下:

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

2020:打开Java编译器工具链以支持Java程序编译。

2021:开放支持JavaScript语言以编译JS应用程序。

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

在未来开放治理之后,将关联由附属组织选择的平台。如果附属组织采用X平台,它将由该机构的代码托管模型托管。

华为构建开源平台

出乎意料的是,华为没有选择在GitHub上开源。至于为什么,不难理解。

毕竟,GitHub是一家“美国公司”。此前,由于美国的禁令,伊朗等国家和地区的GitHub用户被“停产”。

华为现在提供的替代方案有“两层”。

首先,为Ark编译器构建了一个开源网站,以发布有关Ark编译器,指南等的信息。

二,构建开源平台,称为华为开源代码托管平台,托管代码。

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

换句话说,该平台不支持普通用户以自助服务方式创建自己的开源代码库。

但是,在华为给出的例子中,很多人都要求创建自己的仓库。

从功能的角度来看,目前的在线平台只是一个早期版本,但已经具备了诸如Fork,clone,PR,问题和明星(注意力)等功能。

其他功能,例如CI/CD,wiki,发布和包管理,静态页面生成等,需要迭代才能生效。

在这种情况下,有些人说这太简陋了。但是,有些人说他们理解得很好:

虽然简单,但中国开源通信平台的原型诞生了!

根据华为之前的披露,这应该只是华为开源计划的一小部分,但这也是华为开源的重要一步。

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

那时,国内开源基金会也将借鉴国外的运作模式,根据社会各界人士的贡献来确定你的排名。

在此期间,华为还宣布了更多开源技术,如面向未来的操作系统Hongmeng OS,以及全景AI推理框架MindSpore。

对于这些开源行为的未来仍存在许多疑问。

但可以预见,来自中国的开源力量已经焕然一新,采取了新的步骤,甚至创造了一个新的世界。