[vm,dyn_modules] Hook interpreter to the standalone VM

When dynamic modules are enabled, standalone VM can now run bytecode
binaries directly. Also, if --interpreter flag is specified, Dart
source is compiled to bytecode and interpreter is used to run it.

This will allow us to test VM service capabilities including
debugging and hot reload against the interpreter.

TEST=manual

Change-Id: Ibb5a67f4844485c4ed90b8a7568dc42fa552fcac
Cq-Include-Trybots: luci.dart.try:vm-aot-dyn-linux-debug-x64-try,vm-aot-dyn-linux-product-x64-try,vm-dyn-linux-debug-x64-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/436421
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Slava Egorov <vegorov@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
This commit is contained in:
Alexander Markov
2025-06-24 05:59:21 -07:00
committed by Commit Queue
parent 0ba978160e
commit 05c2f3b0b1
15 changed files with 257 additions and 30 deletions
+12 -6
View File
@@ -11,6 +11,12 @@ import("../create_timestamp.gni")
_dart_root = get_path_info("../..", "abspath")
if (dart_dynamic_modules) {
_kernel_service_script = "pkg/dart2bytecode/bin/kernel_service.dart"
} else {
_kernel_service_script = "pkg/vm/bin/kernel_service.dart"
}
group("kernel-service") {
if (dart_snapshot_kind == "app-jit") {
deps = [ ":copy_kernel-service_snapshot" ]
@@ -20,14 +26,14 @@ group("kernel-service") {
}
application_snapshot("kernel-service_snapshot") {
main_dart = "../../pkg/vm/bin/kernel_service.dart"
main_dart = "../../$_kernel_service_script"
training_args = [
"--train",
# Force triple-slashes both on Windows and otherwise.
# Becomes e.g. file:///full/path/to/file and "file:///C:/full/path/to/file.
# Without the ', "/"' part, on Linux it would get four slashes.
"file:///" + rebase_path("../../pkg/vm/bin/kernel_service.dart", "/"),
"file:///" + rebase_path("../../$_kernel_service_script", "/"),
]
output = "$root_gen_dir/kernel-service.dart.snapshot"
}
@@ -93,7 +99,7 @@ template("kernel_service_dill") {
}
gen_kernel_tool = "//utils:gen_kernel.exe($host_toolchain)"
kernel_service_script = "../../pkg/vm/bin/kernel_service.dart"
kernel_service_script = "../../$_kernel_service_script"
deps = [
"../../runtime/vm:vm_platform",
@@ -131,7 +137,7 @@ template("kernel_service_dill") {
"--no-aot",
"--no-embed-sources",
"--output=" + rebase_path(output, root_build_dir),
scheme + ":///pkg/vm/bin/kernel_service.dart",
scheme + ":///$_kernel_service_script",
]
}
} else {
@@ -140,7 +146,7 @@ template("kernel_service_dill") {
"../../runtime/vm:kernel_platform_files($host_toolchain)",
"../../runtime/vm:vm_platform",
]
kernel_service_script = "../../pkg/vm/bin/kernel_service.dart"
kernel_service_script = "../../$_kernel_service_script"
gen_kernel_script = "../../pkg/vm/bin/gen_kernel.dart"
inputs = [
@@ -179,7 +185,7 @@ template("kernel_service_dill") {
"--no-embed-sources",
"--output=" + rebase_path(output, root_build_dir),
]
args += [ scheme + ":///pkg/vm/bin/kernel_service.dart" ]
args += [ scheme + ":///$_kernel_service_script" ]
}
}
}