anchor.diff:  }
   
   void main(List<String> args) {
  -  ensureBuild();
  +  var combinations = getCombinations();
  +
  +  var arches = combinations.fold(new Set<String>(), (set, value) {
  +    set.addAll(value['archs']);
  +    return set;
  +  });
  +
  +  ensureBuild(arches);
   
     List<String> keys;
  -  for (var combination in getCombinations()) {
  +  for (var combination in combinations) {
       for (var mode in combination['modes']) {
         for (var arch in combination['archs']) {
           for (var runtime in combination['runtimes']) {
  
positive.code:   return COMBINATIONS[Platform.operatingSystem];
  }
  
  void ensureBuild() {
    print('Building many platforms. Please be patient.');
    var archs = Platform.operatingSystem == 'linux'
      ? '-aia32,x64,simarm,simmips'
      : '-aia32,x64';
  
    var result = Process.runSync('python',
        ['tools/build.py', '-mrelease,debug', archs, 'create_sdk',
        // We build runtime to be able to list cc tests
        'runtime']);
  
    if (result.exitCode != 0) {
      print('ERROR');
  
negative.code:             throw new Exception("Error running: ${args.join(" ")}");
            }
  
            // Find "JSON:"
            // Everything after will the JSON-formatted output
            // per --report-in-json flag above
            var totalIndex = result.stdout.indexOf('JSON:');
            var report = result.stdout.substring(totalIndex + 5);
  
  