Files
sdk/utils/dartdev/BUILD.gn
T
Ben Konyi c42c76f590 [ VM / CLI ] Run DartDev isolate from snapshot when possible
This change tries to run from dartdev.dart.snapshot and falls back to
running from dartdev.dill if incompatible VM flags are provided.

Fixes https://github.com/dart-lang/sdk/issues/43969

Performance results:

dart test.dart (no CLI isolate): 0.167s
dart run test (from snapshot):   0.208s
dart run test (from kernel):     0.326s

TEST=pkg/dartdev/test/load_from_dill_test.dart

Change-Id: I3195886b86676580ef2a0221f0284328964ef061
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/178300
Commit-Queue: Ben Konyi <bkonyi@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
2021-01-11 19:41:50 +00:00

51 lines
1.5 KiB
Plaintext

# Copyright (c) 2020, 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("../application_snapshot.gni")
dartdev_files = exec_script("../../tools/list_dart_files.py",
[
"absolute",
rebase_path("../../pkg/dartdev"),
],
"list lines")
group("dartdev") {
public_deps = [
":copy_dartdev_kernel",
":copy_dartdev_snapshot",
]
}
copy("copy_dartdev_kernel") {
visibility = [ ":dartdev" ]
public_deps = [ ":generate_dartdev_kernel" ]
sources = [ "$root_gen_dir/dartdev.dill" ]
outputs = [ "$root_out_dir/dartdev.dill" ]
}
application_snapshot("generate_dartdev_kernel") {
dart_snapshot_kind = "kernel"
main_dart = "../../pkg/dartdev/bin/dartdev.dart"
training_args = []
deps = [ "../dds:dds" ]
inputs = dartdev_files
output = "$root_gen_dir/dartdev.dill"
}
copy("copy_dartdev_snapshot") {
visibility = [ ":dartdev" ]
public_deps = [ ":generate_dartdev_snapshot" ]
sources = [ "$root_gen_dir/dartdev.dart.snapshot" ]
outputs = [ "$root_out_dir/dartdev.dart.snapshot" ]
}
application_snapshot("generate_dartdev_snapshot") {
main_dart = "../../pkg/dartdev/bin/dartdev.dart"
training_args = [ "--help" ]
deps = [ "../dds:dds" ]
inputs = dartdev_files
output = "$root_gen_dir/dartdev.dart.snapshot"
}