Improve parallelism when loading transformer plugins.
Rather than only looking at the package-level dependency graph, pub will now examine transformer files' imports to determine dependencies between transformers. This improves both load times and cycle detection. For example, a package using polymer transformers can now load them in two phases rather than four, reducing the load time by about half. In addition, this gives transformer authors more control over how parallel their transformer graph is. With some $include/$exclude and import tweaks, most remaining transformer dependencies can be eliminated. R=rnystrom@google.com Review URL: https://codereview.chromium.org//331263002 git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge@37461 260f80e4-7a28-3924-810f-c04153c831b5
Showing
- lib/src/barback.dart 26 additions, 9 deletionslib/src/barback.dart
- lib/src/barback/asset_environment.dart 0 additions, 1 deletionlib/src/barback/asset_environment.dart
- lib/src/barback/cycle_exception.dart 65 additions, 0 deletionslib/src/barback/cycle_exception.dart
- lib/src/barback/load_all_transformers.dart 76 additions, 158 deletionslib/src/barback/load_all_transformers.dart
- lib/src/barback/rewrite_import_transformer.dart 5 additions, 12 deletionslib/src/barback/rewrite_import_transformer.dart
- lib/src/barback/transformers_needed_by_transformers.dart 389 additions, 0 deletionslib/src/barback/transformers_needed_by_transformers.dart
- lib/src/dart.dart 16 additions, 0 deletionslib/src/dart.dart
- lib/src/package_graph.dart 0 additions, 18 deletionslib/src/package_graph.dart
- lib/src/utils.dart 3 additions, 64 deletionslib/src/utils.dart
- test/test_pub.dart 6 additions, 5 deletionstest/test_pub.dart
- test/transformer/detects_a_transformer_cycle_test.dart 0 additions, 48 deletionstest/transformer/detects_a_transformer_cycle_test.dart
- test/transformer/detects_an_ordering_dependency_cycle_test.dart 0 additions, 66 deletions...ransformer/detects_an_ordering_dependency_cycle_test.dart
- test/transformer/loads_ordering_dependencies_in_the_correct_order_test.dart 0 additions, 56 deletions...oads_ordering_dependencies_in_the_correct_order_test.dart
- test/transformers_needed_by_transformers/conservative_dependencies_test.dart 466 additions, 0 deletions...eeded_by_transformers/conservative_dependencies_test.dart
- test/transformers_needed_by_transformers/cycle_test.dart 212 additions, 0 deletionstest/transformers_needed_by_transformers/cycle_test.dart
- test/transformers_needed_by_transformers/error_test.dart 49 additions, 0 deletionstest/transformers_needed_by_transformers/error_test.dart
- test/transformers_needed_by_transformers/import_dependencies_test.dart 195 additions, 0 deletions...mers_needed_by_transformers/import_dependencies_test.dart
- test/transformers_needed_by_transformers/no_dependencies_test.dart 161 additions, 0 deletions...sformers_needed_by_transformers/no_dependencies_test.dart
- test/transformers_needed_by_transformers/utils.dart 112 additions, 0 deletionstest/transformers_needed_by_transformers/utils.dart
Loading
Please register or sign in to comment