剛剛過去的2019年,對于方舟編譯器而言是一個轉折點。從8月31日正式上線至今,方舟編譯器不斷賦能行業(yè),持續(xù)同開發(fā)者及合作伙伴深入交流,并贏得了業(yè)內(nèi)廣泛的認可。1月3日,方舟開源沙龍來到浙江杭州,現(xiàn)場包括方舟開源架構師湯偉、資深編譯器專家葉寒棟、資深編譯器專家蔣奕、HelloGCC社區(qū)負責人吳偉、資深編譯器專家張雁、PLCT項目主管史寧寧、方舟開源架構師趙俊民等技術專家在內(nèi)的數(shù)十名行業(yè)開發(fā)者共同參與探討了方舟編譯器的開源現(xiàn)狀以及未來發(fā)展方向。
在本次活動中,來自華為方舟編譯器的技術專家講述了方舟編譯器在2019年開源后,在國內(nèi)編譯技術領域發(fā)展做出的貢獻。8月31日,方舟編譯器正式對外開放,相關內(nèi)容也正式在知乎不斷上線開放,而技術解析的視頻在B站、知乎等渠道廣泛傳播;在線下,方舟編譯器連續(xù)開辦了北京技術沙龍、上海代碼討論會、線下課程以及杭州開源沙龍等線下會議,方舟開源社區(qū)影響力不斷擴大。
通過幾個月的努力,方舟編譯器收獲甚廣。大批優(yōu)質(zhì)開發(fā)者加入方舟開源社區(qū),中科院軟研所還為開源方舟編譯器Runtime參考實現(xiàn)發(fā)表了70+方舟代碼解讀,并聯(lián)合設計了RISC-V芯片支持方案;清華大學、中科院計算所、北京理工大學、深圳大學等多所高校也參與到方舟社區(qū)活動及技術研討中。
同時,國內(nèi)歷史最久最活躍的編譯技術社區(qū)之一HelloGCC聯(lián)合PLCT實驗室,共同開設了方舟編譯器學習班,以方舟編譯器的實踐和實戰(zhàn)為重心,在線上和線下免費向編程愛好者開放,今后還將合作推進 Toy Runtime 的功能增強和完善,協(xié)助方舟開源社區(qū)的推廣。
開放的方舟編譯器可以賦能開發(fā)者,而有了更多開發(fā)者的參與,方舟編譯器也發(fā)展的更快更穩(wěn)。近期,方舟編譯器的發(fā)展方向主要分為前端拓展、中端優(yōu)化和后端升級三個方面。前端開源后,圍繞多語言前端統(tǒng)一開發(fā)框架、類型推導與動態(tài)類型支持、java annotation支持展開提升;而中端開源則需要進行代碼重構、添加meir的builder、重構優(yōu)化phase、編譯器的第三方解耦支持、profiling機制的實現(xiàn)與增強;而在后端則需要進行代碼重構、優(yōu)化phase增強、添加指令調(diào)度模塊并新增機器模型。
這些工作也將是方舟編譯器在2020年核心工作的一部分。方舟編譯器當前階段的目標是能完整編譯、運行Java程序,所以就需要把編譯器及運行時相關部件全部開源。目前方舟編譯器的開源計劃正在穩(wěn)步展開,前端已經(jīng)不是瓶頸,將會按原計劃開源;中端已經(jīng)可以往社區(qū)陸續(xù)開源分析與優(yōu)化Phase;后端O0將優(yōu)先開源,近期就會開始走開源流程,希望能夠在2月份開出來。此外,Runtime的整體開源將會在社區(qū)上聚焦支持openjdk java基礎庫,支持Linux上可以跑java程序。在未來,方舟開源團隊會將runtime框架+ openjdk支持開源,支持將java程序編譯和運行在linux上,實現(xiàn)社區(qū)可開發(fā)驗證。
如今,移動端開發(fā)所占比重越來越高。而90%的APP在開發(fā)時都會關注影響中低端機器應用轉化率的包大小,影響安卓兼容性的開發(fā)調(diào)試工具效率、影響運維速度的熱補丁技術以及影響新業(yè)務開發(fā)的第三方開源SDK使用情況。因此,未來的應用框架在機制上會提供更多易于實現(xiàn)的跨平臺能力和自身重點打造的一次開發(fā)跨多設備能力。編程語言、編譯器、運行時的技術發(fā)展,需要結合應用框架和模型去創(chuàng)新,針對不同場景權衡性能、開發(fā)效率、動態(tài)能力等因素,兼顧開發(fā)者與消費者的體驗。不過一個編程語言很難滿足應用的所有需求,因此編譯器在運行時需要支持不同的編譯和運行模式,這也是未來方舟編譯器發(fā)展的方向之一。
“不積跬步無以至千里”,方舟編譯器的2019年便是大步向前的一年。在這一年里,越來越多的人接觸到方舟編譯器,加入到方舟開源社區(qū),為這一技術添磚加瓦,為其成長貢獻自己的一份力量。2020到來,方舟編譯器還將邁步前行,不斷的開放開源,在線上和線下影響更多開發(fā)者,照亮行業(yè)未來發(fā)展之路。