[ Service ] Initial implementation of VM Service based on package:dart_runtime_service
This change includes an initial implementation of the new VM service
implementation based on `package:dart_runtime_service`, along with the
necessary plumbing to start it in place of the legacy VM service
implementation.
The entrypoint for the new VM service implementation is located in
dart_runtime_service_vm/bin/vm_service_entrypoint.dart, which is
compiled into AppJIT and AOT snapshots when the
`--include-experimental-vm-service` flag is provided to `build.py`. To run
the VM with the new VM service implementation, the
`--experimental-vm-service` flag must be provided.
Currently, the experimental VM service implementation supports:
- User specified ports
- Authentication code flags
- Enabling the HTTP server via SIGQUIT
- Some service protocol RPCs that don't require an isolate ID (e.g.,
`getVM`)
See go/dart-runtime-services-unification for more details.
TEST=Manual
CoreLibraryReviewExempt: dart:_vmservice is private
Change-Id: I4a58cd1fa0a386313baa3d5c5345720231279123
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/484820
Reviewed-by: Nicholas Shahan <nshahan@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
# Copyright (c) 2026, 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("../../runtime/runtime_args.gni")
|
||||
import("../aot_snapshot.gni")
|
||||
import("../application_snapshot.gni")
|
||||
|
||||
group("dart_runtime_service_vm_aot") {
|
||||
public_deps = [ ":dart_runtime_service_vm_aot_snapshot" ]
|
||||
}
|
||||
|
||||
aot_snapshot("dart_runtime_service_vm_aot_snapshot") {
|
||||
main_dart = "../../pkg/dart_runtime_service_vm/bin/vm_service_entrypoint.dart"
|
||||
output = "$root_out_dir/dart_runtime_service_vm_aot.dart.snapshot"
|
||||
}
|
||||
|
||||
group("dart_runtime_service_vm") {
|
||||
public_deps = [ ":copy_dart_runtime_service_vm_snapshot" ]
|
||||
}
|
||||
|
||||
copy("copy_dart_runtime_service_vm_snapshot") {
|
||||
visibility = [ ":dart_runtime_service_vm" ]
|
||||
public_deps = [ ":generate_dart_runtime_service_vm_snapshot" ]
|
||||
sources = [ "$root_gen_dir/dart_runtime_service_vm.dart.snapshot" ]
|
||||
outputs = [ "$root_out_dir/dart_runtime_service_vm.dart.snapshot" ]
|
||||
}
|
||||
|
||||
application_snapshot("generate_dart_runtime_service_vm_snapshot") {
|
||||
main_dart = "../../pkg/dart_runtime_service_vm/bin/vm_service_entrypoint.dart"
|
||||
training_args = [ "--help" ]
|
||||
output = "$root_gen_dir/dart_runtime_service_vm.dart.snapshot"
|
||||
}
|
||||
Reference in New Issue
Block a user