diff --git a/pkg/cfg/test/ir_test.dart b/pkg/cfg/test/ir_test.dart index 9ae015b8dcf..2047b652e08 100644 --- a/pkg/cfg/test/ir_test.dart +++ b/pkg/cfg/test/ir_test.dart @@ -75,7 +75,7 @@ Future compileTestCaseToKernelProgram( ); final options = CompilerOptions() ..target = target - ..additionalDills = [platformKernel] + ..sdkSummary = platformKernel ..environmentDefines = {} ..onDiagnostic = (CfeDiagnosticMessage message) { fail("Compilation error: ${message.plainTextFormatted.join('\n')}"); diff --git a/pkg/compiler/test/end_to_end/dill_loader_test.dart b/pkg/compiler/test/end_to_end/dill_loader_test.dart index 2216a28b84c..58dea719c45 100644 --- a/pkg/compiler/test/end_to_end/dill_loader_test.dart +++ b/pkg/compiler/test/end_to_end/dill_loader_test.dart @@ -29,9 +29,9 @@ main() { var options = CompilerOptions() ..target = Dart2jsTarget("dart2js", TargetFlags()) ..packagesFileUri = Uri.base.resolve('.dart_tool/package_config.json') - ..additionalDills = [ - computePlatformBinariesLocation().resolve("dart2js_platform.dill"), - ] + ..sdkSummary = computePlatformBinariesLocation().resolve( + "dart2js_platform.dill", + ) ..setExitCodeOnProblem = true ..verify = true; diff --git a/pkg/compiler/test/end_to_end/modular_loader_test.dart b/pkg/compiler/test/end_to_end/modular_loader_test.dart index 971a535f614..5fd74e13ded 100644 --- a/pkg/compiler/test/end_to_end/modular_loader_test.dart +++ b/pkg/compiler/test/end_to_end/modular_loader_test.dart @@ -104,16 +104,18 @@ Future compileUnit( entity.writeAsBytesSync(data); } }); - List additionalDills = [ - computePlatformBinariesLocation().resolve("dart2js_platform.dill"), - ]..addAll(deps.map(toTestUri)); + + List 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(); diff --git a/pkg/compiler/test/end_to_end/no_platform_test.dart b/pkg/compiler/test/end_to_end/no_platform_test.dart index a0aeabb8b18..c319eca343d 100644 --- a/pkg/compiler/test/end_to_end/no_platform_test.dart +++ b/pkg/compiler/test/end_to_end/no_platform_test.dart @@ -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, diff --git a/pkg/dart2bytecode/lib/dart2bytecode.dart b/pkg/dart2bytecode/lib/dart2bytecode.dart index 5ba179ead6b..7d23d65ce4b 100644 --- a/pkg/dart2bytecode/lib/dart2bytecode.dart +++ b/pkg/dart2bytecode/lib/dart2bytecode.dart @@ -253,9 +253,9 @@ Future runCompilerWithOptions({ final platformKernelUri = Uri.base.resolveUri(new Uri.file(platformKernel)); - final List additionalDills = []; + final List additionalDillModules = []; 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 runCompilerWithOptions({ final CompilerOptions compilerOptions = CompilerOptions() ..sdkSummary = platformKernelUri ..fileSystem = fileSystem - ..additionalDills = additionalDills + ..additionalDillModules = additionalDillModules ..packagesFileUri = packagesUri ..dynamicInterfaceSpecificationUri = dynamicInterfaceSpecificationUri ..explicitExperimentalFlags = parseExperimentalFlags( diff --git a/pkg/dart2bytecode/test/bytecode_generator_test.dart b/pkg/dart2bytecode/test/bytecode_generator_test.dart index 0f712ec51b4..9406b68dbd6 100644 --- a/pkg/dart2bytecode/test/bytecode_generator_test.dart +++ b/pkg/dart2bytecode/test/bytecode_generator_test.dart @@ -94,7 +94,7 @@ Future compileTestCaseToKernelProgram( final options = CompilerOptions() ..target = target ..omitPlatform = true - ..additionalDills = [platformKernel] + ..sdkSummary = platformKernel ..environmentDefines = {} ..onDiagnostic = (CfeDiagnosticMessage message) { fail("Compilation error: ${message.plainTextFormatted.join('\n')}"); diff --git a/pkg/dev_compiler/lib/src/command/command.dart b/pkg/dev_compiler/lib/src/command/command.dart index ff7b2af117c..87090bd324a 100644 --- a/pkg/dev_compiler/lib/src/command/command.dart +++ b/pkg/dev_compiler/lib/src/command/command.dart @@ -273,7 +273,7 @@ Future _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 _compile( compileSdk ? null : sourcePathToUri(sdkSummaryPath!), packageFile != null ? sourcePathToUri(packageFile) : null, sourcePathToUri(librarySpecPath), - additionalDills, + additionalDillModules, DevCompilerTarget( TargetFlags(trackCreationLocations: trackCreationLocations), ), @@ -313,7 +313,7 @@ Future _compile( inputDigests[uri] = const [0]; } } - var doneAdditionalDills = List.filled( + var doneAdditionalDillModules = List.filled( summaryModules.length, dummyComponent, ); @@ -324,13 +324,13 @@ Future _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 _compile( result = fe.DdcResult( incrementalCompilerResult.component, cachedSdkInput?.component, - doneAdditionalDills, + doneAdditionalDillModules, incrementalCompilerResult.classHierarchy, incrementalCompilerResult.neededDillLibraries, ); @@ -474,13 +474,13 @@ Future _compile( final importToSummary = Map.identity(); final summaryToModule = Map.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 _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; } diff --git a/pkg/front_end/lib/src/api_prototype/compiler_options.dart b/pkg/front_end/lib/src/api_prototype/compiler_options.dart index 650a40e2ead..cbf2f775249 100644 --- a/pkg/front_end/lib/src/api_prototype/compiler_options.dart +++ b/pkg/front_end/lib/src/api_prototype/compiler_options.dart @@ -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 additionalDills = []; + List 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) { diff --git a/pkg/front_end/lib/src/api_prototype/kernel_generator.dart b/pkg/front_end/lib/src/api_prototype/kernel_generator.dart index 14082633e4c..818200da5ad 100644 --- a/pkg/front_end/lib/src/api_prototype/kernel_generator.dart +++ b/pkg/front_end/lib/src/api_prototype/kernel_generator.dart @@ -102,10 +102,10 @@ Future 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 diff --git a/pkg/front_end/lib/src/api_prototype/summary_generator.dart b/pkg/front_end/lib/src/api_prototype/summary_generator.dart index 0f39e9429f6..3a651ae3cee 100644 --- a/pkg/front_end/lib/src/api_prototype/summary_generator.dart +++ b/pkg/front_end/lib/src/api_prototype/summary_generator.dart @@ -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 diff --git a/pkg/front_end/lib/src/api_unstable/bazel_worker.dart b/pkg/front_end/lib/src/api_unstable/bazel_worker.dart index 5afc94d3ea6..8f2a5a127a0 100644 --- a/pkg/front_end/lib/src/api_unstable/bazel_worker.dart +++ b/pkg/front_end/lib/src/api_unstable/bazel_worker.dart @@ -46,7 +46,7 @@ Future initializeIncrementalCompiler( Uri? sdkSummary, Uri? packagesFile, Uri? librariesSpecificationUri, - List additionalDills, + List additionalDillModules, Map> workerInputDigests, Target target, FileSystem fileSystem, @@ -56,10 +56,8 @@ Future initializeIncrementalCompiler( bool trackNeededDillLibraries = false, bool verbose = false, }) { - List outputLoadedAdditionalDills = new List.filled( - additionalDills.length, - dummyComponent, - ); + List outputLoadedAdditionalDillModules = + new List.filled(additionalDillModules.length, dummyComponent); Map experimentalFlags = parseExperimentalFlags( parseExperimentalArguments(experiments), onError: (e) => throw e, @@ -67,11 +65,11 @@ Future 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 additionalDills, + List additionalDillModules, Target target, FileSystem fileSystem, Iterable experiments, @@ -105,7 +103,7 @@ InitializedCompilerState initializeCompiler( ..sdkSummary = sdkSummary ..packagesFileUri = packagesFile ..librariesSpecificationUri = librariesSpecificationUri - ..additionalDills = additionalDills + ..additionalDillModules = additionalDillModules ..target = target ..fileSystem = fileSystem ..environmentDefines = environmentDefines diff --git a/pkg/front_end/lib/src/api_unstable/dart2js.dart b/pkg/front_end/lib/src/api_unstable/dart2js.dart index 9937148ba74..b351e75bb66 100644 --- a/pkg/front_end/lib/src/api_unstable/dart2js.dart +++ b/pkg/front_end/lib/src/api_unstable/dart2js.dart @@ -95,7 +95,7 @@ InitializedCompilerState initializeCompiler( InitializedCompilerState? oldState, Target target, Uri? librariesSpecificationUri, - List additionalDills, + List additionalDillModules, Uri? packagesFileUri, { required Map explicitExperimentalFlags, Map? environmentDefines, @@ -103,7 +103,7 @@ InitializedCompilerState initializeCompiler( Set invocationModes = const {}, 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 diff --git a/pkg/front_end/lib/src/api_unstable/ddc.dart b/pkg/front_end/lib/src/api_unstable/ddc.dart index b1469043c9e..4181abc6370 100644 --- a/pkg/front_end/lib/src/api_unstable/ddc.dart +++ b/pkg/front_end/lib/src/api_unstable/ddc.dart @@ -54,7 +54,7 @@ export 'compiler_state.dart' class DdcResult { final Component component; final Component? sdkSummary; - final List additionalDills; + final List additionalDillModules; final ClassHierarchy classHierarchy; final Set? neededDillLibraries; late final Set 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 _computeLibrariesFromDill() { Set librariesFromDill = new Set(); - 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 additionalDills, + List additionalDillModules, Target target, { FileSystem? fileSystem, Map? explicitExperimentalFlags, Map? 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 initializeIncrementalCompiler( InitializedCompilerState? oldState, Set tags, - List doneAdditionalDills, + List doneAdditionalDillModules, bool compileSdk, Uri? sdkRoot, Uri? sdkSummary, Uri? packagesFile, Uri? librariesSpecificationUri, - List additionalDills, + List additionalDillModules, Map> workerInputDigests, Target target, { FileSystem? fileSystem, @@ -172,11 +175,11 @@ Future initializeIncrementalCompiler( return modular.initializeIncrementalCompiler( oldState, tags, - doneAdditionalDills, + doneAdditionalDillModules, sdkSummary, packagesFile, librariesSpecificationUri, - additionalDills, + additionalDillModules, workerInputDigests, target, compileSdk: compileSdk, @@ -212,7 +215,9 @@ Future compile( // These should be cached. Component? sdkSummary = await processedOpts.loadSdkSummary(null); - List summaries = await processedOpts.loadAdditionalDills(null); + List summaries = await processedOpts.loadAdditionalDillModules( + null, + ); return new DdcResult( component, sdkSummary, diff --git a/pkg/front_end/lib/src/api_unstable/modular_incremental_compilation.dart b/pkg/front_end/lib/src/api_unstable/modular_incremental_compilation.dart index 7d74da15ef9..70027a8765c 100644 --- a/pkg/front_end/lib/src/api_unstable/modular_incremental_compilation.dart +++ b/pkg/front_end/lib/src/api_unstable/modular_incremental_compilation.dart @@ -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 initializeIncrementalCompiler( InitializedCompilerState? oldState, Set tags, - List outputLoadedAdditionalDills, + List outputLoadedAdditionalDillModules, Uri? sdkSummary, Uri? packagesFile, Uri? librariesSpecificationUri, - List additionalDills, + List additionalDillModules, Map> workerInputDigests, Target target, { bool compileSdk = false, @@ -163,13 +164,14 @@ Future 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 additionalDillsSet = new Set(); - for (int i = 0; i < additionalDills.length; i++) { - Uri summaryUri = additionalDills[i]; - additionalDillsSet.add(summaryUri); + Set additionalDillModulesSet = new Set(); + for (int i = 0; i < additionalDillModules.length; i++) { + Uri summaryUri = additionalDillModules[i]; + additionalDillModulesSet.add(summaryUri); WorkerInputComponent? cachedInput = workerInputCache[summaryUri]; List? digest = workerInputDigests[summaryUri]; if (digest == null) { @@ -196,20 +198,22 @@ Future 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? digest = workerInputDigests[additionalDillUri]; + Uri additionalDillModuleUri = additionalDillModules[index]; + List? 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 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 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( diff --git a/pkg/front_end/lib/src/base/command_line_options.dart b/pkg/front_end/lib/src/base/command_line_options.dart index 37f2662bdb1..ed25e5795d8 100644 --- a/pkg/front_end/lib/src/base/command_line_options.dart +++ b/pkg/front_end/lib/src/base/command_line_options.dart @@ -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"; diff --git a/pkg/front_end/lib/src/base/processed_options.dart b/pkg/front_end/lib/src/base/processed_options.dart index 9abfbc43ed3..16a1905bf70 100644 --- a/pkg/front_end/lib/src/base/processed_options.dart +++ b/pkg/front_end/lib/src/base/processed_options.dart @@ -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? _additionalDillComponents; + List? _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 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> loadAdditionalDills(CanonicalName? nameRoot) async { - if (_additionalDillComponents == null) { - List uris = _raw.additionalDills; + Future> loadAdditionalDillModules( + CanonicalName? nameRoot, + ) async { + if (_additionalDillModuleComponents == null) { + List uris = _raw.additionalDillModules; if (uris.isEmpty) return const []; // TODO(sigmund): throttle # of concurrent operations. List 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}'); diff --git a/pkg/front_end/lib/src/kernel/benchmarker.dart b/pkg/front_end/lib/src/kernel/benchmarker.dart index ddbb03baf7f..86ff6d5f790 100644 --- a/pkg/front_end/lib/src/kernel/benchmarker.dart +++ b/pkg/front_end/lib/src/kernel/benchmarker.dart @@ -162,7 +162,7 @@ class SubdivideTiming { enum BenchmarkPhases { implicitInitialization, loadSDK, - loadAdditionalDills, + loadAdditionalDillModules, dill_buildOutlines, dill_finalizeExports, diff --git a/pkg/front_end/lib/src/kernel_generator_impl.dart b/pkg/front_end/lib/src/kernel_generator_impl.dart index 4ee685413fe..f8ee60b5a20 100644 --- a/pkg/front_end/lib/src/kernel_generator_impl.dart +++ b/pkg/front_end/lib/src/kernel_generator_impl.dart @@ -68,7 +68,7 @@ Future generateKernelInternal( bool includeHierarchyAndCoreTypes = false, bool retainDataForTesting = false, Benchmarker? benchmarker, - List? additionalDillsForTesting, + List? additionalDillModulesForTesting, bool allowVerificationErrorForTesting = false, }) async { ProcessedOptions options = compilerContext.options; @@ -99,19 +99,19 @@ Future 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); } } diff --git a/pkg/front_end/lib/src/testing/compiler_common.dart b/pkg/front_end/lib/src/testing/compiler_common.dart index 2b443703a9a..640c219965c 100644 --- a/pkg/front_end/lib/src/testing/compiler_common.dart +++ b/pkg/front_end/lib/src/testing/compiler_common.dart @@ -32,7 +32,7 @@ import '../compute_platform_binaries_location.dart' Future compileScript( dynamic scriptOrSources, { String fileName = 'main.dart', - List additionalDills = const [], + List additionalDillModules = const [], CompilerOptions? options, bool retainDataForTesting = false, bool requireMain = true, @@ -45,7 +45,7 @@ Future 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 compileScript( Future compileUnit( List inputs, Map sources, { - List additionalDills = const [], + List 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 compileUnit( Future summarize( List inputs, Map sources, { - List additionalDills = const [], + List 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 summarize( Future setup( CompilerOptions options, Map sources, { - List additionalDills = const [], + List additionalDillModules = const [], }) async { MemoryFileSystem fs = createMemoryFileSystem(); sources.forEach((name, data) { @@ -127,7 +127,7 @@ Future 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'); } diff --git a/pkg/front_end/test/issue_34856_test.dart b/pkg/front_end/test/issue_34856_test.dart index 3e8ac032f68..c89eb04a51c 100644 --- a/pkg/front_end/test/issue_34856_test.dart +++ b/pkg/front_end/test/issue_34856_test.dart @@ -79,7 +79,7 @@ Future test() async { options = new CompilerOptions() ..fileSystem = fs - ..additionalDills = [base.resolve("lib.dart.dill")] + ..additionalDillModules = [base.resolve("lib.dart.dill")] ..sdkSummary = platformDill ..target = new NoneTarget(new TargetFlags()); diff --git a/pkg/front_end/test/kernel_generator_test.dart b/pkg/front_end/test/kernel_generator_test.dart index 98d27b8569e..3ee4df01be7 100644 --- a/pkg/front_end/test/kernel_generator_test.dart +++ b/pkg/front_end/test/kernel_generator_test.dart @@ -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!); }); diff --git a/pkg/front_end/test/summary_generator_test.dart b/pkg/front_end/test/summary_generator_test.dart index 97809945bd6..6ba0725719c 100644 --- a/pkg/front_end/test/summary_generator_test.dart +++ b/pkg/front_end/test/summary_generator_test.dart @@ -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.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.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!); diff --git a/pkg/front_end/test/testing/suite.dart b/pkg/front_end/test/testing/suite.dart index 4c93305472a..e13de588e28 100644 --- a/pkg/front_end/test/testing/suite.dart +++ b/pkg/front_end/test/testing/suite.dart @@ -2464,7 +2464,7 @@ class Outline extends Step { serializeIfBuildingSummary: false, buildComponent: compileMode != CompileMode.outline, retainDataForTesting: true, - additionalDillsForTesting: alsoAppend != null + additionalDillModulesForTesting: alsoAppend != null ? [alsoAppend] : null, allowVerificationErrorForTesting: true, diff --git a/pkg/front_end/tool/command_line.dart b/pkg/front_end/tool/command_line.dart index adfeefb24b9..60a2605924b 100644 --- a/pkg/front_end/tool/command_line.dart +++ b/pkg/front_end/tool/command_line.dart @@ -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); diff --git a/pkg/front_end/tool/entry_points.dart b/pkg/front_end/tool/entry_points.dart index 76ac5354383..b5703aad036 100644 --- a/pkg/front_end/tool/entry_points.dart +++ b/pkg/front_end/tool/entry_points.dart @@ -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); diff --git a/pkg/frontend_server/lib/frontend_server.dart b/pkg/frontend_server/lib/frontend_server.dart index 1885b4b6741..64c9c6bffcd 100644 --- a/pkg/frontend_server/lib/frontend_server.dart +++ b/pkg/frontend_server/lib/frontend_server.dart @@ -820,7 +820,7 @@ class FrontendCompiler implements CompilerInterface { final String? importDill = options['import-dill']; if (importDill != null) { - compilerOptions.additionalDills = [ + compilerOptions.additionalDillModules = [ 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 = [ - sdkRoot.resolve(platformKernelDill), - ...compilerOptions.additionalDills, - ]; - } results = await _runWithPrintRedirection( () => compileToKernel( new KernelCompilationArguments( diff --git a/pkg/native_compiler/lib/modular_aot_compiler.dart b/pkg/native_compiler/lib/modular_aot_compiler.dart index fc79cf72d05..a5636f8574c 100644 --- a/pkg/native_compiler/lib/modular_aot_compiler.dart +++ b/pkg/native_compiler/lib/modular_aot_compiler.dart @@ -199,9 +199,9 @@ Future runCompilerWithCommandLineArguments(List arguments) async { final platformKernelUri = Uri.base.resolveUri(new Uri.file(platformKernel)); - final additionalDills = []; + final additionalDillModules = []; 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 runCompilerWithCommandLineArguments(List arguments) async { final compilerOptions = CompilerOptions() ..sdkSummary = platformKernelUri ..fileSystem = fileSystem - ..additionalDills = additionalDills + ..additionalDillModules = additionalDillModules ..packagesFileUri = packagesUri ..explicitExperimentalFlags = parseExperimentalFlags( parseExperimentalArguments(experimentalFlags), diff --git a/pkg/native_compiler/test/ir_test.dart b/pkg/native_compiler/test/ir_test.dart index 44962be928c..2f197554217 100644 --- a/pkg/native_compiler/test/ir_test.dart +++ b/pkg/native_compiler/test/ir_test.dart @@ -85,7 +85,7 @@ Future compileTestCaseToKernelProgram( ); final options = CompilerOptions() ..target = target - ..additionalDills = [platformKernel] + ..sdkSummary = platformKernel ..environmentDefines = {} ..onDiagnostic = (CfeDiagnosticMessage message) { fail("Compilation error: ${message.plainTextFormatted.join('\n')}"); diff --git a/pkg/vm/lib/kernel_front_end.dart b/pkg/vm/lib/kernel_front_end.dart index 9ae6ed80af9..245aa6a86a9 100644 --- a/pkg/vm/lib/kernel_front_end.dart +++ b/pkg/vm/lib/kernel_front_end.dart @@ -384,10 +384,6 @@ Future 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 additionalDills = []; - if (aot || linkPlatform) { - additionalDills.add(platformKernelUri); - } final verbosity = Verbosity.parseArgument(options['verbosity']); final errorPrinter = new ErrorPrinter(verbosity); @@ -423,7 +419,6 @@ Future 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 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? 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 {}, diff --git a/pkg/vm/test/common_test_utils.dart b/pkg/vm/test/common_test_utils.dart index d73cbfc3c92..438c68c6f59 100644 --- a/pkg/vm/test/common_test_utils.dart +++ b/pkg/vm/test/common_test_utils.dart @@ -46,7 +46,7 @@ Future compileTestCaseToKernelProgram( environmentDefines ??= {}; final options = new CompilerOptions() ..target = target - ..additionalDills = [platformKernel] + ..sdkSummary = platformKernel ..environmentDefines = environmentDefines ..packagesFileUri = packagesFileUri ..explicitExperimentalFlags = parseExperimentalFlags( @@ -72,7 +72,7 @@ Future compileTestCaseToKernelProgram( } finally { await sink.close(); } - options..additionalDills = [platformKernel, uri]; + options..additionalDillModules = [uri]; } final Component component = (await kernelForProgram( diff --git a/pkg/vm/test/incremental_compiler_test.dart b/pkg/vm/test/incremental_compiler_test.dart index b1149259554..cf269340d23 100644 --- a/pkg/vm/test/incremental_compiler_test.dart +++ b/pkg/vm/test/incremental_compiler_test.dart @@ -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 = [platformKernel] + ..sdkSummary = platformKernel ..onDiagnostic = (CfeDiagnosticMessage message) { fail("Compilation error: ${message.plainTextFormatted.join('\n')}"); } diff --git a/pkg/vm/test/modular_kernel_plus_aot_test.dart b/pkg/vm/test/modular_kernel_plus_aot_test.dart index 0e8b9762235..32effac18d5 100644 --- a/pkg/vm/test/modular_kernel_plus_aot_test.dart +++ b/pkg/vm/test/modular_kernel_plus_aot_test.dart @@ -108,14 +108,14 @@ Future compileToKernel( Uri packagesFile, Uri outputFile, List sources, - List additionalDills, + List additionalDillModules, ) async { final state = fe.initializeCompiler( null, sdkSummary, librariesFile, packagesFile, - additionalDills, + additionalDillModules, target, StandardFileSystem.instance, const [],