anchor.diff:  }
   
   Future<bool> _extractTarGzWindows(InputStream stream, String destination) {
  +  // TODO(rnystrom): In the repo's history, there is an older implementation of
  +  // this that does everything in memory by piping streams directly together
  +  // instead of writing out temp files. The code is simpler, but unfortunately,
  +  // 7zip seems to periodically fail when we invoke it from Dart and tell it to
  +  // read from stdin instead of a file. Consider resurrecting that version if
  +  // we can figure out why it fails.
  +
     // Find 7zip.
     var scriptPath = new File(new Options().script).fullPathSync();
     var scriptDir = new Path.fromNative(scriptPath).directoryPath;
  
positive.code:  */
  Future<File> deleteFile(file) {
    return new File(_getPath(file)).delete();
  }
  
  /**
  
negative.code:   // Note: This line of code gets munged by create_sdk.py to be the correct
    // relative path to 7zip in the SDK.
    var pathTo7zip = '../../third_party/7zip/7za.exe';
    var command = scriptDir.append(pathTo7zip).canonicalize().toNativePath();
  
    var tempDir;
  
    return createTempDir().chain((temp) {
      // Write the archive to a temp file.
      tempDir = temp;
      return createFileFromStream(stream, join(tempDir, 'data.tar.gz'));
    }).chain((tarGz) {
      // 7zip can't unarchive from gzip -> tar -> destination all in one step
      // first we un-gzip it to a tar file.
      // Note: Setting the working directory instead of passing in a full file
      // path because 7zip says "A full path is not allowed here."
      return runProcess(command, ['e', 'data.tar.gz'], workingDir: tempDir);
    }).chain((result) {
      if (result.exitCode != 0) {
        throw 'Could not un-gzip (exit code ${result.exitCode}). Error:\n'
            '${Strings.join(result.stderr, "\n")}';
      }
  
      // Find the tar file we just created since we don't know its name.
      return listDir(tempDir);
    }).chain((files) {
      var tarFile;
      for (var file in files) {
        if (new Path(file).extension == 'tar') {
          tarFile = file;
          break;
        }
      }
  
      if (tarFile == null) throw 'The gzip file did not contain a tar file.';
  
      // Untar the archive into the destination directory.
      return runProcess(command, ['x', '-o"$destination"', tarFile],
          workingDir: tempDir);
    }).chain((result) {
      if (result.exitCode != 0) {
        throw 'Could not un-tar (exit code ${result.exitCode}). Error:\n'
            '${Strings.join(result.stderr, "\n")}';
      }
  
      // Clean up the temp directory.
      // TODO(rnystrom): Should also delete this if anything fails.
      return deleteDir(tempDir);
    }).transform((_) => true);
  }
  
  /**
  