1# Copyright (c) 2021-2024 Huawei Device Co., Ltd.
2# Licensed under the Apache License, Version 2.0 (the "License");
3# you may not use this file except in compliance with the License.
4# You may obtain a copy of the License at
5#
6# http://www.apache.org/licenses/LICENSE-2.0
7#
8# Unless required by applicable law or agreed to in writing, software
9# distributed under the License is distributed on an "AS IS" BASIS,
10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11# See the License for the specific language governing permissions and
12# limitations under the License.
13
14module:
15  name: verifier
16  namespace: ark::verifier
17
18options:
19- name: boot-panda-files
20  type: arg_list_t
21  default:
22      - $ORIGIN/../pandastdlib/arkstdlib.abc
23  description: Boot panda files separated by colon
24  delimiter: ":"
25
26- name: panda-files
27  type: arg_list_t
28  default: []
29  description: Panda files separated by colon which is not within boot-panda-files
30  delimiter: ":"
31
32- name: classes
33  type: arg_list_t
34  default: []
35  description: Fully qualified class names to verify
36  delimiter: ","
37
38- name: methods
39  type: arg_list_t
40  default: []
41  # TODO(romanov) describe how to specify signatures for specific overloads?
42  description: >-
43    Fully qualified method names to verify (if neither this nor classes are set, all classes will be verified)
44  delimiter: ","
45
46- name: load-runtimes
47  type: arg_list_t
48  default:
49    - core
50  possible_values:
51    - core
52    - ets
53    - java
54    # currently unsupported and not planned
55    # - ecmascript
56  description: Load specified class and intrinsic spaces and define runtime type
57  delimiter: ":"
58
59- name: log-components
60  type: arg_list_t
61  default:
62    - all
63  possible_values:
64    - all
65    - alloc
66    - common
67    - pandafile
68    - memorypool
69    - verifier
70    - runtime
71    # TODO(romanov) remove after #5987 (but keep runtime)
72    - classlinker
73  description: Enable logs from specified components
74  delimiter: ":"
75
76- name: log-level
77  type: std::string
78  default: error
79  possible_values:
80    - debug
81    - info
82    - warning
83    - error
84    - fatal
85  description: Log level
86
87- name: log-stream
88  type: std::string
89  default: std
90  possible_values:
91    - std
92    - file
93    - dummy
94  description: Log level
95
96- name: log-file
97  type: std::string
98  default: ""
99  description: File name for file-logger
100
101- name: limit-standard-alloc
102  type: bool
103  default: false
104  description: Limit standard allocations usage in runtime
105
106- name: internal-allocator-type
107  type: std::string
108  default: default
109  possible_values:
110    - panda_allocators
111    - malloc
112    - default
113  description: >-
114    Default means using malloc for Release, and panda allocators for Debug builds. If we use malloc, we will ignore
115    limit-standard-alloc option.
116
117- name: internal-memory-size-limit
118  type: uint64_t
119  default: 2147483648
120  description: Max internal memory used by the VM
121
122- name: print-memory-statistics
123  type: bool
124  default: false
125  description: Enable/disable printing memory statistics in the end of the program
126
127- name: debug-mode
128  type: bool
129  default: false
130  description: Whether to enable debug mode
131
132- name: perf-measure
133  type: bool
134  default: false
135  description: Measure time for stage
136
137- name: update-cache
138  type: bool
139  default: true
140  description: Whether to update verification result cache
141
142- name: verify-runtime-libraries
143  type: bool
144  default: false
145  description: Whether to verify system files
146
147- name: threads
148  type: uint32_t
149  default: 0
150  description: Number of verification threads. Use 0 for the system-specific default, usually 1 thread per core
151
152- name: config-file
153  type: std::string
154  default: "default"
155  description: Verifier config file
156
157- name: cache-file
158  type: std::string
159  default: ""
160  description: Verification result cache filename (should be set if update-cache is true)
161
162- name: gc-type
163  type: std::string
164  default: g1-gc
165  possible_values:
166    - epsilon
167    - epsilon-g1
168    - stw
169    - gen-gc
170    - g1-gc
171  description: Type of used GC
172