Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1269)

Unified Diff: pkg/front_end/lib/src/kernel_generator_impl.dart

Issue 2979463002: Revert "Tweak public APIs and use them in patch_sdk, dart2js, and kernel-service." (Closed)
Patch Set: Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: pkg/front_end/lib/src/kernel_generator_impl.dart
diff --git a/pkg/front_end/lib/src/kernel_generator_impl.dart b/pkg/front_end/lib/src/kernel_generator_impl.dart
deleted file mode 100644
index 3a36278fb46ec5cde3145c95157769e510ff86c0..0000000000000000000000000000000000000000
--- a/pkg/front_end/lib/src/kernel_generator_impl.dart
+++ /dev/null
@@ -1,171 +0,0 @@
-// Copyright (c) 2017, 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.
-
-/// Defines the front-end API for converting source code to Dart Kernel objects.
-library front_end.kernel_generator_impl;
-
-import 'dart:async' show Future;
-import 'dart:async';
-
-import 'package:kernel/kernel.dart' show Program, CanonicalName;
-
-import 'base/processed_options.dart';
-import 'fasta/dill/dill_target.dart' show DillTarget;
-import 'fasta/errors.dart' show InputError, reportCrash;
-import 'fasta/kernel/kernel_outline_shaker.dart';
-import 'fasta/kernel/kernel_target.dart' show KernelTarget;
-import 'fasta/kernel/verifier.dart';
-import 'fasta/kernel/utils.dart';
-import 'fasta/compiler_command_line.dart';
-import 'fasta/translate_uri.dart' show TranslateUri;
-
-/// Implementation for the `package:front_end/kernel_generator.dart` and
-/// `package:front_end/summary_generator.dart` APIs.
-Future<CompilerResult> generateKernel(ProcessedOptions options,
- {bool buildSummary: false,
- bool buildProgram: true,
- bool trimDependencies: false}) async {
- // TODO(sigmund): Replace CompilerCommandLine and instead simply use a
- // CompilerContext that directly uses the ProcessedOptions throught the
- // system.
- return await CompilerCommandLine.withGlobalOptions("", [""], (context) async {
- context.options.options['--target'] = options.target;
- context.options.options['--strong-mode'] = options.strongMode;
- context.options.options['--verbose'] = options.verbose;
-
- return await generateKernelInternal(options,
- buildSummary: buildSummary,
- buildProgram: buildProgram,
- trimDependencies: trimDependencies);
- });
-}
-
-Future<CompilerResult> generateKernelInternal(ProcessedOptions options,
- {bool buildSummary: false,
- bool buildProgram: true,
- bool trimDependencies: false}) async {
- var fs = options.fileSystem;
- if (!await options.validateOptions()) return null;
- options.ticker.logMs("Validated arguments");
-
- try {
- TranslateUri uriTranslator = await options.getUriTranslator();
-
- var dillTarget =
- new DillTarget(options.ticker, uriTranslator, options.target);
-
- CanonicalName nameRoot = new CanonicalName.root();
- Set<Uri> externalLibs(Program program) {
- return program.libraries
- .where((lib) => lib.isExternal)
- .map((lib) => lib.importUri)
- .toSet();
- }
-
- var sdkSummary = await options.loadSdkSummary(nameRoot);
- if (sdkSummary != null) {
- var excluded = externalLibs(sdkSummary);
- dillTarget.loader
- .appendLibraries(sdkSummary, (uri) => !excluded.contains(uri));
- }
-
- // TODO(sigmund): provide better error reporting if input summaries or
- // linked dependencies were listed out of order (or provide mechanism to
- // sort them).
- for (var inputSummary in await options.loadInputSummaries(nameRoot)) {
- var excluded = externalLibs(inputSummary);
- dillTarget.loader
- .appendLibraries(inputSummary, (uri) => !excluded.contains(uri));
- }
-
- // All summaries are considered external and shouldn't include source-info.
- dillTarget.loader.libraries.forEach((lib) => lib.isExternal = true);
-
- // Linked dependencies are meant to be part of the program so they are not
- // marked external.
- for (var dependency in await options.loadLinkDependencies(nameRoot)) {
- var excluded = externalLibs(dependency);
- dillTarget.loader
- .appendLibraries(dependency, (uri) => !excluded.contains(uri));
- }
-
- await dillTarget.buildOutlines();
-
- var kernelTarget = new KernelTarget(fs, dillTarget, uriTranslator);
- options.inputs.forEach(kernelTarget.read);
- Program summaryProgram =
- await kernelTarget.buildOutlines(nameRoot: nameRoot);
- List<int> summary = null;
- if (buildSummary) {
- if (trimDependencies) {
- // TODO(sigmund): see if it is worth supporting this. Note: trimming the
- // program is destructive, so if we are emitting summaries and the
- // program in a single API call, we would need to clone the program here
- // to avoid deleting pieces that are needed by kernelTarget.buildProgram
- // below.
- assert(!buildProgram);
- var excluded =
- dillTarget.loader.libraries.map((lib) => lib.importUri).toSet();
- trimProgram(summaryProgram, (uri) => !excluded.contains(uri));
- }
- if (options.verify) {
- verifyProgram(summaryProgram).forEach((e) => options.reportError('$e'));
- }
- if (options.debugDump) {
- printProgramText(summaryProgram,
- libraryFilter: kernelTarget.isSourceLibrary);
- }
- if (kernelTarget.errors.isEmpty) {
- summary = serializeProgram(summaryProgram, excludeUriToSource: true);
- }
- options.ticker.logMs("Generated outline");
- }
-
- Program program;
- if (buildProgram && kernelTarget.errors.isEmpty) {
- program = await kernelTarget.buildProgram(verify: options.verify);
- if (trimDependencies) {
- var excluded =
- dillTarget.loader.libraries.map((lib) => lib.importUri).toSet();
- trimProgram(program, (uri) => !excluded.contains(uri));
- }
- if (options.debugDump) {
- printProgramText(program, libraryFilter: kernelTarget.isSourceLibrary);
- }
- options.ticker.logMs("Generated program");
- }
-
- if (kernelTarget.errors.isNotEmpty) {
- kernelTarget.errors.forEach(options.reportError);
- return null;
- }
-
- return new CompilerResult(
- summary: summary,
- program: program,
- deps: kernelTarget.loader.getDependencies());
- } on InputError catch (e) {
- options.reportError(e.format());
- return null;
- } catch (e, t) {
- return reportCrash(e, t);
- }
-}
-
-/// Result object of [generateKernel].
-class CompilerResult {
- /// The generated summary bytes, if it was requested.
- final List<int> summary;
-
- /// The generated program, if it was requested.
- final Program program;
-
- /// Dependencies traversed by the compiler. Used only for generating
- /// dependency .GN files in the dart-sdk build system.
- /// Note this might be removed when we switch to compute depencencies without
- /// using the compiler itself.
- final List<Uri> deps;
-
- CompilerResult({this.summary, this.program, this.deps});
-}
« no previous file with comments | « pkg/front_end/lib/src/incremental_kernel_generator_impl.dart ('k') | pkg/front_end/lib/src/simple_error.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698