As a common module of language runtime in OpenHarmony, ArkCompiler Runtime Core consists of language-independent basic runtime libraries, including ArkCompiler File, Tooling, Base and ISA. ArkCompiler File provides bytecodes and information required for executing bytecodes. Tooling supports runtime debugger. Base is responsible for implementing platform related utilities. ISA provides common instruction set architecture that is language-independent.
Figure 1 ArkCompiler Runtime Core architecture diagram:
For more information, see: ARK Runtime Subsystem.
├── assembler # Assembler that converts an ARK bytecode file in text format (*.pa) into a bytecode file in binary format (*.abc). For details about the format, see docs/assembly_format.md and docs/file_format.md.
├── bytecode_optimizer # Bytecode optimizer, further optimize the ARK bytecode to generate optimized bytecode file in binary format (*.abc).
├── cmake # Cmake script that contains the toolchain files and common cmake functions used to define the build and test targets.
├── compiler # Compiler including IR(intermediate representation) and passes for bytecode optimization. See docs/ir_format.md.
├── cross_values # Cross values generator.
├── disassembler # Disassembler that converts an ARK bytecode file in binary format (*.abc) into an ARK bytecode file in text format (*.pa).
├── docs # Language frontend, ARK file format, and runtime design documents.
├── dprof # Data used to collect the profiling data for ARK runtime.
├── gn # GN templates and configuration files.
├── irtoc # IR to code tool, aims to compile a manually created IR to the target code.
├── isa # Bytecode ISA description file YAML, Ruby scripts and templates.
├── ldscripts # Linker scripts used to place ELF sections larger than 4 GB in a non-PIE executable file.
├── libark_defect_scan_aux # Vulnerability defect scanning tool for ARK bytecode file in binary format (*.abc).
├── libpandabase # Basic ArkCompiler runtime library, including logs, synchronization primitives, and common data structure.
├── libpandafile # Source code repository of ARK bytecode files (*.abc) in binary format.
├── libziparchive # Provides APIs for reading and using zip files implemented by zlib.
├── panda # CLI tool used to execute ARK bytecode files in binary format(*.abc).
├── pandastdlib # Standard libraries wrote by the ARK assembler.
├── platforms # Platform related utilities.
├── plugins # Language-dependent plugins.
├── quickener # Quickener tool.
├── runtime # ARK runtime command module.
├── scripts # CI Scripts.
├── templates # Ruby templates and scripts used to process command line options, loggers, error messages, and events.
├── tests # Test cases.
└── verification # Bytecode verifier. See docs/bc_verification.
Linux platform
$ ./build.sh --product-name hispark_taurus_standard --build-target ark_host_linux_tools_packages
Windows platform
$ ./build.sh --product-name hispark_taurus_standard --build-target ark_host_windows_tools_packages
Mac platform
$ ./build.sh --product-name hispark_taurus_standard --build-target ark_host_mac_tools_packages
The ark_asm assembler converts the text ARK bytecode file into a bytecode file in binary format.
Command:
ark_asm [Options] Input file Output file
Supported options:
Option | Description |
---|---|
--dump-scopes | Save the result to a JSON file to support the debug mode in Visual Studio Code. |
--help | Display help information. |
--log-file | Specify the log file output path after log printing is enabled. |
--optimize | Enable compilation optimization. |
--size-stat | Collect statistics and print ARK bytecode information after conversion. |
--verbose | Enable log printing. |
--version | Print version info, including file format version and minimum supported file format version. |
Input file: ARK bytecodes in text format
Output file: ARK bytecodes in binary format
The ark_disasm disassembler converts binary ARK bytecodes into readable text ARK bytecodes.
Command:
ark_disasm [Options] Input file Output file
Supported options:
Option | Description |
---|---|
--debug | Enable the function for printing debug information. |
--debug-file | Specify the path of the debug information output file. The default is std::cout . |
--help | Display help information. |
--quiet | Enable all of the "--skip-*" flags. |
--skip-string-literals | Replace string literals with their respective id's, thus shortening emitted code size. |
--verbose | Enable log printing. |
--version | Print version info, including file format version and minimum supported file format version. |
Input file: ARK bytecodes in binary format
Output file: ARK bytecodes in text format
For more information, please see: ARK Runtime Usage Guide.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
Activity
Community
Health
Trend
Influence
:Code submit frequency
:React/respond to issue & PR etc.
:Well-balanced team members and collaboration
:Recent popularity of project
:Star counts, download counts etc.