Skip to content

Commit c56a8be

Browse files
fishythefishCommit Queue
authored andcommitted
[dart2wasm] Replace "dynamic module" with "submodule" where appropriate.
Change-Id: I4e51e10928ccc26c18f2a63f6cb6b23cd618d853 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/426003 Commit-Queue: Mayank Patke <[email protected]> Reviewed-by: Ömer Ağacan <[email protected]> Reviewed-by: Nate Biggs <[email protected]>
1 parent 9ece92e commit c56a8be

20 files changed

+321
-319
lines changed

pkg/dart2wasm/lib/class_info.dart

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -374,13 +374,13 @@ class ClassInfoCollector {
374374
info = ClassInfo(cls, classId, superInfo.depth + 1, struct, superInfo,
375375
typeParameterMatch: typeParameterMatch);
376376
if (translator.dynamicModuleSupportEnabled &&
377-
cls.isDynamicModuleExtendable(translator.coreTypes)) {
378-
// If a class is extendable in a dynamic module then we have to be
377+
cls.isDynamicSubmoduleExtendable(translator.coreTypes)) {
378+
// If a class is extendable in a submodule then we have to be
379379
// conservative and mark it as not being final.
380380
struct.hasAnySubtypes = true;
381381
}
382382

383-
if (translator.isDynamicModule) {
383+
if (translator.isDynamicSubmodule) {
384384
final brandIndex = translator
385385
.dynamicModuleInfo!.metadata.classMetadata[cls]?.brandIndex;
386386
if (brandIndex != null) {
@@ -504,7 +504,7 @@ class ClassInfoCollector {
504504
// Class infos by class-id, will be populated by the calls to
505505
// [_createStructForClass] and [_createStructForRecordClass] below.
506506
translator.classes = List<ClassInfo>.filled(
507-
(classIdNumbering.maxDynamicModuleClassId ??
507+
(classIdNumbering.maxDynamicSubmoduleClassId ??
508508
classIdNumbering.maxClassId) +
509509
1,
510510
topInfo);
@@ -540,10 +540,10 @@ class ClassInfoCollector {
540540
for (final cls in dfsOrder) {
541541
ClassInfo? representation;
542542
if (translator.dynamicModuleSupportEnabled &&
543-
cls.isDynamicModuleExtendable(translator.coreTypes)) {
543+
cls.isDynamicSubmoduleExtendable(translator.coreTypes)) {
544544
assert(!translator.builtinTypes.containsKey(cls));
545545

546-
// If a class is extendable in a dynamic module then we have to be
546+
// If a class is extendable in a dynamic submodule then we have to be
547547
// conservative and assume it might be a subclass of Object. The Object
548548
// class maps to topInfo because boxed values are a subtype of Object in
549549
// Dart but not of the object struct.
@@ -567,16 +567,16 @@ class ClassInfoCollector {
567567
final mainModuleConcreteRange =
568568
classIdNumbering.getConcreteClassIdRangeForMainModule(cls);
569569
// Only non-extendable classes can get here so they should only have
570-
// concrete implementations in either the main module or the dynamic
571-
// module, not both.
572-
if (translator.isDynamicModule && mainModuleConcreteRange.isEmpty) {
573-
final dynamicModuleConcreteRange =
574-
classIdNumbering.getConcreteClassIdRangeForDynamicModule(cls);
575-
assert(dynamicModuleConcreteRange.isNotEmpty);
576-
addRanges(dynamicModuleConcreteRange);
570+
// concrete implementations in either the main module or the submodule,
571+
// not both.
572+
if (translator.isDynamicSubmodule && mainModuleConcreteRange.isEmpty) {
573+
final submoduleConcreteRange =
574+
classIdNumbering.getConcreteClassIdRangeForDynamicSubmodule(cls);
575+
assert(submoduleConcreteRange.isNotEmpty);
576+
addRanges(submoduleConcreteRange);
577577
} else {
578578
assert(classIdNumbering
579-
.getConcreteClassIdRangeForDynamicModule(cls)
579+
.getConcreteClassIdRangeForDynamicSubmodule(cls)
580580
.isEmpty);
581581
addRanges(mainModuleConcreteRange);
582582
}
@@ -608,31 +608,31 @@ class ClassIdNumbering {
608608
final Map<Class, List<Class>> _subclasses;
609609
final Map<Class, List<Class>> _implementors;
610610
final Map<Class, List<Range>> _concreteSubclassIdRange;
611-
final Map<Class, List<Range>> _concreteSubclassIdRangeForDynamicModule;
611+
final Map<Class, List<Range>> _concreteSubclassIdRangeForDynamicSubmodule;
612612
final Set<Class> _masqueraded;
613613

614614
final List<Class> dfsOrder;
615615
final Map<Class, ClassId> classIds;
616616
final int maxConcreteClassId;
617617
final int maxClassId;
618-
final int? maxDynamicModuleConcreteClassId;
619-
final int? maxDynamicModuleClassId;
618+
final int? maxDynamicSubmoduleConcreteClassId;
619+
final int? maxDynamicSubmoduleClassId;
620620

621-
int get firstDynamicModuleClassId => maxClassId + 1;
621+
int get firstDynamicSubmoduleClassId => maxClassId + 1;
622622

623623
ClassIdNumbering._(
624624
this.translator,
625625
this._subclasses,
626626
this._implementors,
627627
this._concreteSubclassIdRange,
628-
this._concreteSubclassIdRangeForDynamicModule,
628+
this._concreteSubclassIdRangeForDynamicSubmodule,
629629
this._masqueraded,
630630
this.dfsOrder,
631631
this.classIds,
632632
this.maxConcreteClassId,
633633
this.maxClassId,
634-
this.maxDynamicModuleConcreteClassId,
635-
this.maxDynamicModuleClassId);
634+
this.maxDynamicSubmoduleConcreteClassId,
635+
this.maxDynamicSubmoduleClassId);
636636

637637
final Map<Class, Set<Class>> _transitiveImplementors = {};
638638
Set<Class> _getTransitiveImplementors(Class klass) {
@@ -670,17 +670,17 @@ class ClassIdNumbering {
670670
klass, _concreteClassIdRanges, _concreteSubclassIdRange);
671671
}
672672

673-
final Map<Class, List<Range>> _concreteClassIdRangesForDynamicModule = {};
674-
List<Range> getConcreteClassIdRangeForDynamicModule(Class klass) {
673+
final Map<Class, List<Range>> _concreteClassIdRangesForDynamicSubmodule = {};
674+
List<Range> getConcreteClassIdRangeForDynamicSubmodule(Class klass) {
675675
return _getConcreteClassIdRange(
676676
klass,
677-
_concreteClassIdRangesForDynamicModule,
678-
_concreteSubclassIdRangeForDynamicModule);
677+
_concreteClassIdRangesForDynamicSubmodule,
678+
_concreteSubclassIdRangeForDynamicSubmodule);
679679
}
680680

681681
List<Range> getConcreteClassIdRangeForCurrentModule(Class klass) {
682-
return translator.isDynamicModule
683-
? getConcreteClassIdRangeForDynamicModule(klass)
682+
return translator.isDynamicSubmodule
683+
? getConcreteClassIdRangeForDynamicSubmodule(klass)
684684
: getConcreteClassIdRangeForMainModule(klass);
685685
}
686686

@@ -727,7 +727,7 @@ class ClassIdNumbering {
727727
final implementors = <Class, List<Class>>{};
728728
final classIds = <Class, ClassId>{};
729729

730-
if (translator.isDynamicModule) {
730+
if (translator.isDynamicSubmodule) {
731731
final savedMapping = translator.dynamicModuleInfo!.metadata.classMetadata;
732732
savedMapping.forEach((cls, metadata) {
733733
final classId = metadata.classId;
@@ -832,7 +832,7 @@ class ClassIdNumbering {
832832
// Maps any class to a dense range of concrete class ids that are subclasses
833833
// of that class.
834834
final concreteSubclassRanges = <Class, List<Range>>{};
835-
final concreteSubclassRangesForDynamicModule = <Class, List<Range>>{};
835+
final concreteSubclassRangesForDynamicSubmodule = <Class, List<Range>>{};
836836

837837
int nextConcreteClassId = (savedMaxClassId ?? (firstClassId - 1)) + 1;
838838
int nextAbstractClassId = nextConcreteClassId + concreteClassCount;
@@ -867,7 +867,7 @@ class ClassIdNumbering {
867867
}
868868

869869
final subclassesRangesToBuild = savedMaxClassId != null
870-
? concreteSubclassRangesForDynamicModule
870+
? concreteSubclassRangesForDynamicSubmodule
871871
: concreteSubclassRanges;
872872

873873
dfs(root, (Class cls) {
@@ -911,7 +911,7 @@ class ClassIdNumbering {
911911
subclasses,
912912
implementors,
913913
concreteSubclassRanges,
914-
concreteSubclassRangesForDynamicModule,
914+
concreteSubclassRangesForDynamicSubmodule,
915915
masqueraded,
916916
dfsOrder,
917917
classIds,

pkg/dart2wasm/lib/closures.dart

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -203,11 +203,11 @@ class ClosureLayouter extends RecursiveVisitor {
203203
late final List<List<ClosureRepresentationsForParameterCount>>
204204
representations;
205205

206-
// Dynamic modules invoke closures dynamically so they use the base structs
206+
// Dynamic submodules invoke closures dynamically so they use the base structs
207207
// in all cases. Therefore, We only need one global copy of the
208208
// ClosureRepresentation for generic and one for non-generic functions.
209-
ClosureRepresentation? _dynamicModuleRepresentation;
210-
ClosureRepresentation? _dynamicModuleGenericRepresentation;
209+
ClosureRepresentation? _dynamicSubmoduleRepresentation;
210+
ClosureRepresentation? _dynamicSubmoduleGenericRepresentation;
211211

212212
Set<Constant> visitedConstants = Set.identity();
213213

@@ -327,7 +327,7 @@ class ClosureLayouter extends RecursiveVisitor {
327327
final type = translator.typesBuilder
328328
.defineStruct(name, fields: fields, superType: superType);
329329
if (translator.dynamicModuleSupportEnabled) {
330-
// Pessimistically assume there will be subtypes in a dynamic module. This
330+
// Pessimistically assume there will be subtypes in a submodule. This
331331
// ensures the struct is not final in all modules so the types are equal.
332332
type.hasAnySubtypes = true;
333333
}
@@ -406,10 +406,10 @@ class ClosureLayouter extends RecursiveVisitor {
406406
int typeCount, int positionalCount, List<String> names) {
407407
if (translator.dynamicModuleSupportEnabled) {
408408
if (typeCount == 0) {
409-
return _dynamicModuleRepresentation ??=
409+
return _dynamicSubmoduleRepresentation ??=
410410
_createRepresentation(typeCount, 0, const [], null, null, const []);
411411
}
412-
return _dynamicModuleGenericRepresentation ??=
412+
return _dynamicSubmoduleGenericRepresentation ??=
413413
_createRepresentation(typeCount, 0, const [], null, null, const []);
414414
}
415415
final representations =
@@ -524,7 +524,7 @@ class ClosureLayouter extends RecursiveVisitor {
524524
// generation, after the imports have been added.
525525

526526
representation._instantiationTrampolinesGenerator = (module) {
527-
// Dynamic modules do not have any trampolines, only a dynamic call
527+
// Dynamic submodules do not have any trampolines, only a dynamic call
528528
// entry point.
529529
if (translator.dynamicModuleSupportEnabled) return const [];
530530
List<w.BaseFunction> instantiationTrampolines = [

pkg/dart2wasm/lib/code_generator.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1952,7 +1952,7 @@ abstract class AstCodeGenerator
19521952
List<({Range range, Reference target})> targetRanges = targets.targetRanges;
19531953
List<({Range range, Reference target})> staticDispatchRanges =
19541954
targets.staticDispatchRanges;
1955-
if (!selector.isDynamicModuleOverrideable) {
1955+
if (!selector.isDynamicSubmoduleOverridable) {
19561956
if (targetRanges.length == 1) {
19571957
final target = translator.getFunctionEntry(targetRanges[0].target,
19581958
uncheckedEntry: useUncheckedEntry);

pkg/dart2wasm/lib/compile.dart

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -174,14 +174,14 @@ Future<CompilationResult> compileToModule(
174174
compilerOptions.compileSdk = true;
175175
}
176176

177-
final dynamicModuleMainUri = await resolveUri(options.dynamicModuleMainUri);
177+
final dynamicMainModuleUri = await resolveUri(options.dynamicMainModuleUri);
178178
final dynamicInterfaceUri = await resolveUri(options.dynamicInterfaceUri);
179179
final isDynamicMainModule =
180180
options.dynamicModuleType == DynamicModuleType.main;
181181
final isDynamicSubmodule =
182182
options.dynamicModuleType == DynamicModuleType.submodule;
183183
if (isDynamicSubmodule) {
184-
compilerOptions.additionalDills.add(dynamicModuleMainUri!);
184+
compilerOptions.additionalDills.add(dynamicMainModuleUri!);
185185

186186
if (options.validateDynamicModules) {
187187
// We must pass the unresolved URI here to be compatible with the CFE
@@ -218,24 +218,24 @@ Future<CompilationResult> compileToModule(
218218
}
219219

220220
var jsInteropMethods = js.performJSInteropTransformations(
221-
component.getDynamicModuleLibraries(coreTypes),
221+
component.getDynamicSubmoduleLibraries(coreTypes),
222222
coreTypes,
223223
classHierarchy);
224224

225225
if (isDynamicSubmodule) {
226-
// Join the dynamic module libraries with the TFAed component from the main
226+
// Join the submodule libraries with the TFAed component from the main
227227
// module compilation. JS interop transformer must be run before this since
228228
// some methods it uses may have been tree-shaken from the TFAed component.
229-
(component, jsInteropMethods) = await generateDynamicModuleComponent(
230-
component, coreTypes, dynamicModuleMainUri!, jsInteropMethods);
229+
(component, jsInteropMethods) = await generateDynamicSubmoduleComponent(
230+
component, coreTypes, dynamicMainModuleUri!, jsInteropMethods);
231231
coreTypes = CoreTypes(component);
232232
classHierarchy =
233233
ClassHierarchy(component, coreTypes) as ClosedWorldClassHierarchy;
234234
libraryIndex = LibraryIndex(component, _librariesToIndex);
235235
}
236236

237237
final librariesToTransform = isDynamicSubmodule
238-
? component.getDynamicModuleLibraries(coreTypes)
238+
? component.getDynamicSubmoduleLibraries(coreTypes)
239239
: component.libraries;
240240
final constantEvaluator = ConstantEvaluator(
241241
options, target, component, coreTypes, classHierarchy, libraryIndex);
@@ -245,7 +245,7 @@ Future<CompilationResult> compileToModule(
245245
final Map<RecordShape, Class> recordClasses = generateRecordClasses(
246246
component, coreTypes,
247247
isDynamicMainModule: isDynamicMainModule,
248-
isDynamicModule: isDynamicSubmodule);
248+
isDynamicSubmodule: isDynamicSubmodule);
249249
target.recordClasses = recordClasses;
250250

251251
if (options.dumpKernelBeforeTfa != null) {
@@ -268,8 +268,8 @@ Future<CompilationResult> compileToModule(
268268
File.fromUri(dynamicInterfaceUri!).readAsStringSync(),
269269
options.dynamicInterfaceUri!);
270270
} else if (isDynamicSubmodule) {
271-
moduleStrategy = DynamicModuleStrategy(
272-
component, options, target, coreTypes, dynamicModuleMainUri!);
271+
moduleStrategy = DynamicSubmoduleStrategy(
272+
component, options, target, coreTypes, dynamicMainModuleUri!);
273273
} else {
274274
moduleStrategy = DefaultModuleStrategy(component);
275275
}
@@ -282,10 +282,10 @@ Future<CompilationResult> compileToModule(
282282
if (isDynamicSubmodule) {
283283
mainModuleMetadata =
284284
await deserializeMainModuleMetadata(component, options);
285-
mainModuleMetadata.verifyDynamicModuleOptions(options);
285+
mainModuleMetadata.verifyDynamicSubmoduleOptions(options);
286286
} else if (isDynamicMainModule) {
287287
MainModuleMetadata.verifyMainModuleOptions(options);
288-
await serializeMainModuleComponent(component, dynamicModuleMainUri!,
288+
await serializeMainModuleComponent(component, dynamicMainModuleUri!,
289289
optimized: false);
290290
}
291291

@@ -340,7 +340,7 @@ Future<CompilationResult> compileToModule(
340340
final jsRuntimeFinalizer = js.RuntimeFinalizer(jsInteropMethods);
341341

342342
final jsRuntime = isDynamicSubmodule
343-
? jsRuntimeFinalizer.generateDynamicModule(
343+
? jsRuntimeFinalizer.generateDynamicSubmodule(
344344
translator.functions.translatedProcedures,
345345
translator.internalizedStringsForJSRuntime)
346346
: jsRuntimeFinalizer.generate(
@@ -354,7 +354,7 @@ Future<CompilationResult> compileToModule(
354354
final supportJs = _generateSupportJs(options.translatorOptions);
355355
if (isDynamicMainModule) {
356356
await serializeMainModuleMetadata(component, translator, options);
357-
await serializeMainModuleComponent(component, dynamicModuleMainUri!,
357+
await serializeMainModuleComponent(component, dynamicMainModuleUri!,
358358
optimized: true);
359359
}
360360

pkg/dart2wasm/lib/compiler_options.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ class WasmCompilerOptions {
1717
String outputFile;
1818
String? depFile;
1919
DynamicModuleType? dynamicModuleType;
20-
Uri? dynamicModuleMainUri;
20+
Uri? dynamicMainModuleUri;
2121
Uri? dynamicInterfaceUri;
2222
Uri? dynamicModuleMetadataFile;
2323
bool validateDynamicModules = true;
@@ -45,7 +45,7 @@ class WasmCompilerOptions {
4545
}
4646

4747
if (enableDynamicModules) {
48-
if (dynamicModuleMainUri == null) {
48+
if (dynamicMainModuleUri == null) {
4949
throw ArgumentError("--dynamic-module-main must be specified if "
5050
"compiling dynamic modules.");
5151
}

pkg/dart2wasm/lib/constant_evaluator.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ class ConstantEvaluator extends kernel.ConstantEvaluator
3434
LibraryIndex libraryIndex)
3535
: _checkBounds = !options.translatorOptions.omitBoundsChecks,
3636
_minify = options.translatorOptions.minify,
37-
_hasDynamicModuleSupport = options.dynamicModuleMainUri != null,
37+
_hasDynamicModuleSupport = options.enableDynamicModules,
3838
_deferredLoadingEnabled =
3939
options.translatorOptions.enableDeferredLoading ||
4040
options.translatorOptions.enableMultiModuleStressTestMode,

0 commit comments

Comments
 (0)