First pass at build dependency graph for barback.

BUG=
R=nweiz@google.com

Review URL: https://codereview.chromium.org//16854005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24257 260f80e4-7a28-3924-810f-c04153c831b5
Remove unneeded imports to fix broken bots.

Review URL: https://codereview.chromium.org//17511007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24258 260f80e4-7a28-3924-810f-c04153c831b5
Clean up barback tests.

This defines a more DSL-like API for AssetGraph tests. It also handles
build results more cleanly.

R=nweiz@google.com

Review URL: https://codereview.chromium.org//17507003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24734 260f80e4-7a28-3924-810f-c04153c831b5
Make Asset.readAsString() async.

R=nweiz@google.com

Review URL: https://codereview.chromium.org//18478004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24743 260f80e4-7a28-3924-810f-c04153c831b5
Make Assets know their ID.

R=nweiz@google.com

Review URL: https://codereview.chromium.org//18650004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24819 260f80e4-7a28-3924-810f-c04153c831b5
Binary assets and more unit tests for Asset.

R=nweiz@google.com

Review URL: https://codereview.chromium.org//18854007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24848 260f80e4-7a28-3924-810f-c04153c831b5
Fix assert.

Review URL: https://codereview.chromium.org//18566008

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24852 260f80e4-7a28-3924-810f-c04153c831b5
Split AssetGraph.results into two streams.

R=rnystrom@google.com

Review URL: https://codereview.chromium.org//18178021

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24892 260f80e4-7a28-3924-810f-c04153c831b5
Tweak unittest compact config a bit and don't use it on bots.

R=sigmund@google.com

Review URL: https://codereview.chromium.org//18811008

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24924 260f80e4-7a28-3924-810f-c04153c831b5
Rename "pathos" package to "path".

R=ajohnsen@google.com

Review URL: https://codereview.chromium.org//18356011

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24964 260f80e4-7a28-3924-810f-c04153c831b5
Make barback more package-aware.

This makes AssetGraph package-specific, but doesn't yet support cross-package asset usage.

R=rnystrom@google.com

Review URL: https://codereview.chromium.org//5695057915019264

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25079 260f80e4-7a28-3924-810f-c04153c831b5
Rename several classes in barback.

AssetProvider     -> PackageProvider
AssetGraphManager -> PackageGraph
AssetGraph        -> AssetCascade

R=rnystrom@google.com

Review URL: https://codereview.chromium.org//19402003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25080 260f80e4-7a28-3924-810f-c04153c831b5
Fix a barback bug that triggered when an asset was removed.

If a transform had that asset as its primary input, it would go into an error
state.

R=rnystrom@google.com

Review URL: https://codereview.chromium.org//19473002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25116 260f80e4-7a28-3924-810f-c04153c831b5
Remove calls to [new Future] work around issue 11911.

BUG=11911
R=gram@google.com, rnystrom@google.com

Review URL: https://codereview.chromium.org//19841002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25365 260f80e4-7a28-3924-810f-c04153c831b5
First stab at a dev server in pub using barback.

R=nweiz@google.com

Review URL: https://codereview.chromium.org//20204003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25600 260f80e4-7a28-3924-810f-c04153c831b5
Refactor the barback tests somewhat.

This makes each transformer capable of relatively fine-grained pausing
and resuming of processing. They no longer use MockAsset, instead
using [Asset.fromString] to better simulate real-world transformers.

This also adds several new utility functions to
barback/test/utils.dart.

R=rnystrom@google.com

Review URL: https://codereview.chromium.org//21226004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25652 260f80e4-7a28-3924-810f-c04153c831b5
Add a library name for cancelable_future.dart

R=rnystrom@google.com

Review URL: https://codereview.chromium.org//21097006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25653 260f80e4-7a28-3924-810f-c04153c831b5
Fix cancelable_future again.

R=rnystrom@google.com

Review URL: https://codereview.chromium.org//21004014

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25654 260f80e4-7a28-3924-810f-c04153c831b5
Move barback to a more event-based model.

The goal of this change is to make it easy to synchronously propagate the dirty
state of an asset node to all of the nodes and transforms that depend on it,
while still asynchronously processing those transforms.

In addition, this refactor ends up addressing two TODOs and one bug:

* If a node has been compiled previously and an unrelated part of its cascade is
  dirtied, it will now be returned immediately rather than waiting for the
  entire cascade to finish processing.

* If a node is consumed as the input of a transform, it will no longer be
  returned by [getAssetById].

* If the contents of a transform's primary input changes such that it's no
  longer a valid primary input for that transform, the transform will be
  removed.

R=rnystrom@google.com

Review URL: https://codereview.chromium.org//21275003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25693 260f80e4-7a28-3924-810f-c04153c831b5
Support an additional edge case in barback.

This adds support for the case where a transform loads an input, then that input
is changed before that transform completes. Previously the change would be
ignored; now the transform will be re-run.

R=rnystrom@google.com

Review URL: https://codereview.chromium.org//20625005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25695 260f80e4-7a28-3924-810f-c04153c831b5