# Copyright (c) 2021-2024 Huawei Device Co., Ltd. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. module: name: verifier namespace: ark::verifier options: - name: boot-panda-files type: arg_list_t default: - $ORIGIN/../pandastdlib/arkstdlib.abc description: Boot panda files separated by colon delimiter: ":" - name: panda-files type: arg_list_t default: [] description: Panda files separated by colon which is not within boot-panda-files delimiter: ":" - name: classes type: arg_list_t default: [] description: Fully qualified class names to verify delimiter: "," - name: methods type: arg_list_t default: [] # TODO(romanov) describe how to specify signatures for specific overloads? description: >- Fully qualified method names to verify (if neither this nor classes are set, all classes will be verified) delimiter: "," - name: load-runtimes type: arg_list_t default: - core possible_values: - core - ets - java # currently unsupported and not planned # - ecmascript description: Load specified class and intrinsic spaces and define runtime type delimiter: ":" - name: log-components type: arg_list_t default: - all possible_values: - all - alloc - common - pandafile - memorypool - verifier - runtime # TODO(romanov) remove after #5987 (but keep runtime) - classlinker description: Enable logs from specified components delimiter: ":" - name: log-level type: std::string default: error possible_values: - debug - info - warning - error - fatal description: Log level - name: log-stream type: std::string default: std possible_values: - std - file - dummy description: Log level - name: log-file type: std::string default: "" description: File name for file-logger - name: limit-standard-alloc type: bool default: false description: Limit standard allocations usage in runtime - name: internal-allocator-type type: std::string default: default possible_values: - panda_allocators - malloc - default description: >- Default means using malloc for Release, and panda allocators for Debug builds. If we use malloc, we will ignore limit-standard-alloc option. - name: internal-memory-size-limit type: uint64_t default: 2147483648 description: Max internal memory used by the VM - name: print-memory-statistics type: bool default: false description: Enable/disable printing memory statistics in the end of the program - name: debug-mode type: bool default: false description: Whether to enable debug mode - name: perf-measure type: bool default: false description: Measure time for stage - name: update-cache type: bool default: true description: Whether to update verification result cache - name: verify-runtime-libraries type: bool default: false description: Whether to verify system files - name: threads type: uint32_t default: 0 description: Number of verification threads. Use 0 for the system-specific default, usually 1 thread per core - name: config-file type: std::string default: "default" description: Verifier config file - name: cache-file type: std::string default: "" description: Verification result cache filename (should be set if update-cache is true) - name: gc-type type: std::string default: g1-gc possible_values: - epsilon - epsilon-g1 - stw - gen-gc - g1-gc description: Type of used GC