Rev 85382 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
###-*- R -*-###--- This "foo.Rin" script is only used to create the real script "foo.R" :###--- We need to use such a long "real script" instead of a for loop,###--- because "error --> jump_to_toplevel", i.e., outside any loop.core.pkgs <- local({x <- installed.packages(.Library)unname(x[x[,"Priority"] %in% "base", "Package"])})core.pkgs <-core.pkgs[- match(c("methods", "parallel", "tcltk", "stats4"), core.pkgs, 0)]## move methods to the end because it has side effects (overrides primitives)## stats4 requires methodscore.pkgs <- c(core.pkgs, "methods", "stats4")stop.list <- vector("list", length(core.pkgs))names(stop.list) <- core.pkgs## -- Stop List for base/graphics/utils:edit.int <- c("fix", "edit", "edit.data.frame", "edit.matrix","edit.default", "vi", "file.edit","emacs", "pico", "xemacs", "xedit", "RSiteSearch", "help.request")## warning: readLines will work, but read all the rest of the script## warning: trace will load methods.## warning: rm and remove zap c0, l0, m0, df0## warning: parent.env(NULL) <- NULL creates a loop## warning: browseVignettes launches many browser processes.## news, readNEWS, rtags are slow, and R-only code.misc.int <- c("browser", "browseVignettes", "bug.report", "checkCRAN","getCRANmirrors", "lazyLoad", "menu", "repeat","readLines", "package.skeleton", "trace", "recover","rm", "remove", "parent.env<-","builtins", "data", "help", "news", "rtags", "vignette","installed.packages")inet.list <- c(apropos("download\\."),apropos("^url\\."), apropos("\\.url"),apropos("packageStatus"),paste(c("CRAN", "install", "update", "old"), "packages", sep="."))socket.fun <- apropos("socket")## "Interactive" ones:dev.int <- c("X11", "x11", "pdf", "postscript","xfig", "jpeg", "png", "pictex", "quartz","svg", "tiff", "cairo_pdf", "cairo_ps","getGraphicsEvent")misc.2 <- c("asS4", "help.start", "browseEnv", "make.packages.html","gctorture", "q", "quit", "restart", "try","read.fwf", "source",## << MM thinks "FIXME""data.entry", "dataentry", "de", apropos("^de\\."),"chooseCRANmirror", "setRepositories", "select.list", "View")if(.Platform$OS.type == "windows") {dev.int <- c(dev.int, "bmp", "windows", "win.graph", "win.print","win.metafile")misc.2 <- c(misc.2, "file.choose", "choose.files", "choose.dir","setWindowTitle", "loadRconsole","arrangeWindows", "getWindowsHandles")}stop.list[["base"]] <-if(nchar(Sys.getenv("R_TESTLOTS"))) {## SEVERE TESTING, try almost ALLc(edit.int, misc.int)} else {c(inet.list, socket.fun, edit.int, misc.int, misc.2)}## S4 group generics should not be called directly## and doing so sometimes leads to infinite recursions4.group.generics <- c("Arith", "Compare", "Ops", "Logic", "Math", "Math2", "Summary", "Complex")## warning: browseAll will tend to read all the script and/or loop foreverstop.list[["methods"]] <- c("browseAll", "recover", s4.group.generics)stop.list[["tools"]] <- c("write_PACKAGES", # problems with Packages/PACKAGES"update_PACKAGES","dependsOnPkgs", # call to installed.packages() slow w/ large library"testInstalledBasic","testInstalledPackages", # runs whole suite"readNEWS", # slow, pure R code"findHTMLlinks", "pskill","texi2dvi", "texi2pdf", # hang on Windows"getVignetteInfo", # very slow on large installation"CRAN_package_db", # slow, pure R code"CRAN_check_results","CRAN_check_details","CRAN_memtest_notes","summarize_CRAN_check_status","startDynamicHelp" # makes R hang on exit# on Windows)stop.list[["grDevices"]] <- dev.intstop.list[["utils"]] <- c("Rprof", "aspell", # hangs on Windows"winProgressBar","chooseBioCmirror",# too slow, R codeinet.list, socket.fun, edit.int, misc.int, misc.2)sink("no-segfault.R")if(.Platform$OS.type == "unix") cat('options(pager = "cat")\n')if(.Platform$OS.type == "windows") cat('options(pager = "console")\n')cat("options(catch.script.errors = TRUE)","# don't stop on error in batch\n##~~~~~~~~~~~~~~\n")cat(".libPaths(tail(.libPaths(), 1), include.site=FALSE) # no extra libraries (w/ many pkgs)\n")cat(".proctime00 <- proc.time()\n")for (pkg in core.pkgs) {cat("### Package ", pkg, "\n","### ", rep("~",nchar(pkg)), "\n", collapse="", sep="")pkgname <- paste("package", pkg, sep=":")this.pos <- match(paste("package", pkg, sep=":"), search())lib.not.loaded <- is.na(this.pos)if(lib.not.loaded) {library(pkg, character = TRUE, warn.conflicts = FALSE)cat("library(", pkg, ")\n")}this.pos <- match(paste("package", pkg, sep=":"), search())for(nm in ls(pkgname)) { # <==> no '.<name>' functions are tested hereif(!(nm %in% stop.list[[pkg]]) &&is.function(f <- get(nm, pos = pkgname))) {cat("\n## ", nm, " :\n")cat("c0 <- character(0)\n","l0 <- logical(0)\n","m0 <- matrix(1,0,0)\n","df0 <- as.data.frame(c0)\n", sep="")cat("f <- get(\"",nm,"\", pos = '", pkgname, "')\n", sep="")cat("f()\nf(NULL)\nf(,NULL)\nf(NULL,NULL)\n","f(list())\nf(l0)\nf(c0)\nf(m0)\nf(df0)\nf(FALSE)\n","f(list(),list())\nf(l0,l0)\nf(c0,c0)\n","f(df0,df0)\nf(FALSE,FALSE)\n",sep="")}}if(lib.not.loaded) {detach(pos=this.pos)cat("detach(pos=", this.pos, ")\n", sep="")}cat("\n##__________\n\n")}cat("proc.time() - .proctime00\n")