anchor.diff:  import '../environment/build_environment.dart';
   import '../logging/logging.dart';
   import '../package_graph/package_graph.dart';
  +
  +/// Pool for async file operations, we don't want to use too many file handles.
  +final _descriptorPool = new Pool(32);
   
   final _logger = new Logger('CreateOutputDir');
   const _manifestName = '.build.manifest';
  
positive.code:   return outputId;
  }
  
  void _writeAsBytes(Directory outputDir, AssetId id, List<int> bytes) {
    var file = _fileFor(outputDir, id);
    file.writeAsBytesSync(bytes);
  }
  
  void _writeAsString(Directory outputDir, AssetId id, String contents) {
    var file = _fileFor(outputDir, id);
    file.writeAsStringSync(contents);
  }
  
  File _fileFor(Directory outputDir, AssetId id) {
    String relativePath;
    if (id.path.startsWith('lib')) {
      relativePath =
  
negative.code:     }
    });
  
    await logTimedAsync(_logger, 'Writing asset manifest', () async {
      var paths = outputAssets.map((id) => id.path).toList()..sort();
      var content = paths.join(_manifestSeparator);
      await _writeAsString(
          outputDir, new AssetId(packageGraph.root.name, _manifestName), content);
    });
  
  