方舟編譯器的2019,開放開源成真正主題

砍柴網 發佈 2020-01-10T19:47:21+00:00

同時,國內歷史最久最活躍的編譯技術社區之一HelloGCC聯合PLCT實驗室,共同開設了方舟編譯器學習班,以方舟編譯器的實踐和實戰為重心,在線上和線下免費向編程愛好者開放,今後還將合作推進Toy Runtime 的功能增強和完善,協助方舟開源社區的推廣。

剛剛過去的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到來,方舟編譯器還將邁步前行,不斷的開放開源,在線上和線下影響更多開發者,照亮行業未來發展之路。

關鍵字: