| 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 865192b2aa6fed78a8eaa327703b6683a72d2e65..0dfe70dcd31938925872ab4336a9cba52f8f8b56 100644
|
| --- a/pkg/front_end/lib/src/fasta/fasta.dart
|
| +++ b/pkg/front_end/lib/src/fasta/fasta.dart
|
| @@ -8,23 +8,18 @@ import 'dart:async' show Future;
|
|
|
| import 'dart:convert' show JSON;
|
|
|
| -import 'dart:io' show BytesBuilder, Directory, File, exitCode;
|
| +import 'dart:io' show BytesBuilder, File, exitCode;
|
|
|
| -import 'package:front_end/file_system.dart';
|
| import 'package:front_end/physical_file_system.dart';
|
| import 'package:front_end/src/fasta/kernel/utils.dart';
|
| -import 'package:kernel/binary/ast_to_binary.dart'
|
| - show LibraryFilteringBinaryPrinter;
|
|
|
| -import 'package:kernel/kernel.dart' show Library, Program, loadProgramFromBytes;
|
| -
|
| -import 'package:kernel/target/targets.dart' show Target;
|
| +import 'package:kernel/kernel.dart' show Program, loadProgramFromBytes;
|
|
|
| import 'compiler_command_line.dart' show CompilerCommandLine;
|
|
|
| import 'compiler_context.dart' show CompilerContext;
|
|
|
| -import 'errors.dart' show InputError, formatUnexpected, inputError, reportCrash;
|
| +import 'errors.dart' show InputError, inputError;
|
|
|
| import 'kernel/kernel_target.dart' show KernelTarget;
|
|
|
| @@ -36,8 +31,6 @@ import 'ticker.dart' show Ticker;
|
|
|
| import 'translate_uri.dart' show TranslateUri;
|
|
|
| -import 'vm.dart' show CompilationResult;
|
| -
|
| const bool summary = const bool.fromEnvironment("summary", defaultValue: false);
|
| const int iterations = const int.fromEnvironment("iterations", defaultValue: 1);
|
|
|
| @@ -171,69 +164,6 @@ class CompileTask {
|
| }
|
| }
|
|
|
| -Future<CompilationResult> parseScript(
|
| - Uri fileName, Uri packages, Uri patchedSdk, Target backendTarget,
|
| - {bool verbose: false}) async {
|
| - return parseScriptInFileSystem(fileName, PhysicalFileSystem.instance,
|
| - packages, patchedSdk, backendTarget,
|
| - verbose: verbose);
|
| -}
|
| -
|
| -Future<CompilationResult> parseScriptInFileSystem(Uri fileName,
|
| - FileSystem fileSystem, Uri packages, Uri patchedSdk, Target backendTarget,
|
| - {bool verbose: false}) async {
|
| - try {
|
| - if (!await fileSystem.entityForUri(fileName).exists()) {
|
| - return new CompilationResult.error(
|
| - formatUnexpected(fileName, -1, "No such file."));
|
| - }
|
| - if (!await new Directory.fromUri(patchedSdk).exists()) {
|
| - return new CompilationResult.error(
|
| - formatUnexpected(patchedSdk, -1, "Patched sdk directory not found."));
|
| - }
|
| -
|
| - Program program;
|
| - try {
|
| - TranslateUri uriTranslator =
|
| - await TranslateUri.parse(fileSystem, patchedSdk, packages: packages);
|
| - final Ticker ticker = new Ticker(isVerbose: verbose);
|
| - final DillTarget dillTarget =
|
| - new DillTarget(ticker, uriTranslator, backendTarget);
|
| - _appendDillForUri(dillTarget, patchedSdk.resolve('platform.dill'));
|
| - final KernelTarget kernelTarget =
|
| - new KernelTarget(fileSystem, dillTarget, uriTranslator);
|
| - kernelTarget.read(fileName);
|
| - await dillTarget.buildOutlines();
|
| - await kernelTarget.buildOutlines();
|
| - program = await kernelTarget.buildProgram();
|
| - if (kernelTarget.errors.isNotEmpty) {
|
| - return new CompilationResult.errors(kernelTarget.errors);
|
| - }
|
| - } on InputError catch (e) {
|
| - return new CompilationResult.error(e.format());
|
| - }
|
| -
|
| - if (program.mainMethod == null) {
|
| - return new CompilationResult.error("No 'main' method found.");
|
| - }
|
| -
|
| - // Write the program to a list of bytes and return it. Do not include
|
| - // libraries that have a dart: import URI.
|
| - //
|
| - // TODO(kmillikin): This is intended to exclude platform libraries that are
|
| - // included in the Kernel binary platform platform.dill. It does not
|
| - // necessarily exclude exactly the platform libraries. Use a better
|
| - // predicate that knows what is included in platform.dill.
|
| - var sink = new ByteSink();
|
| - bool predicate(Library library) => !library.importUri.isScheme('dart');
|
| - new LibraryFilteringBinaryPrinter(sink, predicate)
|
| - .writeProgramFile(program);
|
| - return new CompilationResult.ok(sink.builder.takeBytes());
|
| - } catch (e, s) {
|
| - return reportCrash(e, s, fileName);
|
| - }
|
| -}
|
| -
|
| Future compilePlatform(Uri patchedSdk, Uri fullOutput,
|
| {Uri outlineOutput,
|
| Uri packages,
|
| @@ -253,16 +183,16 @@ Future compilePlatform(Uri patchedSdk, Uri fullOutput,
|
| });
|
| }
|
|
|
| -Future writeDepsFile(Uri script, Uri depsFile, Uri output,
|
| +// TODO(sigmund): reimplement this API using the directive listener intead.
|
| +Future<List<Uri>> getDependencies(Uri script,
|
| {Uri sdk,
|
| Uri packages,
|
| Uri platform,
|
| - Iterable<Uri> extraDependencies,
|
| bool verbose: false,
|
| String backendTarget}) async {
|
| backendTarget ??= "vm_fasta";
|
| Ticker ticker = new Ticker(isVerbose: verbose);
|
| - await CompilerCommandLine.withGlobalOptions("", [""],
|
| + return await CompilerCommandLine.withGlobalOptions("", [""],
|
| (CompilerContext c) async {
|
| c.options.options["--target"] = backendTarget;
|
| c.options.options["--strong-mode"] = false;
|
| @@ -278,15 +208,14 @@ Future writeDepsFile(Uri script, Uri depsFile, Uri output,
|
| ticker.logMs("Read packages file");
|
| DillTarget dillTarget =
|
| new DillTarget(ticker, uriTranslator, c.options.target);
|
| - _appendDillForUri(dillTarget, platform);
|
| + if (platform != null) _appendDillForUri(dillTarget, platform);
|
| KernelTarget kernelTarget = new KernelTarget(
|
| PhysicalFileSystem.instance, dillTarget, uriTranslator, c.uriToSource);
|
|
|
| kernelTarget.read(script);
|
| await dillTarget.buildOutlines();
|
| await kernelTarget.loader.buildOutlines();
|
| - await kernelTarget.writeDepsFile(output, depsFile,
|
| - extraDependencies: extraDependencies);
|
| + return await kernelTarget.loader.getDependencies();
|
| });
|
| }
|
|
|
|
|