華為方舟編譯器正式開源,脫離 GitHub 實現自主托管

五嘎子 5年前發布 | 5K 次閱讀 Github 編譯器 開源

  近日,華為的方舟編譯器終于迎來了開源,而且開源代碼還是承載在自家的官網上。面對這樣一個肩負「出于安卓,勝于安卓」使命的編譯器,自問世以來就備受大家的關注;此次開源,更是吸引了大眾的目光。

  那么到底這個編譯器從開發至今都經歷了哪些挑戰?獲得了哪些機遇?現在又擁有怎樣的魔力?它對于華為而言,意味著什么?特此,雷鋒網(公眾號:雷鋒網) AI 開發者將華為方舟編譯器相關內容整理及編輯如下。

華為方舟編譯器正式開源,脫離 GitHub 實現自主托管

  十年磨劍,華為「方舟」

  為了造這艘「方舟」,華為磨劍十年。

  據華為官方介紹,方舟編譯器是為支持多種編程語言、多種芯片平臺的聯合編譯、運行而設計的統一編程平臺,包含編譯器、工具鏈、運行時等關鍵部件。它是首個完全替代語言虛擬機的靜態編譯器,并且完全不需要解釋器,同時還兼顧 Java 開發效率和 C 語言運行效率。

  8 月 31 日下午 17 時,方舟編譯器開源官網上線——OpenArkCompiler(開源方舟編譯器),開放了框架源碼,開發者們可以下載源代碼包,了解熟悉方舟編譯器的架構思想。

  OpenArkCompiler 介紹

  OpenArkCompiler 四個技術特點

  OpenArkCompiler 開源范圍

  OpenArkCompiler 開放能力

  脫離 GitHub,自主托管

  目前方舟編譯器的源代碼已經都放出來了,但并沒有在 GitHub 開源。目前方舟編譯器的代碼托管在華為云與碼云平臺(https://code.opensource.huaweicloud.com/HarmonyOS/OpenArkCompiler/home),在未來走向開放治理以后,將按照所掛靠機構的模式來托管。如下所示為開源代碼的界面,里面包含了眾多代碼和文檔等文件。

華為方舟編譯器正式開源,脫離 GitHub 實現自主托管
方舟開源代碼界面

  本次方舟編譯器開源的是編譯器框架部分源碼,包括編譯器中間表示(IR,Intermediate Representation)和語言編譯實現,同時搭配編譯器其他二進制組件,實現 Java 程序到 aarch64 匯編指令的編譯過程。開發者可基于開源代碼+二進制,編譯構建出編譯器工具鏈,嘗試對 Java 程序進行編譯。

  社區參與者可以通過框架源碼學習方舟編譯器的編譯器中間表示(IR)及基本的中端編譯框架,熟悉方舟編譯器的架構思想,并參與諸如對編譯器中端優化的貢獻。開發者則可通過代碼托管平臺參與社區貢獻,包括文檔貢獻和代碼貢獻,同時也可在此平臺上反饋相關問題和需求。

華為方舟編譯器正式開源,脫離 GitHub 實現自主托管
方舟編譯器當前開源范圍

  盡管方舟編譯器暫時只支持 Java 和 Kotlin 程序輸入,但官方消息稱,方舟編譯器還在持續演進中,也將陸續實現更多功能的開源。根據之前華為在開發者大會上公布的信息,作為鴻蒙 OS 的重要工具,方舟編譯器從 2019 年 8 月開始,將分步驟持續進行開源。具體的開源計劃如下:

  架構示意圖

華為方舟編譯器正式開源,脫離 GitHub 實現自主托管
方舟編譯器架構示意圖

  當前方舟編譯器支持 Java/Kotlin 程序字節碼的前端輸入,其它編程語言的支持(如 C/C++/JS 等)還在規劃中,方舟編譯器的中間表示(IR)轉換器將前端輸入轉換成方舟 IR,并輸送給后端的優化器,最終生成二進制文件,二進制文件與編譯器運行時庫文件鏈接生成可執行文件,在方舟的運行環境中就可執行該文件。

  方舟編譯器 IR 是支持程序編譯和運行的中間程序表示。程序源代碼中的任何信息對于程序分析和優化都是有幫助的,所以方舟 IR 的目標是盡可能完整詳細地提供源程序的信息。關于方舟編譯器 IR 的詳細信息,可以參考(https://www.openarkcompiler.cn/document/frameworkDesgin)。

  左秒虛擬機,右殺 JNI

  華為宣稱,方舟編譯器可將安卓應用流暢度最高提升 60%,提升手機系統操作流暢度高達 24%,系統響應性能提升 44%。

  根據華為實驗數據,EMUI 9.1 在僅僅對系統組件 System Server 應用了華為方舟編譯器后,系統操作流暢度提升 24%,系統響應性能提升 44%。新浪微博極速版是第一款采用方舟編譯器的第三方應用,操作流暢度提升 60%。

  「出于安卓,勝于安卓,超越 iOS,并且全面兼容安卓」,是方舟編譯器的使命。目前,方舟已經可以實現「混合語言的統一中間表示和完全靜態編譯」。這也正是它主要的兩大優點:

  我命由我不由天

  正如華為自己所寫:「方舟編譯器開源打響了鴻蒙 OS 開源的第一槍。通過持續的開放、開源,華為將把自己在軟件方面的技術能力不斷貢獻給行業,同時在開源社區中,更多的開發者可以參與并貢獻自己的力量,共同推進基礎軟件的發展。」

  方舟編譯器的開源并非偶然,而是華為一直精心運營的一步棋。當這步棋落下的那一刻,也代表了華為進一步實現技術自主權的時候;而正是這樣的獨立,才讓華為在面對美國一次又一次的強勢打壓之下,依然保持了頑強、不屈服的態度。

華為方舟編譯器正式開源,脫離 GitHub 實現自主托管
方舟編譯器合作第三方應用

  根據官方信息,華為堅持每年將銷售收入的 10% 以上投入到研發中,技術成果不斷涌現,軟件能力持續增強;并且在此基礎上,華為也保持著開放、合作、共贏的態度,不斷推進產業創新與開放生態。從官網的介紹,我們可以看到目前已有 46 款 APP 使用了方舟編譯器進行優化與性能提升,其中包括我們常用的支付寶、優酷、微博等應用。

  現在方舟編譯器正式開源,或許也正意味著華為正在從開源領域的主要參與者變成引領者。

  官方網站:

  https://www.openarkcompiler.cn

  代碼托管網站:

  https://code.opensource.huaweicloud.com/HarmonyOS/OpenArkCompiler

  碼云鏡像倉庫地址:

  https://gitee.com/harmonyos/OpenArkCompiler

 本文由用戶 五嘎子 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!
  轉載自:https://www.leiphone.com/news/201909/T7TKrlaAZ3f9IBdu.html