Files
Ben Konyi f7a049dfb4 [ 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>
2026-03-10 13:27:01 -07:00

34 lines
1.3 KiB
Plaintext

# 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"
}