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

Unified Diff: sdk/lib/_internal/pub/lib/src/entrypoint.dart

Issue 586173002: Make binstubs run snapshots directly when possible. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Revise! Created 6 years, 3 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: sdk/lib/_internal/pub/lib/src/entrypoint.dart
diff --git a/sdk/lib/_internal/pub/lib/src/entrypoint.dart b/sdk/lib/_internal/pub/lib/src/entrypoint.dart
index 13aa2f63bd3669a61f6a4908d199f64697e85b4b..215dfe28736adba57a8d402948b7464cd3f6fece 100644
--- a/sdk/lib/_internal/pub/lib/src/entrypoint.dart
+++ b/sdk/lib/_internal/pub/lib/src/entrypoint.dart
@@ -230,7 +230,7 @@ class Entrypoint {
/// Precompiles all executables from dependencies that don't transitively
/// depend on [this] or on a path dependency.
- Future precompileExecutables({Iterable<String> changed}) {
+ Future precompileExecutables({Iterable<String> changed}) async {
if (changed != null) changed = changed.toSet();
var binDir = path.join('.pub', 'bin');
@@ -243,44 +243,41 @@ class Entrypoint {
readTextFile(sdkVersionPath) == "${sdk.version}\n";
if (!sdkMatches) changed = null;
- return loadPackageGraph().then((graph) {
- var executables = new Map.fromIterable(root.immediateDependencies,
- key: (dep) => dep.name,
- value: (dep) => _executablesForPackage(graph, dep.name, changed));
-
- for (var package in executables.keys.toList()) {
- if (executables[package].isEmpty) executables.remove(package);
- }
+ var graph = await loadPackageGraph();
+ var executables = new Map.fromIterable(root.immediateDependencies,
+ key: (dep) => dep.name,
+ value: (dep) => _executablesForPackage(graph, dep.name, changed));
- if (!sdkMatches) deleteEntry(binDir);
- if (executables.isEmpty) return null;
+ for (var package in executables.keys.toList()) {
+ if (executables[package].isEmpty) executables.remove(package);
+ }
- return log.progress("Precompiling executables", () {
- ensureDir(binDir);
+ if (!sdkMatches) deleteEntry(binDir);
+ if (executables.isEmpty) return;
- // Make sure there's a trailing newline so our version file matches the
- // SDK's.
- writeTextFile(sdkVersionPath, "${sdk.version}\n");
+ await log.progress("Precompiling executables", () async {
+ ensureDir(binDir);
- var packagesToLoad =
- unionAll(executables.keys.map(graph.transitiveDependencies))
- .map((package) => package.name).toSet();
- return AssetEnvironment.create(this, BarbackMode.RELEASE,
- packages: packagesToLoad,
- useDart2JS: false).then((environment) {
- environment.barback.errors.listen((error) {
- log.error(log.red("Build error:\n$error"));
- });
+ // Make sure there's a trailing newline so our version file matches the
+ // SDK's.
+ writeTextFile(sdkVersionPath, "${sdk.version}\n");
- return waitAndPrintErrors(executables.keys.map((package) {
- var dir = path.join(binDir, package);
- cleanDir(dir);
- return environment.precompileExecutables(
- package, dir,
- executableIds: executables[package]);
- }));
- });
+ var packagesToLoad =
+ unionAll(executables.keys.map(graph.transitiveDependencies))
+ .map((package) => package.name).toSet();
+ var environment = await AssetEnvironment.create(this, BarbackMode.RELEASE,
+ packages: packagesToLoad,
+ useDart2JS: false);
+ environment.barback.errors.listen((error) {
+ log.error(log.red("Build error:\n$error"));
});
+
+ await waitAndPrintErrors(executables.keys.map((package) async {
+ var dir = path.join(binDir, package);
+ cleanDir(dir);
+ await environment.precompileExecutables(package, dir,
+ executableIds: executables[package]);
+ }));
});
}

Powered by Google App Engine
This is Rietveld 408576698