方舟编译器的2019 开放开源成真正主题
扫描二维码
随时随地手机看文章
刚刚过去的2019年,对于方舟编译器而言是一个转折点。从8月31日正式上线至今,方舟编译器不断赋能行业,持续同开发者及合作伙伴深入交流,并赢得了业内广泛的认可。1月3日,方舟开源沙龙来到浙江杭州,现场包括方舟开源架构师汤伟、资深编译器专家叶寒栋、资深编译器专家蒋奕、HelloGCC社区负责人吴伟、资深编译器专家张雁、PLCT项目主管史宁宁、方舟开源架构师赵俊民等技术专家在内的数十名行业开发者共同参与探讨了方舟编译器的开源现状以及未来发展方向。
在本次活动中,来自华为方舟编译器的技术专家讲述了方舟编译器在2019年开源后,在国内编译技术领域发展做出的贡献。8月31日,方舟编译器正式对外开放,相关内容也正式在知乎不断上线开放,而技术解析的视频在B站、知乎等渠道广泛传播;在线下,方舟编译器连续开办了北京技术沙龙、上海代码讨论会、线下课程以及杭州开源沙龙等线下会议,方舟开源社区影响力不断扩大。
通过几个月的努力,方舟编译器收获甚广。大批优质开发者加入方舟开源社区,中科院软研所还为开源方舟编译器Runtime参考实现发表了70+方舟代码解读,并联合设计了RISC-V芯片支持方案;清华大学、中科院计算所、北京理工大学、深圳大学等多所高校也参与到方舟社区活动及技术研讨中。
同时,国内历史最久最活跃的编译技术社区之一HelloGCC联合PLCT实验室,共同开设了方舟编译器学习班,以方舟编译器的实践和实战为重心,在线上和线下免费向编程爱好者开放,今后还将合作推进 Toy Runtime 的功能增强和完善,协助方舟开源社区的推广。
开放的方舟编译器可以赋能开发者,而有了更多开发者的参与,方舟编译器也发展的更快更稳。近期,方舟编译器的发展方向主要分为前端拓展、中端优化和后端升级三个方面。前端开源后,围绕多语言前端统一开发框架、类型推导与动态类型支持、java annotation支持展开提升;而中端开源则需要进行代码重构、添加meir的builder、重构优化phase、编译器的第三方解耦支持、profiling机制的实现与增强;而在后端则需要进行代码重构、优化phase增强、添加指令调度模块并新增机器模型。
这些工作也将是方舟编译器在2020年核心工作的一部分。方舟编译器当前阶段的目标是能完整编译、运行Java程序,所以就需要把编译器及运行时相关部件全部开源。目前方舟编译器的开源计划正在稳步展开,前端已经不是瓶颈,将会按原计划开源;中端已经可以往社区陆续开源分析与优化Phase;后端O0将优先开源,近期就会开始走开源流程,希望能够在2月份开出来。此外,Runtime的整体开源将会在社区上聚焦支持openjdk java基础库,支持Linux上可以跑java程序。在未来,方舟开源团队会将runtime框架+ openjdk支持开源,支持将java程序编译和运行在linux上,实现社区可开发验证。
如今,移动端开发所占比重越来越高。而90%的APP在开发时都会关注影响中低端机器应用转化率的包大小,影响安卓兼容性的开发调试工具效率、影响运维速度的热补丁技术以及影响新业务开发的第三方开源SDK使用情况。因此,未来的应用框架在机制上会提供更多易于实现的跨平台能力和自身重点打造的一次开发跨多设备能力。编程语言、编译器、运行时的技术发展,需要结合应用框架和模型去创新,针对不同场景权衡性能、开发效率、动态能力等因素,兼顾开发者与消费者的体验。不过一个编程语言很难满足应用的所有需求,因此编译器在运行时需要支持不同的编译和运行模式,这也是未来方舟编译器发展的方向之一。
“不积跬步无以至千里”,方舟编译器的2019年便是大步向前的一年。在这一年里,越来越多的人接触到方舟编译器,加入到方舟开源社区,为这一技术添砖加瓦,为其成长贡献自己的一份力量。2020到来,方舟编译器还将迈步前行,不断的开放开源,在线上和线下影响更多开发者,照亮行业未来发展之路。