[CFE] Rename additionalDills to additionalDillModules; don't use it to load platform
* Rename additionalDills to additionalDillModules to indicate that it is used to load a "module", not any old dill file. * Where additionalDills was used to provide the platform use sdkSummary instead. * Remove unused constructor in KernelCompilationResults. Tested: Existing tests. Change-Id: I5f73f61db73b2bc932c211fb0b2e66ec2f5c50c5 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/495981 Reviewed-by: Alexander Markov <alexmarkov@google.com> Reviewed-by: Nicholas Shahan <nshahan@google.com> Commit-Queue: Jens Johansen <jensj@google.com> Reviewed-by: Johnni Winther <johnniwinther@google.com>
This commit is contained in:
committed by
dart-scoped@luci-project-accounts.iam.gserviceaccount.com
parent
1aba9d0fa5
commit
ec5e71ead4
@@ -75,7 +75,7 @@ Future<Component> compileTestCaseToKernelProgram(
|
||||
);
|
||||
final options = CompilerOptions()
|
||||
..target = target
|
||||
..additionalDills = <Uri>[platformKernel]
|
||||
..sdkSummary = platformKernel
|
||||
..environmentDefines = {}
|
||||
..onDiagnostic = (CfeDiagnosticMessage message) {
|
||||
fail("Compilation error: ${message.plainTextFormatted.join('\n')}");
|
||||
|
||||
@@ -29,9 +29,9 @@ main() {
|
||||
var options = CompilerOptions()
|
||||
..target = Dart2jsTarget("dart2js", TargetFlags())
|
||||
..packagesFileUri = Uri.base.resolve('.dart_tool/package_config.json')
|
||||
..additionalDills = <Uri>[
|
||||
computePlatformBinariesLocation().resolve("dart2js_platform.dill"),
|
||||
]
|
||||
..sdkSummary = computePlatformBinariesLocation().resolve(
|
||||
"dart2js_platform.dill",
|
||||
)
|
||||
..setExitCodeOnProblem = true
|
||||
..verify = true;
|
||||
|
||||
|
||||
@@ -104,16 +104,18 @@ Future<Uint8List> compileUnit(
|
||||
entity.writeAsBytesSync(data);
|
||||
}
|
||||
});
|
||||
List<Uri> additionalDills = [
|
||||
computePlatformBinariesLocation().resolve("dart2js_platform.dill"),
|
||||
]..addAll(deps.map(toTestUri));
|
||||
|
||||
List<Uri> additionalDillModules = deps.map(toTestUri).toList();
|
||||
fs
|
||||
.entityForUri(toTestUri('.dart_tool/package_config.json'))
|
||||
.writeAsStringSync('{"configVersion": 2, "packages": []}');
|
||||
var options = CompilerOptions()
|
||||
..target = Dart2jsTarget("dart2js", TargetFlags())
|
||||
..fileSystem = TestFileSystem(fs)
|
||||
..additionalDills = additionalDills
|
||||
..sdkSummary = computePlatformBinariesLocation().resolve(
|
||||
"dart2js_platform.dill",
|
||||
)
|
||||
..additionalDillModules = additionalDillModules
|
||||
..packagesFileUri = toTestUri('.dart_tool/package_config.json')
|
||||
..explicitExperimentalFlags = {ExperimentalFlag.nonNullable: true};
|
||||
var inputUris = inputs.map(toTestUri).toList();
|
||||
|
||||
@@ -19,7 +19,7 @@ main() {
|
||||
null,
|
||||
Dart2jsTarget('dart2js', TargetFlags()),
|
||||
sdkLibrariesSpecificationUri,
|
||||
[], // additionalDills
|
||||
[], // additionalDillModules
|
||||
Uri.base.resolve('.dart_tool/package_config.json'), // packagesFileUri
|
||||
explicitExperimentalFlags: experimentalFlags,
|
||||
verify: true,
|
||||
|
||||
@@ -253,9 +253,9 @@ Future<int> runCompilerWithOptions({
|
||||
|
||||
final platformKernelUri = Uri.base.resolveUri(new Uri.file(platformKernel));
|
||||
|
||||
final List<Uri> additionalDills = <Uri>[];
|
||||
final List<Uri> additionalDillModules = <Uri>[];
|
||||
if (importDill != null) {
|
||||
additionalDills.add(Uri.base.resolveUri(new Uri.file(importDill)));
|
||||
additionalDillModules.add(Uri.base.resolveUri(new Uri.file(importDill)));
|
||||
}
|
||||
|
||||
final Uri? dynamicInterfaceSpecificationUri =
|
||||
@@ -279,7 +279,7 @@ Future<int> runCompilerWithOptions({
|
||||
final CompilerOptions compilerOptions = CompilerOptions()
|
||||
..sdkSummary = platformKernelUri
|
||||
..fileSystem = fileSystem
|
||||
..additionalDills = additionalDills
|
||||
..additionalDillModules = additionalDillModules
|
||||
..packagesFileUri = packagesUri
|
||||
..dynamicInterfaceSpecificationUri = dynamicInterfaceSpecificationUri
|
||||
..explicitExperimentalFlags = parseExperimentalFlags(
|
||||
|
||||
@@ -94,7 +94,7 @@ Future<CompilerResult> compileTestCaseToKernelProgram(
|
||||
final options = CompilerOptions()
|
||||
..target = target
|
||||
..omitPlatform = true
|
||||
..additionalDills = <Uri>[platformKernel]
|
||||
..sdkSummary = platformKernel
|
||||
..environmentDefines = {}
|
||||
..onDiagnostic = (CfeDiagnosticMessage message) {
|
||||
fail("Compilation error: ${message.plainTextFormatted.join('\n')}");
|
||||
|
||||
@@ -273,7 +273,7 @@ Future<CompilerResult> _compile(
|
||||
var trackCreationLocations = argResults.flag('track-creation-locations');
|
||||
var oldCompilerState = compilerState;
|
||||
var recordUsedInputs = argResults.option('used-inputs-file') != null;
|
||||
var additionalDills = summaryModules.keys.toList();
|
||||
var additionalDillModules = summaryModules.keys.toList();
|
||||
fe.DdcResult? result;
|
||||
|
||||
// TODO(jmesserly): is there a cleaner way to do this?
|
||||
@@ -289,7 +289,7 @@ Future<CompilerResult> _compile(
|
||||
compileSdk ? null : sourcePathToUri(sdkSummaryPath!),
|
||||
packageFile != null ? sourcePathToUri(packageFile) : null,
|
||||
sourcePathToUri(librarySpecPath),
|
||||
additionalDills,
|
||||
additionalDillModules,
|
||||
DevCompilerTarget(
|
||||
TargetFlags(trackCreationLocations: trackCreationLocations),
|
||||
),
|
||||
@@ -313,7 +313,7 @@ Future<CompilerResult> _compile(
|
||||
inputDigests[uri] = const [0];
|
||||
}
|
||||
}
|
||||
var doneAdditionalDills = List.filled(
|
||||
var doneAdditionalDillModules = List.filled(
|
||||
summaryModules.length,
|
||||
dummyComponent,
|
||||
);
|
||||
@@ -324,13 +324,13 @@ Future<CompilerResult> _compile(
|
||||
'multiRootScheme=${fileSystem.markerScheme}',
|
||||
'multiRootRoots=${fileSystem.roots}',
|
||||
},
|
||||
doneAdditionalDills,
|
||||
doneAdditionalDillModules,
|
||||
compileSdk,
|
||||
sourcePathToUri(getSdkPath()),
|
||||
compileSdk ? null : sourcePathToUri(sdkSummaryPath!),
|
||||
packageFile != null ? sourcePathToUri(packageFile) : null,
|
||||
sourcePathToUri(librarySpecPath),
|
||||
additionalDills,
|
||||
additionalDillModules,
|
||||
inputDigests,
|
||||
DevCompilerTarget(
|
||||
TargetFlags(trackCreationLocations: trackCreationLocations),
|
||||
@@ -353,7 +353,7 @@ Future<CompilerResult> _compile(
|
||||
result = fe.DdcResult(
|
||||
incrementalCompilerResult.component,
|
||||
cachedSdkInput?.component,
|
||||
doneAdditionalDills,
|
||||
doneAdditionalDillModules,
|
||||
incrementalCompilerResult.classHierarchy,
|
||||
incrementalCompilerResult.neededDillLibraries,
|
||||
);
|
||||
@@ -474,13 +474,13 @@ Future<CompilerResult> _compile(
|
||||
|
||||
final importToSummary = Map<Library, Component>.identity();
|
||||
final summaryToModule = Map<Component, String>.identity();
|
||||
for (var i = 0; i < result.additionalDills.length; i++) {
|
||||
var additionalDill = result.additionalDills[i];
|
||||
var moduleImport = summaryModules[additionalDills[i]]!;
|
||||
for (var l in additionalDill.libraries) {
|
||||
for (var i = 0; i < result.additionalDillModules.length; i++) {
|
||||
var additionalDillModule = result.additionalDillModules[i];
|
||||
var moduleImport = summaryModules[additionalDillModules[i]]!;
|
||||
for (var l in additionalDillModule.libraries) {
|
||||
assert(!importToSummary.containsKey(l));
|
||||
importToSummary[l] = additionalDill;
|
||||
summaryToModule[additionalDill] = moduleImport;
|
||||
importToSummary[l] = additionalDillModule;
|
||||
summaryToModule[additionalDillModule] = moduleImport;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -489,10 +489,10 @@ Future<CompilerResult> _compile(
|
||||
// This is only required for non-SDK modules, as SDK modules are all bundled
|
||||
// in the same module and are never deferred.
|
||||
// `result.component` contains all the compiled libraries as well as libraries
|
||||
// already seen in `additionalDills`.
|
||||
// already seen in `additionalDillModules`.
|
||||
if (!compileSdk) {
|
||||
for (var l in result.component.libraries) {
|
||||
// Don't override libraries already recorded in `additionalDills`.
|
||||
// Don't override libraries already recorded in `additionalDillModules`.
|
||||
if (importToSummary.containsKey(l)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -63,14 +63,14 @@ class CompilerOptions {
|
||||
/// If an old ".packages" file is given an error is issued.
|
||||
Uri? packagesFileUri;
|
||||
|
||||
/// URIs of additional dill files.
|
||||
/// URIs of additional dill files used as modules.
|
||||
///
|
||||
/// These will be loaded and linked into the output.
|
||||
///
|
||||
/// The components provided here should be closed: any libraries that they
|
||||
/// reference should be defined in a component in [additionalDills] or
|
||||
/// reference should be defined in a component in [additionalDillModules] or
|
||||
/// [sdkSummary].
|
||||
List<Uri> additionalDills = [];
|
||||
List<Uri> additionalDillModules = [];
|
||||
|
||||
/// URI of the SDK summary file (typically a "file:" URI).
|
||||
///
|
||||
@@ -79,6 +79,8 @@ class CompilerOptions {
|
||||
///
|
||||
/// If `null` and [compileSdk] is false, the SDK summary will be searched for
|
||||
/// at a default location within [sdkRoot].
|
||||
// TODO(jensj): Rename to `platformDill`. See also the discussion at
|
||||
// https://dart-review.googlesource.com/c/sdk/+/495981.
|
||||
Uri? sdkSummary;
|
||||
|
||||
/// Uri to a dynamic interface specification file.
|
||||
@@ -275,7 +277,9 @@ class CompilerOptions {
|
||||
}
|
||||
if (packagesFileUri != other.packagesFileUri) return false;
|
||||
// Coverage-ignore-block(suite): Not run.
|
||||
if (!equalLists(additionalDills, other.additionalDills)) return false;
|
||||
if (!equalLists(additionalDillModules, other.additionalDillModules)) {
|
||||
return false;
|
||||
}
|
||||
if (sdkSummary != other.sdkSummary) return false;
|
||||
if (dynamicInterfaceSpecificationUri !=
|
||||
other.dynamicInterfaceSpecificationUri) {
|
||||
|
||||
@@ -102,10 +102,10 @@ Future<CompilerResult?> kernelForProgramInternal(
|
||||
/// must be acyclic.
|
||||
///
|
||||
/// This API is intended for modular compilation. Dependencies to other modules
|
||||
/// are specified using [CompilerOptions.additionalDills]. Any dependency
|
||||
/// of [sources] that is not listed in [CompilerOptions.additionalDills] and
|
||||
/// [CompilerOptions.sdkSummary] is treated as an additional source file for the
|
||||
/// module.
|
||||
/// are specified using [CompilerOptions.additionalDillModules]. Any dependency
|
||||
/// of [sources] that is not listed in [CompilerOptions.additionalDillModules]
|
||||
/// or [CompilerOptions.sdkSummary] is treated as an additional source file for
|
||||
/// the module being compiled.
|
||||
///
|
||||
/// Any `part` declarations found in [sources] must refer to part files which
|
||||
/// are also listed in the module sources, otherwise an error results. (It
|
||||
|
||||
@@ -18,7 +18,7 @@ import 'compiler_options.dart';
|
||||
/// Intended to be a part of a modular compilation process.
|
||||
///
|
||||
/// Any dependency of [sources] that is not listed in
|
||||
/// [CompilerOptions.additionalDills] and [CompilerOptions.sdkSummary] is
|
||||
/// [CompilerOptions.additionalDillModules] and [CompilerOptions.sdkSummary] is
|
||||
/// treated as an additional source file for the build unit.
|
||||
///
|
||||
/// Any `part` declarations found in [sources] must refer to part files which
|
||||
|
||||
@@ -46,7 +46,7 @@ Future<InitializedCompilerState> initializeIncrementalCompiler(
|
||||
Uri? sdkSummary,
|
||||
Uri? packagesFile,
|
||||
Uri? librariesSpecificationUri,
|
||||
List<Uri> additionalDills,
|
||||
List<Uri> additionalDillModules,
|
||||
Map<Uri, List<int>> workerInputDigests,
|
||||
Target target,
|
||||
FileSystem fileSystem,
|
||||
@@ -56,10 +56,8 @@ Future<InitializedCompilerState> initializeIncrementalCompiler(
|
||||
bool trackNeededDillLibraries = false,
|
||||
bool verbose = false,
|
||||
}) {
|
||||
List<Component> outputLoadedAdditionalDills = new List<Component>.filled(
|
||||
additionalDills.length,
|
||||
dummyComponent,
|
||||
);
|
||||
List<Component> outputLoadedAdditionalDillModules =
|
||||
new List<Component>.filled(additionalDillModules.length, dummyComponent);
|
||||
Map<ExperimentalFlag, bool> experimentalFlags = parseExperimentalFlags(
|
||||
parseExperimentalArguments(experiments),
|
||||
onError: (e) => throw e,
|
||||
@@ -67,11 +65,11 @@ Future<InitializedCompilerState> initializeIncrementalCompiler(
|
||||
return modular.initializeIncrementalCompiler(
|
||||
oldState,
|
||||
tags,
|
||||
outputLoadedAdditionalDills,
|
||||
outputLoadedAdditionalDillModules,
|
||||
sdkSummary,
|
||||
packagesFile,
|
||||
librariesSpecificationUri,
|
||||
additionalDills,
|
||||
additionalDillModules,
|
||||
workerInputDigests,
|
||||
target,
|
||||
fileSystem: fileSystem,
|
||||
@@ -89,7 +87,7 @@ InitializedCompilerState initializeCompiler(
|
||||
Uri? sdkSummary,
|
||||
Uri? librariesSpecificationUri,
|
||||
Uri? packagesFile,
|
||||
List<Uri> additionalDills,
|
||||
List<Uri> additionalDillModules,
|
||||
Target target,
|
||||
FileSystem fileSystem,
|
||||
Iterable<String> experiments,
|
||||
@@ -105,7 +103,7 @@ InitializedCompilerState initializeCompiler(
|
||||
..sdkSummary = sdkSummary
|
||||
..packagesFileUri = packagesFile
|
||||
..librariesSpecificationUri = librariesSpecificationUri
|
||||
..additionalDills = additionalDills
|
||||
..additionalDillModules = additionalDillModules
|
||||
..target = target
|
||||
..fileSystem = fileSystem
|
||||
..environmentDefines = environmentDefines
|
||||
|
||||
@@ -95,7 +95,7 @@ InitializedCompilerState initializeCompiler(
|
||||
InitializedCompilerState? oldState,
|
||||
Target target,
|
||||
Uri? librariesSpecificationUri,
|
||||
List<Uri> additionalDills,
|
||||
List<Uri> additionalDillModules,
|
||||
Uri? packagesFileUri, {
|
||||
required Map<ExperimentalFlag, bool> explicitExperimentalFlags,
|
||||
Map<String, String>? environmentDefines,
|
||||
@@ -103,7 +103,7 @@ InitializedCompilerState initializeCompiler(
|
||||
Set<InvocationMode> invocationModes = const <InvocationMode>{},
|
||||
Verbosity verbosity = Verbosity.all,
|
||||
}) {
|
||||
additionalDills.sort((a, b) => a.toString().compareTo(b.toString()));
|
||||
additionalDillModules.sort((a, b) => a.toString().compareTo(b.toString()));
|
||||
|
||||
// We don't check `target` because it doesn't support '==' and each
|
||||
// compilation passes a fresh target. However, we pass a logically identical
|
||||
@@ -111,7 +111,10 @@ InitializedCompilerState initializeCompiler(
|
||||
if (oldState != null &&
|
||||
oldState.options.packagesFileUri == packagesFileUri &&
|
||||
oldState.options.librariesSpecificationUri == librariesSpecificationUri &&
|
||||
equalLists(oldState.options.additionalDills, additionalDills) &&
|
||||
equalLists(
|
||||
oldState.options.additionalDillModules,
|
||||
additionalDillModules,
|
||||
) &&
|
||||
equalMaps(
|
||||
oldState.options.explicitExperimentalFlags,
|
||||
explicitExperimentalFlags,
|
||||
@@ -125,7 +128,7 @@ InitializedCompilerState initializeCompiler(
|
||||
|
||||
CompilerOptions options = new CompilerOptions()
|
||||
..target = target
|
||||
..additionalDills = additionalDills
|
||||
..additionalDillModules = additionalDillModules
|
||||
..librariesSpecificationUri = librariesSpecificationUri
|
||||
..packagesFileUri = packagesFileUri
|
||||
..explicitExperimentalFlags = explicitExperimentalFlags
|
||||
|
||||
@@ -54,7 +54,7 @@ export 'compiler_state.dart'
|
||||
class DdcResult {
|
||||
final Component component;
|
||||
final Component? sdkSummary;
|
||||
final List<Component> additionalDills;
|
||||
final List<Component> additionalDillModules;
|
||||
final ClassHierarchy classHierarchy;
|
||||
final Set<Library>? neededDillLibraries;
|
||||
late final Set<Library> librariesFromDill = _computeLibrariesFromDill();
|
||||
@@ -63,7 +63,7 @@ class DdcResult {
|
||||
DdcResult(
|
||||
this.component,
|
||||
this.sdkSummary,
|
||||
this.additionalDills,
|
||||
this.additionalDillModules,
|
||||
this.classHierarchy,
|
||||
this.neededDillLibraries,
|
||||
);
|
||||
@@ -71,7 +71,7 @@ class DdcResult {
|
||||
Set<Library> _computeLibrariesFromDill() {
|
||||
Set<Library> librariesFromDill = new Set<Library>();
|
||||
|
||||
for (Component c in additionalDills) {
|
||||
for (Component c in additionalDillModules) {
|
||||
for (Library lib in c.libraries) {
|
||||
librariesFromDill.add(lib);
|
||||
}
|
||||
@@ -106,20 +106,23 @@ InitializedCompilerState initializeCompiler(
|
||||
Uri? sdkSummary,
|
||||
Uri? packagesFile,
|
||||
Uri? librariesSpecificationUri,
|
||||
List<Uri> additionalDills,
|
||||
List<Uri> additionalDillModules,
|
||||
Target target, {
|
||||
FileSystem? fileSystem,
|
||||
Map<ExperimentalFlag, bool>? explicitExperimentalFlags,
|
||||
Map<String, String>? environmentDefines,
|
||||
}) {
|
||||
additionalDills.sort((a, b) => a.toString().compareTo(b.toString()));
|
||||
additionalDillModules.sort((a, b) => a.toString().compareTo(b.toString()));
|
||||
|
||||
if (oldState != null &&
|
||||
oldState.options.compileSdk == compileSdk &&
|
||||
oldState.options.sdkSummary == sdkSummary &&
|
||||
oldState.options.packagesFileUri == packagesFile &&
|
||||
oldState.options.librariesSpecificationUri == librariesSpecificationUri &&
|
||||
equalLists(oldState.options.additionalDills, additionalDills) &&
|
||||
equalLists(
|
||||
oldState.options.additionalDillModules,
|
||||
additionalDillModules,
|
||||
) &&
|
||||
equalMaps(
|
||||
oldState.options.explicitExperimentalFlags,
|
||||
explicitExperimentalFlags,
|
||||
@@ -134,7 +137,7 @@ InitializedCompilerState initializeCompiler(
|
||||
..sdkRoot = sdkRoot
|
||||
..sdkSummary = sdkSummary
|
||||
..packagesFileUri = packagesFile
|
||||
..additionalDills = additionalDills
|
||||
..additionalDillModules = additionalDillModules
|
||||
..librariesSpecificationUri = librariesSpecificationUri
|
||||
..target = target
|
||||
..fileSystem = fileSystem ?? StandardFileSystem.instance
|
||||
@@ -155,13 +158,13 @@ InitializedCompilerState initializeCompiler(
|
||||
Future<InitializedCompilerState> initializeIncrementalCompiler(
|
||||
InitializedCompilerState? oldState,
|
||||
Set<String> tags,
|
||||
List<Component> doneAdditionalDills,
|
||||
List<Component> doneAdditionalDillModules,
|
||||
bool compileSdk,
|
||||
Uri? sdkRoot,
|
||||
Uri? sdkSummary,
|
||||
Uri? packagesFile,
|
||||
Uri? librariesSpecificationUri,
|
||||
List<Uri> additionalDills,
|
||||
List<Uri> additionalDillModules,
|
||||
Map<Uri, List<int>> workerInputDigests,
|
||||
Target target, {
|
||||
FileSystem? fileSystem,
|
||||
@@ -172,11 +175,11 @@ Future<InitializedCompilerState> initializeIncrementalCompiler(
|
||||
return modular.initializeIncrementalCompiler(
|
||||
oldState,
|
||||
tags,
|
||||
doneAdditionalDills,
|
||||
doneAdditionalDillModules,
|
||||
sdkSummary,
|
||||
packagesFile,
|
||||
librariesSpecificationUri,
|
||||
additionalDills,
|
||||
additionalDillModules,
|
||||
workerInputDigests,
|
||||
target,
|
||||
compileSdk: compileSdk,
|
||||
@@ -212,7 +215,9 @@ Future<DdcResult?> compile(
|
||||
|
||||
// These should be cached.
|
||||
Component? sdkSummary = await processedOpts.loadSdkSummary(null);
|
||||
List<Component> summaries = await processedOpts.loadAdditionalDills(null);
|
||||
List<Component> summaries = await processedOpts.loadAdditionalDillModules(
|
||||
null,
|
||||
);
|
||||
return new DdcResult(
|
||||
component,
|
||||
sdkSummary,
|
||||
|
||||
@@ -23,19 +23,20 @@ import 'util.dart' show equalMaps, equalSets;
|
||||
/// as necessary based on [workerInputDigests].
|
||||
///
|
||||
/// Notes:
|
||||
/// * [outputLoadedAdditionalDills] should be given as an empty list of the same
|
||||
/// size as the [additionalDills]. The input summaries are loaded (or taken
|
||||
/// from cache) and placed in this list in order, i.e. the `i`-th entry in
|
||||
/// [outputLoadedAdditionalDills] after this call corresponds to the component
|
||||
/// loaded from the `i`-th entry in [additionalDills].
|
||||
/// * [outputLoadedAdditionalDillModules] should be given as an empty list of
|
||||
/// the same size as the [additionalDillModules]. The input summaries are
|
||||
/// loaded (or taken from cache) and placed in this list in order, i.e. the
|
||||
/// `i`-th entry in [outputLoadedAdditionalDillModules] after this call
|
||||
/// corresponds to the component loaded from the `i`-th entry in
|
||||
/// [additionalDillModules].
|
||||
Future<InitializedCompilerState> initializeIncrementalCompiler(
|
||||
InitializedCompilerState? oldState,
|
||||
Set<String> tags,
|
||||
List<Component> outputLoadedAdditionalDills,
|
||||
List<Component> outputLoadedAdditionalDillModules,
|
||||
Uri? sdkSummary,
|
||||
Uri? packagesFile,
|
||||
Uri? librariesSpecificationUri,
|
||||
List<Uri> additionalDills,
|
||||
List<Uri> additionalDillModules,
|
||||
Map<Uri, List<int>> workerInputDigests,
|
||||
Target target, {
|
||||
bool compileSdk = false,
|
||||
@@ -163,13 +164,14 @@ Future<InitializedCompilerState> initializeIncrementalCompiler(
|
||||
|
||||
// Notice that the ordering of the input summaries matter, so we need to
|
||||
// keep them in order.
|
||||
if (outputLoadedAdditionalDills.length != additionalDills.length) {
|
||||
if (outputLoadedAdditionalDillModules.length !=
|
||||
additionalDillModules.length) {
|
||||
throw new ArgumentError("Invalid length.");
|
||||
}
|
||||
Set<Uri> additionalDillsSet = new Set<Uri>();
|
||||
for (int i = 0; i < additionalDills.length; i++) {
|
||||
Uri summaryUri = additionalDills[i];
|
||||
additionalDillsSet.add(summaryUri);
|
||||
Set<Uri> additionalDillModulesSet = new Set<Uri>();
|
||||
for (int i = 0; i < additionalDillModules.length; i++) {
|
||||
Uri summaryUri = additionalDillModules[i];
|
||||
additionalDillModulesSet.add(summaryUri);
|
||||
WorkerInputComponent? cachedInput = workerInputCache[summaryUri];
|
||||
List<int>? digest = workerInputDigests[summaryUri];
|
||||
if (digest == null) {
|
||||
@@ -196,20 +198,22 @@ Future<InitializedCompilerState> initializeIncrementalCompiler(
|
||||
}
|
||||
}
|
||||
component.computeCanonicalNames(); // this isn't needed, is it?
|
||||
outputLoadedAdditionalDills[i] = component;
|
||||
outputLoadedAdditionalDillModules[i] = component;
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < loadFromDillIndexes.length; i++) {
|
||||
int index = loadFromDillIndexes[i];
|
||||
Uri additionalDillUri = additionalDills[index];
|
||||
List<int>? digest = workerInputDigests[additionalDillUri];
|
||||
Uri additionalDillModuleUri = additionalDillModules[index];
|
||||
List<int>? digest = workerInputDigests[additionalDillModuleUri];
|
||||
if (digest == null) {
|
||||
throw new StateError("Expected to get digest for $additionalDillUri");
|
||||
throw new StateError(
|
||||
"Expected to get digest for $additionalDillModuleUri",
|
||||
);
|
||||
}
|
||||
|
||||
Uint8List bytes = await fileSystem
|
||||
.entityForUri(additionalDillUri)
|
||||
.entityForUri(additionalDillModuleUri)
|
||||
.readAsBytes();
|
||||
WorkerInputComponent cachedInput = new WorkerInputComponent(
|
||||
digest,
|
||||
@@ -219,12 +223,12 @@ Future<InitializedCompilerState> initializeIncrementalCompiler(
|
||||
alwaysCreateNewNamedNodes: true,
|
||||
),
|
||||
);
|
||||
workerInputCache[additionalDillUri] = cachedInput;
|
||||
outputLoadedAdditionalDills[index] = cachedInput.component;
|
||||
workerInputCache[additionalDillModuleUri] = cachedInput;
|
||||
outputLoadedAdditionalDillModules[index] = cachedInput.component;
|
||||
for (Library lib in cachedInput.component.libraries) {
|
||||
if (workerInputCacheLibs.containsKey(lib.importUri)) {
|
||||
Uri fromSummary = workerInputCacheLibs[lib.importUri]!;
|
||||
if (additionalDillsSet.contains(fromSummary)) {
|
||||
if (additionalDillModulesSet.contains(fromSummary)) {
|
||||
throw new StateError(
|
||||
"Asked to load several summaries that contain the same "
|
||||
"library.",
|
||||
@@ -239,17 +243,17 @@ Future<InitializedCompilerState> initializeIncrementalCompiler(
|
||||
}
|
||||
}
|
||||
} else {
|
||||
workerInputCacheLibs[lib.importUri] = additionalDillUri;
|
||||
workerInputCacheLibs[lib.importUri] = additionalDillModuleUri;
|
||||
}
|
||||
|
||||
if (trackNeededDillLibraries) {
|
||||
libraryToInputDill![lib.importUri] = additionalDillUri;
|
||||
libraryToInputDill![lib.importUri] = additionalDillModuleUri;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
incrementalCompiler.setModulesToLoadOnNextComputeDelta(
|
||||
outputLoadedAdditionalDills,
|
||||
outputLoadedAdditionalDillModules,
|
||||
);
|
||||
|
||||
return new InitializedCompilerState(
|
||||
|
||||
@@ -26,6 +26,7 @@ class Flags {
|
||||
|
||||
static const String target = "--target";
|
||||
|
||||
/// TODO(jensj): Consider removing this. Or renaming it.
|
||||
static const String linkDependencies = "--link-dependencies";
|
||||
|
||||
static const String compileSdk = "--compile-sdk";
|
||||
|
||||
@@ -88,13 +88,13 @@ class ProcessedOptions {
|
||||
/// types unless legacy mode is enabled.
|
||||
Component? _sdkSummaryComponent;
|
||||
|
||||
/// The component for each uri in `options.additionalDills`.
|
||||
/// The component for each uri in `options.additionalDillModules`.
|
||||
///
|
||||
/// A summary, also referred to as "outline" internally, is a [Component]
|
||||
/// where all method bodies are left out. In essence, it contains just API
|
||||
/// signatures and constants. The summaries should include inferred top-level
|
||||
/// types unless legacy mode is enabled.
|
||||
List<Component>? _additionalDillComponents;
|
||||
List<Component>? _additionalDillModuleComponents;
|
||||
|
||||
/// The location of the SDK, or `null` if the location hasn't been determined
|
||||
/// yet.
|
||||
@@ -186,7 +186,7 @@ class ProcessedOptions {
|
||||
// Coverage-ignore(suite): Not run.
|
||||
bool get enableUnscheduledExperiments => _raw.enableUnscheduledExperiments;
|
||||
|
||||
bool get hasAdditionalDills => _raw.additionalDills.isNotEmpty;
|
||||
bool get hasAdditionalDillModules => _raw.additionalDillModules.isNotEmpty;
|
||||
|
||||
/// The entry-points provided to the compiler.
|
||||
final List<Uri> inputs;
|
||||
@@ -434,7 +434,7 @@ class ProcessedOptions {
|
||||
return false;
|
||||
}
|
||||
|
||||
for (Uri source in _raw.additionalDills) {
|
||||
for (Uri source in _raw.additionalDillModules) {
|
||||
// Coverage-ignore-block(suite): Not run.
|
||||
// TODO(ahe): Remove this check, the compiler itself should handle and
|
||||
// recover from this.
|
||||
@@ -532,12 +532,14 @@ class ProcessedOptions {
|
||||
}
|
||||
|
||||
// Coverage-ignore(suite): Not run.
|
||||
/// Get the components for each of the underlying `additionalDill`
|
||||
/// Get the components for each of the underlying `additionalDillModules`
|
||||
/// provided via [CompilerOptions].
|
||||
// TODO(sigmund): move, this doesn't feel like an "option".
|
||||
Future<List<Component>> loadAdditionalDills(CanonicalName? nameRoot) async {
|
||||
if (_additionalDillComponents == null) {
|
||||
List<Uri> uris = _raw.additionalDills;
|
||||
Future<List<Component>> loadAdditionalDillModules(
|
||||
CanonicalName? nameRoot,
|
||||
) async {
|
||||
if (_additionalDillModuleComponents == null) {
|
||||
List<Uri> uris = _raw.additionalDillModules;
|
||||
if (uris.isEmpty) return const <Component>[];
|
||||
// TODO(sigmund): throttle # of concurrent operations.
|
||||
List<Uint8List?> allBytes = await Future.wait(
|
||||
@@ -549,9 +551,9 @@ class ProcessedOptions {
|
||||
if (bytes == null) continue;
|
||||
result.add(loadComponent(bytes, nameRoot, fileUri: uris[i]));
|
||||
}
|
||||
_additionalDillComponents = result;
|
||||
_additionalDillModuleComponents = result;
|
||||
}
|
||||
return _additionalDillComponents!;
|
||||
return _additionalDillModuleComponents!;
|
||||
}
|
||||
|
||||
/// Helper to load a .dill file from [fileUri] using the existing [nameRoot].
|
||||
@@ -935,7 +937,7 @@ class ProcessedOptions {
|
||||
'(provided: ${_raw.fileSystem.runtimeType})',
|
||||
);
|
||||
|
||||
writeList('Additional Dills', _raw.additionalDills);
|
||||
writeList('Additional Dill Modules', _raw.additionalDillModules);
|
||||
|
||||
sb.writeln('Packages uri: ${_raw.packagesFileUri}');
|
||||
sb.writeln('Packages: ${_packages}');
|
||||
|
||||
@@ -162,7 +162,7 @@ class SubdivideTiming {
|
||||
enum BenchmarkPhases {
|
||||
implicitInitialization,
|
||||
loadSDK,
|
||||
loadAdditionalDills,
|
||||
loadAdditionalDillModules,
|
||||
|
||||
dill_buildOutlines,
|
||||
dill_finalizeExports,
|
||||
|
||||
@@ -68,7 +68,7 @@ Future<InternalCompilerResult> generateKernelInternal(
|
||||
bool includeHierarchyAndCoreTypes = false,
|
||||
bool retainDataForTesting = false,
|
||||
Benchmarker? benchmarker,
|
||||
List<Component>? additionalDillsForTesting,
|
||||
List<Component>? additionalDillModulesForTesting,
|
||||
bool allowVerificationErrorForTesting = false,
|
||||
}) async {
|
||||
ProcessedOptions options = compilerContext.options;
|
||||
@@ -99,19 +99,19 @@ Future<InternalCompilerResult> generateKernelInternal(
|
||||
// By using the nameRoot of the summary, we enable sharing the
|
||||
// sdkSummary between multiple invocations.
|
||||
CanonicalName? nameRoot;
|
||||
if (additionalDillsForTesting != null) {
|
||||
for (Component additionalDill in additionalDillsForTesting) {
|
||||
loadedComponents.add(additionalDill);
|
||||
dillTarget.loader.appendLibraries(additionalDill);
|
||||
if (additionalDillModulesForTesting != null) {
|
||||
for (Component additionalDillModule
|
||||
in additionalDillModulesForTesting) {
|
||||
loadedComponents.add(additionalDillModule);
|
||||
dillTarget.loader.appendLibraries(additionalDillModule);
|
||||
}
|
||||
} else if (options.hasAdditionalDills) {
|
||||
} else if (options.hasAdditionalDillModules) {
|
||||
// Coverage-ignore-block(suite): Not run.
|
||||
nameRoot = sdkSummary?.root ?? new CanonicalName.root();
|
||||
for (Component additionalDill in await options.loadAdditionalDills(
|
||||
nameRoot,
|
||||
)) {
|
||||
loadedComponents.add(additionalDill);
|
||||
dillTarget.loader.appendLibraries(additionalDill);
|
||||
for (Component additionalDillModule
|
||||
in await options.loadAdditionalDillModules(nameRoot)) {
|
||||
loadedComponents.add(additionalDillModule);
|
||||
dillTarget.loader.appendLibraries(additionalDillModule);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ import '../compute_platform_binaries_location.dart'
|
||||
Future<CompilerResult?> compileScript(
|
||||
dynamic scriptOrSources, {
|
||||
String fileName = 'main.dart',
|
||||
List<String> additionalDills = const [],
|
||||
List<String> additionalDillModules = const [],
|
||||
CompilerOptions? options,
|
||||
bool retainDataForTesting = false,
|
||||
bool requireMain = true,
|
||||
@@ -45,7 +45,7 @@ Future<CompilerResult?> compileScript(
|
||||
assert(scriptOrSources is Map);
|
||||
sources = scriptOrSources;
|
||||
}
|
||||
await setup(options, sources, additionalDills: additionalDills);
|
||||
await setup(options, sources, additionalDillModules: additionalDillModules);
|
||||
return await kernelForProgramInternal(
|
||||
toTestUri(fileName),
|
||||
options,
|
||||
@@ -60,11 +60,11 @@ Future<CompilerResult?> compileScript(
|
||||
Future<Component?> compileUnit(
|
||||
List<String> inputs,
|
||||
Map<String, dynamic> sources, {
|
||||
List<String> additionalDills = const [],
|
||||
List<String> additionalDillModules = const [],
|
||||
CompilerOptions? options,
|
||||
}) async {
|
||||
options ??= new CompilerOptions();
|
||||
await setup(options, sources, additionalDills: additionalDills);
|
||||
await setup(options, sources, additionalDillModules: additionalDillModules);
|
||||
return (await kernelForModule(
|
||||
inputs.map(toTestUri).toList(),
|
||||
options,
|
||||
@@ -77,12 +77,12 @@ Future<Component?> compileUnit(
|
||||
Future<Uint8List?> summarize(
|
||||
List<String> inputs,
|
||||
Map<String, dynamic> sources, {
|
||||
List<String> additionalDills = const [],
|
||||
List<String> additionalDillModules = const [],
|
||||
CompilerOptions? options,
|
||||
bool truncate = false,
|
||||
}) async {
|
||||
options ??= new CompilerOptions();
|
||||
await setup(options, sources, additionalDills: additionalDills);
|
||||
await setup(options, sources, additionalDillModules: additionalDillModules);
|
||||
return await summaryFor(
|
||||
inputs.map(toTestUri).toList(),
|
||||
options,
|
||||
@@ -104,7 +104,7 @@ Future<Uint8List?> summarize(
|
||||
Future<Null> setup(
|
||||
CompilerOptions options,
|
||||
Map<String, dynamic> sources, {
|
||||
List<String> additionalDills = const [],
|
||||
List<String> additionalDillModules = const [],
|
||||
}) async {
|
||||
MemoryFileSystem fs = createMemoryFileSystem();
|
||||
sources.forEach((name, data) {
|
||||
@@ -127,7 +127,7 @@ Future<Null> setup(
|
||||
options
|
||||
..verify = true
|
||||
..fileSystem = new HybridFileSystem(fs)
|
||||
..additionalDills = additionalDills.map(toTestUri).toList();
|
||||
..additionalDillModules = additionalDillModules.map(toTestUri).toList();
|
||||
if (options.packagesFileUri == null) {
|
||||
options.packagesFileUri = toTestUri('.dart_tool/package_config.json');
|
||||
}
|
||||
|
||||
@@ -79,7 +79,7 @@ Future<void> test() async {
|
||||
|
||||
options = new CompilerOptions()
|
||||
..fileSystem = fs
|
||||
..additionalDills = <Uri>[base.resolve("lib.dart.dill")]
|
||||
..additionalDillModules = <Uri>[base.resolve("lib.dart.dill")]
|
||||
..sdkSummary = platformDill
|
||||
..target = new NoneTarget(new TargetFlags());
|
||||
|
||||
|
||||
@@ -151,7 +151,7 @@ void main() {
|
||||
var unitBC = await compileUnit(
|
||||
['b.dart', 'c.dart'],
|
||||
sources,
|
||||
additionalDills: ['a.dill'],
|
||||
additionalDillModules: ['a.dill'],
|
||||
);
|
||||
|
||||
// Pretend that the compiled code is a summary
|
||||
@@ -171,14 +171,14 @@ void main() {
|
||||
var unitD1 = await compileUnit(
|
||||
['d.dart'],
|
||||
sources,
|
||||
additionalDills: ['a.dill', 'bc.dill'],
|
||||
additionalDillModules: ['a.dill', 'bc.dill'],
|
||||
);
|
||||
checkDCallsC(unitD1!);
|
||||
|
||||
var unitD2 = await compileUnit(
|
||||
['d.dart'],
|
||||
sources,
|
||||
additionalDills: ['bc.dill', 'a.dill'],
|
||||
additionalDillModules: ['bc.dill', 'a.dill'],
|
||||
);
|
||||
checkDCallsC(unitD2!);
|
||||
});
|
||||
|
||||
@@ -42,7 +42,7 @@ void main() {
|
||||
var summaryBC = await summarize(
|
||||
['b.dart', 'c.dart'],
|
||||
sourcesWithA,
|
||||
additionalDills: ['a.dill'],
|
||||
additionalDillModules: ['a.dill'],
|
||||
);
|
||||
|
||||
var sourcesWithABC = new Map<String, dynamic>.from(sourcesWithA);
|
||||
@@ -53,7 +53,7 @@ void main() {
|
||||
var summaryD = await summarize(
|
||||
['d.dart'],
|
||||
sourcesWithABC,
|
||||
additionalDills: ['a.dill', 'bc.dill'],
|
||||
additionalDillModules: ['a.dill', 'bc.dill'],
|
||||
);
|
||||
|
||||
checkDSummary(summaryD!);
|
||||
@@ -67,7 +67,7 @@ void main() {
|
||||
var summaryBC = await summarize(
|
||||
['b.dart', 'c.dart'],
|
||||
sourcesWithA,
|
||||
additionalDills: ['a.dill'],
|
||||
additionalDillModules: ['a.dill'],
|
||||
);
|
||||
|
||||
var sourcesWithABC = new Map<String, dynamic>.from(sourcesWithA);
|
||||
@@ -80,7 +80,7 @@ void main() {
|
||||
var summaryD = await summarize(
|
||||
['d.dart'],
|
||||
sourcesWithABC,
|
||||
additionalDills: ['bc.dill', 'a.dill'],
|
||||
additionalDillModules: ['bc.dill', 'a.dill'],
|
||||
);
|
||||
checkDSummary(summaryD!);
|
||||
});
|
||||
@@ -100,7 +100,7 @@ void main() {
|
||||
var summaryB = await summarize(
|
||||
['b.dart'],
|
||||
sourcesWithA,
|
||||
additionalDills: ['a.dill'],
|
||||
additionalDillModules: ['a.dill'],
|
||||
truncate: true,
|
||||
);
|
||||
component = loadComponentFromBytes(summaryB!);
|
||||
|
||||
@@ -2464,7 +2464,7 @@ class Outline extends Step<TestDescription, ComponentResult, FastaContext> {
|
||||
serializeIfBuildingSummary: false,
|
||||
buildComponent: compileMode != CompileMode.outline,
|
||||
retainDataForTesting: true,
|
||||
additionalDillsForTesting: alsoAppend != null
|
||||
additionalDillModulesForTesting: alsoAppend != null
|
||||
? [alsoAppend]
|
||||
: null,
|
||||
allowVerificationErrorForTesting: true,
|
||||
|
||||
@@ -238,7 +238,7 @@ ProcessedOptions analyzeCommandLine(
|
||||
..explicitExperimentalFlags = explicitExperimentalFlags
|
||||
..environmentDefines = environmentDefines
|
||||
..enableUnscheduledExperiments = enableUnscheduledExperiments
|
||||
..additionalDills = linkDependencies
|
||||
..additionalDillModules = linkDependencies
|
||||
..emitDeps = !noDeps
|
||||
..invocationModes = InvocationMode.parseArguments(invocationModes)
|
||||
..verbosity = Verbosity.parseArgument(verbosity);
|
||||
|
||||
@@ -324,8 +324,8 @@ class BatchCompiler {
|
||||
"Platform must be omitted for the batch compiler.",
|
||||
);
|
||||
assert(
|
||||
!options.hasAdditionalDills,
|
||||
"Additional dills are not supported for the batch compiler.",
|
||||
!options.hasAdditionalDillModules,
|
||||
"Additional dill modules are not supported for the batch compiler.",
|
||||
);
|
||||
IncrementalCompilerResult compilerResult = await _incrementalCompiler!
|
||||
.computeDelta(fullComponent: true);
|
||||
|
||||
@@ -820,7 +820,7 @@ class FrontendCompiler implements CompilerInterface {
|
||||
|
||||
final String? importDill = options['import-dill'];
|
||||
if (importDill != null) {
|
||||
compilerOptions.additionalDills = <Uri>[
|
||||
compilerOptions.additionalDillModules = <Uri>[
|
||||
Uri.base.resolveUri(new Uri.file(importDill)),
|
||||
];
|
||||
}
|
||||
@@ -865,14 +865,6 @@ class FrontendCompiler implements CompilerInterface {
|
||||
|
||||
incrementalSerializer = _generator.incrementalSerializer;
|
||||
} else {
|
||||
if (options['link-platform']) {
|
||||
// TODO(aam): Remove linkedDependencies once platform is directly
|
||||
// embedded into VM snapshot and http://dartbug.com/30111 is fixed.
|
||||
compilerOptions.additionalDills = <Uri>[
|
||||
sdkRoot.resolve(platformKernelDill),
|
||||
...compilerOptions.additionalDills,
|
||||
];
|
||||
}
|
||||
results = await _runWithPrintRedirection(
|
||||
() => compileToKernel(
|
||||
new KernelCompilationArguments(
|
||||
|
||||
@@ -199,9 +199,9 @@ Future<int> runCompilerWithCommandLineArguments(List<String> arguments) async {
|
||||
|
||||
final platformKernelUri = Uri.base.resolveUri(new Uri.file(platformKernel));
|
||||
|
||||
final additionalDills = <Uri>[];
|
||||
final additionalDillModules = <Uri>[];
|
||||
if (importDill != null) {
|
||||
additionalDills.add(Uri.base.resolveUri(new Uri.file(importDill)));
|
||||
additionalDillModules.add(Uri.base.resolveUri(new Uri.file(importDill)));
|
||||
}
|
||||
|
||||
final verbosity = Verbosity.parseArgument(messageVerbosity);
|
||||
@@ -216,7 +216,7 @@ Future<int> runCompilerWithCommandLineArguments(List<String> arguments) async {
|
||||
final compilerOptions = CompilerOptions()
|
||||
..sdkSummary = platformKernelUri
|
||||
..fileSystem = fileSystem
|
||||
..additionalDills = additionalDills
|
||||
..additionalDillModules = additionalDillModules
|
||||
..packagesFileUri = packagesUri
|
||||
..explicitExperimentalFlags = parseExperimentalFlags(
|
||||
parseExperimentalArguments(experimentalFlags),
|
||||
|
||||
@@ -85,7 +85,7 @@ Future<Component> compileTestCaseToKernelProgram(
|
||||
);
|
||||
final options = CompilerOptions()
|
||||
..target = target
|
||||
..additionalDills = <Uri>[platformKernel]
|
||||
..sdkSummary = platformKernel
|
||||
..environmentDefines = {}
|
||||
..onDiagnostic = (CfeDiagnosticMessage message) {
|
||||
fail("Compilation error: ${message.plainTextFormatted.join('\n')}");
|
||||
|
||||
@@ -384,10 +384,6 @@ Future<int> runCompiler(ArgResults options, String usage) async {
|
||||
final Uri? packagesUri = packages != null ? resolveInputUri(packages) : null;
|
||||
|
||||
final platformKernelUri = Uri.base.resolveUri(new Uri.file(platformKernel));
|
||||
final List<Uri> additionalDills = <Uri>[];
|
||||
if (aot || linkPlatform) {
|
||||
additionalDills.add(platformKernelUri);
|
||||
}
|
||||
|
||||
final verbosity = Verbosity.parseArgument(options['verbosity']);
|
||||
final errorPrinter = new ErrorPrinter(verbosity);
|
||||
@@ -423,7 +419,6 @@ Future<int> runCompiler(ArgResults options, String usage) async {
|
||||
final CompilerOptions compilerOptions = new CompilerOptions()
|
||||
..sdkSummary = platformKernelUri
|
||||
..fileSystem = fileSystem
|
||||
..additionalDills = additionalDills
|
||||
..packagesFileUri = packagesUri
|
||||
..explicitExperimentalFlags = parseExperimentalFlags(
|
||||
parseExperimentalArguments(experimentalFlags),
|
||||
@@ -456,7 +451,7 @@ Future<int> runCompiler(ArgResults options, String usage) async {
|
||||
additionalSources: additionalSources,
|
||||
nativeAssets: nativeAssetsUri,
|
||||
recordedUsages: recordedUsagesUri,
|
||||
includePlatform: additionalDills.isNotEmpty,
|
||||
includePlatform: aot || linkPlatform,
|
||||
deleteToStringPackageUris: options['delete-tostring-package-uri'],
|
||||
keepClassNamesImplementing: options['keep-class-names-implementing'],
|
||||
dynamicInterface: dynamicInterfaceUri,
|
||||
@@ -552,15 +547,6 @@ class KernelCompilationResults {
|
||||
final Iterable<Uri>? compiledSources;
|
||||
final Uri? usedPackageConfig;
|
||||
|
||||
KernelCompilationResults(
|
||||
this.component,
|
||||
this.loadedLibraries,
|
||||
this.classHierarchy,
|
||||
this.coreTypes,
|
||||
this.compiledSources,
|
||||
) : nativeAssetsLibrary = null,
|
||||
usedPackageConfig = null;
|
||||
|
||||
KernelCompilationResults.named({
|
||||
this.component,
|
||||
this.loadedLibraries = const {},
|
||||
|
||||
@@ -46,7 +46,7 @@ Future<Component> compileTestCaseToKernelProgram(
|
||||
environmentDefines ??= <String, String>{};
|
||||
final options = new CompilerOptions()
|
||||
..target = target
|
||||
..additionalDills = <Uri>[platformKernel]
|
||||
..sdkSummary = platformKernel
|
||||
..environmentDefines = environmentDefines
|
||||
..packagesFileUri = packagesFileUri
|
||||
..explicitExperimentalFlags = parseExperimentalFlags(
|
||||
@@ -72,7 +72,7 @@ Future<Component> compileTestCaseToKernelProgram(
|
||||
} finally {
|
||||
await sink.close();
|
||||
}
|
||||
options..additionalDills = <Uri>[platformKernel, uri];
|
||||
options..additionalDillModules = <Uri>[uri];
|
||||
}
|
||||
|
||||
final Component component = (await kernelForProgram(
|
||||
|
||||
@@ -29,16 +29,14 @@ import 'package:vm/modular/target/vm.dart';
|
||||
import 'common_test_utils.dart';
|
||||
|
||||
main() {
|
||||
final platformKernel = computePlatformBinariesLocation().resolve(
|
||||
'vm_platform.dill',
|
||||
);
|
||||
final sdkRoot = computePlatformBinariesLocation();
|
||||
final platformKernel = sdkRoot.resolve('vm_platform.dill');
|
||||
|
||||
CompilerOptions getFreshOptions() {
|
||||
return new CompilerOptions()
|
||||
..sdkRoot = sdkRoot
|
||||
..target = new VmTarget(new TargetFlags())
|
||||
..additionalDills = <Uri>[platformKernel]
|
||||
..sdkSummary = platformKernel
|
||||
..onDiagnostic = (CfeDiagnosticMessage message) {
|
||||
fail("Compilation error: ${message.plainTextFormatted.join('\n')}");
|
||||
}
|
||||
|
||||
@@ -108,14 +108,14 @@ Future compileToKernel(
|
||||
Uri packagesFile,
|
||||
Uri outputFile,
|
||||
List<Uri> sources,
|
||||
List<Uri> additionalDills,
|
||||
List<Uri> additionalDillModules,
|
||||
) async {
|
||||
final state = fe.initializeCompiler(
|
||||
null,
|
||||
sdkSummary,
|
||||
librariesFile,
|
||||
packagesFile,
|
||||
additionalDills,
|
||||
additionalDillModules,
|
||||
target,
|
||||
StandardFileSystem.instance,
|
||||
const <String>[],
|
||||
|
||||
Reference in New Issue
Block a user