乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      方舟編譯器開源,華為自家開源平臺面世?。ǜ骄幾g過程)

       板橋胡同37號 2019-09-04

      大數據文摘出品

      作者:曹培信

      8月9日,華為EMUI官方微博發(fā)了這么一條微博。


      對奉行實用至上的程序員來說,Linux的創(chuàng)始人Linus Torvalds的名言“Talk is cheap,show me the code.”這句話確實是戳到了心里。

      8月31日,華為如約開源方舟編譯器,并將源代碼放出。然而開源并非是在GitHub上,而是自建了一個“華為開源平臺”。

      這意味著華為自己的開源平臺也一并問世。

      坊間猜測,這是由于7月底GitHub封禁了一批伊朗賬戶,讓華為意識到了將方舟編譯器和鴻蒙系統(tǒng)在GitHub上開源的風險,因此趕工趕出來一個開源平臺。

      目前平臺上只有兩個倉庫,一是HarmonyOS/OpenArkComplier,另一個是測試用的example。

      難怪有人表示:“這是我見過的最簡潔的網站了”。

      同時,華為還在碼云(gitee)上建立了方舟編譯器開源代碼官方鏡像倉庫,如今標星已達3.6k。

      打響了鴻蒙OS開源的第一槍

      8月9日,在廣東東莞舉辦的華為開發(fā)者大會HDC.2019上,華為消費者業(yè)務CEO余承東正式發(fā)布了鴻蒙HarmonyOS,并宣布鴻蒙OS全部開源!

      次日,華為消費者軟件副總裁劉丹對華為開源的系統(tǒng)設計和運作模式作了更詳細的說明。

      劉丹表示,華為軟件開源,秉承的是自信、包容、公平、共建和共贏五大基本準則,在運作模式上,華為會參考國際常規(guī)模式,先以'孵化委員會'的簡化模式進行初期探索,方舟編譯器首先開源,隨后其他模塊也將分批開源。

      對于未來的開源計劃,現(xiàn)場也放出了一張表。

      方舟編譯器作為“排頭兵”,打響了鴻蒙OS開源的第一槍。


      方舟編譯器開源范圍

      如今,方舟編譯器首先在自家平臺上開源了自定的編譯器IR(Intermediate Representation)——MAPLE IR,RC(Reference Counting)和多語言設計思想等,用于與業(yè)界,學術界溝通交流。后續(xù)將陸續(xù)開源編譯器前端,后端,支持其它語言(如JavaScript)的編譯。

      后續(xù)華為也會按照計劃在2020年開始開源Java編譯器工具鏈,支持Java程序編譯;到2021年開始開源JavaScript編譯器工具鏈,可用于JS程序的編譯。

      安卓卡頓的“終結者”

      華為開發(fā)方舟編譯器花了十年,為了解決安卓系統(tǒng)的“四大命門”,華為工程師們夜以繼日,只為“再造安卓”。

      方舟編譯器官網上的一篇文章,生動地訴說了這一段歷程。

      文章地址:

      https://www./news/detail/news5
      • 2009年,華為啟動5G基礎技術研究的同時,開始創(chuàng)建編譯組,第一批海內外研究人員加入。

      • 2013年,華為推出面向基站領域的自研編譯器,并正式提出編譯器框架構想。

      • 2014年,眾多海內外專家加入華為,方舟項目正式啟動。

      • 2016年,成立編譯器與編程語言實驗室。

      • 2019年,華為方舟編譯器正式面世!

      2018年春節(jié)前一周,方舟編譯器跑通安卓系統(tǒng)所有后臺服務,并成功移植到手機。成功開機后,項目組成員甚至流下了激動的淚水!

      大年初一清晨,總架構師發(fā)來了第一條方舟經編譯器編譯的程序發(fā)出來的拜年消息:

      春節(jié)快樂,方舟大吉!

      方舟編譯器的優(yōu)勢在兩方面,一是首次在Java領域將去掉了虛擬機,也是史上首次將Java/C/C++等混合代碼一次編譯成機器碼直接在手機上運行,徹底告別Java的JNI額外開銷,也徹底告別了虛擬機GC內存回收帶來的應用進程掉線,使操作流暢度大幅提升。


      方舟編譯器整體框架

      二是方舟編譯器用空間換性能,直接將編譯器的代碼優(yōu)化搬到了開發(fā)者環(huán)境,不再被手機端的硬件資源所限制,為代碼優(yōu)化提供了無限可能。

      根據華為官方測試,方舟編譯器提升手機系統(tǒng)操作流暢度高達24%,系統(tǒng)響應性能提升44%。

      方舟編譯器源碼編譯

      方舟編譯器開源之后,引起了業(yè)界廣泛關注,方舟編譯器倉庫的文檔也表示開發(fā)者可以根據方舟官方文檔編譯出OpenArkCompiler。

      其中知乎網友“小乖他爹”根據文檔進行了編譯并撰寫了《方舟編譯器學習筆記》系列,文摘菌在取得作者授權后,將源碼編譯過程轉載如下,快跟文摘菌一起一睹為快吧!

      1、操作系統(tǒng)環(huán)境:

      64位版本的Ubuntu(官方推薦Ubuntu 16.04)。我自己本身就有Ubuntu 16.04的虛擬機,所以直接就在上面編譯了。

      2、基礎配置:

      sudo apt-get -y install openjdk-8-jdk git-core gnupg flex bison gperf build-essential zip curl zlib1g-devlibc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utilsxsltproc unzip lib32z1-dev qemu g++-multilib gcc-multilib python3-paramiko python-paramiko python-jenkinspython-requests python-xlwt libglib2.0-dev libpixman-1-dev linux-libc-dev:i386

      sudo apt-get -y install gcc-5-aarch64-linux-gnu g++-5-aarch64-linux-gnu

      官方推薦安裝上述庫,但是即使是在Ubuntu 16.04上,這里很多庫的版本較低。但是小版本號應該沒什么太大的影響,我的本地環(huán)境以前編譯過別的程序,所以導致很多庫的版本都比這個推薦的要高,最終沒有影響我的編譯。所以不用太苛求其版本號。

      3、源碼下載:

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

      4、llvm和clang的下載及配置:

      LLVM Download Page下載LLVM8.0.0Ubuntu 16.04 (.sig) 二進制包。解壓之后,放到OpenArkCompiler/tools目錄之下。

      LLVM Download Page:

      http://releases./download.html#8.0.0

      Ubuntu 16.04 (.sig):

      http://releases./8.0.0/

      打開openarkcompiler/build/config/BUILDCONFIG.gn文件,將其中的GN_C_COMPILER、GN_CXX_COMPILERGN_AR_COMPILER 三個變量配置為Clang編譯器所在路徑,例如:

      GN_C_COMPILER = '${MAPLE_ROOT}/tools/clang_llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04/bin/clang'GN_CXX_COMPILER = '${MAPLE_ROOT}/tools/clang_llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04/bin/clang++'GN_AR_COMPILER = '${MAPLE_ROOT}/tools/clang_llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04/bin/llvm-ar'

      5、下載和配置Ninja、GN:

      從下載Ninja v1.9.0,在tools下新建目錄ninja_1.9.0,將ninja可執(zhí)行文件放到ninja_1.9.0目錄之下。

      Ninja v1.9.0:

      https://github.com/ninja-build/ninja/releases

      下載GN,在tools下新建目錄GN,將GN可執(zhí)行文件放到GN目錄之下。

      GN:

      https://archive./browse/content/sha1_git:2dc0d5b26caef44f467de8120b26f8aad8b878be/raw/?filename=gn

      打開openarkcompiler/Makefile文件,將GNNINJA兩個變量配置為GNNinja可執(zhí)行程序所在路徑。例如:

      GN := ${MAPLE_ROOT}/tools/gn/gnNINJA := ${MAPLE_ROOT}/tools/ninja_1.9.0/ninja

      6、在OpenArkCompiler目錄之下依次執(zhí)行如下命令:

      source build/envsetup.shmake

      命令說明:

      source build/envsetup.sh初始化環(huán)境,將OpenArkCompiler工具鏈路徑openarkcompiler/src/bin設置到環(huán)境變量中make編譯OpenArkCompiler的Release版本make BUILD_TYPE=DEBUG編譯OpenArkCompiler的Debug版本。

      至此,完成方舟編譯器源碼的編譯。編譯完成之后的界面如圖所示:

      編譯完成之后,在OpenArkCompiler/out目錄之下,會有如下幾個文件:

      其實這幾個文件在未編譯之前,在OpenArkCompiler/src/bin目錄下就有。讀了下OpenArkCompiler目錄下的Makefile,其中java2jar\jbc2mpl\mplcg都是直接從src/bin目錄之下copy到out/bin目錄之下的。只有maple有點特殊,它應該是編譯生成的,然后install的時候反向copy到了src/bin目錄之下,所以編譯完成之后查看狀態(tài)(git status),會發(fā)現(xiàn)src/bin/maple發(fā)生了變化。

      OpenArkCompiler/Makefile中關于install的代碼:

      .PHONY: installinstall: mapleall  $(shell cp -rf $(MAPLE_ROOT)/src/bin/java2jar $(MAPLE_ROOT)/out/bin/)  $(shell cp -rf $(MAPLE_ROOT)/src/bin/jbc2mpl $(MAPLE_ROOT)/out/bin/)  $(shell cp -rf $(MAPLE_ROOT)/src/bin/mplcg $(MAPLE_ROOT)/out/bin/)  $(shell cp -rf $(MAPLE_ROOT)/out/bin/maple $(MAPLE_ROOT)/src/bin/)

      另外附上作者方舟編譯器學習筆記系列鏈接。

      方舟編譯器學習筆記1:方舟相關資料

      https://zhuanlan.zhihu.com/p/80624361

      方舟編譯器學習筆記2:源碼編譯

      https://zhuanlan.zhihu.com/p/80643681

      方舟編譯器學習筆記3:方舟可執(zhí)行文件簡介

      https://zhuanlan.zhihu.com/p/80693868

      方舟編譯器學習筆記4:文檔導讀

      https://zhuanlan.zhihu.com/p/80783831

      方舟編譯器學習筆記5:方舟開始接受代碼合并請求

      https://zhuanlan.zhihu.com/p/80905553

      方舟編譯器學習筆記6:方舟開源目錄簡介

      https://zhuanlan.zhihu.com/p/81046562


      實習/全職編輯記者招聘ing

      加入我們,親身體驗一家專業(yè)科技媒體采寫的每個細節(jié),在最有前景的行業(yè),和一群遍布全球最優(yōu)秀的人一起成長。坐標北京·清華東門,在大數據文摘主頁對話頁回復“招聘”了解詳情。簡歷請直接發(fā)送至zz@bigdatadigest.cn



      點「在看」的人都變好看了哦!

        本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多