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

oschina
 oschina
发布于 2019年08月31日
收藏 79

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

方舟开源,自主托管

根据公布的信息,本次方舟编译器开源的是编译器框架部分源码,包括编译器中间表示(IR,Intermediate Representation)和语言编译实现,同时搭配编译器其它二进制组件,实现Java程序到aarch64汇编指令的编译过程。

开发者可基于开源代码+二进制,编译构建出编译器工具链,尝试对Java程序进行编译。社区参与者可以通过框架源码学习方舟编译器的编译器中间表示(IR)及基本的中端编译框架,熟悉方舟编译器的架构思想,并参与诸如对编译器中端优化的贡献。

目前方舟编译器的代码托管在华为云与码云平台(gitee.com),在未来走向开放治理以后,将按照所挂靠机构的模式来托管。开发者可通过代码托管平台参与社区贡献,包括文档贡献和代码贡献,同时也可在此平台上反馈相关问题和需求。

方舟编译器整体框架

打响鸿蒙OS开源的第一枪

根据之前华为在开发者大会上公布的信息,作为鸿蒙OS的重要工具,方舟编译器从2019年8月开始,将分步骤持续进行开源。具体的开源计划如下:

  • 2020年:开始开源Java编译器工具链,支持Java程序编译。
  • 2021年:开始开源JavaScript编译器工具链,可用于JS程序的编译。

华为写到:“方舟编译器开源打响了鸿蒙OS开源的第一枪。通过持续的开放、开源,华为将把自己在软件方面的技术能力不断贡献给行业,同时在开源社区中,更多的开发者可以参与并贡献自己的力量,共同推进基础软件的发展。”

华为方舟编译器开源官方渠道

华为同时还对外公布了方舟编译器开源获取信息渠道,开发者可以通过以下方式获得相关代码和文档,供参考学习、了解方舟编译器的架构和代码。

官方网站:https://www.openarkcompiler.cn

华为云代码托管地址:https://code.opensource.huaweicloud.com/HarmonyOS/OpenArkCompiler

官方Gitee镜像仓库地址:https://gitee.com/harmonyos/OpenArkCompiler

科技无边界,华为正成为开源领域的引领者

笔者认为,在开源的世界里,参与是重要的一步,思想在这里不断地激活和升华,开发者们在这里共同分享着技术的进步。

我们可以看到,一直以来,华为持续拥抱开源,在主流基金会及开源社区中积极贡献。据了解,目前在有重大国际影响力的开源社区中拥有十多个董事席位,及200多个TSC、PTL、Core Committer席位,社区影响力持续提升。作为Linux基金会白金成员,华为对Linux Kernel累计贡献了6800+补丁,在5.1 Release版本中排名超过谷歌、IBM等国际厂商,是TOP 5中唯一的亚洲厂商。

根据官方信息,华为坚持每年将销售收入的10%以上投入到研发中,技术成果不断涌现,软件能力持续增强,不断发布的黑科技“GPU Turbo”、“Link Turbo” 与 “EROFS”就是最好的证明。在此基础上,华为坚持开放、合作、共赢,不断推进产业创新与开放生态。现在方舟编译器正式开源,或许华为正在从开源领域的主要参与者变成引领者,华为能否以更加积极的姿态引领行业,为用户带来更好的体验,我们拭目以待。

不要再让人家“show me the code”啦,这一次源码真的出来了,点此直达代码仓库,Star点起来!

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:华为方舟编译器正式开源,采用自主平台托管
加载中

精彩评论

辽元
辽元
发觉华为没有将相关代码托管至github时,我有点意外;但仔细回想github之前制裁受影响地区的账户的新闻时,才意识到华为的做法是正确的。
祝愿码云及其它国内代码托管平台有更长足的发展!
红薯
红薯
千呼万唤使出来,期待大家深入研究,进行性能对比
乐征skyline1225
乐征skyline1225
1,20多年前Java做到的“一次编译到处运行”无法实现,牺牲了Android应用的移植性来换取性能,意味着以后要为每一个指令集单独打一个包了,如果友商过于“积极”,以后打包就是 “小米v7a...apk”、“小米arm64...apk”“华为arm64...apk”。而且那些应用多个手机间就不一定能共享了。
2,加入了中间语言,看来配合方舟编译器使用Java,注定跟不住上游了。
3,静态编译的局限性,呃,这个还是让天才们来解释吧,如果静态编译可以完胜动态解释,那么就世界和平了。

综述,为了那40%的性能提升需要做出太多的让步,我还是去优化下算法吧,那说不定还有一个数量级的提升
eechen
eechen
支持JS都不支持PHP?华为药丸.
izee
izee
期待喷子和杠精在源码上多找点漏洞出来,谢谢了

最新评论(104

苦寒竹
苦寒竹
废话,本来就因美(国)而生,还托管到美国网站?
llcadmin
llcadmin
喷子这么牛逼,也没见你进到华为,拿到高薪,做到高层~~
没有头像也是一种帅
没有头像也是一种帅
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}

这代码真有深度...我自愧不如~
inary
inary
噗,小兄弟不是做开发的吧,编译器例子给hello world有什么问题?
栓独爱青春
栓独爱青春
感觉还是出个demo好点,何时支持php
平原君
平原君
osc是不是可以试试把APP编译下看看了
haitaosoft
haitaosoft
我昨天的评论 被删除了?
Iridium
Iridium
哈哈……
我看到一张截图,也不敢贴这里。一张代码对比的截图,除了公司名称,别的内容都一样,你说神奇不神奇。
bobdog1986
bobdog1986
开心就好
浔__
浔__
这LOGO时弯道超车的意思么😆
XCode_man
XCode_man
终于来了
开源中国首席罗纳尔多
开源中国首席罗纳尔多
您好,请问为什么不推广java,全部装jvm,全部编译成class?
返回顶部
顶部