Chromium Code Reviews| Index: pkg/front_end/lib/src/fasta/compile_platform.dart |
| diff --git a/pkg/front_end/lib/src/fasta/compile_platform.dart b/pkg/front_end/lib/src/fasta/compile_platform.dart |
| index 3403469581fc1410e97f041387a4f2be88b37ce6..c95a67040ad83357828b9991066095ec9255cf73 100644 |
| --- a/pkg/front_end/lib/src/fasta/compile_platform.dart |
| +++ b/pkg/front_end/lib/src/fasta/compile_platform.dart |
| @@ -8,11 +8,7 @@ import 'dart:async' show Future; |
| import 'dart:io' show exitCode, File; |
| -import '../../compiler_options.dart' show CompilerOptions; |
| - |
| -import '../base/processed_options.dart' show ProcessedOptions; |
| - |
| -import '../kernel_generator_impl.dart' show generateKernel; |
| +import '../kernel_generator_impl.dart' show generateKernelInternal; |
| import 'compiler_command_line.dart' show CompilerCommandLine; |
| @@ -24,8 +20,6 @@ import 'kernel/utils.dart' show writeProgramToFile; |
| import 'severity.dart' show Severity; |
| -import 'ticker.dart' show Ticker; |
| - |
| const int iterations = const int.fromEnvironment("iterations", defaultValue: 1); |
| Future mainEntryPoint(List<String> arguments) async { |
| @@ -37,54 +31,44 @@ Future mainEntryPoint(List<String> arguments) async { |
| await compilePlatform(arguments); |
| } on deprecated_InputError catch (e) { |
| exitCode = 1; |
| - CompilerCommandLine.deprecated_withDefaultOptions(() => CompilerContext |
| - .current |
| - .report(deprecated_InputError.toMessage(e), Severity.error)); |
| + CompilerContext.runWithDefaultOptions( |
| + (c) => c.report(deprecated_InputError.toMessage(e), Severity.error)); |
| return null; |
| } |
| } |
| } |
| Future compilePlatform(List<String> arguments) async { |
| - Ticker ticker = new Ticker(); |
|
ahe
2017/07/18 10:40:50
When is this initialized?
Siggi Cherem (dart-lang)
2017/07/18 22:50:43
When we allocate the context, which happens on thi
|
| - await CompilerCommandLine.withGlobalOptions("compile_platform", arguments, |
| - (CompilerContext c) { |
| - Uri patchedSdk = Uri.base.resolveUri(new Uri.file(c.options.arguments[0])); |
| - Uri fullOutput = Uri.base.resolveUri(new Uri.file(c.options.arguments[1])); |
| - Uri outlineOutput = |
| - Uri.base.resolveUri(new Uri.file(c.options.arguments[2])); |
| - return compilePlatformInternal( |
| - c, ticker, patchedSdk, fullOutput, outlineOutput); |
| + await CompilerCommandLine |
| + .withGlobalOptions("compile_platform", arguments, false, |
| + (CompilerContext c, List<String> restArguments) { |
| + c.options.inputs.add(Uri.parse('dart:core')); |
| + // Note: the patchedSdk argument is already stored in c.options.sdkRoot. |
| + Uri fullOutput = Uri.base.resolveUri(new Uri.file(restArguments[1])); |
| + Uri outlineOutput = Uri.base.resolveUri(new Uri.file(restArguments[2])); |
| + return compilePlatformInternal(c, fullOutput, outlineOutput); |
| }); |
| } |
| -Future compilePlatformInternal(CompilerContext c, Ticker ticker, Uri patchedSdk, |
| - Uri fullOutput, Uri outlineOutput) async { |
| - var options = new CompilerOptions() |
| - ..strongMode = c.options.strongMode |
| - ..sdkRoot = patchedSdk |
| - ..packagesFileUri = c.options.packages |
| - ..compileSdk = true |
| - ..chaseDependencies = true |
| - ..target = c.options.target |
| - ..debugDump = c.options.dumpIr |
| - ..verify = c.options.verify |
| - ..verbose = c.options.verbose; |
| - |
| - if (options.strongMode) { |
| +Future compilePlatformInternal( |
| + CompilerContext c, Uri fullOutput, Uri outlineOutput) async { |
| + if (c.options.strongMode) { |
| print("Note: strong mode support is preliminary and may not work."); |
| } |
| - if (options.verbose) { |
| - print("Generating outline of $patchedSdk into $outlineOutput"); |
| - print("Compiling $patchedSdk to $fullOutput"); |
| + if (c.options.verbose) { |
| + print("Generating outline of ${c.options.sdkRoot} into $outlineOutput"); |
| + print("Compiling ${c.options.sdkRoot} to $fullOutput"); |
| } |
| - var result = await generateKernel( |
| - new ProcessedOptions(options, false, [Uri.parse('dart:core')]), |
| - buildSummary: true, |
| - buildProgram: true); |
| + var result = |
| + await generateKernelInternal(buildSummary: true, buildProgram: true); |
| + if (result == null) { |
| + // Note: an error should have been reported by now. |
| + print('The platform .dill files were not created.'); |
| + return; |
| + } |
| new File.fromUri(outlineOutput).writeAsBytesSync(result.summary); |
| - ticker.logMs("Wrote outline to ${outlineOutput.toFilePath()}"); |
| + c.options.ticker.logMs("Wrote outline to ${outlineOutput.toFilePath()}"); |
| await writeProgramToFile(result.program, fullOutput); |
| - ticker.logMs("Wrote program to ${fullOutput.toFilePath()}"); |
| + c.options.ticker.logMs("Wrote program to ${fullOutput.toFilePath()}"); |
|
ahe
2017/07/18 16:54:37
Note: I'm currently seeing these messages printed
Siggi Cherem (dart-lang)
2017/07/18 22:50:43
Is that an invariant you would like to preserve?
|
| } |