diff --git a/BUILD.gn b/BUILD.gn index 3eaa77d352808b2515c9462941e01970068284a8..062632fe0caf20b270fab39386c6d4a00acc2b1a 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -58,6 +58,11 @@ config("runtime") { "$ark_root/ark-third-party/icu/icu4c/source/i18n", "$ark_root/ark-third-party/icu/icu4c/source/", ] + configs = [ + "es2panda:libes2panda_public_config", + "$ark_root/assembler:arkassembler_public_config", + "$ark_root/libpandafile:arkfile_public_config", + ] } config("runtime_interpreter_impl") { diff --git a/assembler/assembler_sources.gn b/assembler/assembler_sources.gn deleted file mode 100644 index 4611d6c3bb96fd39691f5b7b320db60c0db79df9..0000000000000000000000000000000000000000 --- a/assembler/assembler_sources.gn +++ /dev/null @@ -1,14 +0,0 @@ -# Copyright (c) 2021-2022 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. - -srcs = [ "extension/ecmascript_meta.cpp" ] diff --git a/bytecode_optimizer/bytecodeopt_sources.gn b/bytecode_optimizer/bytecodeopt_sources.gn deleted file mode 100644 index e0b1079456cb9898a17aaea6d269d1c59d46137e..0000000000000000000000000000000000000000 --- a/bytecode_optimizer/bytecodeopt_sources.gn +++ /dev/null @@ -1,12 +0,0 @@ -# Copyright (c) 2021-2022 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. diff --git a/compiler/compiler_sources.gn b/compiler/compiler_sources.gn deleted file mode 100644 index 69b6e7e58fffef4dadf19d7b609a982210250fc3..0000000000000000000000000000000000000000 --- a/compiler/compiler_sources.gn +++ /dev/null @@ -1,20 +0,0 @@ -# Copyright (c) 2021-2022 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. - -srcs = [ - "optimizer/code_generator/compiler_base_types.cpp", - "ecmascript_extensions/ecmascript_codegen_extensions.cpp", - "intrinsics_type_resolving_ecmascript.cpp", - "codegen_intrinsics_ecmascript.cpp", - "optimizer/ir_builder/ecmascript_inst_builder.cpp", -] diff --git a/irtoc_scripts/irtoc_plugins.gn b/irtoc_scripts/irtoc_plugins.gn deleted file mode 100644 index 11c5be3b392324fcab38765dcd01fc303da2ea80..0000000000000000000000000000000000000000 --- a/irtoc_scripts/irtoc_plugins.gn +++ /dev/null @@ -1,17 +0,0 @@ -# Copyright (c) 2021-2022 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. - -srcs = [ - "interpreter_handlers.irt", - "interpreter_main_loop.irt", -] diff --git a/irtoc_scripts/irtoc_scripts.gn b/irtoc_scripts/irtoc_scripts.gn deleted file mode 100644 index c85c7d53b4c03a3d31b690dd3ce5d111ac68ed9c..0000000000000000000000000000000000000000 --- a/irtoc_scripts/irtoc_scripts.gn +++ /dev/null @@ -1,16 +0,0 @@ -# Copyright (c) 2021-2022 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. - -srcs = [ - "object.irt", -] diff --git a/isa/isa_sources.gn b/isa/isa_sources.gn deleted file mode 100644 index 88870306befbd95d634c1273e031ebc027a43869..0000000000000000000000000000000000000000 --- a/isa/isa_sources.gn +++ /dev/null @@ -1,14 +0,0 @@ -# Copyright (c) 2021-2022 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. - -srcs = [ "plugins/ecmascript/isa/isa.yaml" ] diff --git a/plugin.gn b/plugin.gn new file mode 100644 index 0000000000000000000000000000000000000000..b9b78d9073bc71827ac0fff47552ca288796eb90 --- /dev/null +++ b/plugin.gn @@ -0,0 +1,2 @@ +import("//ark/runtime_core/ark_root.gni") +import("$ark_root/plugins/ecmascript/subproject_sources.gn") diff --git a/runtime/runtime_sources.gn b/runtime/runtime_sources.gn deleted file mode 100644 index e63c2f34927b547b2406cc3a6261f3e0ec056d5a..0000000000000000000000000000000000000000 --- a/runtime/runtime_sources.gn +++ /dev/null @@ -1,157 +0,0 @@ -srcs = [ - "builtins/builtins_collator.cpp", - "builtins/builtins_date_time_format.cpp", - "builtins/builtins_intl.cpp", - "builtins/builtins_locale.cpp", - "builtins/builtins_number_format.cpp", - "builtins/builtins_plural_rules.cpp", - "builtins/builtins_relative_time_format.cpp", - "js_collator.cpp", - "js_date_time_format.cpp", - "js_locale.cpp", - "js_number_format.cpp", - "js_plural_rules.cpp", - "js_relative_time_format.cpp", - "base/array_helper.cpp", - "base/builtins_base.cpp", - "base/error_helper.cpp", - "base/json_parser.cpp", - "base/json_stringifier.cpp", - "base/number_helper.cpp", - "base/object_helper.cpp", - "base/string_helper.cpp", - "base/typed_array_helper.cpp", - "base/utf_helper.cpp", - "bridge/ecma_bridge_helpers.cpp", - "builtins.cpp", - "builtins/builtins_ark_tools.cpp", - "builtins/builtins_array.cpp", - "builtins/builtins_arraybuffer.cpp", - "builtins/builtins_async_from_sync_iterator.cpp", - "builtins/builtins_async_function.cpp", - "builtins/builtins_async_generator.cpp", - "builtins/builtins_async_iterator.cpp", - "builtins/builtins_bigint.cpp", - "builtins/builtins_boolean.cpp", - "builtins/builtins_dataview.cpp", - "builtins/builtins_date.cpp", - "builtins/builtins_errors.cpp", - "builtins/builtins_function.cpp", - "builtins/builtins_generator.cpp", - "builtins/builtins_global.cpp", - "builtins/builtins_iterator.cpp", - "builtins/builtins_json.cpp", - "builtins/builtins_map.cpp", - "builtins/builtins_math.cpp", - "builtins/builtins_number.cpp", - "builtins/builtins_object.cpp", - "builtins/builtins_promise.cpp", - "builtins/builtins_promise_handler.cpp", - "builtins/builtins_promise_job.cpp", - "builtins/builtins_proxy.cpp", - "builtins/builtins_reflect.cpp", - "builtins/builtins_regexp.cpp", - "builtins/builtins_set.cpp", - "builtins/builtins_string.cpp", - "builtins/builtins_string_iterator.cpp", - "builtins/builtins_symbol.cpp", - "builtins/builtins_typedarray.cpp", - "builtins/builtins_weak_ref.cpp", - "builtins/builtins_weak_map.cpp", - "builtins/builtins_weak_set.cpp", - "builtins/builtins_finalization_registry.cpp", - "class_linker/panda_file_translator.cpp", - "containers/containers_arraylist.cpp", - "containers/containers_private.cpp", - "dump.cpp", - "ecma_class_linker_extension.cpp", - "ecma_entrypoints.cpp", - "ecma_exceptions.cpp", - "ecma_language_context.cpp", - "ecma_module.cpp", - "ecma_string.cpp", - "ecma_string_table.cpp", - "ecma_vm.cpp", - "free_object.cpp", - "generator_helper.cpp", - "global_env.cpp", - "global_env_constants.cpp", - "ic/profile_type_info.cpp", - "ic/ic_runtime.cpp", - "ic/ic_runtime_stub.cpp", - "ic/property_box.cpp", - "ic/proto_change_details.cpp", - "internal_call_params.cpp", - "interpreter/slow_runtime_helper.cpp", - "interpreter/slow_runtime_stub.cpp", - "intrinsics.cpp", - "jobs/micro_job_queue.cpp", - "js_arguments.cpp", - "js_array.cpp", - "js_array_iterator.cpp", - "js_arraybuffer.cpp", - "js_arraylist.cpp", - "js_async_from_sync_iterator_object.cpp", - "js_async_function.cpp", - "js_async_generator_object.cpp", - "js_bigint.cpp", - "js_dataview.cpp", - "js_date.cpp", - "js_eval.cpp", - "js_for_in_iterator.cpp", - "js_function.cpp", - "js_generator_object.cpp", - "js_hclass.cpp", - "js_invoker.cpp", - "js_iterator.cpp", - "js_map.cpp", - "js_map_iterator.cpp", - "js_method.cpp", - "js_object.cpp", - "js_primitive_ref.cpp", - "js_promise.cpp", - "js_proxy.cpp", - "js_regexp_iterator.cpp", - "js_serializer.cpp", - "js_set.cpp", - "js_set_iterator.cpp", - "js_stable_array.cpp", - "js_string_iterator.cpp", - "js_tagged_value.cpp", - "js_thread.cpp", - "js_typed_array.cpp", - "js_weak_container.cpp", - "js_finalization_registry.cpp", - "linked_hash_table.cpp", - "literal_data_extractor.cpp", - "message_string.cpp", - "mem/dyn_chunk.cpp", - "mem/ecma_reference_processor.cpp", - "mem/ecma_string.cpp", - "mem/mem_manager.cpp", - "napi/jsnapi.cpp", - "napi/jsnapi_debugger_agent.cpp", - "object_factory.cpp", - "object_operator.cpp", - "layout_info.cpp", - "regexp/regexp_executor.cpp", - "regexp/regexp_opcode.cpp", - "regexp/regexp_parser.cpp", - "regexp/regexp_parser_cache.cpp", - "tagged_dictionary.cpp", - "template_string.cpp", - "vmstat/caller_stat.cpp", - "vmstat/runtime_stat.cpp", - "weak_vector.cpp", - "class_info_extractor.cpp", - "compiler/ecmascript_runtime_interface.cpp", - "tooling/pt_ecmascript_extension.cpp", - "init_icu.cpp" -] - -# Should be files deleted??? -#srcs_arm = [ "bridge/arch/arm/builtin_bridge_arm.S" ] -srcs_arm64 = [ "bridge/arch/aarch64/builtin_bridge_aarch64.S" ] -srcs_x86 = [ "bridge/arch/amd64/builtin_bridge_amd64.S" ] - -runtime_yamls = [ "ecma_runtime.yaml" ] diff --git a/subproject_sources.gn b/subproject_sources.gn index c955c50ee211bef7ccc75fc66e98e0f569fb8230..34d3a8ecbe2dd27b57b7b2149d65f12b547f71c0 100644 --- a/subproject_sources.gn +++ b/subproject_sources.gn @@ -11,39 +11,209 @@ # See the License for the specific language governing permissions and # limitations under the License. -import("//ark/runtime_core/ark_config.gni") +import("//ark/runtime_core/ark_root.gni") +_plugin_dir = get_path_info(".", "abspath") +assert(string_replace(_plugin_dir, "//", "") != _plugin_dir) + +srcs_assembler = [ "assembler/extension/ecmascript_meta.cpp" ] +srcs_isa = [ "isa/isa.yaml" ] +srcs_compiler = [ + "compiler/optimizer/code_generator/compiler_base_types.cpp", + "compiler/ecmascript_extensions/ecmascript_codegen_extensions.cpp", + "compiler/intrinsics_type_resolving_ecmascript.cpp", + "compiler/codegen_intrinsics_ecmascript.cpp", + "compiler/optimizer/ir_builder/ecmascript_inst_builder.cpp", +] -srcs_assembler_path = "assembler/assembler_sources.gn" -srcs_isa_path = "isa/isa_sources.gn" -srcs_runtime_path = "runtime/runtime_sources.gn" -srcs_bytecode_optimizer_path = "bytecode_optimizer/bytecodeopt_sources.gn" -srcs_compiler_path = "compiler/compiler_sources.gn" option_yaml_path = "ecmascript_plugin_options.yaml" -inst_templates_yaml_path = "compiler/optimizer/ir_builder/ecmascript_inst_templates.yaml" +inst_templates_yaml_path = + "compiler/optimizer/ir_builder/ecmascript_inst_templates.yaml" runtime_option_yaml_path = "runtime_options.yaml" entrypoints_yaml_path = "runtime/ecma_entrypoints.yaml" -irtoc_scripts = "irtoc_scripts/irtoc_scripts.gn" -irtoc_plugins = "irtoc_scripts/irtoc_plugins.gn" -arkruntime_header_sub_deps = [ - ":ecma_intrinsics_gen_arkruntime", - ":ecmastblib_inline_h", - ":substitute_icu_path", + +irtoc_scripts = [ "irtoc_scripts/object.irt" ] +irtoc_plugins = [ + "irtoc_scripts/interpreter_handlers.irt", + "irtoc_scripts/interpreter_main_loop.irt", ] -arkcompiler_deps = [ - ":isa_gen_ecma_compiler_ecmascript_inst_builder_gen_cpp", + +arkruntime_header_sub_deps = [ + "$_plugin_dir:ecma_intrinsics_gen_arkruntime", + "$_plugin_dir:ecmastblib_inline_h", + "$_plugin_dir:substitute_icu_path", ] +arkcompiler_deps = + [ "$_plugin_dir:isa_gen_ecma_compiler_ecmascript_inst_builder_gen_cpp" ] arkbytecodeopt_deps = [ - ":isa_gen_ecma_bytecodeopt_ecmascript_codegen_intrinsics_gen_inc", + "$_plugin_dir:isa_gen_ecma_bytecodeopt_ecmascript_codegen_intrinsics_gen_inc", ] arkruntime_deps = [ - "../../ark-third-party/icu:shared_icui18n", - "../../ark-third-party/icu:shared_icuuc", - "../../assembler:libarkassembler_frontend_static", - "../../libpandafile:libarkfile_frontend_static", - "es2panda:libes2panda_frontend_static", + "$ark_third_party_root/icu:shared_icui18n", + "$ark_third_party_root/icu:shared_icuuc", + "$ark_root/assembler:libarkassembler_frontend_static", + "$ark_root/libpandafile:libarkfile_frontend_static", + "$_plugin_dir/es2panda:libes2panda_frontend_static", ] -arkruntime_sub_configs = [ - "es2panda:libes2panda_public_config", - "../../assembler:arkassembler_public_config", - "../../libpandafile:arkfile_public_config", + +runtime_yamls = [ "runtime/ecma_runtime.yaml" ] +srcs_runtime = [ + "runtime/builtins/builtins_collator.cpp", + "runtime/builtins/builtins_date_time_format.cpp", + "runtime/builtins/builtins_intl.cpp", + "runtime/builtins/builtins_locale.cpp", + "runtime/builtins/builtins_number_format.cpp", + "runtime/builtins/builtins_plural_rules.cpp", + "runtime/builtins/builtins_relative_time_format.cpp", + "runtime/js_collator.cpp", + "runtime/js_date_time_format.cpp", + "runtime/js_locale.cpp", + "runtime/js_number_format.cpp", + "runtime/js_plural_rules.cpp", + "runtime/js_relative_time_format.cpp", + "runtime/base/array_helper.cpp", + "runtime/base/builtins_base.cpp", + "runtime/base/error_helper.cpp", + "runtime/base/json_parser.cpp", + "runtime/base/json_stringifier.cpp", + "runtime/base/number_helper.cpp", + "runtime/base/object_helper.cpp", + "runtime/base/string_helper.cpp", + "runtime/base/typed_array_helper.cpp", + "runtime/base/utf_helper.cpp", + "runtime/bridge/ecma_bridge_helpers.cpp", + "runtime/builtins.cpp", + "runtime/builtins/builtins_ark_tools.cpp", + "runtime/builtins/builtins_array.cpp", + "runtime/builtins/builtins_arraybuffer.cpp", + "runtime/builtins/builtins_async_from_sync_iterator.cpp", + "runtime/builtins/builtins_async_function.cpp", + "runtime/builtins/builtins_async_generator.cpp", + "runtime/builtins/builtins_async_iterator.cpp", + "runtime/builtins/builtins_bigint.cpp", + "runtime/builtins/builtins_boolean.cpp", + "runtime/builtins/builtins_dataview.cpp", + "runtime/builtins/builtins_date.cpp", + "runtime/builtins/builtins_errors.cpp", + "runtime/builtins/builtins_function.cpp", + "runtime/builtins/builtins_generator.cpp", + "runtime/builtins/builtins_global.cpp", + "runtime/builtins/builtins_iterator.cpp", + "runtime/builtins/builtins_json.cpp", + "runtime/builtins/builtins_map.cpp", + "runtime/builtins/builtins_math.cpp", + "runtime/builtins/builtins_number.cpp", + "runtime/builtins/builtins_object.cpp", + "runtime/builtins/builtins_promise.cpp", + "runtime/builtins/builtins_promise_handler.cpp", + "runtime/builtins/builtins_promise_job.cpp", + "runtime/builtins/builtins_proxy.cpp", + "runtime/builtins/builtins_reflect.cpp", + "runtime/builtins/builtins_regexp.cpp", + "runtime/builtins/builtins_set.cpp", + "runtime/builtins/builtins_string.cpp", + "runtime/builtins/builtins_string_iterator.cpp", + "runtime/builtins/builtins_symbol.cpp", + "runtime/builtins/builtins_typedarray.cpp", + "runtime/builtins/builtins_weak_ref.cpp", + "runtime/builtins/builtins_weak_map.cpp", + "runtime/builtins/builtins_weak_set.cpp", + "runtime/builtins/builtins_finalization_registry.cpp", + "runtime/class_linker/panda_file_translator.cpp", + "runtime/containers/containers_arraylist.cpp", + "runtime/containers/containers_private.cpp", + "runtime/dump.cpp", + "runtime/ecma_class_linker_extension.cpp", + "runtime/ecma_entrypoints.cpp", + "runtime/ecma_exceptions.cpp", + "runtime/ecma_language_context.cpp", + "runtime/ecma_module.cpp", + "runtime/ecma_string.cpp", + "runtime/ecma_string_table.cpp", + "runtime/ecma_vm.cpp", + "runtime/free_object.cpp", + "runtime/generator_helper.cpp", + "runtime/global_env.cpp", + "runtime/global_env_constants.cpp", + "runtime/ic/profile_type_info.cpp", + "runtime/ic/ic_runtime.cpp", + "runtime/ic/ic_runtime_stub.cpp", + "runtime/ic/property_box.cpp", + "runtime/ic/proto_change_details.cpp", + "runtime/internal_call_params.cpp", + "runtime/interpreter/slow_runtime_helper.cpp", + "runtime/interpreter/slow_runtime_stub.cpp", + "runtime/intrinsics.cpp", + "runtime/jobs/micro_job_queue.cpp", + "runtime/js_arguments.cpp", + "runtime/js_array.cpp", + "runtime/js_array_iterator.cpp", + "runtime/js_arraybuffer.cpp", + "runtime/js_arraylist.cpp", + "runtime/js_async_from_sync_iterator_object.cpp", + "runtime/js_async_function.cpp", + "runtime/js_async_generator_object.cpp", + "runtime/js_bigint.cpp", + "runtime/js_dataview.cpp", + "runtime/js_date.cpp", + "runtime/js_eval.cpp", + "runtime/js_for_in_iterator.cpp", + "runtime/js_function.cpp", + "runtime/js_generator_object.cpp", + "runtime/js_hclass.cpp", + "runtime/js_invoker.cpp", + "runtime/js_iterator.cpp", + "runtime/js_map.cpp", + "runtime/js_map_iterator.cpp", + "runtime/js_method.cpp", + "runtime/js_object.cpp", + "runtime/js_primitive_ref.cpp", + "runtime/js_promise.cpp", + "runtime/js_proxy.cpp", + "runtime/js_regexp_iterator.cpp", + "runtime/js_serializer.cpp", + "runtime/js_set.cpp", + "runtime/js_set_iterator.cpp", + "runtime/js_stable_array.cpp", + "runtime/js_string_iterator.cpp", + "runtime/js_tagged_value.cpp", + "runtime/js_thread.cpp", + "runtime/js_typed_array.cpp", + "runtime/js_weak_container.cpp", + "runtime/js_finalization_registry.cpp", + "runtime/linked_hash_table.cpp", + "runtime/literal_data_extractor.cpp", + "runtime/message_string.cpp", + "runtime/mem/dyn_chunk.cpp", + "runtime/mem/ecma_reference_processor.cpp", + "runtime/mem/ecma_string.cpp", + "runtime/mem/mem_manager.cpp", + "runtime/napi/jsnapi.cpp", + "runtime/napi/jsnapi_debugger_agent.cpp", + "runtime/object_factory.cpp", + "runtime/object_operator.cpp", + "runtime/layout_info.cpp", + "runtime/regexp/regexp_executor.cpp", + "runtime/regexp/regexp_opcode.cpp", + "runtime/regexp/regexp_parser.cpp", + "runtime/regexp/regexp_parser_cache.cpp", + "runtime/tagged_dictionary.cpp", + "runtime/template_string.cpp", + "runtime/vmstat/caller_stat.cpp", + "runtime/vmstat/runtime_stat.cpp", + "runtime/weak_vector.cpp", + "runtime/class_info_extractor.cpp", + "runtime/compiler/ecmascript_runtime_interface.cpp", + "runtime/tooling/pt_ecmascript_extension.cpp", + "runtime/init_icu.cpp", ] + +# Should be files deleted??? +#srcs_arm = [ "bridge/arch/arm/builtin_bridge_arm.S" ] + +if (current_cpu == "arm64") { + srcs_runtime += [ "runtime/bridge/arch/aarch64/builtin_bridge_aarch64.S" ] +} + +if (current_cpu == "amd64" || current_cpu == "x64" || current_cpu == "x86_64") { + srcs_runtime += [ "runtime/bridge/arch/amd64/builtin_bridge_amd64.S" ] +}