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 |
deleted file mode 100644 |
index c806de07febf4a44cdd7a062a6986a978e3aa73c..0000000000000000000000000000000000000000 |
--- a/pkg/front_end/lib/src/fasta/fasta.dart |
+++ /dev/null |
@@ -1,223 +0,0 @@ |
-// Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file |
-// for details. All rights reserved. Use of this source code is governed by a |
-// BSD-style license that can be found in the LICENSE file. |
- |
-library fasta; |
- |
-import 'dart:async' show Future; |
- |
-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:kernel/kernel.dart' show Program, loadProgramFromBytes; |
- |
-import 'compiler_command_line.dart' show CompilerCommandLine; |
- |
-import 'compiler_context.dart' show CompilerContext; |
- |
-import 'deprecated_problems.dart' |
- show deprecated_InputError, deprecated_inputError; |
- |
-import 'kernel/kernel_target.dart' show KernelTarget; |
- |
-import 'package:kernel/target/targets.dart' show Target; |
- |
-import 'dill/dill_target.dart' show DillTarget; |
- |
-import 'severity.dart' show Severity; |
- |
-import 'ticker.dart' show Ticker; |
- |
-import 'uri_translator.dart' show UriTranslator; |
- |
-const bool summary = const bool.fromEnvironment("summary", defaultValue: false); |
-const int iterations = const int.fromEnvironment("iterations", defaultValue: 1); |
- |
-compileEntryPoint(List<String> arguments) async { |
- // Timing results for each iteration |
- List<double> elapsedTimes = <double>[]; |
- |
- for (int i = 0; i < iterations; i++) { |
- if (i > 0) { |
- print("\n\n=== Iteration ${i+1} of $iterations"); |
- } |
- var stopwatch = new Stopwatch()..start(); |
- await compile(arguments); |
- stopwatch.stop(); |
- |
- elapsedTimes.add(stopwatch.elapsedMilliseconds.toDouble()); |
- } |
- |
- if (summary) { |
- var json = JSON.encode(<String, dynamic>{'elapsedTimes': elapsedTimes}); |
- print('\nSummary: $json'); |
- } |
-} |
- |
-outlineEntryPoint(List<String> arguments) async { |
- for (int i = 0; i < iterations; i++) { |
- if (i > 0) { |
- print("\n"); |
- } |
- await outline(arguments); |
- } |
-} |
- |
-Future<KernelTarget> outline(List<String> arguments) async { |
- try { |
- return await CompilerCommandLine.withGlobalOptions( |
- "outline", arguments, true, (CompilerContext c, _) async { |
- if (c.options.verbose) { |
- print("Building outlines for ${arguments.join(' ')}"); |
- } |
- CompileTask task = |
- new CompileTask(c, new Ticker(isVerbose: c.options.verbose)); |
- return await task.buildOutline(c.options.output); |
- }); |
- } on deprecated_InputError catch (e) { |
- exitCode = 1; |
- 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, true, (CompilerContext c, _) async { |
- if (c.options.verbose) { |
- print("Compiling directly to Kernel: ${arguments.join(' ')}"); |
- } |
- CompileTask task = |
- new CompileTask(c, new Ticker(isVerbose: c.options.verbose)); |
- return await task.compile(); |
- }); |
- } on deprecated_InputError catch (e) { |
- exitCode = 1; |
- CompilerContext.runWithDefaultOptions( |
- (c) => c.report(deprecated_InputError.toMessage(e), Severity.error)); |
- return null; |
- } |
-} |
- |
-class CompileTask { |
- final CompilerContext c; |
- final Ticker ticker; |
- |
- CompileTask(this.c, this.ticker); |
- |
- DillTarget createDillTarget(UriTranslator uriTranslator) { |
- return new DillTarget(ticker, uriTranslator, c.options.target); |
- } |
- |
- KernelTarget createKernelTarget( |
- DillTarget dillTarget, UriTranslator uriTranslator, bool strongMode) { |
- return new KernelTarget( |
- c.fileSystem, false, dillTarget, uriTranslator, c.uriToSource); |
- } |
- |
- Future<KernelTarget> buildOutline([Uri output]) async { |
- UriTranslator uriTranslator = await c.options.getUriTranslator(); |
- ticker.logMs("Read packages file"); |
- DillTarget dillTarget = createDillTarget(uriTranslator); |
- KernelTarget kernelTarget = |
- createKernelTarget(dillTarget, uriTranslator, c.options.strongMode); |
- if (c.options.strongMode) { |
- print("Note: strong mode support is preliminary and may not work."); |
- } |
- Uri platform = c.options.sdkSummary; |
- if (platform != null) { |
- _appendDillForUri(dillTarget, platform); |
- } |
- Uri uri = c.options.inputs.first; |
- String path = uriTranslator.translate(uri)?.path ?? uri.path; |
- if (path.endsWith(".dart")) { |
- kernelTarget.read(uri); |
- } else { |
- deprecated_inputError(uri, -1, "Unexpected input: $uri"); |
- } |
- await dillTarget.buildOutlines(); |
- var outline = await kernelTarget.buildOutlines(); |
- if (c.options.debugDump && output != null) { |
- printProgramText(outline, libraryFilter: kernelTarget.isSourceLibrary); |
- } |
- if (output != null) { |
- await writeProgramToFile(outline, output); |
- ticker.logMs("Wrote outline to ${output.toFilePath()}"); |
- } |
- return kernelTarget; |
- } |
- |
- Future<Uri> compile() async { |
- KernelTarget kernelTarget = await buildOutline(); |
- if (exitCode != 0) return null; |
- Uri uri = c.options.output; |
- var program = await kernelTarget.buildProgram(verify: c.options.verify); |
- if (c.options.debugDump) { |
- printProgramText(program, libraryFilter: kernelTarget.isSourceLibrary); |
- } |
- await writeProgramToFile(program, uri); |
- ticker.logMs("Wrote program to ${uri.toFilePath()}"); |
- return uri; |
- } |
-} |
- |
-// 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, |
- 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 { |
- UriTranslator uriTranslator = await c.options.getUriTranslator(); |
- c.options.ticker.logMs("Read packages file"); |
- DillTarget dillTarget = |
- 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); |
- |
- kernelTarget.read(script); |
- await dillTarget.buildOutlines(); |
- await kernelTarget.loader.buildOutlines(); |
- return await kernelTarget.loader.getDependencies(); |
- }); |
-} |
- |
-/// Load the [Program] from the given [uri] and append its libraries |
-/// to the [dillTarget]. |
-void _appendDillForUri(DillTarget dillTarget, Uri uri) { |
- var bytes = new File.fromUri(uri).readAsBytesSync(); |
- var platformProgram = loadProgramFromBytes(bytes); |
- platformProgram.unbindCanonicalNames(); |
- dillTarget.loader.appendLibraries(platformProgram); |
-} |
- |
-// TODO(ahe): https://github.com/dart-lang/sdk/issues/28316 |
-class ByteSink implements Sink<List<int>> { |
- final BytesBuilder builder = new BytesBuilder(); |
- |
- void add(List<int> data) { |
- builder.add(data); |
- } |
- |
- void close() { |
- // Nothing to do. |
- } |
-} |