From b4e5d2bc7dd10678a68350188b78b5413a1528a1 Mon Sep 17 00:00:00 2001 From: Han00000000 Date: Sat, 11 Sep 2021 17:29:08 +0800 Subject: [PATCH] fix docs issue Signed-off-by: Han00000000 Change-Id: Iaa1d66569fdb983a48e485e70eaf79fba7194dea --- README.md | 35 ++++----- README_zh.md | 35 +++++---- docs/ARK-Runtime-Subsystem-zh.md | 67 ------------------ docs/ARK-Runtime-Subsystem.md | 67 ------------------ docs/ARK-Runtime-Usage-Guide-zh.md | 2 +- docs/README.md | 7 ++ docs/README_zh.md | 7 ++ docs/development-example-zh.md | 35 +++++---- docs/development-example.md | 27 ++++--- docs/figures/en-us_image_0000001197275269.png | Bin 22943 -> 0 bytes docs/figures/en-us_image_0000001197967983.png | Bin 15770 -> 0 bytes docs/figures/zh-cn_image_0000001197275269.png | Bin 22943 -> 0 bytes docs/figures/zh-cn_image_0000001197967983.png | Bin 15770 -> 0 bytes docs/overview-zh.md | 2 +- docs/using-the-toolchain-zh.md | 6 +- docs/using-the-toolchain.md | 6 +- 16 files changed, 94 insertions(+), 202 deletions(-) delete mode 100644 docs/ARK-Runtime-Subsystem-zh.md delete mode 100644 docs/ARK-Runtime-Subsystem.md create mode 100644 docs/README.md create mode 100644 docs/README_zh.md delete mode 100644 docs/figures/en-us_image_0000001197275269.png delete mode 100644 docs/figures/en-us_image_0000001197967983.png delete mode 100644 docs/figures/zh-cn_image_0000001197275269.png delete mode 100644 docs/figures/zh-cn_image_0000001197967983.png diff --git a/README.md b/README.md index 0c20735cf3..99fc3c4781 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,20 @@ # ARK JS Runtime Module -- [Directory Structure](#section161941989596) -- [Constraints](#section119744591305) -- [Build](#section137768191623) - - [Available APIs](#section175841548124517) - - [Usage Guidelines](#section129654513264) - -- [Repositories Involved](#section1371113476307) +- [ARK JS Runtime Module](#ark-js-runtime-module) + - [Introduction](#introduction) + - [Directory Structure](#directory-structure) + - [Constraints](#constraints) + - [Build](#build) + - [Available APIs](#available-apis) + - [Usage Guidelines](#usage-guidelines) + - [Repositories Involved](#repositories-involved) ### Introduction ARK JS Runtime is the runtime used by JavaScript \(JS\) applications on OpenHarmony. It consists of the JS object allocator, garbage collector \(GC\), a standard library compliant with ECMAScript specifications, ARK bytecode interpreter, inline caches that store hidden classes, and the ARK Foreign Function Interface \(AFFI\). +For more infomation, see: [ARK Runtime Subsystem](https://gitee.com/openharmony/docs/blob/master/en/readme/ARK-Runtime-Subsystem.md). + **ARK JS runtime architecture** ![](docs/figures/en-us_image_0000001149439242.png) @@ -49,7 +52,9 @@ ARK JS Runtime is the runtime used by JavaScript \(JS\) applications on OpenHarm ## Build +``` ./build.sh --product-name Hi3516DV300 --build-target ark\_js\_runtime +``` ### Available APIs @@ -60,20 +65,18 @@ For details, see [NAPI](https://gitee.com/openharmony/ace_napi/blob/master/READ For details about how to generate JS bytecodes, see [Using the Toolchain](docs/using-the-toolchain.md). To run bytecodes: - +``` cd out/release - LD\_LIBRARY\_PATH=clang\_x64/ark/ark\_js\_runtime:clang\_x64/ark/ark:clang\_x64/global/i18n:../../prebuilts/clang/ohos/linux-x86\_64/llvm/lib/ - ./clang\_x64/ark/ark\_js\_runtime/ark\_js\_vm helloworld.abc +``` -## Repositories Involved - -[ARK Runtime Subsystem](docs/ARK-Runtime-Subsystem.md) +For more infomation, please see: [ARK-Runtime-Usage-Guide](https://gitee.com/openharmony/ark_js_runtime/blob/master/docs/ARK-Runtime-Usage-Guide.md). -[ark/runtime\_core](https://gitee.com/openharmony/ark_runtime_core/blob/master/README.md) +## Repositories Involved -**[ark/js\_runtime](README.md)** +[ark\_runtime\_core](https://gitee.com/openharmony/ark_runtime_core) -[ark/ts2abc](https://gitee.com/openharmony/ark_ts2abc/blob/master/README.md) +**[ark\_js\_runtime](https://gitee.com/openharmony/ark_js_runtime)** +[ark\_ts2abc](https://gitee.com/openharmony/ark_ts2abc) diff --git a/README_zh.md b/README_zh.md index c492518f38..d7adae57ad 100644 --- a/README_zh.md +++ b/README_zh.md @@ -1,17 +1,20 @@ # 方舟JS运行时组件 -- [目录](#section161941989596) -- [约束](#section119744591305) -- [编译构建](#section137768191623) - - [接口说明](#section175841548124517) - - [使用说明](#section129654513264) - -- [相关仓](#section1371113476307) +- [方舟JS运行时组件](#方舟js运行时组件) + - [简介](#简介) + - [目录](#目录) + - [约束](#约束) + - [编译构建](#编译构建) + - [接口说明](#接口说明) + - [使用说明](#使用说明) + - [相关仓](#相关仓) ### 简介 方舟JS运行时(ARK JavaScript Runtime)是OpenHarmony上JS应用使用的运行时。包含JS对象的分配器以及垃圾回收器(GC)、符合ECMAScript规范的标准库、用于运行ARK前端组件生成的方舟字节码(ARK Bytecode,abc)的解释器、用于存储隐藏类的内联缓存、方舟JS运行时对外的函数接口(AFFI)等模块。 +更多信息请参考:[方舟运行时子系统](https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/ARK-Runtime-Subsystem-zh.md) + **方舟JS运行时组件架构图:** ![](docs/figures/zh-cn_image_0000001196712959.png) @@ -49,7 +52,9 @@ ## 编译构建 +``` ./build.sh --product-name Hi3516DV300 --build-target ark\_js\_runtime +``` ### 接口说明 @@ -59,21 +64,21 @@ NAPI接口说明参考[NAPI组件](https://gitee.com/openharmony/ace_napi/blob/m JS生成字节码参考[工具链使用](docs/using-the-toolchain-zh.md) -字节码执行 - +字节码执行: +``` cd out/release LD\_LIBRARY\_PATH=clang\_x64/ark/ark\_js\_runtime:clang\_x64/ark/ark:clang\_x64/global/i18n:../../prebuilts/clang/ohos/linux-x86\_64/llvm/lib/ ./clang\_x64/ark/ark\_js\_runtime/ark\_js\_vm helloworld.abc +``` -## 相关仓 - -[方舟运行时子系统](docs/ARK-Runtime-Subsystem-zh.md) +更多使用说明请参考:[方舟运行时使用指南](https://gitee.com/openharmony/ark_js_runtime/blob/master/docs/ARK-Runtime-Usage-Guide-zh.md) -[ark/runtime\_core](https://gitee.com/openharmony/ark_runtime_core/blob/master/README_zh.md) +## 相关仓 -**[ark/js\_runtime](README_zh.md)** +[ark\_runtime\_core](https://gitee.com/openharmony/ark_runtime_core) -[ark/ts2abc](https://gitee.com/openharmony/ark_ts2abc/blob/master/README_zh.md) +**[ark\_js\_runtime](https://gitee.com/openharmony/ark_js_runtime)** +[ark\_ts2abc](https://gitee.com/openharmony/ark_ts2abc) diff --git a/docs/ARK-Runtime-Subsystem-zh.md b/docs/ARK-Runtime-Subsystem-zh.md deleted file mode 100644 index 12a2a46efa..0000000000 --- a/docs/ARK-Runtime-Subsystem-zh.md +++ /dev/null @@ -1,67 +0,0 @@ -# 方舟运行时子系统 - -- [简介](#section11660541593) -- [目录](#section161941989596) -- [说明](#section18393638195820) -- [相关仓](#section1371113476307) - -## 简介 - -方舟\(ARK\)是华为自研的统一编程平台,包含编译器、工具链、运行时等关键部件,支持高级语言在多种芯片平台的编译与运行,并支撑OpenHarmony操作系统及其应用和服务运行在手机、个人电脑、平板、电视、汽车和智能穿戴等多种设备上的需求。本次开源的ARK-JS提供的能力是在OpenHarmony操作系统中编译和运行JavaScript语言\(本文后面简称JS\)。 - -本次开源的ARK-JS分成两个部分,分别是JS编译工具链与JS运行时。JS工具链将JS源码编译成方舟字节码\(ARK Bytecode\),JS运行时负责执行生成的方舟字节码\(后续如无特殊说明,字节码特指方舟字节码\)。 - -JS编译工具链架构: - -![](figures/zh-cn_image_0000001197967983.png) - -js前端编译器,将JavaScript源码解析为AST后,经过AST变换、字节码生成器、寄存器分配后由native emiter产生方舟字节码文件\(abc文件\) - -JS运行时(Runtime)架构: - -![](figures/zh-cn_image_0000001197275269.png) - -ARK-JS Runtime以方舟字节码文件作为输入并直接运行字节码文件,实现对应的JS语义逻辑。 - -ARK-JS Runtime主要由四个部分组成: - -- Core Runtime - - Core Runtime主要由语言无关的基础运行库组成,包括承载字节码的ARK File组件、支持Debugger的Tooling组件、负责对应系统调用的ARK Base组件等。 - -- Execution Engine - - 执行引擎目前包含执行字节码的解释器、缓存隐藏类和内联缓存、以及剖析记录运行时类型的Profiler。 - -- ECMAScript Runtime - - ECMAScript Runtime则包含了各种JS对象的分配器、垃圾回收器、以及用以支撑ECMAScript规范的内部运行库。 - -- AFFI \(ARK Foreign Function Interface\) - - AFFI是ARK JS运行时的C++语言外部函数接口。 - - -## 目录 - -``` -/ark -├── js_runtime # JS运行时组件 -├── runtime_core # 运行时公共组件 -└── ts2abc # 方舟编译器中JavaScript语言的前端工具 -``` - -## 说明 - -见各组件说明 - -## 相关仓 - -**[方舟运行时子系统](ARK-Runtime-Subsystem-zh.md)** - -[ark/runtime\_core](https://gitee.com/openharmony/ark_runtime_core/blob/master/README_zh.md) - -[ark/js\_runtime](https://gitee.com/openharmony/ark_js_runtime/blob/master/README_zh.md) - -[ark/ts2abc](https://gitee.com/openharmony/ark_ts2abc/blob/master/README_zh.md) - diff --git a/docs/ARK-Runtime-Subsystem.md b/docs/ARK-Runtime-Subsystem.md deleted file mode 100644 index 58a909c181..0000000000 --- a/docs/ARK-Runtime-Subsystem.md +++ /dev/null @@ -1,67 +0,0 @@ -# ARK Runtime Subsystem - -- [Introduction](#section11660541593) -- [Directory Structure](#section161941989596) -- [Note](#section18393638195820) -- [Repositories Involved](#section1371113476307) - -## Introduction - -ARK is a unified programming platform developed by Huawei. Its key components include a compiler, toolchain, and runtime. ARK supports compilation and running of high-level programming languages on the multi-chip platform and accelerates the running of the OpenHarmony operating system and its applications and services on mobile phones, PCs, tablets, TVs, automobiles, and smart wearables. The ARK-JS open sourced this time provides the capability of compiling and running the JavaScript \(JS\) language on the OpenHarmony operating system. - -The ARK-JS consists of two parts: JS compiler toolchain and JS runtime. The JS compiler toolchain compiles JS source code into ARK bytecodes. The JS runtime executes the generated ARK bytecodes. Unless otherwise specified, bytecodes refer to ARK bytecodes in this document. - -The following figure shows the architecture of the JS compiler toolchain. - -![](figures/en-us_image_0000001197967983.png) - -The JS front-end compiler parses the JS source code into an abstract syntax tree \(AST\), which is processed by the AST transformer, bytecode generator, and register allocator. The native emiter generates the ARK bytecode file \(.abc\). - -The following figure shows the JS runtime architecture. - -![](figures/en-us_image_0000001197275269.png) - -ARK-JS Runtime runs ARK bytecode files to implement JS semantic logic. - -ARK-JS Runtime consists of the following: - -- Core Runtime - - Core Runtime consists of basic language-irrelevant runtime libraries, including ARK File, Tooling, and ARK Base. ARK File provides bytecodes. Tooling supports Debugger. ARK Base is responsible for implementing system calls. - -- Execution Engine - - The Execution Engine consists of an interpreter that executes bytecodes, Inline Caches that store hidden classes, and Profiler that analyzes and records runtime types. - -- ECMAScript Runtime - - ECMAScript Runtime consists of the JS object allocator, garbage collector \(GC\), and an internal library that supports ECMAScript specifications. - -- ARK Foreign Function Interface \(AFFI\) - - The AFFI provides a C++ function interface for ARK-JS runtime. - - -## Directory Structure - -``` -/ark -├── js_runtime # JS runtime module -├── runtime_core # Runtime common module -└── ts2abc # JS front-end tool of ARK compiler -``` - -## Note - -For details, see the note of each module. - -## Repositories Involved - -**[ARK Runtime Subsystem](ark-runtime-subsystem.md)** - -[ark/runtime\_core](https://gitee.com/openharmony/ark_runtime_core/blob/master/README.md) - -[ark/js\_runtime](https://gitee.com/openharmony/ark_js_runtime/blob/master/README.md) - -[ark/ts2abc](https://gitee.com/openharmony/ark_ts2abc/blob/master/README.md) - diff --git a/docs/ARK-Runtime-Usage-Guide-zh.md b/docs/ARK-Runtime-Usage-Guide-zh.md index efb910bbd6..a3216281e1 100644 --- a/docs/ARK-Runtime-Usage-Guide-zh.md +++ b/docs/ARK-Runtime-Usage-Guide-zh.md @@ -1,6 +1,6 @@ # 方舟运行时使用指南 -- [综述](overview-zh.md) +- [概述](overview-zh.md) - [环境搭建和编译](environment-setup-and-compilation-zh.md) - [开发实例](development-example-zh.md) - [工具链使用](using-the-toolchain-zh.md) diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000000..4ee1d84591 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,7 @@ +# ARK Runtime Usage Guide + +- [Overview](overview.md) +- [Environment Setup and Compilation](environment-setup-and-compilation.md) +- [Development Example](development-example.md) +- [Using the Toolchain](using-the-toolchain.md) + diff --git a/docs/README_zh.md b/docs/README_zh.md new file mode 100644 index 0000000000..a3216281e1 --- /dev/null +++ b/docs/README_zh.md @@ -0,0 +1,7 @@ +# 方舟运行时使用指南 + +- [概述](overview-zh.md) +- [环境搭建和编译](environment-setup-and-compilation-zh.md) +- [开发实例](development-example-zh.md) +- [工具链使用](using-the-toolchain-zh.md) + diff --git a/docs/development-example-zh.md b/docs/development-example-zh.md index 6527605b79..b1c7e74e2b 100644 --- a/docs/development-example-zh.md +++ b/docs/development-example-zh.md @@ -1,13 +1,21 @@ # 开发实例 -- [HelloWorld](#section105987593810) -- [运行Test262测试用例](#section118471435115815) +- [开发实例](#开发实例) + - [HelloWorld](#helloworld) + - [运行前准备](#运行前准备) + - [运行hello-world.js](#运行hello-worldjs) + - [反汇编hello-world.abc](#反汇编hello-worldabc) + - [运行Test262测试用例](#运行test262测试用例) + - [运行前准备](#运行前准备-1) + - [运行Test262](#运行test262) + - [测试运行示例](#测试运行示例) + - [测试输出](#测试输出) 本章节将介绍基于方舟运行时的开发测试实例。 ## HelloWorld -运行前准备 +### 运行前准备 1. 编译方舟运行时,编译命令: @@ -15,15 +23,15 @@ ./build.sh --product-name Hi3516DV300 --build-target ark_js_runtime ``` -1. 编译方舟前端,编译命令: +2. 编译方舟前端,编译命令: ``` ./build.sh --product-name Hi3516DV300 --build-target ark_ts2abc_build ``` -_注:编译命令执行路径为项目根目录。_ +**说明**:编译命令执行路径为项目根目录。 -运行hello-world.js +### 运行hello-world.js 新建hello-world.js文件,写入以下源码: @@ -60,10 +68,9 @@ _注:编译命令执行路径为项目根目录。_ ->![](public_sys-resources/icon-note.gif) **说明:** ->此处“_your code path_”为源码目录路径。 +**说明**:此处“_your code path_”为源码目录路径。 -反汇编hello-world.abc +### 反汇编hello-world.abc 执行如下命令,结果输出到output文件中: @@ -110,7 +117,7 @@ hello-world.abc反汇编结果如下: ## 运行Test262测试用例 -运行前准备 +### 运行前准备 1. 编译方舟运行时,编译命令: @@ -124,9 +131,9 @@ hello-world.abc反汇编结果如下: ./build.sh --product-name Hi3516DV300 --build-target ark_ts2abc_build ``` -_注:编译命令执行路径为项目根目录。_ +**说明**:编译命令执行路径为项目根目录。 -运行Test262 +### 运行Test262 运行run\_test262.py脚本,下载及运行Test262用例。 @@ -228,7 +235,7 @@ python3 test262/run_test262.py [options] -测试运行示例 +### 测试运行示例 - 运行ES51测试用例: @@ -268,7 +275,7 @@ python3 test262/run_test262.py [options] ``` -测试输出 +### 测试输出 Test262所有用例的测试结果位于项目根目录/ark/ts2abc/out下。shell中测试输出结果如下: diff --git a/docs/development-example.md b/docs/development-example.md index 242f2a735d..0aaec3aab3 100644 --- a/docs/development-example.md +++ b/docs/development-example.md @@ -7,7 +7,7 @@ This section describes how to develop and test ARK runtime. ## HelloWorld -Preparations +### Preparations 1. Run the following command to compile ARK runtime: @@ -15,15 +15,15 @@ Preparations ./build.sh --product-name Hi3516DV300 --build-target ark_js_runtime ``` -1. Run the following command to compile the ARK frontend: +2. Run the following command to compile the ARK frontend: ``` ./build.sh --product-name Hi3516DV300 --build-target ark_ts2abc_build ``` -Note: Run the compilation commands in the project root directory. +**NOTE**: Run the compilation commands in the project root directory. -Running **hello-world.js** +### Running **hello-world.js** Create the **hello-world.js** file and write the following source code into the file: @@ -58,12 +58,9 @@ Run the **hello-world.js** file. Hello World!!! ``` +**NOTE**: In the preceding command, _your code path_ indicates the source code directory. - ->![](public_sys-resources/icon-note.gif) **NOTE:** ->In the preceding command, _your code path_ indicates the source code directory. - -Disassembling **hello-world.abc** +### Disassembling **hello-world.abc** Run the following command to export the result to the **output** file: @@ -110,7 +107,7 @@ The output is as follows: ## Performing Test Case Test262 -Preparations +### Preparations 1. Run the following command to compile ARK runtime: @@ -118,15 +115,15 @@ Preparations ./build.sh --product-name Hi3516DV300 --build-target ark_js_runtime ``` -1. Run the following command to compile the ARK frontend: +2. Run the following command to compile the ARK frontend: ``` ./build.sh --product-name Hi3516DV300 --build-target ark_ts2abc_build ``` -Note: Run the compilation commands in the project root directory. +**NOTE**: Run the compilation commands in the project root directory. -Running Test262 +### Running Test262 Run the **run\_test262.py** script to download and run the Test262 test case. @@ -231,7 +228,7 @@ Run the script in _Project root directory_**/ark/ts2abc**. -Example +### Example - Run test case ES51. @@ -271,7 +268,7 @@ Example ``` -Test Output +### Test Output The results of all Test262 test cases are available in the **_Project root directory_/ark/ts2abc/out**. The test result in the shell is as follows: diff --git a/docs/figures/en-us_image_0000001197275269.png b/docs/figures/en-us_image_0000001197275269.png deleted file mode 100644 index 2f78e5f3e10a2b99c60ca31dc0f23ae5fb89f7a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22943 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

)Ec*u7IPGV?EvfY2?h~p^ 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 diff --git a/docs/figures/en-us_image_0000001197967983.png b/docs/figures/en-us_image_0000001197967983.png deleted file mode 100644 index e8e9951f3f2dc5b566a3d9b36229def46c41aecd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15770 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

)Ec*u7IPGV?EvfY2?h~p^ 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 diff --git a/docs/figures/zh-cn_image_0000001197967983.png b/docs/figures/zh-cn_image_0000001197967983.png deleted file mode 100644 index e8e9951f3f2dc5b566a3d9b36229def46c41aecd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15770 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 +# 概述 方舟\(ARK\)是华为自研的统一编程平台,包含编译器、工具链、运行时等关键部件,支持高级语言在多种芯片平台的编译与运行,并支撑OpenHarmony标准操作系统及其应用和服务运行在手机、个人电脑、平板、电视、汽车和智能穿戴等多种设备上的需求。本次开源的ARK-JS提供的能力是在OpenHarmony操作系统中编译和运行JavaScript语言\(本文后面简称JS\)。 diff --git a/docs/using-the-toolchain-zh.md b/docs/using-the-toolchain-zh.md index 44b7dd46ae..9fee49691a 100644 --- a/docs/using-the-toolchain-zh.md +++ b/docs/using-the-toolchain-zh.md @@ -2,7 +2,7 @@ 方舟前端工具采用命令行交互方式,支持将JS代码转换为方舟字节码,使其能够在方舟运行时上运行。支持Windows/Linux/Mac平台。 -JS字节码编译工具概述 +## JS字节码编译工具概述 将JS文件转换为方舟字节码。 @@ -137,7 +137,7 @@ node --expose-gc index.js [选项] file.js -汇编器工具概述 +## 汇编器工具概述 工具名称为ark\_asm,用于将文本格式的方舟字节码文件转换为二进制格式的方舟字节码文件。 @@ -191,7 +191,7 @@ ark_asm [选项] 输入文件 输出文件 输出文件:二进制格式的方舟字节码 -反汇编器工具概述 +## 反汇编器工具概述 工具名称为ark\_disasm,用于将二进制格式的方舟字节码文件转换为文本格式的方舟字节码文件。 diff --git a/docs/using-the-toolchain.md b/docs/using-the-toolchain.md index 95446f2227..9d00fa90b1 100644 --- a/docs/using-the-toolchain.md +++ b/docs/using-the-toolchain.md @@ -2,7 +2,7 @@ The ARK front-end tools use the command line interaction mode and convert JS code into ARK bytecodes that can run on ARK runtime. The toolchain supports Windows, Linux, and macOS. -JS Bytecode Compiler +## JS Bytecode Compiler Converts a JS file into ARK bytecodes. @@ -137,7 +137,7 @@ node --expose-gc index.js [option] file.js -Assembler ark\_asm +## Assembler ark\_asm The ark\_asm assembler converts the text ARK bytecode file into a bytecode file in binary format. @@ -191,7 +191,7 @@ Input file: ARK bytecodes in text format Output file: ARK bytecodes in binary format -Disassembler ark\_disasm +## Disassembler ark\_disasm The ark\_disasm disassembler converts binary ARK bytecodes into readable text ARK bytecodes. -- Gitee