anchor.diff:  new = 0
   if (basename(.libPaths()[1]) != "revdeplib") stop("Must start R with exports as above")
   for (p in deps) {
  -   fn = paste0(p, "_", avail[p,"Version"], ".tar.gz")
  -   if (!file.exists(fn) ||
  -       identical(tryCatch(packageVersion(p), error=function(e)FALSE), FALSE) ||
  -       packageVersion(p) != avail[p,"Version"]) {
  -     system(paste0("rm -f ", p, "*.tar.gz"))  # Remove previous *.tar.gz.  -f to be silent if not there (i.e. first time seeing this package)
  -     system(paste0("rm -rf ", p, ".Rcheck"))  # Remove last check (of previous version)
  -     if (!length(grep("bioc",avail[p,"Repository"]))) {
  -       install.packages(p, dependencies=TRUE)  # To install its dependencies really.
  -     } else {
  -       biocLite(p,suppressUpdates=TRUE)        # To install its dependencies really.
  -     }
  -     download.packages(p, destdir="~/build/revdeplib", contriburl=avail[p,"Repository"])   # So R CMD check can run on these
  -     if (!file.exists(fn)) stop("Still does not exist!:", fn)
  -     new = new+1
  -   } else {
  -     old = old+1
  -   }
  +  fn = paste0(p, "_", avail[p,"Version"], ".tar.gz")
  +  if (!file.exists(fn) ||
  +      identical(tryCatch(packageVersion(p), error=function(e)FALSE), FALSE) ||
  +      packageVersion(p) != avail[p,"Version"]) {
  +    system(paste0("rm -f ", p, "*.tar.gz"))  # Remove previous *.tar.gz.  -f to be silent if not there (i.e. first time seeing this package)
  +    system(paste0("rm -rf ", p, ".Rcheck"))  # Remove last check (of previous version)
  +
  +    install.packages(p, repos=biocinstallRepos(), dependencies=TRUE)    # again, bioc repos includes CRAN here
  +    # To install its dependencies. The package itsef is installed superfluously here because the tar.gz will be passed to R CMD check.
  +    # Not using biocLite() because it does not download dependencies and does not appear to pass dependencies= on.
  +
  +    download.packages(p, destdir="~/build/revdeplib", contriburl=avail[p,"Repository"])   # So R CMD check can run on these
  +    if (!file.exists(fn)) stop("Still does not exist!:", fn)
  +    new = new+1
  +  } else {
  +    old = old+1
  +  }
   }
   cat("New downloaded:",new," Already had latest:", old, " TOTAL:", length(deps), "\n")
   table(avail[deps,"Repository"])
   
   # To identify and remove the tar.gz no longer needed :
   for (p in deps) {
  -   f = paste0(p, "_", avail[p,"Version"], ".tar.gz")
  -   system(paste0("mv ",f," ",f,"_TEMP"))
  +  f = paste0(p, "_", avail[p,"Version"], ".tar.gz")
  +  system(paste0("mv ",f," ",f,"_TEMP"))
   }
   system("ls *.tar.gz")
   system("rm *.tar.gz")
   for (p in deps) {
  -   f = paste0(p, "_", avail[p,"Version"], ".tar.gz")
  -   system(paste0("mv ",f,"_TEMP ",f))
  +  f = paste0(p, "_", avail[p,"Version"], ".tar.gz")
  +  system(paste0("mv ",f,"_TEMP ",f))
   }
   
   status = function(which="both") {
     if (which=="both") {
  -     cat("CRAN:\n"); status("cran")
  -     cat("BIOC:\n"); status("bioc")
  -     cat("Oldest 00check.log (to check no old stale ones somehow missed):\n")
  -     system("find . -name '00check.log' | xargs ls -lt | tail -1")
  -     cat("\n")
  -     if (file.exists("/tmp/started.flag")) {
  -       system("ls -lrt /tmp/*.flag")
  -       tt = as.POSIXct(file.info(c("/tmp/started.flag","/tmp/finished.flag"))$ctime)
  -       if (is.na(tt[2])) tt[2] = Sys.time()
  -       print(diff(tt))
  -     }
  -     return(invisible())
  +    cat("CRAN:\n"); status("cran")
  +    cat("BIOC:\n"); status("bioc")
  +    cat("Oldest 00check.log (to check no old stale ones somehow missed):\n")
  +    system("find . -name '00check.log' | xargs ls -lt | tail -1")
  +    cat("\n")
  +    if (file.exists("/tmp/started.flag")) {
  +      system("ls -lrt /tmp/*.flag")
  +      tt = as.POSIXct(file.info(c("/tmp/started.flag","/tmp/finished.flag"))$ctime)
  +      if (is.na(tt[2])) tt[2] = Sys.time()
  +      print(diff(tt))
  +    }
  +    return(invisible())
     }
     if (which=="cran") deps = deps[-grep("bioc",avail[deps,"Repository"])]
     if (which=="bioc") deps = deps[grep("bioc",avail[deps,"Repository"])]
     x = unlist(sapply(deps, function(x) {
       fn = paste0("./",x,".Rcheck/00check.log")
       if (file.exists(fn)) {
  -       v = suppressWarnings(system(paste0("grep 'Status:' ",fn), intern=TRUE))
  -       if (!length(v)) return("RUNNING")
  -       return(substring(v,9))
  +      v = suppressWarnings(system(paste0("grep 'Status:' ",fn), intern=TRUE))
  +      if (!length(v)) return("RUNNING")
  +      return(substring(v,9))
       }
       if (file.exists(paste0("./",x,".Rcheck"))) return("RUNNING")
       return("NOT STARTED")
  
positive.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=c(getOption("repos"), BiocInstaller::biocinstallRepos()[["BioCsoft"]]))
  deps = tools::package_dependencies("data.table", db=avail, which="most", reverse=TRUE, recursive=FALSE)[[1]]
  table(avail[deps,"Repository"])
  length(deps)
  
negative.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) {
      cmd = "rm -rf *.Rcheck ; ls -1 *.tar.gz | parallel R CMD check"
      # apx 7.5 hrs for 582 packages on my 4 cpu laptop with 8 threads
    } else {
      x = sapply(deps, function(p) {
        if (!file.exists(paste0("./",p,".Rcheck"))) return(TRUE)
        fn = paste0("./",p,".Rcheck/00check.log")
        length(suppressWarnings(system(paste0("grep -E 'Status:.*(ERROR|WARNING)' ",fn), intern=TRUE)))>0L
      })
      x = deps[x]
      cat("Running",length(x),"packages that have no status (no .Rcheck directory) or are in ERROR or WARNING status\n")
      cmd = paste0("ls -1 *.tar.gz | grep -E '", paste0(x,collapse="|"),"' | parallel R CMD check")
    }
    cat("Command:",cmd,"\n")
    if (as.integer(system("ps -a | grep perfbar | wc -l", intern=TRUE)) < 1) system("perfbar",wait=FALSE)
  