3 Star 9 Fork 13

ark_standalone_build / docs

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README.md 3.82 KB
一键复制 编辑 原始数据 按行查看 历史

ArkCompiler开发指导

概述

ArkCompiler是一种统一编程平台,包含编译器、工具链、运行时等关键部件,支持高级语言在多种芯片的编译与运行,并支撑应用和服务运行在手机、个人电脑、平板、电视、汽车和智能穿戴等多种设备上的需求。

编译环境配置

推荐操作系统Ubuntu18.04及以上。

  1. 安装依赖工具。

    sudo apt-get update && sudo apt-get install python ruby python3-pip git-lfs gcc-multilib g++-multilib zlib1g-dev libc++1 curl nodejs
  2. 安装repo工具。

    mkdir ~/bin/
    curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > ~/bin/repo
    chmod a+x ~/bin/repo
    export PATH=~/bin:$PATH
    pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple requests
  3. 下载源码。

    repo init -u https://gitee.com/ark-standalone-build/manifest.git -b master
    repo sync -c -j8
    repo forall -c 'git lfs pull'
  4. 安装编译器及二进制工具。

    ./prebuilts_download.sh
  5. 按需选择操作步骤。

    • 设置安卓开发环境步骤(需编译android目标前参考此步骤)。
    • 设置qemu运行环境步骤(需运行非宿主机架构类型的可执行文件前参考此步骤)。
      • 按 设置qemu运行环境步骤 操作,并执行如下命令(如需环境变量在下次打开终端时仍生效,则将之写入~/.bashrc文件中)。
      • qemu_installation_path:qemu安装路径,设置qemu运行环境步骤 中确定。
      export QEMU_INSTALLATION_PATH=${qemu_installation_path}

开发步骤

  1. 编译出可执行程序es2panda(es2abc)、ark_js_vm。

    python ark.py x64.release es2panda ark_js_vm
    • es2panda(es2abc):生成ArkTS文件对应的ArkCompiler字节码文件(尾缀:.abc)的可执行程序。
    • ark_js_vm:运行ArkCompiler字节码文件的可执行程序。
  2. 用es2abc生成.ts文件对应的ArkCompiler字节码文件。

    out/x64.release/arkcompiler/ets_frontend/es2abc helloworld.ts

    TypeScript用例文件helloworld.ts源码:

    declare function print(arg: any): any;
    print('Hello world!');

    生成的文件:helloworld.abc

  3. 用ark_js_vm运行生成的ArkCompiler字节码文件。

    out/x64.release/arkcompiler/ets_runtime/ark_js_vm helloworld.abc

    执行结果:

    Hello world!

执行unittest测试套

python ark.py x64.release unittest

执行Test262测试套

python ark.py x64.release test262

执行regress测试套

python ark.py x64.release regresstest

执行workload测试套

python ark.py x64.release workload

workload测试套详细参数

python ark.py x64.release workload [report][dev][-number][number][cases_type]

详细说明,添加以下参数时请按顺序添加
report:是否生成报表,可省略,若省略该选项,请不要在后面添加其他参数
dev:编译类型,可省略,若省略该选项,请不要在后面添加其他参数
-number:劣化标记边界值,可省略,若省略该选项,请不要在后面添加其他参数
number:用例运行次数,可省略,若省略该选项,请不要在后面添加其他参数
cases_type:用例的类型,可省略,省略时执行全量workload

例:执行workload,并将结果输出到表格,标记劣化20%的数据,每个用例执行10次
python ark.py x64.release workload report dev -20 10

编译选项

编译模式选择,如在x64平台构建debug版本:

python ark.py x64.debug

获取更多编译说明

1
https://gitee.com/ark_standalone_build/docs.git
git@gitee.com:ark_standalone_build/docs.git
ark_standalone_build
docs
docs
master

搜索帮助