Chromium Code Reviews| Index: pkg/front_end/lib/src/fasta/fasta.dart |
| diff --git a/pkg/front_end/lib/src/fasta/fasta.dart b/pkg/front_end/lib/src/fasta/fasta.dart |
| index ce753f7c6af2a4c60baaa3aed037ff752ea2c666..c806de07febf4a44cdd7a062a6986a978e3aa73c 100644 |
| --- a/pkg/front_end/lib/src/fasta/fasta.dart |
| +++ b/pkg/front_end/lib/src/fasta/fasta.dart |
| @@ -10,9 +10,10 @@ import 'dart:convert' show JSON; |
| import 'dart:io' show BytesBuilder, File, exitCode; |
| +import 'package:front_end/compiler_options.dart'; |
| +import 'package:front_end/src/base/processed_options.dart'; |
| import 'package:front_end/physical_file_system.dart'; |
| import 'package:front_end/src/fasta/kernel/utils.dart'; |
| -import 'package:front_end/src/fasta/uri_translator_impl.dart'; |
| import 'package:kernel/kernel.dart' show Program, loadProgramFromBytes; |
| @@ -25,9 +26,9 @@ import 'deprecated_problems.dart' |
| import 'kernel/kernel_target.dart' show KernelTarget; |
| -import 'dill/dill_target.dart' show DillTarget; |
| +import 'package:kernel/target/targets.dart' show Target; |
| -import 'compile_platform.dart' show compilePlatformInternal; |
| +import 'dill/dill_target.dart' show DillTarget; |
| import 'severity.dart' show Severity; |
| @@ -70,8 +71,8 @@ outlineEntryPoint(List<String> arguments) async { |
| Future<KernelTarget> outline(List<String> arguments) async { |
| try { |
| - return await CompilerCommandLine.withGlobalOptions("outline", arguments, |
| - (CompilerContext c) async { |
| + return await CompilerCommandLine.withGlobalOptions( |
| + "outline", arguments, true, (CompilerContext c, _) async { |
| if (c.options.verbose) { |
| print("Building outlines for ${arguments.join(' ')}"); |
| } |
| @@ -81,17 +82,16 @@ Future<KernelTarget> outline(List<String> arguments) async { |
| }); |
| } 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<Uri> compile(List<String> arguments) async { |
| try { |
| - return await CompilerCommandLine.withGlobalOptions("compile", arguments, |
| - (CompilerContext c) async { |
| + return await CompilerCommandLine.withGlobalOptions( |
| + "compile", arguments, true, (CompilerContext c, _) async { |
| if (c.options.verbose) { |
| print("Compiling directly to Kernel: ${arguments.join(' ')}"); |
| } |
| @@ -101,9 +101,8 @@ Future<Uri> compile(List<String> arguments) async { |
| }); |
| } 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; |
| } |
| } |
| @@ -125,8 +124,7 @@ class CompileTask { |
| } |
| Future<KernelTarget> buildOutline([Uri output]) async { |
|
Siggi Cherem (dart-lang)
2017/07/18 00:11:08
Peter - this task now is practically doing the sam
ahe
2017/07/18 10:40:51
Yes. We just need to make sure that the Ticker sti
Siggi Cherem (dart-lang)
2017/07/18 22:50:44
Sounds good, I like this plan.
|
| - UriTranslator uriTranslator = await UriTranslatorImpl |
| - .parse(c.fileSystem, c.options.sdk, packages: c.options.packages); |
| + UriTranslator uriTranslator = await c.options.getUriTranslator(); |
| ticker.logMs("Read packages file"); |
| DillTarget dillTarget = createDillTarget(uriTranslator); |
| KernelTarget kernelTarget = |
| @@ -134,13 +132,12 @@ class CompileTask { |
| if (c.options.strongMode) { |
| print("Note: strong mode support is preliminary and may not work."); |
| } |
| - Uri platform = c.options.platform; |
| + Uri platform = c.options.sdkSummary; |
| if (platform != null) { |
| _appendDillForUri(dillTarget, platform); |
| } |
| - String argument = c.options.arguments.first; |
| - Uri uri = Uri.base.resolve(argument); |
| - String path = uriTranslator.translate(uri)?.path ?? argument; |
| + Uri uri = c.options.inputs.first; |
| + String path = uriTranslator.translate(uri)?.path ?? uri.path; |
| if (path.endsWith(".dart")) { |
| kernelTarget.read(uri); |
| } else { |
| @@ -148,7 +145,7 @@ class CompileTask { |
| } |
| await dillTarget.buildOutlines(); |
| var outline = await kernelTarget.buildOutlines(); |
| - if (c.options.dumpIr && output != null) { |
| + if (c.options.debugDump && output != null) { |
| printProgramText(outline, libraryFilter: kernelTarget.isSourceLibrary); |
| } |
| if (output != null) { |
| @@ -163,7 +160,7 @@ class CompileTask { |
| if (exitCode != 0) return null; |
| Uri uri = c.options.output; |
| var program = await kernelTarget.buildProgram(verify: c.options.verify); |
| - if (c.options.dumpIr) { |
| + if (c.options.debugDump) { |
| printProgramText(program, libraryFilter: kernelTarget.isSourceLibrary); |
| } |
| await writeProgramToFile(program, uri); |
| @@ -172,50 +169,26 @@ class CompileTask { |
| } |
| } |
| -Future compilePlatform(Uri patchedSdk, Uri fullOutput, |
| - {Uri outlineOutput, |
| - Uri packages, |
| - bool verbose: false, |
| - String backendTarget}) async { |
| - backendTarget ??= "vm_fasta"; |
| - Ticker ticker = new Ticker(isVerbose: verbose); |
| - await CompilerCommandLine.withGlobalOptions("", [""], (CompilerContext c) { |
| - c.options.options["--target"] = backendTarget; |
| - c.options.options["--packages"] = packages; |
| - if (verbose) { |
| - c.options.options["--verbose"] = true; |
| - } |
| - c.options.validate(); |
| - return compilePlatformInternal( |
| - c, ticker, patchedSdk, fullOutput, outlineOutput); |
| - }); |
| -} |
| - |
| // TODO(sigmund): reimplement this API using the directive listener intead. |
| Future<List<Uri>> getDependencies(Uri script, |
| {Uri sdk, |
| Uri packages, |
| Uri platform, |
| bool verbose: false, |
| - String backendTarget}) async { |
| - backendTarget ??= "vm_fasta"; |
| - Ticker ticker = new Ticker(isVerbose: verbose); |
| - return await CompilerCommandLine.withGlobalOptions("", [""], |
| + Target target}) async { |
| + var options = new CompilerOptions() |
| + ..target = target |
| + ..verbose = verbose |
| + ..packagesFileUri = packages |
| + ..sdkSummary = platform |
| + ..sdkRoot = sdk; |
| + var pOptions = new ProcessedOptions(options); |
| + return await CompilerContext.runWithOptions(pOptions, |
| (CompilerContext c) async { |
| - c.options.options["--target"] = backendTarget; |
| - c.options.options["--strong-mode"] = false; |
| - c.options.options["--packages"] = packages; |
| - if (verbose) { |
| - c.options.options["--verbose"] = true; |
| - } |
| - c.options.validate(); |
| - sdk ??= c.options.sdk; |
| - |
| - UriTranslator uriTranslator = await UriTranslatorImpl |
| - .parse(c.fileSystem, sdk, packages: c.options.packages); |
| - ticker.logMs("Read packages file"); |
| + UriTranslator uriTranslator = await c.options.getUriTranslator(); |
| + c.options.ticker.logMs("Read packages file"); |
| DillTarget dillTarget = |
| - new DillTarget(ticker, uriTranslator, c.options.target); |
| + new DillTarget(c.options.ticker, uriTranslator, c.options.target); |
| if (platform != null) _appendDillForUri(dillTarget, platform); |
| KernelTarget kernelTarget = new KernelTarget(PhysicalFileSystem.instance, |
| false, dillTarget, uriTranslator, c.uriToSource); |