dart-sdk/utils/kernel-service/BUILD.gn
Alexander Markov 4aa820bbf5 Reland "[vm/bytecode] Switch kernel service dill to bytecode if building Dart SDK with --bytecode"
This is a reland of https://dart-review.googlesource.com/c/sdk/+/113123
after stack overflow in the interpreter was fixed in https://dart-review.googlesource.com/c/sdk/+/117061

Original change's description:

Temporary setting of FLAG_enable_interpreter is avoided in the VM unit tests as
this flag is global and used by kernel service isolate while running tests.
Flipping this flag causes assertion failures in kernel isolate's background compiler
or infinite loop between LazyCompile stub and CompileFunction as AttachBytecode
doesn't set entry point to InterpretCall.

The less intrusive way to ensure compilation of functions in unit tests is to set
FLAG_compilation_counter_threshold to 0.

Change-Id: Ibbcf4b5bb0df558851c80cfa40a9a54f949dd187
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/117122
Reviewed-by: Régis Crelier <regis@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
2019-09-13 16:38:17 +00:00

123 lines
3.4 KiB
Text

# Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.
import("../../build/dart/dart_action.gni")
import("../../build/dart/dart_host_sdk_toolchain.gni")
import("../../runtime/runtime_args.gni")
import("../application_snapshot.gni")
group("kernel-service") {
if (create_kernel_service_snapshot) {
deps = [
# TODO(rmacnak): Link this into 'dart'.
":copy_kernel-service_snapshot",
]
} else {
deps = [
":kernel_service_dill",
]
}
}
# TODO: Switch this to use kernel based app-jit snapshot
# when we are ready to switch to the kernel based core snapshots.
kernel_application_snapshot("kernel-service_snapshot") {
main_dart = "$root_gen_dir/kernel_service.dill"
deps = [
":kernel_service_dill",
]
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/compiler/lib/src/dart2js.dart", "/"),
]
if (dart_platform_bytecode) {
training_args += [ "--bytecode" ]
}
output = "$root_gen_dir/kernel-service.dart.snapshot"
}
copy("copy_kernel-service_snapshot") {
deps = [
":kernel-service_snapshot",
]
sources = [
"$root_gen_dir/kernel-service.dart.snapshot",
]
outputs = [
"$root_out_dir/kernel-service.dart.snapshot",
]
}
application_snapshot("frontend_server") {
main_dart = "../../pkg/vm/bin/frontend_server_starter.dart"
deps = [
"../../runtime/vm:kernel_platform_files($dart_host_toolchain)",
]
sdk_root = rebase_path("$root_out_dir")
training_args = [
"--train",
"--sdk-root=$sdk_root/",
"--platform=$sdk_root/vm_platform_strong.dill",
]
output = "$root_out_dir/frontend_server.dart.snapshot"
}
template("kernel_service_dill") {
prebuilt_dart_action("kernel_service" + target_name + "_dill") {
deps = [
"../../runtime/vm:kernel_platform_files($dart_host_toolchain)",
"../../runtime/vm:vm_platform",
]
kernel_service_script = "../../pkg/vm/bin/kernel_service.dart"
gen_kernel_script = "../../pkg/vm/bin/gen_kernel.dart"
inputs = [
gen_kernel_script,
kernel_service_script,
"$root_out_dir/vm_platform_strong.dill",
]
output = "$root_gen_dir/kernel_service" + invoker.target_name + ".dill"
outputs = [
output,
]
depfile = "$root_gen_dir/kernel_service" + invoker.target_name + "_dill.d"
abs_depfile = rebase_path(depfile)
rebased_output = rebase_path(output, root_build_dir)
vm_args = [
"--depfile=$abs_depfile",
"--depfile_output_filename=$rebased_output",
]
script = gen_kernel_script
args =
invoker.extra_args + [
"--packages=" + rebase_path("../../.packages"),
"--platform=" + rebase_path("$root_out_dir/vm_platform_strong.dill"),
"--no-aot",
"--no-embed-sources",
"--output=" + rebase_path(output),
rebase_path(kernel_service_script),
]
if (dart_platform_bytecode) {
args += [
"--gen-bytecode",
"--drop-ast",
]
}
}
}
kernel_service_dill("") {
extra_args = []
}
kernel_service_dill("_bytecode") {
extra_args = [ "--gen-bytecode" ]
}