Skip to content

Commit 7e8f84b

Browse files
srawlinsCommit Queue
authored and
Commit Queue
committed
Add DAS AOT snapshot to SDK; can toggle with runtime dartdev flag
Change-Id: Idbef46ca62045022458d6d951f301ff4d6895cfe Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/424342 Reviewed-by: Brian Wilkerson <[email protected]> Commit-Queue: Samuel Rawlins <[email protected]>
1 parent 26641af commit 7e8f84b

File tree

3 files changed

+27
-7
lines changed

3 files changed

+27
-7
lines changed

pkg/dartdev/lib/src/commands/language_server.dart

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ For more information about the server's capabilities and configuration, see:
3535
usageLineLength: dartdevUsageLineLength,
3636
includeHelpFlag: false,
3737
defaultToLsp: true,
38-
);
38+
)..addFlag(_useAotSnapshotFlag,
39+
help: 'Use the AOT analysis server snapshot', hide: true);
3940
}
4041

4142
@override
@@ -48,12 +49,20 @@ For more information about the server's capabilities and configuration, see:
4849
args = [...args, '--$protocol=$lsp'];
4950
}
5051
try {
51-
VmInteropHandler.run(
52-
sdk.analysisServerSnapshot,
53-
args,
54-
packageConfigOverride: null,
55-
useExecProcess: false,
56-
);
52+
if (argResults!.flag(_useAotSnapshotFlag)) {
53+
args.remove('--$_useAotSnapshotFlag');
54+
VmInteropHandler.run(
55+
sdk.dartAotRuntime,
56+
[sdk.analysisServerAotSnapshot, ...args],
57+
useExecProcess: true,
58+
);
59+
} else {
60+
VmInteropHandler.run(
61+
sdk.analysisServerSnapshot,
62+
args,
63+
useExecProcess: false,
64+
);
65+
}
5766
return 0;
5867
} catch (e, st) {
5968
log.stderr('Error: launching language analysis server failed');
@@ -64,4 +73,6 @@ For more information about the server's capabilities and configuration, see:
6473
return 255;
6574
}
6675
}
76+
77+
static const _useAotSnapshotFlag = 'use-aot-snapshot';
6778
}

pkg/dartdev/lib/src/sdk.dart

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,10 @@ class Sdk {
6666
Platform.isWindows ? 'dartaotruntime.exe' : 'dartaotruntime',
6767
);
6868

69+
String get analysisServerAotSnapshot => _snapshotPathFor(
70+
'analysis_server_aot.dart.snapshot',
71+
);
72+
6973
String get analysisServerSnapshot => _snapshotPathFor(
7074
'analysis_server.dart.snapshot',
7175
);

sdk/BUILD.gn

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,11 @@ _platform_sdk_snapshots = [
130130
]
131131
if (dart_target_arch != "ia32" && dart_target_arch != "x86") {
132132
_platform_sdk_snapshots += [
133+
[
134+
"analysis_server_aot_product",
135+
"../utils/analysis_server:analysis_server_aot_product",
136+
"analysis_server_aot",
137+
],
133138
[
134139
"frontend_server_aot_product",
135140
"../utils/kernel-service:frontend_server_aot_product",

0 commit comments

Comments
 (0)