anchor.diff:  ** If on EC2, shutdown instance. Otherwise get charged for potentially many days/weeks idle time with no alerts **
   
   Submit message template:
  -Have rechecked the 339 CRAN packages using data.table.
  +Have rechecked the 471 CRAN + 111 Bioc packages using data.table.
   Either ok or have liaised with maintainers in advance.
   
  
positive.code:   numtgz = as.integer(system("ls -1 *.tar.gz | wc -l", intern=TRUE))
    stopifnot(numtgz==length(deps))
    cat("Installed data.table to be tested against:",as.character(packageVersion("data.table")),"\n")
    if (!all) {
      x = sapply(paste0("./",deps,".Rcheck"), file.exists)
      x = deps[!x]
      if (!length(x)) { cat("All package checks have already run. To rerun all: run(all=TRUE).\n"); return(); }
      cat("Running checks for",length(x),"packages\n")
      cmd = paste0("ls -1 *.tar.gz | grep -E '", paste0(x,collapse="|"),"' | parallel R CMD check")
    } else {
      cmd = "rm -rf *.Rcheck ; ls -1 *.tar.gz | parallel R CMD check"
      # apx 2.5 hrs for 313 packages on my 4 cpu laptop with 8 threads
    }
    cat("Command:",cmd,"\n")
    if (as.integer(system("ps -a | grep perfbar | wc -l", intern=TRUE)) < 1) system("perfbar",wait=FALSE)
  
negative.code: # biocLite("BiocUpgrade")
  # This error means it's up to date: "Bioconductor version 3.4 cannot be upgraded with R version 3.3.2"
  
  avail = available.packages(repos=biocinstallRepos())   # includes CRAN at the end from getOption("repos")
  deps = tools::package_dependencies("data.table", db=avail, which="most", reverse=TRUE, recursive=FALSE)[[1]]
  table(avail[deps,"Repository"])
  length(deps)
  