加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 移动互联 > 正文

华为方舟编译器深入解读:已有45款第三方应用

发布时间:2019-09-02 06:59:02 所属栏目:移动互联 来源:上方文Q
导读:8月31日,华为方舟编译器(OpenArkCompiler)正式开源,官网已上线,源代码包、二进制包已提供下载,相干文档、演示等资料也包罗万象。本次方舟编译器开源的是编译器框架部门源码,包罗编译器中间暗示(IR)和说话编译实现,同时搭配编译器其他二进制组件,实
副问题[/!--empirenews.page--]

华为方舟编译器深入解读:已有45款第三方应用

8月31日,华为方舟编译器(OpenArkCompiler)正式开源,官网已上线,源代码包、二进制包已提供下载,相干文档、演示等资料也包罗万象。本次方舟编译器开源的是编译器框架部门源码,包罗编译器中间暗示(IR)和说话编译实现,同时搭配编译器其他二进制组件,实现Java措施到aarch64汇编指令的编译进程。

开拓者可基于开源代码+二进制,编译构建出编译器器材链,实行对Java措施举办编译。

社区参加者可以通过框架源码进修方舟编译器的编译器中间表达(IR)及根基的中端编译框架,认识方舟编译器的架构想想,并参加诸如对编译器中端优化的孝顺。

华为方舟编译器深入解读:已有45款第三方应用

【方舟编译器的上风】

凭证华为的先容,方舟编译器是为支持多种编程说话、多种芯片平台的连系编译、运行而计划的同一编程平台,包括编译器、器材链、运行时等要害部件,今朝还在一连演进中,上述手段将延续实现和开源。

通过多说话同一IR暗示,方舟编译器可实现应用中多种编程说话连系编译优化晋升机能,并且在支持多平台的同时,按照装备特性提供便捷的开拓与陈计划策晋升服从。

华为方舟编译器提供了全新的体系及应用的编译和运行机制,从动态编译变为静态编译,就是直接将高级说话直接编译成呆板码,彻底消除了假造无邪态编译的特殊开销,实现了开拓和运行服从的兼容并举。

1、多说话连系

将统一应用中的差异说话代码连系编译、连系优化,消除说话间的机能“鸿沟”,低落开拓者的优化本钱

2、轻量运行时

通过编译器的说话实现手段和优化手段加强,应用运行时的开销更小

3、软硬件协同

编译器与芯片实现软硬件协同优化,充实验展硬件能效,应用体验更佳

4、多平台支持

支持面向多样化的终端装备平台举办编译和运行,按照装备特性提供便捷的开拓与陈计划策,进步开拓服从

华为方舟编译器深入解读:已有45款第三方应用

【方舟编译器的架构计划】

当前线舟编译器支持Java/Kotlin措施字节码的前端输入,C/C++/JS等其余编程说话的支持还在筹划中。

方舟编译器的中间暗示(IR)转换器将前端输入转换成方舟IR,并运送给后端的优化器,最终天生二进制文件,二进制文件与编译器运行时库文件链接天生可执行文件,在方舟的运行情形中就可执行该文件。

方舟编译器IR是支持措施编译和运行的中间措施暗示。措施源代码中的任何信息对付措施说明和优化都是有辅佐的,以是方舟IR的方针是尽也许完备具体地提供源措施的信息。

华为方舟编译器深入解读:已有45款第三方应用

【方舟编译器的情形设置】

- 硬件设置保举

方舟编译器的硬件设置需求不高,最低只需2GHz双焦点处理赏罚器、2GB内存、200GB硬盘空间,虽然要得到最高服从,更高设置是凶猛保举的。

- 开拓情形保举

必要64位版本的Linux,尤其保举Ubuntu 16.04

sudo apt-get -y install openjdk-8-jdk git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip lib32z1-dev qemu g++-multilib gcc-multilib python3-paramiko python-paramiko python-jenkins python-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

- Clang编译器

首要用于编译方舟编译器代码。

下载clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04,地点:

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

安排到openarkcompiler/tools目次,打开openarkcompiler/build/config/BUILDCONFIG.gn文件,将GN_C_COMPILER、GN_CXX_COMPILER和GN_AR三个变量设置为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 = "${MAPLE_ROOT}/tools/clang_llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04/bin/llvm-ar"

个中${MAPLE_ROOT}为openarkcompiler源码根目次。

安装Ninja、GN并完成设置

- Ninja、GN

下载Ninja(v1.9.0)及GN(Linux Version) Ninja,地点:

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

GN下载地点:

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

将GN和Ninja可执行措施安排到openarkcompiler/tools目次,打开openarkcompiler/Makefile文件,将GN和NINJA两个变量设置为GN和Ninja可执行措施地址路径。譬喻:

GN := ${MAPLE_ROOT}/tools/gn/gn

NINJA := ${MAPLE_ROOT}/tools/ninja_1.9.0/ninja

【方舟编译器FAQ】

Q1:方舟编译器开源有官方网站吗?

A1:

孵化时代,官方网站为https://www.openarkcompiler.cn。正式结业后的官网待定。

Q2:方舟编译器是一次性所有代码吗?

A2:

初次开源范畴是编译器IR(Intermediate Representation)、RC(Reference Counting)和多说话计划头脑等,用于与业界、学术界雷同交换。后续将延续开源编译器前端、后端,支持其余说话(好比JavaScript)的编译等。

当前部门Java说话特征和JVM假造机特征的支持未包罗在本次开源代码中,包罗annotation、lambda表达式、泛械寥。

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读