Go to file
qiuyu 5a0298be18 Type system adaption for Bytecode optimizer
1. Adapt typescript type system for bytecode optimizer
2. Delete file_items_gen_inc as we do not have multi languages to support
3. Add log which can display typeinfo after optimizations in debug mode

Issue: I5HYBL
Signed-off-by: qiuyu <qiuyu22@huawei.com>
Change-Id: I97ce3fb3aca1592329abad86e022e74ecff4b9eb
2022-07-25 16:25:22 +08:00
assembler Update runtime_core code 2022-07-17 10:20:32 +08:00
bytecode_optimizer Type system adaption for Bytecode optimizer 2022-07-25 16:25:22 +08:00
cmake Update runtime_core code 2022-07-17 10:20:32 +08:00
compiler Type system adaption for Bytecode optimizer 2022-07-25 16:25:22 +08:00
cross_values Specify object path instead of find it 2022-07-18 22:08:26 +08:00
disassembler Update runtime_core code 2022-07-17 10:20:32 +08:00
docs Update runtime_core code 2022-07-17 10:20:32 +08:00
dprof Update runtime_core code 2022-07-17 10:20:32 +08:00
gn Update runtime_core code 2022-07-17 10:20:32 +08:00
irtoc Update runtime_core code 2022-07-17 10:20:32 +08:00
isa Update runtime_core code 2022-07-17 10:20:32 +08:00
ldscripts Update runtime_core code 2022-07-17 10:20:32 +08:00
libpandabase !177 Remove redundant header files and indirect references 2022-07-20 13:28:51 +00:00
libpandafile Type system adaption for Bytecode optimizer 2022-07-25 16:25:22 +08:00
libziparchive Update runtime_core code 2022-07-17 10:20:32 +08:00
panda Update runtime_core code 2022-07-17 10:20:32 +08:00
pandastdlib Update runtime_core code 2022-07-17 10:20:32 +08:00
platforms Remove redundant header files and indirect references 2022-07-20 15:14:34 +08:00
plugins Update runtime_core code 2022-07-17 10:20:32 +08:00
quickener Update runtime_core code 2022-07-17 10:20:32 +08:00
runtime Fix fossbot warnings 2022-07-22 18:44:50 +08:00
scripts Update runtime_core code 2022-07-17 10:20:32 +08:00
templates Update runtime_core code 2022-07-17 10:20:32 +08:00
tests Update runtime_core code 2022-07-17 10:20:32 +08:00
verification Update runtime_core code 2022-07-17 10:20:32 +08:00
.clang-format copyright update 2022-03-25 13:17:51 +03:00
.clang-tidy copyright update 2022-03-25 13:17:51 +03:00
.gitattributes add ark runtime_core 2021-09-05 20:53:43 +08:00
.gitignore add ark runtime_core 2021-09-05 20:53:43 +08:00
.standalone_gn copyright update 2022-03-25 13:17:51 +03:00
ark_config.gni Update runtime_core code 2022-07-17 10:20:32 +08:00
ark_root.gni Update runtime_core code 2022-07-17 10:20:32 +08:00
AUTHORS Update runtime_core code 2022-07-17 10:20:32 +08:00
BUILD.gn Type system adaption for Bytecode optimizer 2022-07-25 16:25:22 +08:00
bundle.json Switch path name from ark to arkcompiler 2022-07-11 19:53:42 +08:00
CMakeLists.txt Update runtime_core code 2022-07-17 10:20:32 +08:00
LICENSE-2.0.txt Update runtime_core code 2022-07-17 10:20:32 +08:00
OAT.xml Update runtime_core code 2022-07-17 10:20:32 +08:00
README_zh.md Switch path name from ark to arkcompiler 2022-07-11 19:53:42 +08:00
README.md Update runtime_core code 2022-07-17 10:20:32 +08:00

Runtime Core

Introduction

As a common module of ARK runtime, Runtime Core consists of some basic language-irrelevant runtime libraries, including ARK File, Tooling, and ARK Base. ARK File provides bytecodes and information required for executing bytecodes. Tooling supports Debugger. ARK Base is responsible for implementing platform related utilities.

For more information, see: ARK Runtime Subsystem.

Directory Structure

/arkcompiler/runtime_core
├── assembler             # Assembler that converts an ARK bytecode file (*.pa) in text format into a bytecode file (*.abc) in binary format. For details about the format, see docs/assembly_format.md and docs/file_format.md.
├── cmake                 # cmake script that contains the toolchain files and common cmake functions used to define the build and test targets.
├── CMakeLists.txt        # cmake main entry file.
├── disassembler          # Disassembler that converts an ARK bytecode file (*.abc) in binary format into an ARK bytecode file (*.pa) in text format.
├── 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.
├── isa                   # Bytecode ISA description file YAML, and Ruby scripts and templates.
├── ldscripts             # Linker scripts used to place ELF sections larger than 4 GB in a non-PIE executable file.
├── libpandabase          # Basic ARK 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 miniz.
├── panda                 # CLI tool used to execute ARK bytecode files (*.abc).
├── pandastdlib           # Standard libraries wrote by the ARK assembler.
├── 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                 # UT test cases.
└── verification          # Bytecode verifier. See docs/bc_verification.

Usage Guidelines

Assembler ark_asm

The ark_asm assembler converts the text ARK bytecode file into a bytecode file in binary format.

Command:

ark_asm [Option] Input file Output file

Option

Description

--dump-scopes

Saves the result to a JSON file to support the debug mode in Visual Studio Code.

--help

Displays help information.

--log-file

Specifies the log file output path after log printing is enabled.

--optimize

Enables compilation optimization.

--size-stat

Collects statistics on and prints ARK bytecode information after conversion.

--verbose

Enables log printing.

Input file: ARK bytecodes in text format

Output file: ARK bytecodes in binary format

Disassembler ark_disasm

The ark_disasm disassembler converts binary ARK bytecodes into readable text ARK bytecodes.

Command:

ark_disasm [Option] Input file Output file

Option

Description

--debug

Enables the function for printing debug information.

--debug-file

Specifies the path of the debug information output file. The default value is std::cout.

--help

Displays help information.

--verbose

Outputs the comments of the output file.

Input file: ARK bytecodes in binary format

Output file: ARK bytecodes in text format

For more information, please see: ARK Runtime Usage Guide.

Repositories Involved

arkcompiler_runtime_core

arkcompiler_ets_runtime

arkcompiler_ets_frontend