| % -*- coding: utf-8 -*- |
| \newcommand{\Rlogo}{\if{html}{\figure{../../html/Rlogo.svg}{options: class="toplogo" alt="[R logo]"}}\if{latex}{\figure{Rlogo.pdf}{options: width=0.5in}}} |
| |
| \name{NEWS} |
| \title{ R News} |
| \encoding{UTF-8} |
| |
| \section{LATER NEWS}{ |
| News for \R 3.0.0 and later can be found in file \file{NEWS.Rd} in the |
| \R sources and files \file{NEWS} and \file{doc/html/NEWS.html} |
| in an \R build. |
| } |
| |
| \section{\Rlogo CHANGES IN R VERSION 2.15.3}{ |
| \subsection{NEW FEATURES}{ |
| \itemize{ |
| \item \code{lgamma(x)} for very small \code{x} (in the |
| denormalized range) is no longer \code{Inf} with a warning. |
| |
| \item \code{image()} now sorts an unsorted \code{breaks} vector, |
| with a warning. |
| |
| \item The internal methods for \code{tar()} and \code{untar()} do |
| a slightly more general job for \sQuote{ustar}-style handling of |
| paths of more than 100 bytes. |
| |
| \item Packages \pkg{compiler} and \pkg{parallel} have been added |
| to the reference index (\file{refman.pdf}). |
| |
| \item \code{untar(tar = "internal")} has some support for |
| \code{pax} headers as produced by e.g.\sspace{}\command{gnutar --posix} |
| (which seems prevalent on OpenSUSE 12.2) or |
| \command{bsdtar --format pax}, including long path and link names. |
| |
| \item \code{sQuote()} and \code{dQuote()} now handle 0-length |
| inputs. (Suggestion of Ben Bolker.) |
| |
| \item \code{summaryRprof()} returns zero-row data frames rather |
| than throw an error if no events are recorded, for consistency. |
| |
| \item The included version of PCRE has been updated to 8.32. |
| |
| \item The \pkg{tcltk} namespace can now be re-loaded after |
| unloading. |
| |
| The Tcl/Tk event loop is inhibited in a forked child from package |
| \pkg{parallel} (as in e.g.\sspace{}\code{mclapply()}). |
| |
| \item \code{parallel::makeCluster()} recognizes the value |
| \samp{random} for the environment variable \env{R_PARALLEL_PORT}: |
| this chooses a random value for the port and reduces the chance of |
| conflicts when multiple users start a cluster at the same time. |
| } |
| } |
| |
| \subsection{UTILITIES}{ |
| \itemize{ |
| \item The default for \env{TAR} on Windows for \command{R CMD |
| build} has been changed to be \samp{internal} if no |
| \command{tar} command is on the path. |
| |
| This enables most packages to be built \sQuote{out of the box} |
| without \command{Rtools}: the main exceptions are those which need |
| to be installed to re-build vignettes and need \command{Rtools} |
| for installation (usually because they contain compiled code). |
| } |
| } |
| |
| \subsection{C-LEVEL FACILITIES}{ |
| \itemize{ |
| \item On a 64-bit Windows platform with enough RAM, \code{R_alloc} |
| can now allocate up to just under 32GB like other 64-bit |
| platforms. |
| } |
| } |
| |
| \subsection{DEPRECATED AND DEFUNCT}{ |
| \itemize{ |
| \item Use of \code{col2rgb(0)} is deprecated (see the help page |
| for its limitations). |
| |
| \item The deprecated \code{intensities} component returned by |
| \code{hist()} is no longer recognized by the \code{plot()} method |
| and will be removed in \R 3.0.0. |
| |
| \item \code{real()}, \code{as.real()} and \code{is.real()} are now |
| formally deprecated and give a warning. |
| |
| \item This is formal notice that the non-API EISPACK entry points |
| in \R will be removed shortly. |
| } |
| } |
| |
| \subsection{INSTALLATION}{ |
| \itemize{ |
| \item The \command{configure} tests for Objective C and Objective |
| C++ now work on Mac OS 10.8 with Xcode 4.5.2 (\PR{15107}). |
| |
| \item The cairo-based versions of \code{X11()} now work with |
| current versions of cairographics (e.g., 1.12.10). (\PR{15168}) |
| |
| A workaround for earlier versions of \R is to use |
| \code{X11.options(type = "nbcairo")}. |
| |
| \item Configuration and \command{R CMD javareconf} now come up |
| with a smaller set of library paths for Java on Oracle-format JDK |
| (including OpenJDK). This helps avoid conflicts between libraries |
| (such as \code{libjpeg}) supplied in the JDK and system |
| libraries. This can always be overridden if needed: see the |
| \sQuote{R Installation and Administration} manual. |
| } |
| } |
| |
| \subsection{BUG FIXES}{ |
| \itemize{ |
| \item \code{beta(a, b)} could overflow to infinity in its |
| calculations when one of \code{a} and \code{b} was less than one. |
| (\PR{15075}) |
| |
| \item \code{lbeta(a, b)} no longer gives \code{NaN} if \code{a} or |
| \code{b} is very small (in the denormalized range). |
| |
| \item \code{bquote()} is now able to substitute default arguments in |
| single-argument functions. (\PR{15077}) |
| |
| \item \code{browseEnv(html = FALSE)} would segfault if called from |
| \R (not \command{R.app}) on a CRAN-style Mac OS X build of \R. |
| |
| \item \samp{[[<-} for lists (generic vectors) needed to increment |
| \code{NAMED} count when RHS is used more than once. (\PR{15098}) |
| |
| \item On Windows, warnings about opening a file or pipe with a |
| non-ASCII description were sometimes output in UTF-8 rather than |
| in the current locale's character set. |
| |
| \item The \code{call()} function did not duplicate its arguments. |
| (\PR{15115}) |
| |
| \item \code{TukeyHSD()} could give \code{NA} results with some |
| \samp{na.action} methods such as \code{na.exclude()}. |
| (Hinted at on R-help by John Fox.) |
| |
| \item The deprecated \code{svd(X, LINPACK = TRUE)} could alter |
| \code{X} in \R 2.15.[12]. (Reported by Bill Dunlap.) |
| |
| \item Under Windows, \code{file.link()} and \code{file.symlink()} |
| used the link name twice, so would always fail. (Reported |
| by Rui Barradas/Oliver Soong). |
| |
| \item \code{summaryRprof(memory = "both")} mixed up the units of |
| Vcells and Ncells: it now works in bytes. (\PR{15138}) |
| |
| \item \code{tools::Rd2HTML()} would sometimes delete text. (\PR{15134}) |
| |
| \item \code{plot()} failed for \code{"table"} objects containing |
| just one entry. (\PR{15118}) |
| |
| \item \code{embedFonts()} needed to quote some filepaths. |
| (\PR{15149}) |
| |
| \item \code{parallel::mccollect()} handled \code{NULL} returns |
| incorrectly (removing the element rather than setting it to |
| \code{NULL}). |
| |
| \item The full reference index (\file{fullrefman.pdf}) was missing |
| packages \pkg{compiler} and \pkg{parallel}. |
| |
| \item The report for |
| \code{optim(method = "L-BFGS-B", control = list(trace = 1))} |
| reported the last completed and not the current iteration, unlike |
| other methods and trace levels. (\PR{15103}) |
| |
| \item \code{qt(1e-12, 1.2)} no longer gives \code{NaN}. |
| |
| \item \code{dt(1e160, 1.2, log=TRUE)} no longer gives \code{-Inf}. |
| |
| \item On Windows the \code{untar()} function now quotes the |
| directory name when using an external \command{tar} utility, so |
| \code{R CMD check} will handle pathnames containing spaces. |
| |
| \item The version for Windows 8 and Windows Server 2012 is now |
| displayed by \code{win.version()}. (Reported by Gabor |
| Grothendieck.) |
| |
| \item The custom Windows installer target \code{myR} in the |
| installer \file{Makefile} did not work in 2.15.2. (Reported |
| by Erich Neuwirth.) |
| |
| \item \code{aperm(matrix(1:6, 2, dimnames=list(A={}, B={})), "A")} |
| no longer segfaults. |
| |
| \item Expressions involving user defined operators were not |
| always deparsed faithfully. (\PR{15179}) |
| |
| \item The \code{enc2utf8()} function converted \code{NA_character_} |
| to \code{"NA"} in non-UTF-8 locales. (\PR{15201}) |
| |
| \item The \code{exclude} argument to \code{xtabs()} was ignored |
| for \code{"factor"} arguments. |
| |
| \item On Windows, work around an event-timing problem when |
| the RGui console was closed from the \sQuote{X} control and the closure |
| cancelled. (This would on some 64-bit systems crash \R, typically |
| those with a slow GPU relative to the CPU.) |
| |
| \item On unix \code{Rscript} will pass the \code{r_arch} setting |
| it was compiled with on to the R process so that the architecture |
| of \code{Rscript} and that of \R will match unless overridden. |
| |
| \item On Windows, \code{basename()}, \code{dirname()} and |
| \code{file.choose()} have more support for long non-ASCII file |
| names with 260 or more bytes when expressed in UTF-8. |
| } |
| } |
| } |
| |
| \section{\Rlogo CHANGES IN R VERSION 2.15.2}{ |
| \subsection{NEW FEATURES}{ |
| \itemize{ |
| \item The \code{X11()} window gains an icon: the |
| latter may be especially useful on Ubuntu's \sQuote{Unity} |
| interface. |
| |
| The \code{WM_CLASS} should be set in circumstances where the |
| Window Manager failed to make use of X11 resource settings. |
| |
| (Contributed by Philip Johnson.) |
| |
| \item The \code{"Date"} and \code{"POSIXt"} methods for |
| \code{cut()} will accept an unsorted \code{breaks} argument (as |
| the default method does, although this was undocumented). |
| (Wish of \PR{14961}.) |
| |
| \item Reference class methods (in the \pkg{methods} package) that |
| use other methods in an indirect way (e.g., by \code{sapply()}) |
| must tell the code analysis to include that method. They can now |
| do so by invoking \code{$usingMethods()}. %$ |
| |
| \item More Polish translations are available: for the |
| \command{RGui} menus and for several recommended packages. |
| |
| \item Multistratum MANOVA works. In fact, it seems to have done so |
| for years in spite of the help page claiming it did not. |
| |
| \item \code{qqline()} has new optional arguments |
| \code{distribution}, \code{probs} and \code{qtype}, following the |
| example of \CRANpkg{lattice}'s \code{panel.qqmathline()}. |
| |
| \item The handling of single quotes in the \code{en@quot} |
| pseudo-language has been slightly improved. Double quotes are no |
| longer converted. |
| |
| \item New functions \code{checkPoFiles()} and \code{checkPoFile()} |
| have been added to the \pkg{tools} package to check for |
| consistency of format strings in translation files. |
| |
| \item \code{model.matrix(~1, ...)} now also contains the same |
| rownames that less trivial formulae produce. (Wish of \PR{14992}, |
| changes the output of several packages.) |
| |
| \item Misuse of \code{rep()} on undocumented types of objects |
| (e.g., calls) is now reported as an error. |
| |
| \item The included LAPACK has been updated to 3.4.1, with some |
| patches from the current SVN sources. (\emph{Inter alia}, this |
| resolves \PR{14692}.) |
| |
| \item \code{file.copy(recursive = TRUE)} has some additional |
| checks on user error leading to attempted infinite recursion (and on |
| some platforms to crashing \R). |
| |
| \item PCRE has been updated to version 8.31, a bug-fix release. |
| |
| \item The included version of \code{liblzma} has been updated to |
| version 5.0.4, a minor bug-fix release. |
| |
| \item New function \code{.bincode()}, a \sQuote{bare-bones} |
| version of \code{cut.default(labels = FALSE)} for use in packages |
| with \code{image()} methods. |
| |
| \item The HTML manuals now use directional single quotes. |
| |
| \item \code{maintainer()} now converts embedded new lines to |
| spaces. It no longer gives a non-obvious error for non-installed |
| packages. |
| |
| \item The \code{X11()} device has some protection against |
| being used with forked processes \emph{via} package \pkg{parallel}. |
| |
| \item Setting the environment variable \env{R_OSX_VALGRIND} (to |
| any value) allows \R to be run under \command{valgrind} on Mac OS |
| 10.6 and 10.7 (\command{valgrind} currently has very limited |
| support for 10.8), provided \code{system()} is not used (directly |
| or indirectly). This should not be needed for \command{valgrind} |
| >= 3.8.1. |
| |
| \item The \code{model.frame()} method for \code{"lm"} uses |
| \code{xlevels}: this is safer if \code{data} was supplied or |
| \code{model = FALSE} was used and the levels of factors used in |
| the fit had been re-ordered since fitting. |
| |
| Similarly, \code{model.frame(fm, data=<data>)} copies across |
| the variables used for safe prediction from the fit. |
| |
| \item Functions such as \code{parLapply()} in package |
| \pkg{parallel} can make use of a default cluster if one is set. |
| (Reported by Martin Morgan.) |
| |
| \item \code{chol(pivot = TRUE, LINPACK = FALSE)} is now available |
| using LAPACK 3.2 subroutine \code{DPSTRF}. |
| |
| \item The functions \code{.C()}, \code{.Call()}, |
| \code{.External()} and \code{.Fortran()} now check that they are |
| called with an unnamed first argument: the formal arguments were |
| changed from \code{name=} to \code{.NAME=} in \R 2.13.0, but some |
| packages were still using the old name. This is currently a |
| warning, but will be an error in future. |
| |
| \item \code{step()} no longer tries to improve a model with |
| AIC of \code{-Inf} (a perfect fit). |
| |
| \item \code{spline()} and \code{splinefun()} gain a new method |
| \code{"hyman"}, an implementation of Hyman's method of |
| constructing monotonic interpolation splines. (Based on |
| contributions of Simon Wood and Rob Hyndman.) |
| |
| \item On Windows, the C stack size has been increased to 64MB (it |
| has been 10MB since the days of 32MB RAM systems). |
| } |
| } |
| |
| \subsection{PERFORMANCE IMPROVEMENTS}{ |
| \itemize{ |
| \item \code{array()} is now implemented in C code (for speed) when |
| \code{data} is atomic or an unclassed list (so it is known that |
| \code{as.vector(data)} will have no class to be used by \code{rep()}). |
| |
| \item \code{rep()} is faster and uses less memory, |
| substantially so in some common cases (e.g., if \code{times} is of |
| length one or \code{length.out} is given, and \code{each = 1}). |
| |
| \item \code{findInterval()}, \code{tabulate()}, \code{cut()}, |
| \code{hist()} and \code{image.default()} all use \code{.Call()} |
| and are more efficient. |
| |
| \item \code{duplicated()}, \code{unique()} and similar now |
| support vectors of lengths above \eqn{2^{29}}{2^29} on 64-bit |
| platforms. |
| |
| \item Omitting \code{PACKAGE} in \code{.C()} etc calls was |
| supposed to make use of the DLL from the namespace within which |
| the enclosing function was defined. It was less successful in |
| doing so than it might be, and gave no indication it had failed. |
| |
| A new search strategy is very successful and gives a warning |
| when it fails. In most cases this is because the entry point is |
| not actually provided by that package (and so \code{PACKAGE} |
| should be used to indicate which package is intended) but in some |
| the namespace does not have a DLL specified by a |
| \code{useDynLib()} directive so \code{PACKAGE} is required. |
| } |
| } |
| |
| \subsection{UTILITIES}{ |
| \itemize{ |
| \item \command{R CMD check} now checks if a package can be loaded |
| by \code{library(pkgname, lib.loc = "somewhere")} without being on |
| the library search path (unless it is already installed in |
| \code{.Library}, when it always will be). |
| |
| \item \command{R CMD check --as-cran} notes \sQuote{hidden} files |
| and directories (with names starting with a dot) that are not |
| needed for the operation of \command{R CMD INSTALL} or \code{R CMD |
| build}: such files should be excluded from the published tarball. |
| |
| \item \command{R CMD check} (if checking subdirectories) checks |
| that the \R code in any demos is ASCII and can be parsed, and |
| warns if not. |
| |
| \item When \code{R CMD Rd2pdf} is used with \file{inputenx.sty}, |
| it allows further characters (mainly for Eastern European |
| languages) by including \file{ix-utf8enc.dfu} (if available). |
| (Wish of \PR{14989}.) |
| |
| \item \command{R CMD build} now omits several types of hidden |
| files/directories, including \file{inst/doc/.Rinstignore}, |
| \file{vignettes/.Rinstignore}, (\file{.Rinstignore} should be at |
| top level), \file{.deps} under \file{src}, \file{.Renviron}, |
| \file{.Rprofile}, \file{.Rproj.user}, \file{.backups}, |
| \file{.cvsignore}, \file{.cproject}, \file{.directory}, |
| \file{.dropbox}, \file{.exrc}, \file{.gdb.history}, |
| \file{.gitattributes}, \file{.gitignore}, \file{.gitmodules}, |
| \file{.hgignore}, \file{.hgtags}, \file{.htaccess}, |
| \file{.latex2html-init}, \file{.project}, \file{.seed}, |
| \file{.settings}, \file{.tm_properties} and various leftovers. |
| |
| \item \command{R CMD check} now checks for \code{.C()}, |
| \code{.Call()}, \code{.External()} and \code{.Fortran()} calls in |
| other packages, and gives a warning on those found from \R itself |
| (which are not part of the API and change without notice: many |
| will be changed for \R 3.0.0). |
| } |
| } |
| |
| \subsection{C-LEVEL FACILITIES}{ |
| \itemize{ |
| \item The limit for \code{R_alloc} on 64-bit platforms has been |
| raised to just under 32GB (from just under 16GB). |
| |
| \item The misuse of \code{.C("name", ..., PACKAGE = foo)} where |
| \code{foo} is an arbitrary \R object is now an error. |
| |
| The misuse \code{.C("name",..., PACKAGE = "")} is now warned about |
| in \command{R CMD check}, and will be an error in future. |
| } |
| } |
| |
| \subsection{DEPRECATED AND DEFUNCT}{ |
| \itemize{ |
| \item Use of \code{array()} with a 0-length \code{dim} argument is |
| deprecated with a warning (and was contrary to the documentation). |
| |
| \item Use of \code{tapply()} with a 0-length \code{INDEX} list is |
| deprecated with a warning. |
| |
| \item \samp{Translation} packages are deprecated. |
| |
| \item Calling \code{rep()} or \code{rep.int()} on a pairlist is |
| deprecated and will give a warning. In any case, \code{rep()} |
| converted a pairlist to a list so you may as well do that |
| explicitly. |
| |
| \item Entry point \code{rcont2} is no longer part of the API, and |
| will move to package \pkg{stats} in \R 3.0.0. |
| |
| \item The \sQuote{internal} graphics device invoked by |
| \code{.Call("R_GD_nullDevice", package = "grDevices")} is about to |
| be removed: use \code{pdf(file = NULL)} instead. |
| |
| \item \code{eigen(EISPACK = TRUE)}, |
| \code{chol(pivot = FALSE, LINPACK = TRUE)}, |
| \code{chol2inv(LINPACK = TRUE)}, \code{solve(LINPACK = TRUE)} and |
| \code{svd(LINPACK = TRUE)} are deprecated and give a warning. |
| |
| They were provided for compatibility with \R 1.7.0 (Mar 2003)! |
| |
| \item The \sQuote{internal function} \code{kappa.tri()} has been |
| renamed to \code{.kappa_tri()} so it is not inadvertently called |
| as a method for class \code{"tri"}. |
| |
| \item Functions \code{sessionData()} and \code{browseAll()} in |
| package \pkg{methods} are on a help page describing them as |
| \sQuote{deprecated} and are now formally deprecated. |
| } |
| } |
| |
| \subsection{PACKAGE INSTALLATION}{ |
| \itemize{ |
| \item For a Windows or Mac OS X binary package install, |
| \code{install.packages()} will check if a source package is |
| available on the same repositories, and report if it is a later |
| version or there is a source package but no binary package |
| available. |
| |
| This check can be suppressed: see the help page. |
| |
| \item \code{install.packages(type = "both")} has been enhanced. |
| In interactive use it will ask whether to choose the source |
| version of a package if the binary version is older and contains |
| compiled code, and also asks if source packages with no binary |
| version should be installed. |
| } |
| } |
| |
| \subsection{INSTALLATION}{ |
| \itemize{ |
| \item There is a new \command{configure} option |
| \option{--with-libtiff} (mainly in case the system installation |
| needs to be avoided). |
| |
| \item LAPACK 3.4.1 does use some Fortran 90 features, so |
| \command{g77} no longer suffices. |
| |
| \item If an external LAPACK is used, it must be version 3.2 or later. |
| } |
| } |
| |
| \subsection{BUG FIXES}{ |
| \itemize{ |
| \item On Windows, starting \command{Rterm} via \command{R.exe} |
| caused Ctrl-C to misbehave. (\PR{14948}) |
| |
| \item The \code{tools::latexToUtf8()} function missed conversions that |
| were contained within braces. |
| |
| \item Long timezone specifications (such as a file name preceded |
| by \code{:}) could crash \code{as.POSIXlt}. (\PR{14945}) |
| |
| \item \code{R CMD build --resave-data} could fail if there was no |
| \file{data} directory but there was an \file{R/sysdata.rda} file. |
| (\PR{14947}) |
| |
| \item \code{is.na()} misbehaved on a 0-column data frame. |
| (\PR{14959}) |
| |
| \item \code{anova.lmlist()} failed if \code{test} was |
| supplied. (\PR{14960}) |
| |
| It was unable to compute Cp tests for object of class \code{"lm"} |
| (it assumed class \code{"glm"}). |
| |
| \item The \code{formula} method for \code{sunflowerplot()} now |
| allows \code{xlab} and \code{ylab} to be set. (Reported by Gerrit |
| Eichner.) |
| |
| \item The \code{"POSIXt"} and \code{"Date"} methods for \code{hist()} |
| could fail on Windows where adjustments to the right-hand boundary |
| crossed a DST transition time. |
| |
| \item On Windows, the code in \code{as.POSIXct()} to handle |
| incorrectly specified \code{isdst} fields might have resulted in |
| \code{NA} being returned. |
| |
| \item \code{aov()} and \code{manova()} gave spurious warning about |
| singular error model in the multiresponse case. |
| |
| \item In \code{ns()} and \code{bs()}, specifying \code{knots = NULL} |
| is now equivalent to omitting it, also when \code{df} is |
| specified. (\PR{14970}) |
| |
| \item \code{sprintf()} did not accept numbered arguments ending |
| in zero. (\PR{14975}) |
| |
| \item \code{rWishart()} could overflow the C stack and maybe crash |
| the \R process for dimensions of several hundreds or more. |
| (Reported by Michael Braun on R-sig-mac.) |
| |
| \item Base package vignettes (e.g., \code{vignette("Sweave")}) were |
| not fully installed in builds of \R from the tarball. |
| |
| \item \code{lchoose()} and \code{choose()} could overflow the C |
| stack and crash \R. |
| |
| \item When given a 0-byte file and asked to keep source |
| references, \code{parse()} read input from \code{stdin()} |
| instead. |
| |
| \item \code{pdf(compress = TRUE)} did not delete temporary files |
| it created until the end of the \R session. (\PR{14991}) |
| |
| \item \code{logLik()} did not detect the error of applying it |
| to a multiple-response linear model. (\PR{15000}) |
| |
| \item \code{file.copy(recursive = TRUE)} did not always report |
| \code{FALSE} for a failure two or more directories deep. |
| |
| \item \code{qgeom()} could return \code{-1} for extremely small |
| \code{q}. (\PR{14967}) |
| |
| \item \code{smooth.spline()} used \code{DUP = FALSE} which allowed |
| its compiled C code to change the function: this was masked by the |
| default byte-compilation. (\PR{14965}) |
| |
| \item In Windows, the GUI preferences for foreground color were |
| not always respected. (Reported by Benjamin Wells.) |
| |
| \item On OS X, the Quartz versions of the bitmap devices did not |
| respect \code{antialias = "none"}. (\PR{15006}) |
| |
| \item \code{unique()} and similar would infinite-loop if called on |
| a vector of length > \eqn{2^{29}}{2^29} (but reported that the |
| vector was too long for \eqn{2^{30}}{2^30} or more). |
| |
| \item \code{parallel::stopCluster()} now works with MPI |
| clusters without \CRANpkg{snow} being on the search path. |
| |
| \item \code{terms.formula()} could exhaust the stack, and the |
| stack check did not always catch this before the segfault. |
| (\PR{15013}) |
| |
| \item \code{sort.list(method = "radix")} could give incorrect |
| results on certain compilers (seen with \command{clang} on Mac OS |
| 10.7 and \command{Xcode 4.4.1}). |
| |
| \item \code{backsolve(T, b)} gave incorrect results when |
| \code{nrows(b) > ncols(T)} and \code{b} had more than one column. |
| |
| It could segfault or give nonsense if \code{k} was specified as |
| more than \code{ncols(T)}. |
| |
| \item \code{smooth.spline()} did not check that a specified |
| numeric \code{spar} was of length 1, and gave corrupt results if |
| it was of length 0. |
| |
| \item Protection added to \code{do_system}. (\PR{15025}) |
| |
| \item Printing of vectors with names > 1000 characters now works |
| correctly rather than truncating. (\PR{15028}) |
| |
| \item \code{qr()} for a complex matrix did not pivot the column names. |
| |
| \item \code{--with-blas='-framework vecLib'} now also works on OS X 10.8. |
| |
| \item \command{R CMD check} no longer fails with an error if |
| a \file{DESCRIPTION} file incorrectly contains a blank line. |
| (Reported by Bill Dunlap.) |
| |
| \item \code{install.packages(type = "both")} could call |
| \code{chooseCRANmirror()} twice. |
| |
| \item \code{lm.wfit()} could segfault in \R 2.15.1 if all the |
| weights were zero. (\PR{15044}) |
| |
| \item A malformed package name could cause \command{R CMD INSTALL} |
| to write outside the target library. |
| |
| \item Some of the quality control functions |
| (e.g., \code{tools::checkFF()}) were wrongly identifying the source |
| of S4 methods in a package and so not checking them. |
| |
| \item The default type of display by \code{browseEnv()} when using |
| \command{R.app} on Mac OS X has been incorrect for a long time. |
| |
| \item The implementation of \code{importMethodsFrom} in a |
| \code{NAMESPACE} file could be confused and fail to find generics |
| when importing from multiple packages (reported and fixed by |
| Michael Lawrence). |
| |
| \item The detection of the C stack direction is better protected |
| against compiler optimization. (\PR{15011}) |
| |
| \item Long custom line types would sometimes segfault on the |
| cairographics-based devices. (\PR{15055}) |
| |
| \item \code{tools::checkPoFile()} unprotected too early in its C |
| code and so segfaulted from time to time. |
| |
| \item The Fortran code underlying \code{nlminb()} could |
| infinite-loop if any of the input functions returned \code{NA} or |
| \code{NaN}. This is now an error for the gradient or Hessian, and |
| a warning for the function (with the value replaced by |
| \code{Inf}). (In part, \PR{15052}.) |
| |
| \item The code for creating \code{coerce()} methods could |
| generate false notes about ambiguous selection; the notes have |
| been suppressed for this function. |
| |
| \item \code{arima.sim()} could give too long an output in some |
| corner cases (in part, \PR{15068}). |
| |
| \item \code{anova.glm()} with \code{test = "Rao"} didn't work when |
| models included an offset. (Reported by Søren Feodor Nielsen.) |
| |
| \item \code{as.data.frame.matrix()} could return invalid data |
| frame with no \code{row.names} attribute for 0-row matrix. (Reported |
| by Hervé Pagès.) |
| |
| \item Compilation with the \code{vecLib} or \code{Accelerate} |
| frameworks on OS X without using that also for LAPACK is more |
| likely to be successful. |
| } |
| } |
| } |
| |
| \section{\Rlogo CHANGES IN R VERSION 2.15.1}{ |
| \subsection{NEW FEATURES}{ |
| \itemize{ |
| \item \code{source()} now uses \code{withVisible()} rather than |
| \code{.Internal(eval.with.vis)}. This sometimes alters tracebacks |
| slightly. |
| |
| \item \code{install.packages("pkg_version.tgz")} on Mac OS X now |
| has sanity checks that this is actually a binary package (as |
| people have tried it with incorrectly named source packages). |
| |
| \item \code{splineDesign()} and \code{spline.des()} in package |
| \pkg{splines} have a new option \code{sparse} which can be used |
| for efficient construction of a sparse B-spline design matrix |
| (\emph{via} \CRANpkg{Matrix}). |
| |
| \item \code{norm()} now allows \code{type = "2"} (the |
| \sQuote{spectral} or 2-norm) as well, mainly for didactical |
| completeness. |
| |
| \item \code{pmin()} and \code{pmax()} now also work when one of |
| the inputs is of length zero and others are not, returning a |
| zero-length vector, analogously to, say, \code{+}. |
| |
| \item \code{colorRamp()} (and hence \code{colorRampPalette()}) now |
| also works for the boundary case of just one color when the ramp is |
| flat. |
| |
| \item \code{.C()} gains some protection against the misuse of |
| character vector arguments. (An all too common error is to pass |
| \code{character(N)}, which initializes the elements to \code{""}, |
| and then attempt to edit the strings in-place, sometimes forgetting |
| to terminate them.) |
| |
| \item Calls to the new function \code{globalVariables()} in |
| package \pkg{utils} declare that functions and other objects in a |
| package should be treated as globally defined, so that \code{CMD |
| check} will not note them. |
| |
| \item \code{print(packageDescription(*))} trims the \code{Collate} |
| field by default. |
| |
| \item The included copy of \code{zlib} has been updated to version |
| 1.2.7. |
| |
| \item A new option \code{"show.error.locations"} has been added. |
| When set to \code{TRUE}, error messages will contain the |
| location of the most recent call containing source reference |
| information. (Other values are supported as well; see |
| \code{?options}.) |
| |
| \item The NA warning messages from e.g.\sspace{}\code{pchisq()} now report |
| the call to the closure and not that of the \code{.Internal}. |
| |
| \item Added Polish translations by Łukasz Daniel. |
| } |
| } |
| |
| \subsection{PERFORMANCE IMPROVEMENTS}{ |
| \itemize{ |
| \item In package \pkg{parallel}, \code{makeForkCluster()} and the |
| multicore-based functions use native byte-order for serialization |
| (deferred from 2.15.0). |
| |
| \item \code{lm.fit()}, \code{lm.wfit()}, \code{glm.fit()} and |
| \code{lsfit()} do less copying of objects, mainly by using |
| \code{.Call()} rather than \code{.Fortran()}. |
| |
| \item \code{.C()} and \code{.Fortran()} do less copying: arguments |
| which are raw, logical, integer, real or complex vectors and are |
| unnamed are not copied before the call, and (named or not) are not |
| copied after the call. Lists are no longer copied (they are |
| supposed to be used read-only in the C code). |
| |
| \item \code{tabulate()} makes use of \code{.C(DUP = FALSE)} and |
| hence does not copy \code{bin}. (Suggested by Tim Hesterberg.) |
| It also avoids making a copy of a factor argument \code{bin}. |
| |
| \item Other functions (often or always) doing less copying include |
| \code{cut()}, \code{dist()}, the complex case of \code{eigen()}, |
| \code{hclust()}, \code{image()}, \code{kmeans()}, \code{loess()}, |
| \code{stl()} and \code{svd(LINPACK = TRUE)}. |
| |
| \item There is less copying when using primitive replacement |
| functions such as \code{names()}, \code{attr()} and |
| \code{attributes()}. |
| } |
| } |
| |
| \subsection{DEPRECATED AND DEFUNCT}{ |
| \itemize{ |
| \item The converters for use with \code{.C()} (see |
| \code{?getCConverterDescriptions}) are deprecated: use the |
| \code{.Call()} interface instead. There are no known examples |
| (they were never fully documented). |
| } |
| } |
| |
| \subsection{UTILITIES}{ |
| \itemize{ |
| \item For \command{R CMD check}, a few people have reported |
| problems with junctions on Windows (although they were tested on |
| Windows 7, XP and Server 2008 machines and it is unknown under |
| what circumstances the problems occur). Setting the environment |
| variable \env{R_WIN_NO_JUNCTIONS} to a non-empty value (e.g., in |
| \file{~/.R/check.Renviron}) will force copies to be used instead. |
| } |
| } |
| |
| \subsection{INSTALLATION}{ |
| \itemize{ |
| \item \command{R CMD INSTALL} with \env{_R_CHECK_INSTALL_DEPENDS_} |
| set to a true value (as done by \command{R CMD check --as-cran}) |
| now restricts the packages available when lazy-loading as well |
| as when test-loading (since packages such as \CRANpkg{ETLUtils} |
| and \CRANpkg{agsemisc} had top-level calls to \code{library()} |
| for undeclared packages). |
| |
| This check is now also available on Windows. |
| } |
| } |
| |
| \subsection{C-LEVEL FACILITIES}{ |
| \itemize{ |
| \item C entry points \code{mkChar} and \code{mkCharCE} now check |
| that the length of the string they are passed does not exceed |
| \eqn{2^{31}-1}{2^31-1} bytes: they used to overflow with |
| unpredictable consequences. |
| |
| \item C entry points \code{R_GetCurrentSrcref} and |
| \code{R_GetSrcFilename} have been added to the API to allow |
| debuggers access to the source references on the stack. |
| } |
| } |
| |
| \subsection{WINDOWS-SPECIFIC CHANGES}{ |
| \itemize{ |
| \item Windows-specific changes will now be announced in this file |
| (\file{NEWS}). Changes up and including \R 2.15.0 remain in the |
| \file{CHANGES} file. |
| |
| \item There are two new environment variables which |
| control the defaults for command-line options. |
| |
| If \env{R_WIN_INTERNET2} is set to a non-empty value, it is as if |
| \option{--internet2} was used. |
| |
| If \env{R_MAX_MEM_SIZE} is set, it gives the default memory limit |
| if \option{--max-mem-size} is not specified: invalid values being |
| ignored. |
| } |
| } |
| |
| \subsection{BUG FIXES}{ |
| \itemize{ |
| \item \code{lsfit()} lost the names from the residuals. |
| |
| \item More cases in which \code{merge()} could create a data frame |
| with duplicate column names now give warnings. Cases where |
| names specified in \code{by} match multiple columns are errors. |
| |
| \item Nonsense uses such as \code{seq(1:50, by = 5)} (from package |
| \CRANpkg{plotrix}) and \code{seq.int(1:50, by = 5)} are now errors. |
| |
| \item The residuals in the 5-number summary printed by |
| \code{summary()} on an \code{"lm"} object are now explicitly |
| labelled as weighted residuals when non-constant weights are |
| present. (Wish of \PR{14840}.) |
| |
| \item \code{tracemem()} reported that all objects were copied |
| by \code{.C()} or \code{.Fortran()} whereas only some object types |
| were ever copied. |
| |
| It also reported and marked as copies \emph{some} transformations |
| such as \code{rexp(n, x)}: it no longer does so. |
| |
| \item The \code{plot()} method for class \code{"stepfun"} only |
| used the optional \code{xval} argument to compute \code{xlim} and |
| not the points at which to plot (as documented). (\PR{14864}) |
| |
| \item Names containing characters which need to be escaped were |
| not deparsed properly. (\PR{14846}) |
| |
| \item Trying to update (recommended) packages in |
| \file{R_HOME/library} without write access is now dealt with more |
| gracefully. Further, such package updates may be skipped (with a |
| warning), when a newer installed version is already going to be |
| used from \code{.libPaths()}. (\PR{14866}) |
| |
| \item \code{hclust()} is now fast again (as up to end of 2003), |
| with a different fix for the "median"/"centroid" problem. (\PR{4195}). |
| |
| \item \code{get_all_vars()} failed when the data came entirely |
| from vectors in the global environment. (\PR{14847}) |
| |
| \item \command{R CMD check} with \env{_R_CHECK_NO_RECOMMENDED_} |
| set to a true value (as done by the \command{--as-cran} option) |
| could issue false errors if there was an indirect dependency |
| on a recommended package. |
| |
| \item \code{formatC()} uses the C entry point \code{str_signif} |
| which could write beyond the length allocated for the output string. |
| |
| \item Missing default argument added to implicit S4 generic for |
| \code{backsolve()}. (\PR{14883}) |
| |
| \item Some bugs have been fixed in handling load actions that |
| could fail to export assigned items or generate spurious warnings |
| in \code{CMD check} on loading. |
| |
| \item For \code{tiff(type = "windows")}, the numbering of per-page |
| files except the last was off by one. |
| |
| \item On Windows, loading package \pkg{stats} (which is done for |
| a default session) would switch line endings on \file{stdout} |
| and \file{stderr} from CRLF to LF. This affected |
| \command{Rterm} and \command{R CMD BATCH}. |
| |
| \item On Windows, the compatibility function \code{x11()} had |
| not kept up with changes to \code{windows()}, and issued |
| warnings about bad parameters. (\PR{14880}) |
| |
| \item On Windows, the \code{Sys.glob()} function did not handle |
| UNC paths as it was designed to try to do. (\PR{14884}) |
| |
| \item In package \pkg{parallel}, \code{clusterApply()} and similar |
| failed to handle a (pretty pointless) length-1 argument. (\PR{14898}) |
| |
| \item Quartz Cocoa display reacted asynchronously to |
| \code{dev.flush()} which means that the redraw could be performed |
| after the plot has been already modified by subsequent code. The |
| redraw is now done synchronously in \code{dev.flush()} to allow |
| animations without sleep cycles. |
| |
| \item Source locations reported in \code{traceback()} were |
| incorrect when byte-compiled code was on the stack. |
| |
| \item \code{plogis(x, lower = FALSE, log.p = TRUE)} no longer |
| underflows early for large x (e.g., 800). |
| |
| \item \code{?Arithmetic}'s \dQuote{\code{1 ^ y} and \code{y ^ 0} |
| are \code{1}, \emph{always}} now also applies for \code{integer} |
| vectors \code{y}. |
| |
| \item X11-based pixmap devices like \code{png(type = "Xlib")} were |
| trying to set the cursor style, which triggered some warnings and |
| hangs. |
| |
| \item Code executed by the built-in HTTP server no longer allows |
| other HTTP clients to re-enter \R until the current worker |
| evaluation finishes, to prevent cascades. |
| |
| \item The \code{plot()} and \code{Axis()} methods for class |
| \code{"table"} now respect graphical parameters such as |
| \code{cex.axis}. (Reported by Martin Becker.) |
| |
| \item Under some circumstances \code{package.skeleton()} would |
| give out progress reports that could not be translated and so were |
| displayed by question marks. Now they are always in English. |
| (This was seen for CJK locales on Windows, but may have occurred |
| elsewhere.) |
| |
| \item The evaluator now keeps track of source references outside |
| of functions, e.g.\sspace{}when \code{source()} executes a script. |
| |
| \item The replacement method for \code{window()} now works |
| correctly for multiple time series of class \code{"mts"}. |
| (\PR{14925}) |
| |
| \item \code{is.unsorted()} gave incorrect results on non-atomic |
| objects such as data frames. (Reported by Matthew Dowle.) |
| |
| \item The value returned by \code{tools::psnice()} for invalid |
| \code{pid} values was not always \code{NA} as documented. |
| |
| \item Closing an \code{X11()} window while \code{locator()} was |
| active could abort the \R process. |
| |
| \item \code{getMethod(f, sig)} produced an incorrect error message |
| in some cases when \code{f} was not a string. |
| |
| \item Using a string as a \dQuote{call} in an error condition |
| with \code{options(showErrorCalls=TRUE)} could cause a segfault. |
| (\PR{14931}) |
| |
| \item The string \code{"infinity"} allowed by C99 was not accepted |
| as a numerical string value by e.g.\sspace{}\code{scan()} and |
| \code{as.numeric()}. (\PR{14933}) |
| |
| \item In \code{legend()}, setting some entries of \code{lwd} to |
| \code{NA} was inconsistent (depending on the graphics device) in |
| whether it would suppress those lines; now it consistently does |
| so. (\PR{14926}) |
| |
| \item \code{by()} failed for a zero-row data frame. (Reported by |
| Weiqiang Qian.) |
| |
| \item The Yates' correction in \code{chisq.test()} could be bigger |
| than the terms it corrected, previously leading to an infinite |
| test statistic in some corner cases which are now reported as |
| \code{NaN}. |
| |
| \item \code{xgettext()} and related functions sometimes returned |
| items that were not strings for translation. (\PR{14935}) |
| |
| \item \code{plot(<lm>, which=5)} now correctly labels the factor |
| level combinations for the special case where all |
| \eqn{h_ii}{h[i,i]} are the same. (\PR{14837}) |
| |
| \item \code{Sys.glob()} caused a segfault if the first element of |
| \code{path} was \code{NA_character}. (\PR{14990}) |
| } |
| } |
| } |
| |
| \section{\Rlogo CHANGES IN R VERSION 2.15.0}{ |
| \subsection{SIGNIFICANT USER-VISIBLE CHANGES}{ |
| \itemize{ |
| \item The behaviour of \code{unlink(recursive = TRUE)} for a |
| symbolic link to a directory has changed: it now removes the link |
| rather than the directory contents (just as \command{rm -r} does). |
| |
| On Windows it no longer follows reparse points (including |
| junctions and symbolic links). |
| } |
| } |
| |
| \subsection{NEW FEATURES}{ |
| \itemize{ |
| \item Environment variable \env{RD2DVI_INPUTENC} has been renamed |
| to \env{RD2PDF_INPUTENC}. |
| |
| \item \code{.Deprecated()} becomes a bit more flexible, getting an |
| \code{old} argument. |
| |
| \item Even data-only packages without \R code need a namespace and |
| so may need to be installed under \R 2.14.0 or later. |
| |
| \item \code{assignInNamespace()} has further restrictions on use |
| apart from at top-level, as its help page has warned. |
| Expect it to be disabled from programmatic use in the future. |
| |
| \item \code{system()} and \code{system2()} when capturing output |
| report a non-zero status in the new \code{"status"} attribute. |
| |
| \item \code{kronecker()} now has an S4 generic in package |
| \pkg{methods} on which packages can set methods. It will be |
| invoked by \code{X \%x\% Y} if either \code{X} or \code{Y} is an S4 |
| object. |
| |
| \item \code{pdf()} accepts forms like \code{file = "|lpr"} in the |
| same way as \code{postscript()}. |
| |
| \item \code{pdf()} accepts \code{file = NULL}. |
| This means that the device does NOT create a PDF file |
| (but it can still be queried, e.g., for font metric info). |
| |
| \item \code{format()} (and hence \code{print()}) on |
| \code{"bibentry"} objects now uses \code{options("width")} to |
| set the output width. |
| |
| \item \code{legend()} gains a \code{text.font} argument. (Suggested |
| by Tim Paine, \PR{14719}.) |
| |
| \item \code{nchar()} and \code{nzchar()} no longer accept factors |
| (as integer vectors). (Wish of \PR{6899}.) |
| |
| \item \code{summary()} behaves slightly differently (or more |
| precisely, its \code{print()} method does). For numeric inputs, the |
| number of NAs is printed as an integer and not a real. For dates |
| and datetimes, the number of NAs is included in the printed output |
| (the latter being the wish of \PR{14720}). |
| |
| The \code{"data.frame"} method is more consistent with the default |
| method: in particular it now applies \code{zapsmall()} to |
| numeric/complex summaries. |
| |
| \item The number of items retained with \code{options(warn = 0)} |
| can be set by \code{options(nwarnings=)}. |
| |
| \item There is a new function \code{assignInMyNamespace()} which |
| uses the namespace of the function it is called from. |
| |
| \item \code{attach()} allows the default name for an attached file |
| to be overridden. |
| |
| \item \code{bxp()}, the work horse of \code{boxplot()}, now uses a |
| more sensible default \code{xlim} in the case where \code{at} is |
| specified differently from \code{1:n}, see the discussion on R-devel, |
| \url{https://stat.ethz.ch/pipermail/r-devel/2011-November/062586.html}. |
| |
| \item New function \code{paste0()}, an efficient version of |
| \code{paste(*, sep="")}, to be used in many places for more |
| concise (and slightly more efficient) code. |
| |
| \item Function \code{setClass()} in package \pkg{methods} now |
| returns, invisibly, a generator function for the new class, |
| slightly preferred to calling \code{new()}, as explained on the |
| \code{setClass} help page. |
| |
| \item The \code{"dendrogram"} method of \code{str()} now takes |
| its default for \code{last.str} from option \code{str.dendrogram.last}. |
| |
| \item New simple \code{fitted()} method for \code{"kmeans"} objects. |
| |
| \item The \code{traceback()} function can now be called with |
| an integer argument, to display a current stack trace. (Wish of |
| \PR{14770}.) |
| |
| \item \code{setGeneric()} calls can be simplified when creating |
| a new generic function by supplying the default method as the |
| \code{def} argument. See \code{?setGeneric}. |
| |
| \item \code{serialize()} has a new option \code{xdr = FALSE} which |
| will use the native byte-order for binary serializations. In |
| scenarios where only little-endian machines are involved (these |
| days, close to universal) and (un)serialization takes an |
| appreciable amount of time this may speed up noticeably |
| transferring data between systems. |
| |
| \item The internal (un)serialization code is faster for long |
| vectors, particularly with XDR on some platforms. (Based on a |
| suggested patch by Michael Spiegel.) |
| % https://stat.ethz.ch/pipermail/r-devel/2011-September/062113.html |
| |
| \item For consistency, circles with zero radius are omitted by |
| \code{points()} and \code{grid.circle()}. Previously this was |
| device-dependent, but they were usually invisible. |
| |
| \item \code{NROW(x)} and \code{NCOL(x)} now work whenever |
| \code{dim(x)} looks appropriate, e.g., also for more generalized |
| matrices. |
| |
| \item PCRE has been updated to version 8.30. |
| |
| \item The internal \code{R_Srcref} variable is now updated |
| before the browser stops on entering a function. (Suggestion of |
| \PR{14818}.) |
| |
| \item There are \sQuote{bare-bones} functions \code{.colSums()}, |
| \code{.rowSums()}, \code{.colMeans()} and \code{.rowMeans()} for |
| use in programming where ultimate speed is required. |
| |
| \item The formerly internal function |
| \code{.package_dependencies()} from package \pkg{tools} for |
| calculating (recursive) (reverse) dependencies on package databases |
| has been renamed to \code{package_dependencies()} and is now |
| exported. |
| |
| \item There is a new function \code{optimHess()} to compute the |
| (approximate) Hessian for an \code{optim()} solution if |
| \code{hessian = TRUE} was forgotten. |
| |
| \item \code{.filled.contour()} is a \sQuote{bare-bones} function to |
| add a filled-contour rectangular plot to an already prepared plot |
| region. |
| |
| \item The stepping in debugging and single-step browsing modes has |
| changed slightly: now left braces at the start of the body are |
| stepped over for \code{if} statements as well as for \code{for} and |
| \code{while} statements. (Wish of \PR{14814}.) |
| |
| \item \code{library()} no longer warns about a conflict with a |
| function from \code{package:base} if the function has the same |
| code as the base one but with a different environment. (An |
| example is \code{Matrix::det()}.) |
| |
| \item When deparsing very large language objects, |
| \code{as.character()} now inserts newlines after each line of |
| approximately 500 bytes, rather than truncating to the first |
| line. |
| |
| \item New function \code{rWishart()} generates Wishart-distributed |
| random matrices. |
| |
| \item Packages may now specify actions to be taken when the |
| package is loaded (\code{setLoadActions()}). |
| |
| \item \code{options(max.print = Inf)} and similar now give an |
| error (instead of warnings later). |
| |
| \item The \code{"difftime"} replacement method of \code{units} |
| tries harder to preserve other attributes of the argument. (Wish |
| of \PR{14839}.) |
| |
| \item \code{poly(raw = TRUE)} no longer requires more unique |
| points than the degree. (Requested by John Fox.) |
| } |
| } |
| |
| \subsection{PACKAGE parallel}{ |
| \itemize{ |
| \item There is a new function \code{mcmapply()}, a parallel version |
| of \code{mapply()}, and a wrapper \code{mcMap()}, a parallel |
| version of \code{Map()}. |
| |
| \item A default cluster can be registered by the new function |
| \code{setDefaultCluster()}: this will be used by default in |
| functions such as \code{parLapply()}. |
| |
| \item \code{clusterMap()} has a new argument \code{.scheduling} to |
| allow the use of load-balancing. |
| |
| \item There are new load-balancing functions \code{parLapplyLB()} |
| and \code{parSapplyLB()}. |
| |
| \item \code{makePSOCKCluster()} has a new option \code{useXDR = |
| FALSE} which can be used to avoid byte-shuffling for |
| serialization when all the nodes are known to be little-endian (or |
| all big-endian). |
| } |
| } |
| |
| \subsection{PACKAGE INSTALLATION}{ |
| \itemize{ |
| \item Non-ASCII vignettes without a declared encoding are no |
| longer accepted. |
| |
| \item C/C++ code in packages is now compiled with \code{-NDEBUG} |
| to mitigate against the C/C++ function \code{assert} being called |
| in production use. Developers can turn this off during package |
| development with \code{PKG_CPPFLAGS = -UNDEBUG}. |
| |
| \item \command{R CMD INSTALL} has a new option \option{--dsym} |
| which on Mac OS X (Darwin) dumps the symbols alongside the |
| \file{.so} file: this is helpful when debugging with |
| \command{valgrind} (and especially when installing packages into |
| \file{R.framework}). [This can also be enabled by setting the |
| undocumented environment variable \env{PKG_MAKE_DSYM}, since \R |
| 2.12.0.] |
| |
| \item \command{R CMD INSTALL} will test loading under all installed |
| sub-architectures even for packages without compiled code, unless |
| the flag \option{--no-multiarch} is used. (Pure \R packages can |
| do things which are architecture-dependent: in the case which |
| prompted this, looking for an icon in a Windows \R executable.) |
| |
| \item There is a new option \code{install.packages(type = "both")} |
| which tries source packages if binary packages are not available, |
| on those platforms where the latter is the default. |
| |
| \item The meaning of \code{install.packages(dependencies = TRUE)} |
| has changed: it now means to install the essential dependencies of |
| the named packages plus the \samp{Suggests}, but only the |
| essential dependencies of dependencies. To get the previous |
| behaviour, specify \code{dependencies} as a character vector. |
| |
| \item \command{R CMD INSTALL --merge-multiarch} is now supported |
| on OS X and other Unix-alikes using multiple sub-architectures. |
| |
| \item \command{R CMD INSTALL --libs-only} now by default does a |
| test load on Unix-alikes as well as on Windows: suppress with |
| \option{--no-test-load}. |
| } |
| } |
| |
| \subsection{UTILITIES}{ |
| \itemize{ |
| \item \command{R CMD check} now gives a warning rather than a |
| note if it finds inefficiently compressed datasets. With |
| \command{bzip2} and \command{xz} compression having been |
| available since \R 2.10.0, it only exceptionally makes sense to |
| not use them. |
| |
| The environment variable \env{_R_CHECK_COMPACT_DATA2_} is |
| no longer consulted: the check is always done if |
| \env{_R_CHECK_COMPACT_DATA_} has a true value (its default). |
| |
| \item Where multiple sub-architectures are to be tested, |
| \command{R CMD check} now runs the examples and tests for all the |
| sub-architectures even if one fails. |
| |
| \item \command{R CMD check} can optionally report timings on |
| various parts of the check: this is controlled by environment |
| variable \env{_R_CHECK_TIMINGS_} documented in \sQuote{Writing R |
| Extensions}. Timings (in the style of \command{R CMD BATCH}) are |
| given at the foot of the output files from running each test and |
| the \R code in each vignette. |
| |
| \item There are new options for more rigorous testing by |
| \command{R CMD check} selected by environment variables -- see |
| the \sQuote{Writing R Extensions} manual. |
| |
| \item \command{R CMD check} now warns (rather than notes) on |
| undeclared use of other packages in examples and tests: |
| increasingly people are using the metadata in the |
| \file{DESCRIPTION} file to compute information about packages, |
| for example reverse dependencies. |
| |
| \item The defaults for some of the options in \command{R CMD |
| check} (described in the \sQuote{R Internals} manual) have |
| changed: checks for unsafe and \code{.Internal()} calls and |
| for partial matching of arguments in \R function calls are now |
| done by default. |
| |
| \item \command{R CMD check} has more comprehensive facilities for |
| checking compiled code and so gives fewer reports on entry points |
| linked into \file{.so}/\file{.dll} files from libraries |
| (including C++ and Fortran runtimes). |
| |
| Checking compiled code is now done on FreeBSD (as well as the |
| existing supported platforms of Linux, Mac OS X, Solaris and |
| Windows). |
| |
| \item \command{R CMD build} has more options for |
| \option{--compact-vignettes}: see \command{R CMD build --help}. |
| |
| \item \command{R CMD build} has a new option \option{--md5} to |
| add an \file{MD5} file (as done by CRAN): this is used by \code{R |
| CMD INSTALL} to check the integrity of the distribution. |
| |
| If this option is not specified, any existing (and probably |
| stale) \file{MD5} file is removed. |
| } |
| } |
| |
| \subsection{DEPRECATED AND DEFUNCT}{ |
| \itemize{ |
| \item \command{R CMD Rd2dvi} is now defunct: use \command{R CMD Rd2pdf}. |
| |
| \item Options such \option{--max-nsize}, \option{--max-vsize} and |
| the function \code{mem.limits()} are now defunct. (Options |
| \option{--min-nsize} and \option{--min-vsize} remain available.) |
| |
| \item Use of \code{library.dynam()} without specifying all the |
| first three arguments is now disallowed. |
| |
| Use of an argument \code{chname} in \code{library.dynam()} |
| including the extension \file{.so} or \file{.dll} (which was never |
| allowed according to the help page) is defunct. This also applies |
| to \code{library.dynam.unload()} and to \code{useDynLib} |
| directives in \file{NAMESPACE} files. |
| |
| \item The internal functions \code{.readRDS()} and |
| \code{.saveRDS()} are now defunct. |
| |
| \item The off-line \code{help()} types \samp{"postscript"} and |
| \samp{"ps"} are defunct. |
| |
| \item \code{Sys.putenv()}, replaced and deprecated in \R 2.5.0, is |
| finally removed. |
| |
| \item Some functions/objects which have been defunct for five or |
| more years have been removed completely. These include |
| \code{.Alias()}, \code{La.chol()}, \code{La.chol2inv()}, |
| \code{La.eigen()}, \code{Machine()}, \code{Platform()}, |
| \code{Version}, \code{codes()}, \code{delay()}, |
| \code{format.char()}, \code{getenv()}, \code{httpclient()}, |
| \code{loadURL()}, \code{machine()}, \code{parse.dcf()}, |
| \code{printNoClass()}, \code{provide()}, \code{read.table.url()}, |
| \code{restart()}, \code{scan.url()}, \code{symbol.C()}, |
| \code{symbol.For()} and \code{unix()}. |
| |
| \item The \code{ENCODING} argument to \code{.C()} is deprecated. |
| It was intended to smooth the transition to multi-byte character |
| strings, but can be replaced by the use of \code{iconv()} in the |
| rare cases where it is still needed. |
| } |
| } |
| |
| \subsection{INSTALLATION}{ |
| \itemize{ |
| \item Building with a positive value of |
| \option{--with-valgrind-instrumentation} now also instruments logical, |
| complex and raw vectors. |
| } |
| } |
| |
| \subsection{C-LEVEL FACILITIES}{ |
| \itemize{ |
| \item Passing \R objects other than atomic vectors, functions, |
| lists and environments to \code{.C()} is now deprecated and will |
| give a warning. Most cases (especially \code{NULL}) are actually |
| coding errors. \code{NULL} will be disallowed in future. |
| |
| \code{.C()} now passes a pairlist as a \code{SEXP} to the compiled |
| code. This is as was documented, but pairlists were in reality |
| handled differently as a legacy from the early days of \R. |
| |
| \item \code{call_R} and \code{call_S} are deprecated. They still |
| exist in the headers and as entry points, but are no longer |
| documented and should not be used for new code. |
| } |
| } |
| |
| \subsection{BUG FIXES}{ |
| \itemize{ |
| \item \code{str(x, width)} now obeys its \code{width} |
| argument also for function headers and other objects \code{x} |
| where \code{deparse()} is applied. |
| |
| \item The convention for \code{x \%/\% 0L} for integer-mode \code{x} |
| has been changed from \code{0L} to \code{NA_integer_}. |
| (\PR{14754}) |
| |
| \item The \code{exportMethods} directive in a \file{NAMESPACE} |
| file now exports S4 generics as necessary, as the extensions |
| manual said it does. The manual has also been updated to be a |
| little more informative on this point. |
| |
| It is now required that there is an S4 generic (imported or |
| created in the package) when methods are to be exported. |
| |
| \item Reference methods cannot safely use non-exported entries |
| in the namespace. We now do not do so, and warn in the documentation. |
| |
| \item The namespace import code was warning when identical |
| S4 generic functions were imported more than once, but should |
| not (reported by Brian Ripley, then Martin Morgan). |
| |
| \item \code{merge()} is no longer allowed (in some ways) to create |
| a data frame with duplicate column names (which confused |
| \PR{14786}). |
| |
| \item Fixes for rendering raster images on X11 and Windows devices |
| when the x-axis or y-axis scale is reversed. |
| |
| \item \code{getAnywhere()} found S3 methods as seen from the |
| \pkg{utils} namespace and not from the environment from which it |
| was called. |
| |
| \item \code{selectMethod(f, sig)} would not return inherited group |
| methods when caching was off (as it is by default). |
| |
| \item \code{dev.copy2pdf(out.type = "cairo")} gave an error. |
| (\PR{14827}) |
| |
| \item Virtual classes (e.g., class unions) had a \code{NULL} |
| prototype even if that was not a legal subclass. See |
| \code{?setClassUnion}. |
| |
| \item The C prototypes for \code{zdotc} and \code{zdotu} in |
| \file{R_ext/BLAS.h} have been changed to the more modern style |
| rather than that used by \command{f2c}. (Patch by Berwin Turlach.) |
| |
| \item \code{isGeneric()} produced an error for primitives that |
| can not have methods. |
| |
| \item \code{.C()} or \code{.Fortran()} had a lack-of-protection |
| error if the registration information resulted in an argument |
| being coerced to another type. |
| |
| \item \code{boxplot(x=x, at=at)} with non finite elements in \code{x} |
| and non integer \code{at} could not generate a warning but failed. |
| |
| \item \code{heatmap(x, symm=TRUE, RowSideColors=*)} no longer |
| draws the colors in reversed order. |
| |
| \item \code{predict(<ar>)} was incorrect in the multivariate case, |
| for p >= 2. |
| |
| \item \code{print(x, max=m)} is now consistent when \code{x} is a |
| \code{"Date"}; also the \dQuote{reached ... max.print ..} messages |
| are now consistently using single brackets. |
| |
| \item Closed the \samp{<li>} tag in pages generated by \code{ |
| Rd2HTML()}. (\PR{14841}) |
| |
| \item Axis tick marks could go out of range when a log scale was |
| used. (\PR{14833}) |
| |
| \item Signature objects in methods were not allocated as S4 |
| objects (caused a problem with \code{trace()} reported by Martin Morgan). |
| } |
| } |
| } |
| |
| \section{\Rlogo CHANGES IN R VERSION 2.14.2}{ |
| \subsection{NEW FEATURES}{ |
| \itemize{ |
| \item The internal \code{untar()} (as used by default by |
| \command{R CMD INSTALL}) now knows about some \command{pax} |
| headers which \command{bsdtar} (e.g., the default \command{tar} for |
| Mac OS >= 10.6) can incorrectly include in \command{tar} files, |
| and will skip them with a warning. |
| |
| \item PCRE has been upgraded to version 8.21: as well as bug fixes |
| and greater Perl compatibility, this adds a JIT pattern compiler, |
| about which PCRE's news says |
| \sQuote{large performance benefits can be had in many situations}. |
| This is supported on most but not all \R platforms. |
| |
| \item Function \code{compactPDF()} in package \pkg{tools} now |
| takes the default for argument \code{gs_quality} from environment |
| variable \env{GS_QUALITY}: there is a new value \code{"none"}, the |
| ultimate default, which prevents GhostScript being used in |
| preference to \command{qpdf} just because environment variable |
| \env{R_GSCMD} is set. If \env{R_GSCMD} is unset or set to |
| \code{""}, the function will try to find a suitable GhostScript |
| executable. |
| |
| \item The included version of zlib has been updated to 1.2.6. |
| |
| \item For consistency with the \code{logLik()} method, |
| \code{nobs()} for \code{"nls"} files now excludes observations |
| with zero weight. (Reported by Berwin Turlach.) |
| } |
| } |
| |
| \subsection{UTILITIES}{ |
| \itemize{ |
| \item \command{R CMD check} now reports by default on licenses not |
| according to the description in \sQuote{Writing R Extensions}. |
| |
| \item \command{R CMD check} has a new option \option{--as-cran} to |
| turn on most of the customizations that CRAN uses for its incoming |
| checks. |
| } |
| } |
| |
| \subsection{PACKAGE INSTALLATION}{ |
| \itemize{ |
| \item \command{R CMD INSTALL} will now no longer install certain |
| file types from \file{inst/doc}: these are almost certainly |
| mistakes and for some packages are wasting a lot of space. These |
| are \file{Makefile}, files generated by running LaTeX, and unless |
| the package uses a \file{vignettes} directory, PostScript and |
| image bitmap files. |
| |
| Note that only PDF vignettes have ever been supported: some of |
| these files come from DVI/PS output from the Sweave defaults prior |
| to \R 2.13.0. |
| } |
| } |
| |
| \subsection{BUG FIXES}{ |
| \itemize{ |
| \item R configured with \option{--disable-openmp} would mistakenly |
| set \code{HAVE_OPENMP} (internal) and \code{SUPPORT_OPENMP} (in |
| \file{Rconfig.h}) even though no OpenMP flags were populated. |
| |
| \item The \code{getS3method()} implementation had an old |
| computation to find an S4 default method. |
| |
| \item \code{readLines()} could overflow a buffer if the last line |
| of the file was not terminated. (\PR{14766}) |
| |
| \item \command{R CMD check} could miss undocumented S4 objects in |
| packages which used S4 classes but did not \samp{Depends: methods} |
| in their \file{DESCRIPTION} file. |
| |
| \item The HTML Help Search page had malformed links. |
| (\PR{14769}) |
| |
| \item A couple of instances of lack of protection of \code{SEXP}s |
| have been squashed. (\PR{14772}, \PR{14773}) |
| |
| \item \code{image(x, useRaster=TRUE)} misbehaved on single-column |
| \code{x}. (\PR{14774}) |
| |
| \item Negative values for \code{options("max.print")} or the \code{max} |
| argument to \code{print.default()} caused crashes. Now the former |
| are ignored and the latter trigger an error. (\PR{14779}) |
| |
| \item The text of a function body containing more than 4096 |
| bytes was not properly saved by the parser when entered |
| at the console. |
| |
| \item Forgetting the \code{#endif} tag in an Rd file could cause |
| the parser to go into a loop. (Reported by Hans-Jorg Bibiko.) |
| |
| \item \code{str(*, ....., strict.width="cut")} now also obeys |
| \code{list.len = n}. (Reported by Sören Vogel.) |
| |
| \item Printing of arrays did not have enough protection (C level), |
| e.g., in the context of \code{capture.output()}. (Reported by |
| Hervé Pagès and Martin Morgan.) |
| |
| \item \code{pdf(file = NULL)} would produce a spurious file named |
| \file{NA}. (\PR{14808}) |
| |
| \item \code{list2env()} did not check the type of its \code{envir} |
| argument. (\PR{14807}) |
| |
| \item \code{svg()} could segfault if called with a non-existent |
| file path. (\PR{14790}) |
| |
| \item \command{make install} can install to a path containing |
| \samp{+} characters. (\PR{14798}) |
| |
| \item The \code{edit()} function did not respect the |
| \code{options("keep.source")} setting. (Reported by Cleridy |
| Lennert.) |
| |
| \item \code{predict.lm(*, type="terms", terms=*, se.fit=TRUE)} did |
| not work. (\PR{14817}) |
| |
| \item There is a partial workaround for errors in the TRE |
| regular-expressions engine with named classes and repeat counts of |
| at least 2 in a MBCS locale (\PR{14408}): these are avoided when |
| TRE is in 8-bit mode (e.g., for \code{useBytes = TRUE} and when all |
| the data are ASCII). |
| |
| \item The C function \code{R_ReplDLLdo1()} did not call top-level |
| handlers. |
| |
| \item The Quartz device was unable to detect window sessions on |
| Mac OS X 10.7 (Lion) and higher and thus it was not used as the |
| default device on the console. Since Lion any application can use |
| window sessions, so Quartz will now be the default device if the |
| user's window session is active and \R is not run via |
| \command{ssh} which is at least close to the behavior in prior OS |
| X versions. |
| |
| \item \code{mclapply()} would fail in code assembling the translated |
| error message if some (but not all) cores encountered an error. |
| |
| \item \code{format.POSIXlt(x)} raised an arithmetic exception when |
| \code{x} was an invalid object of class \code{"POSIXlt"} and parts |
| were empty. |
| |
| \item \code{installed.packages()} has some more protection against |
| package installs going on in parallel. |
| |
| \item \code{.Primitive()} could be mis-used to call |
| \code{.Internal()} entry points. |
| } |
| } |
| } |
| |
| \section{\Rlogo CHANGES IN R VERSION 2.14.1}{ |
| \subsection{NEW FEATURES}{ |
| \itemize{ |
| \item \code{parallel::detectCores()} is now able to find the |
| number of physical cores (rather than CPUs) on Sparc Solaris. |
| |
| It can also do so on most versions of Windows; however the default |
| remains \code{detectCores(logical = TRUE)} on that platform. |
| |
| \item Reference classes now keep a record of which fields are |
| locked. \code{$lock()} with no arguments returns the names % $ |
| of the locked fields. |
| |
| \item \code{HoltWinters()} reports a warning rather than an error |
| for some optimization failures (where the answer might be a |
| reasonable one). |
| |
| \item \code{tools::dependsOnPkg()} now accepts the shorthand |
| \code{dependencies = "all"}. |
| |
| \item \code{parallel::clusterExport()} now allows specification of |
| an environment from which to export. |
| |
| \item The \code{quartz()} device now does tilde expansion on its |
| \code{file} argument. |
| |
| \item \code{tempfile()} on a Unix-alike now takes the process ID |
| into account. This is needed with \CRANpkg{multicore} (and as part of |
| \pkg{parallel}) because the parent and all the children share a |
| session temporary directory, and they can share the C random |
| number stream used to produce the unique part. Further, two |
| children can call \code{tempfile()} simultaneously. |
| |
| \item Option \code{print} in Sweave's \code{RweaveLatex()} driver |
| now emulates auto-printing rather than printing (which can differ |
| for an S4 object by calling \code{show()} rather than |
| \code{print()}). |
| |
| \item \code{filled.contour()} now accepts infinite values: |
| previously it might have generated invalid graphics files |
| (e.g., containing NaN values). |
| } |
| } |
| |
| \subsection{INSTALLATION}{ |
| \itemize{ |
| \item On 64-bit Linux systems, \command{configure} now only sets |
| \samp{LIBnn} to \code{lib64} if \file{/usr/lib64} exists. This |
| may obviate setting \samp{LIBnn} explicitly on Debian-derived |
| systems. |
| |
| It is still necessary to set \samp{LIBnn = lib} (or |
| \samp{lib32}) for 32-bit builds of \R on a 64-bit OS on those Linux |
| distributions capable for supporting that concept. |
| |
| \item \command{configure} looks for \file{inconsolata.sty}, and if |
| not found adjusts the default \env{R_RD4PDF} to not use it (with a |
| warning, since it is needed for high-quality rendering of manuals). |
| } |
| } |
| |
| \subsection{PACKAGE INSTALLATION}{ |
| \itemize{ |
| \item \command{R CMD INSTALL} will now do a test load for all |
| sub-architectures for which code was compiled (rather than just |
| the primary sub-architecture). |
| } |
| } |
| |
| \subsection{UTILITIES}{ |
| \itemize{ |
| \item When checking examples under more than one sub-architecture, |
| \command{R CMD check} now uses a separate directory |
| \file{examples_arch} for each sub-architecture, and leaves the |
| output in file \file{pkgname-Ex_arch.Rout}. Some packages |
| expect their examples to be run in a clean directory \dots{}. |
| } |
| } |
| |
| \subsection{BUG FIXES}{ |
| \itemize{ |
| \item \code{stack()} now gives an error if no vector column is |
| selected, rather than returning a 1-column data frame (contrary to |
| its documentation). |
| |
| \item \code{summary.mlm()} did not handle objects where the |
| formula had been specified by an expression. (Reported by |
| Helios de Rosario Martinez). |
| |
| \item \code{tools::deparseLatex(dropBraces=TRUE)} could drop |
| text as well as braces. |
| |
| \item \code{colormodel = "grey"} (new in \R 2.14.0) |
| did not always work in \code{postscript()} and \code{pdf()}. |
| |
| \item \code{file.append()} could return \code{TRUE} for failures. |
| (\PR{14727}) |
| |
| \item \code{gzcon()} connections are no longer subject to garbage |
| collection: it was possible for this to happen when unintended |
| (e.g., when calling \code{load()}). |
| |
| \item \code{nobs()} does not count zero-weight observations for |
| \code{glm()} fits, for consistency with \code{lm()}. This affects |
| the \code{BIC()} values reported for such \code{glm()} fits. |
| (Spotted by Bill Dunlap.) |
| |
| \item \code{options(warn = 0)} failed to end a (C-level) context |
| with more than 50 accumulated warnings. (Spotted by Jeffrey |
| Horner.) |
| |
| \item The internal \code{plot.default()} code did not do sanity |
| checks on a \code{cex} argument, so invalid input could cause |
| problems. (Reported by Ben Bolker.) |
| |
| \item \code{anyDuplicated(<array>, MARGIN=0)} no longer fails. |
| (Reported by Hervé Pagès.) |
| |
| \item \code{read.dcf()} removes trailing blanks: unfortunately |
| on some platforms this included \code{\\xa0} (non-breaking space) |
| which is the trailing byte of a UTF-8 character. It now only |
| considers ASCII space and tab to be \sQuote{blank}. |
| |
| \item There was a sign error in part of the calculations for the |
| variance returned by \code{KalmanSmooth()}. (\PR{14738}) |
| |
| \item \code{pbinom(10, 1e6, 0.01, log.p = TRUE)} was \code{NaN} |
| thanks to the buggy fix to \PR{14320} in \R 2.11.0. (\PR{14739}) |
| |
| \item \code{RweaveLatex()} now emulates auto-printing rather than |
| printing, by calling \code{methods::show()} when auto-printing |
| would. |
| |
| \item \code{duplicated()} ignored \code{fromLast} for a |
| one-column data frame. (\PR{14742}) |
| |
| \item \code{source()} and related functions did not put the correct |
| timestamp on the source references; \code{srcfilecopy()} has gained |
| a new argument \code{timestamp} to support this fix. (\PR{14750}) |
| |
| \item \code{srcfilecopy()} has gained a new argument \code{isFile} |
| and now records the working directory, to allow debuggers to find |
| the original source file. (\PR{14826}) |
| |
| \item LaTeX conversion of Rd files did not correctly handle |
| preformatted backslashes. (\PR{14751}) |
| |
| \item HTML conversion of Rd files did not handle markup within |
| tabular cells properly. (\PR{14708}) |
| |
| \item \code{source()} on an empty file with \code{keep.source = |
| TRUE} tried to read from \code{stdin()}, in \R 2.14.0 only. |
| (\PR{14753}) |
| |
| \item The code to check Rd files in packages would abort if |
| duplicate description sections were present. |
| } |
| } |
| } |
| |
| \section{\Rlogo CHANGES IN R VERSION 2.14.0}{ |
| \subsection{SIGNIFICANT USER-VISIBLE CHANGES}{ |
| \itemize{ |
| \item All packages must have a namespace, and one is created on |
| installation if not supplied in the sources. This means that any |
| package without a namespace must be re-installed under this |
| version of \R (but previously-installed data-only packages without |
| \R code can still be used). |
| |
| \item The \code{yLineBias} of the \code{X11()} and |
| \code{windows()} families of devices has been changed from 0.1 to |
| 0.2: this changes slightly the vertical positioning of text in the |
| margins (including axis annotations). This is mainly for |
| consistency with other devices such as \code{quartz()} and |
| \code{pdf()}. (Wish of \PR{14538}.) |
| |
| There is a new graphics parameter \code{"ylbias"} which |
| allows the y-line bias of the graphics device to be tweaked, |
| including to reproduce output from earlier versions of \R. |
| |
| \item Labeling of the p-values in various anova tables has been |
| rationalized to be either \code{"Pr(>F)"} or \code{"Pr(>Chi)"} |
| (i.e., the \code{"Pr(F)"}, \code{"Pr(Chi)"} and \code{"P(>|Chi|)"} |
| variants have been eliminated). Code which extracts the p value |
| \emph{via} indexing by name may need adjustment. |
| |
| \item \code{::} can now be used for datasets made available for |
| lazy-loading in packages with namespaces (which makes it consistent |
| with its use for data-only packages without namespaces in earlier |
| versions of \R). |
| |
| \item There is a new package \pkg{parallel}. |
| |
| It incorporates (slightly revised) copies of packages |
| \CRANpkg{multicore} and \CRANpkg{snow} (excluding MPI, PVM and NWS |
| clusters). Code written to use the higher-level API functions in |
| those packages should work unchanged (apart from changing any |
| references to their namespaces to a reference to \pkg{parallel}, |
| and links explicitly to \CRANpkg{multicore} or \CRANpkg{snow} on help |
| pages). |
| |
| It also contains support for multiple RNG streams following |
| L'Ecuyer \emph{et al} (2002), with support for both |
| \code{mclapply} and \CRANpkg{snow} clusters. This replaces functions |
| like \code{clusterSetupRNG()} from \CRANpkg{snow} (which are not in |
| \pkg{parallel}). |
| |
| The version released for \R 2.14.0 contains base functionality: |
| higher-level convenience functions are planned (and some are |
| already available in the \sQuote{R-devel} version of \R). |
| |
| \item Building PDF manuals (for \R itself or packages, |
| e.g.\sspace{}\emph{via} \command{R CMD check}) by default requires the |
| LaTeX package \samp{inconsolata}: see the section on |
| \sQuote{Making the manuals} in the \sQuote{R Installation and |
| Administration Manual}. |
| |
| \item \code{axTicks(*, log=TRUE)} has changed in some cases to |
| satisfy the documented behavior and be consistent. |
| } |
| } |
| |
| \subsection{NEW FEATURES}{ |
| \itemize{ |
| \item \code{txtProgressBar()} can write to an open connection |
| instead of the console. |
| |
| \item Non-portable package names ending in \file{.} are no longer |
| allowed. Nor are single-character package names (\pkg{R} was |
| already disallowed). |
| |
| \item \code{regexpr()} and \code{gregexpr()} with \code{perl = |
| TRUE} allows Python-style named captures. (Wish and |
| contribution of \PR{14518}.) |
| |
| \item The placement of \sQuote{plotmath} text in the margins of |
| plots done by base graphics now makes the same vertical adjustment |
| as ordinary text, so using ordinary and plotmath text on the same |
| margin line will seem better aligned (but not exactly aligned, |
| since ordinary text has descenders below the baseline and plotmath |
| places them on the baseline). (Related to \PR{14537}.) |
| |
| \item \code{sunflowerplot()} now has a formula interface. |
| (Wish of \PR{14541}.) |
| |
| \item \code{iconv()} has a new argument \code{toRaw} to handle |
| encodings such as \code{UTF-16} with embedded nuls (as was |
| possible before the \code{CHARSXP} cache was introduced). |
| |
| It will also accept as input the type of list generated with |
| \code{toRaw = TRUE}. |
| |
| \item Garbage-collecting an unused input text connection no longer |
| gives a warning (since it \sQuote{connects} to nothing outside |
| \R). |
| |
| \item \code{read.table()} and \code{scan()} have gained a |
| \code{text} argument, to allow reading data from a (possibly |
| literal) character string. |
| |
| \item \code{optim(*, method = .)} now allows \code{method = "Brent"} |
| as an interface to \code{optimize()}, for use in cases such as |
| \code{mle()} where \code{optim()} is used internally. |
| |
| \item \code{mosaicplot()} gains a \code{border} argument. |
| (Wish of \PR{14550}.) |
| |
| \item \code{smooth.spline()} gains a \code{tol} argument which |
| controls how different \code{x} values need to be to be treated as |
| distinct. The default has been changed to be more reliable for |
| inputs whose range is small compared to their maximum absolute |
| value. (Wish of \PR{14452}.) |
| |
| \item \code{gl()} runs faster by avoiding calling \code{factor()}. |
| |
| \item The \code{print()} method for \code{object.size()} accepts |
| \samp{B} as well as \samp{b} as an abbreviation for \sQuote{bytes}. |
| |
| \item \code{unlink()} gains a \code{force} argument to work like |
| \command{rm -f} and if possible override restrictive permissions. |
| |
| \item \code{pbirthday()} and \code{qbirthday()} now use exact |
| calculations for \code{coincident = 2}. |
| |
| \item \code{unzip()} and \code{unz()} connections have been |
| updated with support for more recent Zip64 features (including |
| large file sizes and \command{bzip2} compression, but not UTF-8 |
| file names). |
| |
| \code{unzip()} has a new option to restore file times from those |
| recorded (in an unknown timezone) in the zip file. |
| |
| \item \code{update.packages()} now accepts a character vector of |
| package names for the \code{oldPkgs} argument. (Suggestion of |
| Tal Galili.) |
| |
| \item The special reference class fields \code{.self} and |
| \code{.refClassDef} are now read-only to prevent corrupting |
| the object. |
| |
| \item \code{decompose()} now returns the original series as part |
| of its value, so it can be used (rather than reconstructed) when |
| plotting. (Suggestion of Rob Hyndman.) |
| |
| \item Rao's efficient score test has been implemented for |
| \code{glm} objects. Specifically, the \code{add1}, \code{drop1}, |
| and \code{anova} methods now allow \code{test = "Rao"}. |
| |
| \item If a saved workspace (e.g., \file{.RData}) contains objects |
| that cannot be loaded, \R will now start with an warning message |
| and an empty workspace, rather than failing to start. |
| |
| \item \code{strptime()} now accepts times such as \samp{24:00} for |
| midnight at the end of the day, for although these are disallowed by |
| POSIX 1003.1-2008, ISO 8601:2004 allows them. |
| |
| \item Assignment of \code{names()} to S4 objects now checks for |
| a corresponding \code{"names"} slot, and generates a warning or |
| an error if that slot is not defined. See the section on slots |
| in \code{?Classes}. |
| |
| \item The default methods for \code{is.finite()}, \code{is.infinite()} |
| and \code{is.nan()} now signal an error if their argument is not |
| an atomic vector. |
| |
| \item The formula method for \code{plot()} no longer places |
| package \pkg{stats} on the search path (it loads the namespace |
| instead). |
| |
| \item There now is a genuine \code{"function"} method for |
| \code{plot()} rather than the generic dispatching internally to |
| \code{graphics::plot.function()}. It is now exported, so can be |
| called directly as \code{plot.function()}. |
| |
| \item The one-sided \code{ks.test()} allows \code{exact = TRUE} to |
| be specified in the presence of ties (but the approximate |
| calculation remains the default: the \sQuote{exact} computation |
| makes assumptions known to be invalid in the presence of ties). |
| |
| \item The behaviour of \code{curve(add = FALSE)} has changed: it |
| now no longer takes the default x limits from the previous plot |
| (if any): rather they default to \code{c(0, 1)} just as the |
| \code{"function"} method for \code{plot()}. To get the previous |
| behaviour use \code{curve(add = NA)}, which also takes the default for |
| log-scaling of the x-axis from the previous plot. |
| |
| \item Both \code{curve()} and the \code{plot()} method for |
| functions have a new argument \code{xname} to facilitate plots |
| such as \code{sin(t)} \emph{vs} \code{t}. |
| |
| \item The \code{local} argument to \code{source()} can specify an |
| environment as well as \code{TRUE} (\code{parent.env()}) and |
| \code{FALSE} (\code{.GlobalEnv}). It gives better error messages |
| for other values, such as \code{NA}. |
| |
| \item \code{vcov()} gains methods for classes \code{"summary.lm"} and |
| \code{"summary.glm"}. |
| |
| \item The \code{plot()} method for class \code{"profile.nls"} |
| gains \code{ylab} and \code{lty} arguments, and passes |
| \code{\dots} on to \code{plot.default}. |
| |
| \item Character-string arguments such as the \code{mode} argument |
| of \code{vector()}, \code{as.vector()} and \code{is.vector()} and |
| the \code{description} argument of \code{file()} are required to |
| be of length exactly one, rather than any further elements being |
| silently discarded. This helps catch incorrect usage in |
| programming. |
| |
| \item The \code{length} argument of \code{vector()} and its |
| wrappers such as \code{numeric()} is required to be of length |
| exactly one (other values are now an error rather than giving a |
| warning as previously). |
| |
| \item \code{vector(len)} and \code{length(x) <- len} no longer |
| accept \code{TRUE}/\code{FALSE} for \code{len} (not that they |
| were ever documented to, but there was special-casing in the C |
| code). |
| |
| \item There is a new function \code{Sys.setFileTime()} to set the |
| time of a file (including a directory). See its help for exactly |
| which times it sets on various OSes. |
| |
| \item The file times reported by \code{file.info()} are reported |
| to sub-second resolution on systems which support it. (Currently |
| the POSIX 2008 and FreeBSD/Darwin/NetBSD methods are detected.) |
| |
| \item New function \code{getCall(m)} as an abstraction for |
| \code{m$call}, enabling \code{update()}'s default method to apply % $ |
| more universally. (NB: this can be masked by existing functions |
| in packages.) |
| |
| \item \code{Sys.info()} gains a \code{euser} component to report |
| the \sQuote{effective} user on OSes which have that concept. |
| |
| \item The result returned by \code{try()} now contains the |
| original error condition object as the \code{"condition"} |
| attribute. |
| |
| \item All packages with \R code are lazy-loaded irrespective of |
| the \samp{LazyLoad} field in the \file{DESCRIPTION} file. A |
| warning is given if the \samp{LazyLoad} field is overridden. |
| |
| \item \code{Rd} markup has a new \samp{\figure} tag so that |
| figures can be included in help pages when converted to HTML or |
| LaTeX. There are examples on the help pages for \code{par()} and |
| \code{points()}. |
| |
| \item The built-in httpd server now allows access to files |
| in the session temporary directory \code{tempdir()}, |
| addressed as the \file{/session} directory on the httpd |
| server. |
| |
| \item Development versions of \R are no longer referred to by the |
| number under which they might be released, e.g., in the startup |
| banner, \command{R --version} and \code{sessionUtils()}. The |
| correct way to refer to a development version of R is |
| \sQuote{R-devel}, preferably with the date and SVN version number.\cr |
| E.g., \samp{R-devel (2011-07-04 r56266)} |
| |
| \item There is a new function \code{texi2pdf()} in package |
| \pkg{tools}, currently a convenience wrapper for |
| \code{texi2dvi(pdf = TRUE)}. |
| |
| \item There are two new options for typesetting PDF manuals from |
| Rd files. These are \samp{beramono} and \samp{inconsolata}, and |
| used the named font for monospaced output. They are intended to |
| be used in combination with \samp{times}, and |
| \samp{times,inconsolata,hyper} is now the default for the |
| reference manual and package manuals. If you do not have that |
| font installed, you can set \env{R_RD4PF} to one of the other |
| options: see the \sQuote{R Installation and Administration Manual}. |
| |
| \item Automatic printing for reference classes is now done by |
| the \code{$show()} method. A method is defined for class % $ |
| \samp{envRefClass} and may be overridden for user classes (see |
| the \code{?ReferenceClasses} example). S4 \code{show()} methods |
| should no longer be needed for reference classes. |
| |
| \item \code{tools::Rdiff} (by default) and \code{R CMD Rdiff} |
| now ignore differences in pointer values when comparing printed |
| environments, compiled byte code, etc. |
| |
| \item The \code{"source"} attribute on functions created with |
| \code{keep.source=TRUE} has been replaced with a \code{"srcref"} |
| attribute. The \code{"srcref"} attribute references an in-memory |
| copy of the source file using the \code{"srcfilecopy"} class or |
| the new \code{"srcfilealias"} class. |
| |
| \strong{NB:} This means that functions sourced with |
| \code{keep.source = TRUE} and saved (e.g., by \code{save()} or |
| \code{readRDS()}) in earlier versions of \R will no longer show |
| the original sources (including comments). |
| |
| \item New items \samp{User Manuals} and |
| \href{http://developer.r-project.org/TechDocs}{Technical Papers} |
| have been added to the HTML help main page. These link to |
| vignettes in the base and recommended packages and to a |
| collection of papers about R issues, respectively. |
| |
| \item Documentation and messages have been standardized to |
| use \dQuote{namespace} rather than \dQuote{name space}. |
| |
| \item \code{setGeneric()} now looks in the default packages for |
| a non-generic version of a function if called from a package with a |
| namespace. (It always did for packages without a namespace.) |
| |
| \item Setting the environment variable |
| \env{_R_WARN_ON_LOCKED_BINDINGS_} will give a warning if an |
| attempt is made to change a locked binding. |
| |
| \item \code{\\SweaveInput} is now supported when generating |
| concordances in \code{Sweave()}. |
| |
| \item \code{findLineNum()} and \code{setBreakpoint()} now allow |
| the environment to be specified indirectly; the latter gains |
| a \code{clear} argument to allow it to call \code{untrace()}. |
| |
| \item The body of a closure can be one of further types of \R |
| objects, including environments and external pointers. |
| |
| \item The \code{Rd2HTML()} function in package \pkg{tools} now has |
| a \code{stylesheet} argument, allowing pages to be displayed in |
| alternate formats. |
| |
| \item New function \code{requireNamespace()} analogous to |
| \code{require()}, returning a logical value after attempting to |
| load a namespace. |
| |
| \item There is a new type of RNG, \code{"L'Ecuyer-CMRG"}, |
| implementing L'Ecuyer (1999)'s \sQuote{combined multiple-recursive |
| generator} \samp{MRG32k3a}. See the comments on \code{?RNG}. |
| |
| \item \code{help.search()} and \code{??} can now display |
| vignettes and demos as well as help pages. The new option |
| \code{"help.search.types"} controls the types of documentation |
| and the order of their display. |
| |
| This also applies to HTML searches, which now give results in all |
| of help pages, vignettes and demos. |
| |
| \item \code{socketConnection()} now has a \code{timeout} argument. |
| It is now documented that large values (package \CRANpkg{snow} used a |
| year) do not work on some OSes. |
| |
| \item The initialization of the random-number generator now uses |
| the process ID as well as the current time, just in case two \R |
| processes are launched very rapidly on a machine with |
| low-resolution wall clock (some have a resolution of a second; |
| modern systems have microsecond-level resolution). |
| |
| \item New function \code{pskill()} in the \pkg{tools} package to |
| send a terminate signal to one or more processes, plus constants |
| such as \code{SIGTERM} to provide a portable way to refer to |
| signals (since the numeric values are OS-dependent). |
| |
| \item New function \code{psnice()} in the \pkg{tools} package to |
| return or change the \sQuote{niceness} of a process. (Refers to |
| the \sQuote{priority class} on Windows.) |
| |
| \item \code{list.dirs()} gains a \code{recursive} argument. |
| |
| \item An \samp{Authors@R} field in a package \file{DESCRIPTION} |
| file can now be used to generate \samp{Author} and |
| \samp{Maintainer} fields if needed, and to auto-generate package |
| citations. |
| |
| \item New utility \code{getElement()} for accessing either a list |
| component or a slot in an S4 object. |
| |
| \item \code{stars()} gains a \code{col.lines} argument, thanks to |
| Dustin Sallings. (Wish of \PR{14657}.) |
| |
| \item New function \code{regmatches()} for extracting or replacing |
| matched or non-matched substrings from match data obtained by |
| \code{regexpr()}, \code{gregexpr()} and \code{regexec()}. |
| |
| \item \code{help(package = "pkg_name", help_type = "HTML")} now |
| gives HTML help on the package rather than text help. (This gives |
| direct access to the HTML version of the package manual shown |
| \emph{via} \code{help.start()}'s \sQuote{Packages} menu.) |
| |
| \item \code{agrep()} gains a \code{fixed} argument to optionally |
| allow approximate regular expression matching, and a \code{costs} |
| argument to specify possibly different integer match costs for |
| insertions, deletions and substitutions. |
| |
| \item \code{read.dcf()} and \code{write.dcf()} gain a |
| \code{keep.white} argument to indicate fields where whitespace |
| should be kept as is. |
| |
| \item \code{available.packages()} now works around servers that |
| fail to return an error code when \file{PACKAGES.gz} does not |
| exist. (Patch submitted by Seth Schommer.) |
| |
| \item \code{readBin()} can now read more than |
| \eqn{2^{31}-1}{2^31 - 1} bytes in a single call (the previously |
| documented limitation). |
| |
| \item New function \code{regexec()} for finding the positions of |
| matches as well as all substrings corresponding to parenthesized |
| subexpressions of the given regular expression. |
| |
| \item New function \code{adist()} in package \pkg{utils} for |
| computing \sQuote{edit} (generalized Levenshtein) distances between |
| strings. |
| |
| \item Class \code{"raster"} gains an \code{is.na} method to avoid |
| confusion from the misuse of the matrix method (such as \PR{14618}). |
| |
| \item The \code{identical()} function gains an |
| \code{ignore.bytecode} argument to control comparison of |
| compiled functions. |
| |
| \item \code{pmin} and \code{pmax} now warn if an argument is |
| partially recycled (wish of \PR{14638}). |
| |
| \item The default for \code{image(useRaster=)} is now taken from |
| option \code{"preferRaster"}: for the small print see \code{?image}. |
| |
| \item \code{str()} now displays reference class objects and their |
| fields, rather than treating them as classical S4 classes. |
| |
| \item New function \code{aregexec()} in package \pkg{utils} for |
| finding the positions of approximate string matches as well as all |
| substrings corresponding to parenthesized subexpressions of the |
| given regular expression. |
| |
| \item \code{download.file()} has an \code{extra} argument to pass |
| additional command-line options to the non-default methods using |
| command-line utilities. |
| |
| \code{cacheOK = FALSE} is now supported for \code{method = "curl"}. |
| |
| \item \code{interaction.plot(*, type = .)} now also allows type |
| \code{"o"} or \code{"c"}. |
| |
| \item \code{axTicks(*, log=TRUE)} did sometimes give more values |
| than the ticks in the corresponding \code{graphics::axis()}. By |
| default, it now makes use of the new (\pkg{graphics}-package |
| independent) \code{axisTicks()} which can make use of a new |
| utility \code{.axisPars()}. Further, it now returns a decreasing |
| sequence (as for \code{log=FALSE}) when \code{usr} is decreasing. |
| |
| \item Using \code{fix()} or \code{edit()} on a \R{} object (except |
| perhaps a matrix or data frame) writes its temporary file with |
| extension \file{.R} so editors which select their mode based on |
| the extension will select a suitable mode. |
| } |
| } |
| |
| \subsection{GRAPHICS DEVICES}{ |
| \itemize{ |
| \item The \code{pdf()} device makes use of Flate compression: this |
| is controlled by the new logical argument \code{compress}, and is |
| enabled by default. |
| |
| \item Devices \code{svg()}, \code{cairo_pdf()} and |
| \code{cairo_ps()} gain a \code{family} argument. |
| |
| On a Unix-alike \code{X11()} gains a \code{family} argument. This |
| is one of the \code{x11.options()} and so can be passed as an |
| argument to the \code{bmp()}, \code{jpeg()}, \code{png()} and |
| \code{tiff()} devices. |
| |
| Analogous changes have been made on Windows, so all built-in \R |
| graphics devices now have a \code{family} argument except |
| \code{pictex()} (which has no means to change fonts). |
| |
| \item The \code{bmp()}, \code{jpeg()}, \code{png()} and \code{tiff()} |
| devices now make use of the \code{antialias} argument for |
| \code{type = "quartz"}. |
| |
| \item There are several new built-in font mappings for |
| \code{X11(type = "Xlib")}: see the help on \code{X11Fonts()}. |
| |
| \item There is a new type \code{X11(type = "dbcairo")} which |
| updates the screen less frequently: see its help page. |
| |
| \item The \code{X11()} device now makes use of cursors to |
| distinguish its states. The normal cursor is an arrow (rather |
| than a crosshair); the crosshair is used when the locator is in |
| use, and a watch cursor is shown when plotting computations are |
| being done. (These are the standard names for X11 cursors: how |
| they are actually displayed depends on the window manager.) |
| |
| \item New functions \code{dev.hold()} and \code{dev.flush()} for |
| use with graphics devices with buffering. These are used for most |
| of the high-level graphics functions such as \code{boxplot()}, so |
| that the plot is only displayed when the page is complete. |
| |
| Currently implemented for \code{windows(buffered = TRUE)}, |
| \code{quartz()} and the cairographics-based \code{X11()} types |
| with buffering (which are the default on-screen devices). |
| |
| \item New function \code{dev.capture()} for capture of bitmap |
| snapshots of image-based devices (a superset of the functionality |
| provided by \code{grid.cap()} in \code{grid}). |
| |
| \item The default \code{colormodel} for \code{pdf()} and |
| \code{postscript()} is now called \code{"srgb"} to more accurately |
| describe it. (Instead of \code{"rgb"}, and in the case of |
| \code{postscript()} it no longer switches to and from the gray |
| colorspace, by default.) |
| |
| The \code{colormodel} for \code{postscript()} which does use both |
| gray and sRGB colorspaces is now called \code{"srgb+gray"}. |
| |
| Plots which are known to use only black/white/transparent can |
| advantageously use \code{colormodel = "gray"} (just as before, but |
| there is now slightly more advantage in doing so). |
| |
| \item \code{postscript()} with values \code{colormodel = "rgb"} and |
| \code{colormodel = "rgb-nogray"} give the behaviour prior to \R |
| 2.13.0 of uncalibrated RGB, which under some circumstances can be |
| rendered much faster by a viewer. |
| |
| \code{pdf(colormodel = "rgb")} gives the behaviour prior to \R |
| 2.13.0 of uncalibrated RGB, which under some circumstances can be |
| rendered faster by a viewer, and the files will be smaller (by |
| about 9KB if compression is not used). |
| |
| \item The \code{postscript()} device only includes the definition |
| of the sRGB colorspace in the output file for the colormodels |
| which use it. |
| |
| \item The \code{postscript()} and \code{pdf()} devices now output |
| greyscale raster images (and not RGB) when \code{colormodel = "gray"}. |
| |
| \item \code{postscript(colormodel = "gray")} now accepts non-grey |
| colours and uses their luminance (as \code{pdf()} long has). |
| |
| \item \code{colormodel = "grey"} is allowed as an alternative name |
| for \code{postscript()} and \code{pdf()}. |
| |
| \item \code{pdf()} in the default sRGB colorspace outputs many |
| fewer changes of colorspace, which may speed up rendering in some |
| viewing applications. |
| |
| \item There is a new function \code{dev.capabilities()} to query |
| the capabilities of the current device. The initial set of |
| capabilities are support for semi-transparent colours, rendering |
| and capturing raster images, the locator and for interactive |
| events. |
| |
| \item For \code{pdf()}, \code{maxRasters} is increased as needed |
| so the argument is no longer used. |
| } |
| } |
| |
| \subsection{SWEAVE & VIGNETTES}{ |
| \itemize{ |
| \item Options \code{keep.source = TRUE, figs.only = FALSE} |
| are now the default. |
| |
| \item The way the type of user-defined options is determined has |
| changed. Previously they were all regarded as logical: now the |
| type is determined by the value given at first use. |
| |
| \item The allowed values of logical options are now precisely |
| those allowed for character inputs to \code{as.logical()}: this |
| means that \samp{t} and \samp{f} are no longer allowed (although |
| \code{T} and \code{F} still are). |
| |
| \item The preferred location for vignette sources is now the |
| directory \file{vignettes} and not \file{inst/doc}: \command{R CMD |
| build} will now re-build vignettes in directory \file{vignettes} |
| and copy the \file{.Rnw} (etc) files and the corresponding PDFs to |
| \file{inst/doc}. Further files to be copied to \file{inst/doc} |
| can be specified \emph{via} the file |
| \file{vignettes/.install_extras}. |
| |
| \item \command{R CMD Sweave} now supports a \option{--driver} |
| option to select the Sweave driver: the default is equivalent to |
| \option{--driver=RweaveLatex}. |
| |
| \item \command{R CMD Sweave} and \command{R CMD Stangle} support |
| options \option{--encoding} and \option{--options}. |
| |
| \item The \code{Rtangle()} driver allows \code{output = "stdout"} |
| or \code{output = "stderr"} to select the output or message |
| connection. This is convenient for scripting using something like |
| \preformatted{ R CMD Stangle --options='output="stdout"' foo.Rnw > foo2.R} |
| |
| \item There is a new option \code{pdf.compress} controlling |
| whether PDF figures are generated using Flate compression (they |
| are by default). |
| |
| \item \command{R CMD Sweave} now has a \option{--pdf} option to |
| produce a PDF version of the processed Sweave document. |
| |
| \item It is no longer allowed to have two vignettes with the |
| same vignette basename (e.g., \file{vig.Rnw} and \file{vig.Snw}). |
| (Previously one vignette hid the other in the \code{vignette()} |
| function.) |
| } |
| } |
| |
| \subsection{C-LEVEL FACILITIES}{ |
| \itemize{ |
| \item Function \code{R_tmpnam2} has been added to the API to allow |
| a temporary filename to include a specified extension. |
| } |
| } |
| |
| \subsection{PACKAGE INSTALLATION}{ |
| \itemize{ |
| \item Package \file{DESCRIPTION} file field \samp{KeepSource} |
| forces the package to be installed with \code{keep.source = |
| TRUE} (or \code{FALSE}). (Suggestion of Greg Snow. Note that |
| as all packages are lazy-loaded, this is now only relevant at |
| installation.) |
| |
| There are corresponding options \option{--with-keep.source} and |
| \option{--without-keep.source} for \command{R CMD INSTALL}. |
| |
| \item \command{R CMD INSTALL} has a new option |
| \option{--byte-compile} to byte-compile the packages during |
| installation (since all packages are now lazy-loaded). This can |
| be controlled on a per-package basis by the optional field |
| \samp{ByteCompile} in the \file{DESCRIPTION} file. |
| |
| \item A package \R code but without a \file{NAMESPACE} file will |
| have a default one created at \command{R CMD build} or \command{R |
| CMD INSTALL} time, so all packages will be installed with |
| namespaces. A consequence of this is that \code{.First.lib()} |
| functions need to be copied to \code{.onLoad()} (usually) or |
| \code{.onAttach()}. For the time being, if there is an |
| auto-generated \file{NAMESPACE} file and no \code{.onLoad()} nor |
| \code{.onAttach()} function is found but \code{.First.lib()} is, |
| it will be run as the attach hook (unless the package is one of a |
| list of known exceptions, when it will be run as the load hook). |
| |
| \item A warning is given if test-loading a package changes a |
| locked binding in a package other than itself. It is likely that |
| this will be disallowed in future releases. (There are \emph{pro |
| tem} some exceptions to the warning.) |
| |
| \item A dependency on SVN revision is allowed for \code{R}, |
| e.g.\sspace{}\code{R (>= r56550)}. This should be used in conjunction with a |
| version number, e.g.\sspace{}\code{R (>= 2.14.0), R (>= r56550)} to |
| distinguish between R-patched and R-devel versions with the same |
| SVN revision. |
| |
| \item \code{installed.packages()} now hashes the names of its |
| cache files to avoid very rare problems with excessively long path |
| names. (\PR{14669}) |
| |
| \item A top-level \file{COPYING} file in a package is no longer |
| installed (file names \file{LICENSE} or \file{LICENCE} having long |
| been preferred). |
| } |
| } |
| |
| \subsection{UTILITIES}{ |
| \itemize{ |
| \item \command{R CMD check} now gives an error if the \R code in a |
| vignette fails to run, unless this is caused by a missing package. |
| |
| \item \command{R CMD check} now unpacks tarballs in the same way |
| as \command{R CMD INSTALL}, including making use of the |
| environment variable \env{R_INSTALL_TAR} to override the default |
| behaviour. |
| |
| \item \command{R CMD check} performs additional code analysis of |
| package startup functions, and notifies about incorrect argument |
| lists and (incorrect) calls to functions which modify the search |
| path or inappropriately generate messages. |
| |
| \item \command{R CMD check} now also checks compiled code for |
| symbols corresponding to functions which might terminate \R or |
| write to \file{stdout}/\file{stderr} instead of the console. |
| |
| \item \command{R CMD check} now uses a \code{pdf()} device when |
| checking examples (rather than \code{postscript()}). |
| |
| \item \command{R CMD check} now checks line-endings of makefiles |
| and C/C++/Fortran sources in subdirectories of \file{src} as well |
| as in \file{src} itself. |
| |
| \item \command{R CMD check} now reports as a NOTE what look like |
| methods documented with their full names even if there is a |
| namespace and they are exported. In almost all cases they are |
| intended to be used only as methods and should use the |
| \samp{\\method} markup. In the other rare cases the recommended |
| form is to use a function such as \code{coefHclust} which would |
| not get confused with a method, document that and register it in |
| the \file{NAMESPACE} file by \code{s3method(coef, hclust, |
| coefHclust)}. |
| |
| \item The default for the environment variable |
| \env{_R_CHECK_COMPACT_DATA2_} is now true: thus if using the newer |
| forms of compression introduced in \R 2.10.0 would be beneficial |
| is now checked (by default). |
| |
| \item Reference output for a vignette can be supplied when |
| checking a package by \command{R CMD check}: see \sQuote{Writing R |
| Extensions}. |
| |
| \item \command{R CMD Rd2dvi} allows the use of LaTeX package |
| \samp{inputenx} rather than \samp{inputenc}: the value of the |
| environment variable \env{RD2DVI_INPUTENC} is used. (LaTeX package |
| \samp{inputenx} is an optional install which provides greater |
| coverage of the UTF-8 encoding.) |
| |
| \item \command{Rscript} on a Unix-alike now accepts file names |
| containing spaces (provided these are escaped or quoted in the |
| shell). |
| |
| \item \command{R CMD build} on a Unix-alike (only) now tries to |
| preserve dates on files it copies from its input directory. (This |
| was the undocumented behaviour prior to \R 2.13.0.) |
| } |
| } |
| |
| \subsection{DEPRECATED AND DEFUNCT}{ |
| \itemize{ |
| \item \code{require()} no longer has a \code{save} argument. |
| |
| \item The \code{gamma} argument to \code{hsv()}, |
| \code{rainbow()}, and \code{rgb2hsv()} has been removed. |
| |
| \item The \option{--no-docs} option for |
| \command{R CMD build --binary} is defunct: use |
| \option{--install-args} instead. |
| |
| \item The option \option{--unsafe} to \command{R CMD INSTALL} is |
| defunct: use the identical option \option{--no-lock} instead. |
| |
| \item The entry point \code{pythag} formerly in \file{Rmath.h} is |
| defunct: use instead the C99 function \code{hypot}. |
| |
| \item \command{R CMD build --binary} is formally defunct: |
| \command{R CMD INSTALL --build} has long been the preferred |
| alternative. |
| |
| \item \command{zip.file.extract()} is now defunct: use |
| \code{unzip()} or \code{unz()} instead. |
| |
| \item \command{R CMD Rd2dvi} without the \option{--pdf} option is |
| now deprecated: only PDF output will be supported in future |
| releases (since this allows the use of fonts only supported for |
| PDF), and only \command{R CMD Rd2pdf} will be available. |
| |
| \item Options such as \option{--max-nsize} and the function |
| \code{mem.limits()} are now deprecated: these limits are nowadays |
| almost never used, and are reported by \code{gc()} when they are |
| in use. |
| |
| \item Forms like \code{binomial(link = "link")} for GLM families |
| deprecated since \R 2.4.0 are now defunct. |
| |
| \item The \code{declarativeOnly} argument to |
| \code{loadNamespace()} (not relevant since \R 2.13.0) has been |
| removed. |
| |
| \item Use of \code{library.dynam()} without specifying all the |
| first three arguments is deprecated. (It is often called from a |
| namespace, and the defaults are only appropriate to a package.) |
| |
| Use of \code{chname} in \code{library.dynam()} with the extension |
| \file{.so} or \code{.dll} (which is clearly not allowed according |
| to the help page) is deprecated. This also applies to |
| \code{library.dynam.unload()} and \code{useDynLib} directives in |
| \file{NAMESPACE} files. |
| |
| \item It is deprecated to use \code{mean(x)} and \code{sd(x)} |
| directly on data frames (or also matrices, for \code{sd}) |
| \code{x}, instead of simply using \code{sapply}. |
| |
| In the same spirit, \code{median(x)} now gives an error for a data |
| frame \code{x} (it often gave nonsensical results). |
| |
| \item The \code{keep.source} argument to \code{library()} and |
| \code{require()} is deprecated: it was only used for packages |
| installed without lazy-loading, and now all packages are |
| lazy-loaded. |
| |
| \item Using a false value for the \file{DESCRIPTION} field |
| \samp{LazyLoad} is deprecated. |
| } |
| } |
| |
| \subsection{INSTALLATION}{ |
| \itemize{ |
| \item The base and recommended packages are now byte-compiled |
| (equivalent to \command{make bytecode} in \R 2.13.x). |
| |
| \item Configure option \option{--with-system-zlib} now only makes |
| use of the basic interface of \code{zlib} and not the |
| C function \samp{gzseek} which has shown erroneous behaviour in |
| \code{zlib} 1.2.4 and 1.2.5. |
| |
| \item The \code{zlib} in the R sources is now version 1.2.5. |
| (This is safe even on 32-bit Linux systems because only the basic |
| interface is now used.) |
| |
| \item The \file{.afm} files in package \pkg{grDevices} are now |
| installed as compressed files (as long done on Windows), saving ca |
| 2MB on the installed size. |
| |
| \item The non-screen cairo-based devices are no longer in the X11 |
| module and so can be installed without X11. (We have never seen a |
| Unix-alike system with cairographics installed but not X11, but a |
| user might select \option{--without-x}.) |
| |
| \item Configure will try to use \option{-fobjc-exceptions} for the |
| Objective-C compiler (if present) to ensure that even compilers |
| that do not enable exceptions by default (such as vanilla gcc) can |
| be used. (Objective-C is currently only used on Mac OS X.) |
| |
| \item The system call \code{times} is required. |
| |
| \item The C99 functions \code{acosh}, \code{asinh}, \code{atanh}, |
| \code{snprintf} and \code{vsnprintf} are now required. |
| |
| \item There is no longer support for making DVI manuals \emph{via} |
| \command{make dvi}, \command{make install-dvi} and similar. Only |
| PDF manuals are supported (to allow the use of fonts which are |
| only available for PDF.) |
| |
| \item The \file{configure} arguments used during configuration of |
| \R are included as a comment in \file{Makeconf} for informative |
| purposes on Unix-alikes in a form suitable for shell execution. |
| Note that those are merely command-line arguments, they do not |
| include environment variables (one more reason to use configure |
| variables instead) or site configuration settings. |
| |
| \item Framework installation now supports \code{DESTDIR} |
| (Mac OS X only). |
| |
| \item Java detection (\code{R CMD javareconf}) works around bogus |
| \code{java.library.path} property in recent Oracle Java binaries. |
| } |
| } |
| |
| \subsection{BUG FIXES}{ |
| \itemize{ |
| \item The locale category \samp{LC_MONETARY} was only being set on |
| startup on Windows: that is now done on Unix-alikes where |
| supported. |
| |
| \item Reference class utilities will detect an attempt to modify |
| methods or fields in a locked class definition (e.g., in a |
| namespace) and generate an error. |
| |
| \item The formula methods for \code{lines()}, \code{points()} and |
| \code{text()} now work even if package \pkg{stats} is not on the |
| search path. |
| |
| \item In principle, S4 classes from different packages could |
| have the same name. This has not previously worked. Changes |
| have now been installed that should allow such classes and |
| permit methods to use them. New functions \code{className()} |
| and \code{multipleClasses()} are related tools for programming. |
| |
| \item Work around an issue in Linux (a system \code{select} call |
| resetting \code{tv}) which prevented internet operations from |
| timing out properly. |
| |
| \item Several stack trampling and overflow issues have been fixed |
| in TRE, triggered by \code{agrep} and friends with long patterns. |
| (\PR{14627}) |
| |
| \item (\dQuote{design infelicity}) Field assignments in reference |
| classes are now consistent with slots in S4 classes: the |
| assigned value must come from the declared class (if any) for the field |
| or from a subclass. |
| |
| \item The methods objects constructed for \code{"coerce"} and |
| \code{"coerce<-"} were lacking some essential information in the |
| \code{generic}, \code{defined} and \code{target} slots; |
| \code{as()} did not handle duplicate class definitions correctly. |
| |
| \item The parser no longer accepts the digit \code{8} in an octal |
| character code in a string, nor does it accept unterminated |
| strings in a file. (Reported by Bill Dunlap.) |
| |
| \item The \code{print()} method for class \code{"summary.aov"} did |
| not pass on argument \code{digits} when \code{summary()} was |
| called on a single object, and hence used more digits than |
| documented. |
| |
| \item The \code{X11()} device's cairo back-end produced incorrect |
| capture snapshot images on big-endian machines. |
| |
| \item \code{loglin()} gave a spurious error when argument |
| \code{margin} consisted of a single element of length one. |
| (\PR{14690}) |
| |
| \item \code{loess()} is better protected against misuse, |
| e.g.\sspace{}zero-length \code{span}. (\PR{14691}) |
| |
| \item \code{HoltWinters()} checks that the optimization |
| succeeded. (\PR{14694}) |
| |
| \item The (undocumented) inclusion of superclass objects in |
| default initializing of reference classes overwrote explicit |
| field arguments. The bug is fixed, the feature documented and a |
| test added. |
| |
| \item \code{round(x, -Inf)} now does something sensible (return |
| zero rather than \code{NA}). |
| |
| \item \code{signif(x, -Inf)} now behaves as documented |
| (\code{signif(x, 1)}) rather than giving zero. |
| |
| \item The \code{"table"} method for \code{Axis()} hardcoded |
| \code{side = 1}, hence calls to \code{plot(<vector>, <table>)} |
| labelled the wrong axis. (\PR{14699}) |
| |
| \item Creating a connection might fail under \code{gctorture(TRUE)}. |
| |
| \item \code{stack()} and \code{unstack()} converted character |
| columns to factors. |
| |
| \code{unstack()} sometimes produced incorrect results (a list or a |
| vector) if the factor on which to un-split had only one level. |
| |
| \item On some systems \code{help(".C", help_type = "pdf")} and |
| similar generated file names that TeX was unable to handle. |
| |
| \item Non-blocking listening socket connections continued to |
| report \code{isIncomplete()} as true even when the peer had closed |
| down and all available input had been read. |
| |
| \item The revised HTML search system now generates better |
| hyperlinks to help topics found: previously it gave problems with |
| help pages with names containing e.g.\sspace{}spaces and slashes. |
| |
| \item A late change in \R 2.13.2 broke \samp{\Sexpr} expressions |
| in Rd files. |
| |
| \item The creation of ticks on log axes (including by |
| \code{axTicks()}) sometimes incorrectly omitted a tick at one end |
| of the range by rounding error in a platform-dependent way. This |
| could be seen in the examples for \code{axTicks()}, where with |
| axis limits \code{c(0.2, 88)} the tick for \code{0.2} was |
| sometimes omitted. |
| |
| \item \code{qgamma()} for small \code{shape} underflows to |
| \code{0} rather than sometimes giving \code{NaN}. |
| (\PR{8528}, \PR{14710}) |
| |
| \item \code{mapply()} now gives an explicit error message (rather |
| than an obscure one) if inputs of zero and positive length are |
| mixed. |
| |
| \item Setting a Hershey font family followed by string height |
| query would crash R. |
| |
| \item \code{R CMD javareconf -e} would fail for some shells due to |
| a shift error. Also the resulting paths will no longer contain |
| \code{$(JAVA_HOME)} as that can result in an unintended |
| substitution based on \file{Makeconf} instead of the shell |
| setting. |
| } |
| } |
| } |
| |
| \section{\Rlogo CHANGES IN R VERSION 2.13.2}{ |
| \subsection{NEW FEATURES}{ |
| \itemize{ |
| \item \code{mem.limits()} now reports values larger than the |
| maximum integer (previously documented to be reported as |
| \code{NA}), and allows larger values to be set, including |
| \code{Inf} to remove the limit. |
| |
| \item The \code{print()} methods for classes \code{"Date"}, |
| \code{"POSIXct"} and \code{"POSIXlt"} respect the option |
| \code{"max.print"} and so are much faster for very long datetime |
| vectors. (Suggestion of Yohan Chalabi.) |
| |
| \item \code{untar2()} now works around errors generated with |
| \code{tar} files that use more than the standard 6 digits for the |
| checksum. (\PR{14654}) |
| |
| \item \code{install.packages()} with \code{Ncpus > 1} guards |
| against simultaneous installation of indirect dependencies as well |
| as direct ones. |
| |
| \item Sweave now knows about a few more Windows' encodings |
| (including \code{cp1250} and \code{cp1257}) and some |
| \code{inputenx} encodings such as \code{koi8-r}. |
| |
| \item \code{postscript(colormodel = "rgb-nogray")} no longer sets |
| the sRGB colorspace for each colour and so some viewers may render |
| its files much faster than the default \code{colormodel ="rgb"}. |
| |
| \item The default for \code{pdf(maxRasters=)} has been increased |
| from 64 to 1000. |
| |
| \item \code{readBin()} now warns if \code{signed = FALSE} is used |
| inappropriately (rather than being silently ignored). |
| |
| It enforces the documented limit of \eqn{2^{31}-1}{2^31-1} bytes |
| in a single call. |
| |
| \item PCRE has been updated to version 8.13, a bug-fix release |
| with updated Unicode tables (version 6.0.0). An additional patch |
| (r611 from PCRE 8.20-to-be) has been added to fix a collation |
| symbol recognition issue. |
| } |
| } |
| |
| \subsection{INSTALLATION}{ |
| \itemize{ |
| \item It is possible to build in \file{src/extra/xdr} on more |
| platforms. (Needed since glibc 2.14 hides its RPC implementation.) |
| |
| \item \command{configure} will find the Sun TI-RPC implementation |
| of xdr (in \file{libtirpc}) provided its header files are in the |
| search path: see the \sQuote{R Installation and Administration |
| Manual}. |
| } |
| } |
| |
| \subsection{PACKAGE INSTALLATION}{ |
| \itemize{ |
| \item Using a broad \code{exportPattern} directive in a |
| \file{NAMESPACE} file is no longer allowed to export internal |
| objects such as \code{.onLoad} and \code{.__S3MethodsTable__.} . |
| |
| These are also excluded from imports, along with \code{.First.lib}. |
| } |
| } |
| |
| \subsection{BUG FIXES}{ |
| \itemize{ |
| \item \code{fisher.test()} had a buglet: If arguments were factors |
| with unused levels, levels were dropped and you would get an error |
| saying that there should be at least two levels, inconsistently |
| with pre-tabulated data. (Reported by Michael Fay). |
| |
| \item \code{package.skeleton()} will no longer dump S4 objects |
| supplied directly rather than in a code file. These cannot be |
| restored correctly from the dumped version. |
| |
| \item Build-time expressions in help files did not have access |
| to functions in the package being built (with \command{R CMD build}). |
| |
| \item Because \code{quote()} did not mark its result as being in |
| use, modification of the result could in some circumstances |
| modify the original call. |
| |
| \item Plotting \code{pch = '.'} now guarantees at least a one-pixel |
| dot if \code{cex > 0}. |
| |
| \item The very-rarely-used command-line option |
| \option{--max-vsize} was incorrectly interpreted as a number of |
| Vcells and not in bytes as documented. (Spotted by Christophe |
| Rhodes.) |
| |
| \item The HTML generated by \code{Rd2HTML()} comes closer to |
| being standards compliant. |
| |
| \item \code{filter(x, recursive = TRUE)} gave incorrect results on a |
| series containing \code{NA}s. (Spotted by Bill Dunlap.) |
| |
| \item Profiling \code{stats::mle()} fits with a \code{fixed} |
| parameter was not supported. (\PR{14646}) |
| |
| \item \code{retracemem()} was still using positional matching. |
| (\PR{14650}) |
| |
| \item The \code{quantile} method for \code{"ecdf"} objects now |
| works and is documented. |
| |
| \item \code{xtabs(~ .., ..., sparse=TRUE)} now also works together |
| with an \code{exclude = ..} specification. |
| |
| \item \code{decompose()} computed an incorrect seasonal component for |
| time series with odd frequencies. |
| |
| \item The \code{pdf()} device only includes the definition of the |
| sRGB colorspace in the output file for the \code{"rgb"} colormodel |
| (and not for \code{"gray"} nor \code{"cmyk"}): this saves ca |
| 9KB in the output file. |
| |
| \item \code{.hasSlot()} wrongly gave \code{FALSE} in some cases. |
| |
| \item \code{Sweave()} with \code{keep.source=TRUE} could generate |
| spurious \code{NA} lines when a chunk reference appeared last in |
| a code chunk. |
| |
| \item \samp{\Sexpr[results=rd]} in an \file{.Rd} file now first tries |
| \code{parse_Rd(fragment=FALSE)} to allow Rd section-level macros |
| to be inserted. |
| |
| \item The \code{print()} method for class \code{"summary.aov"} did |
| not pass on arguments such as \code{signif.stars} when |
| \code{summary()} was called on a single object. (\PR{14684}) |
| |
| \item In rare cases \code{ks.test()} could return a p-value |
| very slightly less than 0 by rounding error. (\PR{14671}) |
| |
| \item If \code{trunc()} was called on a \code{"POSIXlt"} vector |
| and the result was subsetted, all but the first element was |
| converted to \code{NA}. (\PR{14679}) |
| |
| \item \code{cbind()} and \code{rbind()} could cause memory |
| corruption when used on a combination of raw and logical/integer |
| vectors. |
| } |
| } |
| } |
| |
| \section{\Rlogo CHANGES IN R VERSION 2.13.1}{ |
| \subsection{NEW FEATURES}{ |
| \itemize{ |
| \item \code{iconv()} no longer translates \code{NA} strings as |
| \code{"NA"}. |
| |
| \item \code{persp(box = TRUE)} now warns if the surface extends |
| outside the box (since occlusion for the box and axes is computed |
| assuming the box is a bounding box). (\PR{202}) |
| |
| \item \code{RShowDoc()} can now display the licences shipped with |
| \R, e.g.\sspace{}\code{RShowDoc("GPL-3")}. |
| |
| \item New wrapper function \code{showNonASCIIfile()} in package |
| \pkg{tools}. |
| |
| \item \code{nobs()} now has a \code{"mle"} method in package |
| \pkg{stats4}. |
| |
| \item \code{trace()} now deals correctly with S4 reference classes |
| and corresponding reference methods (e.g., \code{$trace()})%$ |
| have been added. |
| |
| \item \command{xz} has been updated to 5.0.3 (very minor bugfix |
| release). |
| |
| \item \code{tools::compactPDF()} gets more compression (usually a |
| little, sometimes a lot) by using the compressed object streams of |
| PDF 1.5. |
| |
| \item \code{cairo_ps(onefile = TRUE)} generates encapsulated EPS |
| on platforms with cairo >= 1.6. |
| |
| \item Binary reads (e.g., by \code{readChar()} and \code{readBin()}) |
| are now supported on clipboard connections. (Wish of \PR{14593}.) |
| |
| \item \code{as.POSIXlt.factor()} now passes \code{...} to the |
| character method (suggestion of Joshua Ulrich). [Intended for \R |
| 2.13.0 but accidentally removed before release.] |
| |
| \item \code{vector()} and its wrappers such as \code{integer()} |
| and \code{double()} now warn if called with a \code{length} |
| argument of more than one element. This helps track down user |
| errors such as calling \code{double(x)} instead of |
| \code{as.double(x)}. |
| } |
| } |
| |
| \subsection{INSTALLATION}{ |
| \itemize{ |
| \item Building the vignette PDFs in packages \pkg{grid} and |
| \pkg{utils} is now part of running \command{make} from an SVN |
| checkout on a Unix-alike: a separate \command{make vignettes} step |
| is no longer required. |
| |
| These vignettes are now made with \code{keep.source = TRUE} and |
| hence will be laid out differently. |
| |
| \item \command{make install-strip} failed under some configuration |
| options. |
| |
| \item Packages can customize non-standard installation of compiled |
| code via a \code{src/install.libs.R} script. This allows packages that |
| have architecture-specific binaries (beyond the package's shared |
| objects/DLLs) to be installed in a multi-architecture setting. |
| } |
| } |
| |
| \subsection{SWEAVE & VIGNETTES}{ |
| \itemize{ |
| \item \code{Sweave()} and \code{Stangle()} gain an \code{encoding} |
| argument to specify the encoding of the vignette sources if the |
| latter do not contain a \samp{\\usepackage[]{inputenc}} statement |
| specifying a single input encoding. |
| |
| \item There is a new Sweave option \code{figs.only = TRUE} to run |
| each figure chunk only for each selected graphics device, and not |
| first using the default graphics device. This will become the |
| default in \R 2.14.0. |
| |
| \item Sweave custom graphics devices can have a custom function |
| \code{foo.off()} to shut them down. |
| |
| \item Warnings are issued when non-portable filenames are found |
| for graphics files (and chunks if \code{split = TRUE}). Portable |
| names are regarded as alphanumeric plus hyphen, underscore, plus |
| and hash (periods cause problems with recognizing file |
| extensions). |
| |
| \item The \code{Rtangle()} driver has a new option |
| \code{show.line.nos} which is by default false; if true it |
| annotates code chunks with a comment giving the line number of the |
| first line in the sources (the behaviour of \R >= 2.12.0). |
| |
| \item Package installation tangles the vignette sources: this step |
| now converts the vignette sources from the vignette/package |
| encoding to the current encoding, and records the encoding (if not |
| ASCII) in a comment line at the top of the installed \file{.R} |
| file. |
| } |
| } |
| |
| \subsection{LICENCE}{ |
| \itemize{ |
| \item No parts of \R are now licensed solely under GPL-2. The |
| licences for packages \CRANpkg{rpart} and \CRANpkg{survival} have been |
| changed, which means that the licence terms for \R as distributed |
| are GPL-2 | GPL-3. |
| } |
| } |
| |
| \subsection{DEPRECATED AND DEFUNCT}{ |
| \itemize{ |
| \item The internal functions \code{.readRDS()} and |
| \code{.saveRDS()} are now deprecated in favour of the public |
| functions \code{readRDS()} and \code{saveRDS()} introduced in \R |
| 2.13.0. |
| |
| \item Switching off lazy-loading of code \emph{via} the |
| \samp{LazyLoad} field of the \file{DESCRIPTION} file is now |
| deprecated. In future all packages will be lazy-loaded. |
| |
| \item The off-line \code{help()} types \samp{"postscript"} and |
| \samp{"ps"} are deprecated. |
| } |
| } |
| |
| \subsection{UTILITIES}{ |
| \itemize{ |
| \item \command{R CMD check} on a multi-architecture installation now |
| skips the user's \file{.Renviron} file for the |
| architecture-specific tests (which do read the |
| architecture-specific \file{Renviron.site} files). This is |
| consistent with single-architecture checks, which use |
| \option{--no-environ}. |
| |
| \item \command{R CMD build} now looks for \file{DESCRIPTION} |
| fields \samp{BuildResaveData} and \samp{BuildKeepEmpty} for |
| per-package overrides. See \sQuote{Writing R Extensions}. |
| } |
| } |
| |
| \subsection{BUG FIXES}{ |
| \itemize{ |
| \item \code{plot.lm(which = 5)} was intended to order factor |
| levels in increasing order of mean standardized residual. It |
| ordered the factor labels correctly, but could plot the wrong |
| group of residuals against the label. (\PR{14545}) |
| |
| \item \code{mosaicplot()} could clip the factor labels, and could |
| overlap them with the cells if a non-default value of |
| \code{cex.axis} was used. (Related to \PR{14550}.) |
| |
| \item \code{dataframe[[row,col]]} now dispatches on \code{[[} |
| methods for the selected column. (Spotted by Bill Dunlap). |
| |
| \item \code{sort.int()} would strip the class of an object, but |
| leave its object bit set. (Reported by Bill Dunlap.) |
| |
| \item \code{pbirthday()} and \code{qbirthday()} did not implement |
| the algorithm exactly as given in their reference and so were |
| unnecessarily inaccurate. |
| |
| \code{pbirthday()} now solves the approximate formula analytically |
| rather than using \code{uniroot()} on a discontinuous function. |
| |
| The description of the problem was inaccurate: the probability is |
| a tail probability (\sQuote{2 \emph{or more} people share a birthday}) |
| |
| \item Complex arithmetic sometimes warned incorrectly about |
| producing NAs when there were NaNs in the input. |
| |
| \item \code{seek(origin = "current")} incorrectly reported it was |
| not implemented for a \code{gzfile()} connection. |
| |
| \item \code{c()}, \code{unlist()}, \code{cbind()} and |
| \code{rbind()} could silently overflow the maximum vector length |
| and cause a segfault. (\PR{14571}) |
| |
| \item The \code{fonts} argument to \code{X11(type = "Xlib")} was |
| being ignored. |
| |
| \item Reading (e.g., with \code{readBin()}) from a raw connection |
| was not advancing the pointer, so successive reads would read the |
| same value. (Spotted by Bill Dunlap.) |
| |
| \item Parsed text containing embedded newlines was printed |
| incorrectly by \code{as.character.srcref()}. (Reported by Hadley |
| Wickham.) |
| |
| \item \code{decompose()} used with a series of a non-integer |
| number of periods returned a seasonal component shorter than the |
| original series. (Reported by Rob Hyndman.) |
| |
| \item \code{fields = list()} failed for \code{setRefClass()}. |
| (Reported by Michael Lawrence.) |
| |
| \item Reference classes could not redefine an inherited field |
| which had class \code{"ANY"}. (Reported by Janko Thyson.) |
| |
| \item Methods that override previously loaded versions will now |
| be installed and called. (Reported by Iago Mosqueira.) |
| |
| \item \code{addmargins()} called \code{numeric(apos)} rather than |
| \code{numeric(length(apos))}. |
| |
| \item The HTML help search sometimes produced bad links. |
| (\PR{14608}) |
| |
| \item Command completion will no longer be broken if |
| \code{tail.default()} is redefined by the user. (Problem reported |
| by Henrik Bengtsson.) |
| |
| \item LaTeX rendering of markup in titles of help pages has been |
| improved; in particular, \code{\\eqn{}} may be used there. |
| |
| \item \code{isClass()} used its own namespace as the default of |
| the \code{where} argument inadvertently. |
| |
| \item Rd conversion to latex mishandled multi-line titles |
| (including cases where there was a blank line in the \samp{\title} |
| section). (It seems this happened only in 2.13.0 patched.) |
| |
| \item \code{postscript()} with an sRGB colormodel now uses sRGB |
| for raster images (in \R 2.13.[01] it used uncalibrated RGB). |
| |
| There is no longer an undocumented 21845-pixel limit on raster images. |
| } |
| } |
| } |
| |
| \section{\Rlogo CHANGES IN R VERSION 2.13.0}{ |
| \subsection{SIGNIFICANT USER-VISIBLE CHANGES}{ |
| \itemize{ |
| \item \code{replicate()} (by default) and \code{vapply()} (always) |
| now return a higher-dimensional array instead of a matrix in the case |
| where the inner function value is an array of dimension >= 2. |
| |
| \item Printing and formatting of floating point numbers is now |
| using the correct number of digits, where it previously rarely |
| differed by a few digits. (See \dQuote{scientific} entry below.) |
| This affects \emph{many} \file{*.Rout.save} checks in packages. |
| } |
| } |
| \subsection{NEW FEATURES}{ |
| \itemize{ |
| \item \code{normalizePath()} has been moved to the \pkg{base} |
| package (from \pkg{utils}): this is so it can be used by |
| \code{library()} and friends. |
| |
| It now does tilde expansion. |
| |
| It gains new arguments \code{winslash} (to select the separator on |
| Windows) and \code{mustWork} to control the action if a canonical |
| path cannot be found. |
| |
| \item The previously barely documented limit of 256 bytes on a |
| symbol name has been raised to 10,000 bytes (a sanity check). |
| Long symbol names can sometimes occur when deparsing expressions |
| (for example, in \code{model.frame}). |
| |
| \item \code{reformulate()} gains a \code{intercept} argument. |
| |
| \item \code{cmdscale(add = FALSE)} now uses the more common |
| definition that there is a representation in \code{n-1} or less |
| dimensions, and only dimensions corresponding to positive |
| eigenvalues are used. (Avoids confusion such as \PR{14397}.) |
| |
| \item Names used by \code{c()}, \code{unlist()}, \code{cbind()} |
| and \code{rbind()} are marked with an encoding when this can be |
| ascertained. |
| |
| \item R colours are now defined to refer to the sRGB color space. |
| |
| The PDF, PostScript, and Quartz graphics devices record this fact. |
| X11 (and cairo) and Windows just assume that your screen conforms. |
| |
| \item \code{system.file()} gains a \code{mustWork} argument |
| (suggestion of Bill Dunlap). |
| |
| \item \code{new.env(hash = TRUE)} is now the default. |
| |
| \item \code{list2env(envir = NULL)} defaults to hashing (with a |
| suitably sized environment) for lists of more than 100 elements. |
| |
| \item \code{text()} gains a formula method. |
| |
| \item \code{IQR()} now has a \code{type} argument which is passed |
| to \code{quantile()}. |
| |
| \item \code{as.vector()}, \code{as.double()} etc duplicate less |
| when they leave the mode unchanged but remove attributes. |
| |
| \code{as.vector(mode = "any")} no longer duplicates when it does |
| not remove attributes. This helps memory usage in \code{matrix()} |
| and \code{array()}. |
| |
| \code{matrix()} duplicates less if \code{data} is an atomic vector |
| with attributes such as names (but no class). |
| |
| \code{dim(x) <- NULL} duplicates less if \code{x} has neither |
| dimensions nor names (since this operation removes names and |
| dimnames). |
| |
| \item \code{setRepositories()} gains an \code{addURLs} argument. |
| |
| \item \code{chisq.test()} now also returns a \code{stdres} |
| component, for standardized residuals (which have unit variance, |
| unlike the Pearson residuals). |
| |
| \item \code{write.table()} and friends gain a \code{fileEncoding} |
| argument, to simplify writing files for use on other OSes (e.g., a |
| spreadsheet intended for Windows or Mac OS X Excel). |
| |
| \item Assignment expressions of the form \code{foo::bar(x) <- y} |
| and \code{foo:::bar(x) <- y} now work; the replacement functions |
| used are \code{foo::`bar<-`} and \code{foo:::`bar<-`}. |
| |
| \item \code{Sys.getenv()} gains a \code{names} argument so |
| \code{Sys.getenv(x, names = FALSE)} can replace the common idiom |
| of \code{as.vector(Sys.getenv())}. The default has been changed |
| to not name a length-one result. |
| |
| \item Lazy loading of environments now preserves attributes and |
| locked status. (The locked status of bindings and active bindings |
| are still not preserved; this may be addressed in the future). |
| |
| \item \code{options("install.lock")} may be set to \code{FALSE} |
| so that \code{install.packages()} defaults to \option{--no-lock} |
| installs, or (on Windows) to \code{TRUE} so that binary installs |
| implement locking. |
| |
| \item \code{sort(partial = p)} for large \code{p} now tries |
| Shellsort if quicksort is not appropriate and so works for |
| non-numeric atomic vectors. |
| |
| \item \code{sapply()} gets a new option \code{simplify = "array"} |
| which returns a \dQuote{higher rank} array instead of just a matrix |
| when \code{FUN()} returns a \code{dim()} length of two or more. |
| |
| \code{replicate()} has this option set by default, and |
| \code{vapply()} now behaves that way internally. |
| |
| \item \code{aperm()} becomes S3 generic and gets a \code{table} |
| method which preserves the class. |
| |
| \item \code{merge()} and \code{as.hclust()} methods for objects of |
| class \code{"dendrogram"} are now provided. |
| |
| \item The character method of \code{as.POSIXlt()} now tries to |
| find a format that works for all non-\code{NA} inputs, not just |
| the first one. |
| |
| \item \code{str()} now has a method for class \code{"Date"} |
| analogous to that for class \code{"POSIXt"}. |
| |
| \item New function \code{file.link()} to create hard links on |
| those file systems (POSIX, NTFS but not FAT) that support them. |
| |
| \item New \code{Summary()} group method for class \code{"ordered"} |
| implements \code{min()}, \code{max()} and \code{range()} for |
| ordered factors. |
| |
| \item \code{mostattributes<-()} now consults the \code{"dim"} |
| attribute and not the \code{dim()} function, making it more useful |
| for objects (such as data frames) from classes with methods for |
| \code{dim()}. It also uses \code{attr<-()} in preference to the |
| generics \code{name<-()}, \code{dim<-()} and \code{dimnames<-()}. |
| (Related to \PR{14469}.) |
| |
| \item There is a new option \code{"browserNLdisabled"} to disable |
| the use of an empty (e.g., via the \sQuote{Return} key) as a synonym |
| for \code{c} in \code{browser()} or \code{n} under \code{debug()}. |
| (Wish of \PR{14472}.) |
| |
| \item \code{example()} gains optional new arguments |
| \code{character.only} and \code{give.lines} enabling programmatic |
| exploration. |
| |
| \item \code{serialize()} and \code{unserialize()} are no longer |
| described as \sQuote{experimental}. The interface is now regarded |
| as stable, although the serialization format may well change in |
| future releases. (\code{serialize()} has a new argument |
| \code{version} which would allow the current format to be written |
| if that happens.) |
| |
| New functions \code{saveRDS()} and \code{readRDS()} are public |
| versions of the \sQuote{internal} functions \code{.saveRDS()} and |
| \code{.readRDS()} made available for general use. The dot-name |
| versions remain available as several package authors have made use |
| of them, despite the documentation. \code{readRDS()} no longer |
| wraps non-file connections in a call to \code{gzcon()}, for |
| efficiency (see its documentation). |
| |
| \code{saveRDS()} supports \code{compress = "xz"}. |
| |
| \item Many functions when called with a not-open connection will |
| now ensure that the connection is left not-open in the event of |
| error. These include \code{read.dcf()}, \code{dput()}, |
| \code{dump()}, \code{load()}, \code{parse()}, \code{readBin()}, |
| \code{readChar()}, \code{readLines()}, \code{save()}, |
| \code{writeBin()}, \code{writeChar()}, \code{writeLines()}, |
| \code{.readRDS()}, \code{.saveRDS()} and \code{tools::parse_Rd()}, |
| as well as functions calling these. |
| |
| \item Public functions \code{find.package()} and \code{path.package()} |
| replace the internal dot-name versions. |
| |
| \item The default method for \code{terms()} now looks for a |
| \code{"terms"} attribute if it does not find a \code{"terms"} |
| component, and so works for model frames. |
| |
| \item \code{httpd()} handlers receive an additional argument |
| containing the full request headers as a raw vector (this can be |
| used to parse cookies, multi-part forms etc.). The recommended |
| full signature for handlers is therefore \code{function(url, |
| query, body, headers, ...)}. |
| |
| \item \code{file.edit()} gains a \code{fileEncoding} argument to |
| specify the encoding of the file(s). |
| |
| \item The format of the HTML package listings has changed. If |
| there is more than one library tree , a table of links to |
| libraries is provided at the top and bottom of the page. Where a |
| library contains more than 100 packages, an alphabetic index is |
| given at the top of the section for that library. (As a |
| consequence, package names are now sorted case-insensitively |
| whatever the locale.) |
| |
| \item \code{isSeekable()} now returns \code{FALSE} on connections |
| which have non-default \code{encoding}. Although documented to |
| record if \sQuote{in principle} the connection supports seeking, |
| it seems safer to report \code{FALSE} when it may not work. |
| |
| \item \command{R CMD REMOVE} and \code{remove.packages()} now |
| remove file \code{R.css} when removing all remaining packages in a |
| library tree. (Related to the wish of \PR{14475}: note that this |
| file is no longer installed.) |
| |
| \item \code{unzip()} now has a \code{unzip} argument like |
| \code{zip.file.extract()}. This allows an external |
| \command{unzip} program to be used, which can be useful to access |
| features supported by Info-ZIP's \command{unzip} version 6 which |
| is now becoming more widely available. |
| |
| \item There is a simple \code{zip()} function, as wrapper for an |
| external \command{zip} command. |
| |
| \item \code{bzfile()} connections can now read from concatenated |
| \command{bzip2} files (including files written with |
| \code{bzfile(open = "a")}) and files created by some other |
| compressors (such as the example of \PR{14479}). |
| |
| \item The primitive function \code{c()} is now of type BUILTIN. |
| |
| \item \code{plot(<dendrogram>, .., nodePar=*)} now obeys an optional |
| \code{xpd} specification (allowing clipping to be turned off |
| completely). |
| |
| \item \code{nls(algorithm="port")} now shares more code with |
| \code{nlminb()}, and is more consistent with the other |
| \code{nls()} algorithms in its return value. |
| |
| \item \command{xz} has been updated to 5.0.1 (very minor bugfix |
| release). |
| |
| \item \code{image()} has gained a logical \code{useRaster} |
| argument allowing it to use a bitmap raster for plotting a |
| regular grid instead of polygons. This can be more efficient, but |
| may not be supported by all devices. The default is \code{FALSE}. |
| |
| \item \code{list.files()}/\code{dir()} gains a new argument |
| \code{include.dirs()} to include directories in the listing when |
| \code{recursive = TRUE}. |
| |
| \item New function \code{list.dirs()} lists all directories, |
| (even empty ones). |
| |
| \item \code{file.copy()} now (by default) copies |
| read/write/execute permissions on files, moderated by the current |
| setting of \code{Sys.umask()}. |
| |
| \item \code{Sys.umask()} now accepts \code{mode = NA} and returns |
| the current \code{umask} value (visibly) without changing it. |
| |
| \item There is a \code{!} method for classes \code{"octmode"} and |
| \code{"hexmode"}: this allows \code{xor(a, b)} to work if both |
| \code{a} and \code{b} are from one of those classes. |
| |
| \item \code{as.raster()} no longer fails for vectors or matrices |
| containing \code{NA}s. |
| |
| \item New hook \code{"before.new.plot"} allows functions to be run |
| just before advancing the frame in \code{plot.new}, which is |
| potentially useful for custom figure layout implementations. |
| |
| \item Package \pkg{tools} has a new function \code{compactPDF()} |
| to try to reduce the size of PDF files \emph{via} \command{qpdf} |
| or \command{gs}. |
| |
| \item \code{tar()} has a new argument \code{extra_flags}. |
| |
| \item \code{dotchart()} accepts more general objects \code{x} such |
| as 1D tables which can be coerced by \code{as.numeric()} to a |
| numeric vector, with a warning since that might not be |
| appropriate. |
| |
| \item The previously internal function \code{create.post()} is now |
| exported from \pkg{utils}, and the documentation for |
| \code{bug.report()} and \code{help.request()} now refer to that |
| for \code{create.post()}. |
| |
| It has a new \code{method = "mailto"} on Unix-alikes similar to |
| that on Windows: it invokes a default mailer via \command{open} |
| (Mac OS X) or \code{xdg-open} or the default browser (elsewhere). |
| |
| The default for \code{ccaddress} is now |
| \code{getOption("ccaddress")} which is by default unset: using the |
| username as a mailing address nowadays rarely works as expected. |
| |
| \item The default for \code{options("mailer")} is now |
| \code{"mailto"} on all platforms. |
| |
| \item \code{unlink()} now does tilde-expansion (like most other |
| file functions). |
| |
| \item \code{file.rename()} now allows vector arguments (of the |
| same length). |
| |
| \item The \code{"glm"} method for \code{logLik()} now returns an |
| \code{"nobs"} attribute (which \code{stats4::BIC()} assumed it |
| did). |
| |
| The \code{"nls"} method for \code{logLik()} gave incorrect results |
| for zero weights. |
| |
| \item There is a new generic function \code{nobs()} in package |
| \pkg{stats}, to extract from model objects a suitable value for |
| use in BIC calculations. An S4 generic derived from it is defined |
| in package \pkg{stats4}. |
| |
| \item Code for S4 reference-class methods is now examined for |
| possible errors in non-local assignments. |
| |
| \item \code{findClasses}, \code{getGeneric}, \code{findMethods} |
| and \code{hasMethods} are revised to deal consistently with |
| the \code{package=} argument and be consistent with soft namespace |
| policy for finding objects. |
| |
| \item \code{tools::Rdiff()} now has the option to return not only |
| the status but a character vector of observed differences (which |
| are still by default sent to \file{stdout}). |
| |
| \item The startup environment variables \env{R_ENVIRON_USER}, |
| \env{R_ENVIRON}, \env{R_PROFILE_USER} and \env{R_PROFILE} are now |
| treated more consistently. In all cases an empty value is |
| considered to be set and will stop the default being used, and for |
| the last two tilde expansion is performed on the file name. (Note |
| that setting an empty value is probably impossible on Windows.) |
| |
| \item Using \command{R --no-environ CMD}, \command{R |
| --no-site-file CMD} or \command{R --no-init-file CMD} sets |
| environment variables so these settings are passed on to child \R |
| processes, notably those run by \code{INSTALL}, \code{check} and |
| \code{build}. \command{R --vanilla CMD} sets these three options |
| (but not \option{--no-restore}). |
| |
| \item \code{smooth.spline()} is somewhat faster. With |
| \code{cv=NA} it allows some leverage computations to be skipped, |
| |
| \item The internal (C) function \samp{scientific()}, at the heart |
| of \R's \code{format.info(x)}, \code{format(x)}, \code{print(x)}, |
| etc, for numeric \code{x}, has been re-written in order to provide |
| slightly more correct results, fixing \PR{14491}, notably in |
| border cases including when \code{digits >= 16}, thanks to |
| substantial contributions (code and experiments) from Petr |
| Savicky. This affects a noticeable amount of numeric output from |
| \R. |
| |
| \item A new function \code{grepRaw()} has been introduced for |
| finding subsets of raw vectors. It supports both literal searches |
| and regular expressions. |
| |
| \item Package \pkg{compiler} is now provided as a standard |
| package. See \code{?compiler::compile} for information on how to |
| use the compiler. This package implements a byte code compiler |
| for \R: by default the compiler is not used in this release. See |
| the \sQuote{R Installation and Administration Manual} for how to |
| compile the base and recommended packages. |
| |
| \item Providing an \code{exportPattern} directive in a NAMESPACE |
| file now causes classes to be exported according to the same |
| pattern, for example the default from \code{package.skeleton()} |
| to specify all names starting with a letter. An explicit |
| directive to \code{exportClassPattern} will still over-ride. |
| |
| \item There is an additional marked encoding \code{"bytes"} for |
| character strings. This is intended to be used for non-ASCII |
| strings which should be treated as a set of bytes, and never |
| re-encoded as if they were in the encoding of the current locale: |
| \code{useBytes = TRUE} is automatically selected in functions such |
| as \code{writeBin()}, \code{writeLines()}, \code{grep()} and |
| \code{strsplit()}. |
| |
| Only a few character operations are supported (such as \code{substr()}). |
| |
| Printing, \code{format()} and \code{cat()} will represent non-ASCII |
| bytes in such strings by a \samp{\xab} escape. |
| |
| \item The new function \code{removeSource()} removes the internally |
| stored source from a function. |
| |
| \item \code{"srcref"} attributes now include two additional |
| line number values, recording the line numbers in the order they |
| were parsed. |
| |
| \item New functions have been added for source reference access: |
| \code{getSrcFilename()}, \code{getSrcDirectory()}, |
| \code{getSrcLocation()} and \code{getSrcref()}. |
| |
| \item \code{Sys.chmod()} has an extra argument \code{use_umask} |
| which defaults to true and restricts the file mode by the current |
| setting of \code{umask}. This means that all the \R functions |
| which manipulate file/directory permissions by default respect |
| \code{umask}, notably \command{R CMD INSTALL}. |
| |
| \item \code{tempfile()} has an extra argument \code{fileext} to |
| create a temporary filename with a specified extension. |
| (Suggestion and initial implementation by Dirk Eddelbuettel.) |
| |
| There are improvements in the way \code{Sweave()} and |
| \code{Stangle()} handle non-ASCII vignette sources, especially in |
| a UTF-8 locale: see \sQuote{Writing R Extensions} which now has a |
| subsection on this topic. |
| |
| \item \code{factanal()} now returns the rotation matrix if a |
| rotation such as \code{"promax"} is used, and hence factor |
| correlations are displayed. (Wish of \PR{12754}.) |
| |
| \item The \code{gctorture2()} function provides a more refined |
| interface to the GC torture process. Environment variables |
| \env{R_GCTORTURE}, \env{R_GCTORTURE_WAIT}, and |
| \env{R_GCTORTURE_INHIBIT_RELEASE} can also be used to control the |
| GC torture process. |
| |
| \item \code{file.copy(from, to)} no longer regards it as an error |
| to supply a zero-length \code{from}: it now simply does nothing. |
| |
| \item \code{rstandard.glm()} gains a \code{type} argument which can |
| be used to request standardized Pearson residuals. |
| |
| \item A start on a Turkish translation, thanks to Murat Alkan. |
| |
| \item \code{.libPaths()} calls \code{normalizePath(winslash = "/")} |
| on the paths: this helps (usually) to present them in a |
| user-friendly form and should detect duplicate paths accessed via |
| different symbolic links. |
| |
| \item \code{download.file()} can be now used with external methods |
| even if there are spaces in the URL or the target filename. |
| |
| \item The first formal argument of \code{.C()}, \code{.Fortran()}, |
| \code{.Call()} and \code{.External()} is now referred to a |
| \code{.NAME} rather than \code{name}: however actual calls should |
| have an unnamed first argument. |
| } |
| } |
| |
| \subsection{SWEAVE CHANGES}{ |
| \itemize{ |
| \item \code{Sweave()} has options to produce PNG and JPEG figures, |
| and to use a custom function to open a graphics device (see |
| \code{?RweaveLatex}).\cr |
| (Based in part on the contribution of \PR{14418}.) |
| |
| \item The default for \code{Sweave()} is to produce only PDF |
| figures (rather than both EPS and PDF). |
| |
| \item Environment variable \env{SWEAVE_OPTIONS} can be used to |
| supply defaults for existing or new options to be applied after |
| the Sweave driver setup has been run. |
| |
| \item The Sweave manual is now included as a vignette in the |
| \pkg{utils} package. |
| |
| \item \code{Sweave()} handles \code{keep.source=TRUE} much better: |
| it could duplicate some lines and omit comments. (Reported by John |
| Maindonald and others.) |
| } |
| } |
| |
| \subsection{C-LEVEL FACILITIES}{ |
| \itemize{ |
| \item Because they use a C99 interface which a C++ compiler is not |
| required to support, \code{Rvprintf} and \code{REvprintf} are only |
| defined by \file{R_ext/Print.h} in C++ code if the macro |
| \code{R_USE_C99_IN_CXX} is defined when it is included. |
| |
| \item \code{pythag} duplicated the C99 function \code{hypot}. It |
| is no longer provided, but is used as a substitute for \code{hypot} |
| in the very unlikely event that the latter is not available. |
| |
| \item \code{R_inspect(obj)} and \code{R_inspect3(obj, deep, pvec)} |
| are (hidden) C-level entry points to the internal \code{inspect} |
| function and can be used for C-level debugging (e.g., in conjunction |
| with the \code{p} command in \code{gdb}). |
| |
| \item Compiling R with \option{--enable-strict-barrier} now also |
| enables additional checking for use of unprotected objects. In |
| combination with \code{gctorture()} or \code{gctorture2()} and a |
| C-level debugger this can be useful for tracking down memory |
| protection issues. |
| } |
| } |
| |
| \subsection{UTILITIES}{ |
| \itemize{ |
| \item \command{R CMD Rdiff} is now implemented in \R on |
| Unix-alikes (as it has been on Windows since \R 2.12.0). |
| |
| \item \command{R CMD build} no longer does any cleaning in the |
| supplied package directory: all the cleaning is done in the copy. |
| |
| It has a new option \option{--install-args} to pass arguments to |
| \command{R CMD INSTALL} for \option{--build} (but not when |
| installing to rebuild vignettes). |
| |
| There is new option, \option{--resave-data}, to call |
| \code{tools::resaveRdaFiles()} on the \file{data} directory, to |
| compress tabular files (\file{.tab}, \file{.csv} etc) and to |
| convert \file{.R} files to \file{.rda} files. The default, |
| \option{--resave-data=gzip}, is to do so in a way compatible even |
| with years-old versions of \R, but better compression is given by |
| \option{--resave-data=best}, requiring \R >= 2.10.0. |
| |
| It now adds a \file{datalist} file for \file{data} directories of |
| more than 1Mb. |
| |
| Patterns in \file{.Rbuildignore} are now also matched against all |
| directory names (including those of empty directories). |
| |
| There is a new option, \option{--compact-vignettes}, to try |
| reducing the size of PDF files in the \file{inst/doc} directory. |
| Currently this tries \command{qpdf}: other options may be used in |
| future. |
| |
| When re-building vignettes and a \file{inst/doc/Makefile} file is |
| found, \code{make clean} is run if the makefile has a |
| \code{clean:} target. |
| |
| After re-building vignettes the default clean-up operation will |
| remove any directories (and not just files) created during the |
| process: e.g., one package created a \file{.R_cache} directory. |
| |
| Empty directories are now removed unless the option |
| \option{--keep-empty-dirs} is given (and a few packages do |
| deliberately include empty directories). |
| |
| If there is a field \code{BuildVignettes} in the package |
| \file{DESCRIPTION} file with a false value, re-building the |
| vignettes is skipped. |
| |
| \item \command{R CMD check} now also checks for filenames that are |
| case-insensitive matches to Windows' reserved file names with |
| extensions, such as \file{nul.Rd}, as these have caused problems |
| on some Windows systems. |
| |
| It checks for inefficiently saved \file{data/*.rda} and |
| \file{data/*.RData} files, and reports on those large than 100Kb. |
| A more complete check (including of the type of compression, but |
| potentially much slower) can be switched on by setting environment |
| variable \env{_R_CHECK_COMPACT_DATA2_} to \samp{TRUE}. |
| |
| The types of files in the \file{data} directory are now checked, |
| as packages are \emph{still} misusing it for non-\R data files. |
| |
| It now extracts and runs the \R code for each vignette in a |
| separate directory and \R process: this is done in the package's |
| declared encoding. Rather than call |
| \code{tools::checkVignettes()}, it calls |
| \code{tools::buildVignettes()} to see if the vignettes can be |
| re-built as they would be by \command{R CMD build}. Option |
| \option{--use-valgrind} now applies only to these runs, and not |
| when running code to rebuild the vignettes. This version does a |
| much better job of suppressing output from successful vignette |
| tests. |
| |
| The \file{00check.log} file is a more complete record of what is |
| output to \file{stdout}: in particular contains more details of |
| the tests. |
| |
| It now checks all syntactically valid Rd usage entries, and warns |
| about assignments (unless these give the usage of replacement |
| functions). |
| |
| \file{.tar.xz} compressed tarballs are now allowed, if |
| \command{tar} supports them (and setting environment variable |
| \env{TAR} to \samp{internal} ensures so on all platforms). |
| |
| \item \command{R CMD check} now warns if it finds |
| \file{inst/doc/makefile}, and \command{R CMD build} renames such a |
| file to \file{inst/doc/Makefile}. |
| } |
| } |
| |
| \subsection{INSTALLATION}{ |
| \itemize{ |
| \item Installing \R no longer tries to find \command{perl}, and |
| \command{R CMD} no longer tries to substitute a full path for |
| \command{awk} nor \command{perl} -- this was a legacy from the |
| days when they were used by \R itself. Because a couple of |
| packages do use \command{awk}, it is set as the \command{make} |
| (rather than environment) variable \env{AWK}. |
| |
| \item \command{make check} will now fail if there are differences |
| from the reference output when testing package examples and if |
| environment variable \env{R_STRICT_PACKAGE_CHECK} is set to a true |
| value. |
| |
| \item The C99 double complex type is now required. |
| |
| The C99 complex trigonometric functions (such as \samp{csin}) are |
| not currently required (FreeBSD lacks most of them): substitutes |
| are used if they are missing. |
| |
| \item The C99 system call \samp{va_copy} is now required. |
| |
| \item If environment variable \env{R_LD_LIBRARY_PATH} is set |
| during configuration (for example in \file{config.site}) it is |
| used unchanged in file \file{etc/ldpaths} rather than being |
| appended to. |
| |
| \item \command{configure} looks for support for OpenMP and if |
| found compiles \R with appropriate flags and also makes them |
| available for use in packages: see \sQuote{Writing R Extensions}. |
| |
| This is currently experimental, and is only used in \R with a |
| single thread for \code{colSums()} and \code{colMeans()}. Expect |
| it to be more widely used in later versions of \R. |
| |
| This can be disabled by the \option{--disable-openmp} flag. |
| } |
| } |
| |
| \subsection{PACKAGE INSTALLATION}{ |
| \itemize{ |
| \item \command{R CMD INSTALL --clean} now removes copies of a |
| \file{src} directory which are created when multiple |
| sub-architectures are in use. (Following a comment from |
| Berwin Turlach.) |
| |
| \item File \file{R.css} is now installed on a per-package basis |
| (in the package's \file{html} directory) rather than in each |
| library tree, and this is used for all the HTML pages in the |
| package. This helps when installing packages with static HTML |
| pages for use on a webserver. It will also allow future versions |
| of \R to use different stylesheets for the packages they install. |
| |
| \item A top-level file \file{.Rinstignore} in the package sources |
| can list (in the same way as \file{.Rbuildignore}) files under |
| \code{inst} that should not be installed. (Why should there be any |
| such files? Because all the files needed to re-build vignettes |
| need to be under \code{inst/doc}, but they may not need to be |
| installed.) |
| |
| \item \command{R CMD INSTALL} has a new option |
| \option{--compact-docs} to compact any PDFs under the |
| \file{inst/doc} directory. Currently this uses \command{qpdf}, |
| which must be installed (see \sQuote{Writing R Extensions}). |
| |
| \item There is a new option \option{--lock} which can be used to |
| cancel the effect of \option{--no-lock} or \option{--pkglock} earlier |
| on the command line. |
| |
| \item Option \option{--pkglock} can now be used with more than one |
| package, and is now the default if only one package is specified. |
| |
| \item Argument \code{lock} of \code{install.packages()} can now be |
| use for Mac binary installs as well as for Windows ones. The |
| value \code{"pkglock"} is now accepted, as well as \code{TRUE} and |
| \code{FALSE} (the default). |
| |
| \item There is a new option \option{--no-clean-on-error} for |
| \command{R CMD INSTALL} to retain a partially installed package for |
| forensic analysis. |
| |
| \item Packages with names ending in \file{.} are not portable |
| since Windows does not work correctly with such directory names. |
| This is now warned about in \command{R CMD check}, and will not be |
| allowed in \R 2.14.x. |
| |
| \item The vignette indices are more comprehensive (in the style of |
| \code{browseVignetttes()}). |
| } |
| } |
| |
| \subsection{DEPRECATED & DEFUNCT}{ |
| \itemize{ |
| \item \code{require(save = TRUE)} is defunct, and use of the |
| \code{save} argument is deprecated. |
| |
| \item \command{R CMD check --no-latex} is defunct: use |
| \option{--no-manual} instead. |
| |
| \item \command{R CMD Sd2Rd} is defunct. |
| |
| \item The \code{gamma} argument to \code{hsv()}, |
| \code{rainbow()}, and \code{rgb2hsv()} is deprecated |
| and no longer has any effect. |
| |
| \item The previous options for \command{R CMD build --binary} |
| (\option{--auto-zip}, \option{--use-zip-data} and |
| \option{--no-docs}) are deprecated (or defunct): |
| use the new option \option{--install-args} instead. |
| |
| \item When a character value is used for the \code{EXPR} |
| argument in \code{switch()}, only a single unnamed alternative |
| value is now allowed. |
| |
| \item The wrapper \code{utils::link.html.help()} is no longer |
| available. |
| |
| \item Zip-ing data sets in packages (and hence \command{R CMD |
| INSTALL} options \option{--use-zip-data} and \option{--auto-zip}, as |
| well as the \samp{ZipData: yes} field in a \code{DESCRIPTION} file) |
| is defunct. |
| |
| Installed packages with zip-ed data sets can still be used, but a |
| warning that they should be re-installed will be given. |
| |
| \item The \sQuote{experimental} alternative specification of a |
| namespace via \code{.Export()} etc is now defunct. |
| |
| \item The option \option{--unsafe} to \command{R CMD INSTALL} is |
| deprecated: use the identical option \option{--no-lock} instead. |
| |
| \item The entry point \code{pythag} in \file{Rmath.h} is deprecated |
| in favour of the C99 function \code{hypot}. A wrapper for |
| \code{hypot} is provided for \R 2.13.x only. |
| |
| \item Direct access to the \code{"source"} attribute of functions |
| is deprecated; use \code{deparse(fn, control="useSource")} to access |
| it, and \code{removeSource(fn)} to remove it. |
| |
| \item \command{R CMD build --binary} is now formally deprecated: |
| \command{R CMD INSTALL --build} has long been the preferred |
| alternative. |
| |
| \item Single-character package names are deprecated (and \pkg{R} |
| is already disallowed to avoid confusion in \samp{Depends:} |
| fields). |
| } |
| } |
| |
| \subsection{BUG FIXES}{ |
| \itemize{ |
| \item \code{drop.terms} and the \code{[} method for class |
| \code{"terms"} no longer add back an intercept. (Reported by |
| Niels Hansen.) |
| |
| \item \code{aggregate} preserves the class of a column (e.g., a |
| date) under some circumstances where it discarded the class |
| previously. |
| |
| \item \code{p.adjust()} now always returns a vector result, as |
| documented. In previous versions it copied attributes (such as |
| dimensions) from the \code{p} argument: now it only copies names. |
| |
| \item On PDF and PostScript devices, a line width of zero was |
| recorded verbatim and this caused problems for some viewers |
| (a very thin line combined with a non-solid line dash pattern |
| could also cause a problem). On these devices, the line width is |
| now limited at 0.01 and for very thin lines with complex dash |
| patterns the device may force the line dash pattern to be solid. |
| (Reported by Jari Oksanen.) |
| |
| \item The \code{str()} method for class \code{"POSIXt"} now gives |
| sensible output for 0-length input. |
| |
| \item The one- and two-argument complex maths functions failed to |
| warn if NAs were generated (as their numeric analogues do). |
| |
| \item Added \code{.requireCachedGenerics} to the \code{dont.mind} |
| list for \code{library()} to avoid warnings about duplicates. |
| |
| \item \code{$<-.data.frame} messed with the class attribute, |
| breaking any S4 subclass. The S4 \code{data.frame} class now has its own |
| \code{$<-} method, and turns dispatch on for this primitive. |
| |
| \item \code{Map()} did not look up a character argument \code{f} |
| in the correct frame, thanks to lazy evaluation. (\PR{14495}) |
| |
| \item \code{file.copy()} did not tilde-expand \code{from} and \code{to} |
| when \code{to} was a directory. (\PR{14507}) |
| |
| \item It was possible (but very rare) for the loading test in |
| \command{R CMD INSTALL} to crash a child \R process and so leave |
| around a lock directory and a partially installed package. That |
| test is now done in a separate process. |
| |
| \item \code{plot(<formula>, data=<matrix>,..)} now works in more |
| cases; similarly for \code{points()}, \code{lines()} and |
| \code{text()}. |
| |
| \item \code{edit.default()} contained a manual dispatch for matrices |
| (the \code{"matrix"} class didn't really exist when it was written). |
| This caused an infinite recursion in the no-GUI case and has now |
| been removed. |
| |
| \item \code{data.frame(check.rows = TRUE)} sometimes worked when |
| it should have detected an error. (\PR{14530}) |
| |
| \item \code{scan(sep= , strip.white=TRUE)} sometimes stripped |
| trailing spaces from within quoted strings. (The real bug in |
| \PR{14522}.) |
| |
| \item The rank-correlation methods for \code{cor()} and |
| \code{cov()} with \code{use = "complete.obs"} computed the ranks |
| before removing missing values, whereas the documentation implied |
| incomplete cases were removed first. (\PR{14488}) |
| |
| They also failed for 1-row matrices. |
| |
| \item The perpendicular adjustment used in placing text and |
| expressions in the margins of plots was not scaled by |
| \code{par("mex")}. (Part of \PR{14532}.) |
| |
| \item Quartz Cocoa device now catches any Cocoa exceptions that |
| occur during the creation of the device window to prevent crashes. |
| It also imposes a limit of 144 ft^2 on the area used by a window |
| to catch user errors (unit misinterpretation) early. |
| |
| \item The browser (invoked by \code{debug()}, \code{browser()} |
| or otherwise) would display attributes such as \code{"wholeSrcref"} |
| that were intended for internal use only. |
| |
| \item R's internal filename completion now properly handles |
| filenames with spaces in them even when the readline library is |
| used. This resolves \PR{14452} provided the internal filename |
| completion is used (e.g., by setting \code{rc.settings(files = |
| TRUE)}). |
| |
| \item Inside \code{uniroot(f, ...)}, \code{-Inf} function values |
| are now replaced by a maximally \bold{negative} value. |
| |
| \item \code{rowsum()} could silently over/underflow on integer |
| inputs (reported by Bill Dunlap). |
| |
| \item \code{as.matrix()} did not handle \code{"dist"} objects with |
| zero rows. |
| } |
| } |
| } |
| |
| \section{\Rlogo CHANGES IN R VERSION 2.12.2 patched}{ |
| \subsection{NEW FEATURES}{ |
| \itemize{ |
| \item \code{max()} and \code{min()} work harder to ensure that |
| \code{NA} has precedence over \code{NaN}, |
| so e.g.\sspace{}\code{min(NaN, NA)} is \code{NA}. |
| (This was not previously documented except |
| for within a single numeric vector, where compiler optimizations |
| often defeated the code.) |
| } |
| } |
| |
| \subsection{BUG FIXES}{ |
| \itemize{ |
| \item A change to the C function \samp{R_tryEval} had broken error |
| messages in S4 method selection; the error message is now printed. |
| |
| \item PDF output with a non-RGB color model used RGB for the line |
| stroke color. (\PR{14511}) |
| |
| \item \code{stats4::BIC()} assumed without checking that an object |
| of class \code{"logLik"} has an \code{"nobs"} attribute: |
| \code{glm()} fits did not and so \code{BIC()} failed for them. |
| |
| \item In some circumstances a one-sided \code{mantelhaen.test()} |
| reported the p-value for the wrong tail. (\PR{14514}) |
| |
| \item Passing the invalid value \code{lty = NULL} to \code{axis()} |
| sent an invalid value to the graphics device, and might cause the |
| device to segfault. |
| |
| \item \code{Sweave()} with \code{concordance=TRUE} could lead to |
| invalid PDF files; \file{Sweave.sty} has been updated to avoid |
| this. |
| |
| \item Non-ASCII characters in the titles of help pages were |
| not rendered properly in some locales, and could cause errors |
| or warnings. |
| |
| \item \code{checkRd()} gave a spurious error if the \code{\\href} |
| macro was used. |
| } |
| } |
| } |
| |
| \section{\Rlogo CHANGES IN R VERSION 2.12.2}{ |
| \subsection{SIGNIFICANT USER-VISIBLE CHANGES}{ |
| \itemize{ |
| \item Complex arithmetic (notably \code{z^n} for complex \code{z} |
| and integer \code{n}) gave incorrect results since \R 2.10.0 on |
| platforms without C99 complex support. This and some |
| lesser issues in trigonometric functions have been corrected. |
| |
| Such platforms were rare (we know of Cygwin and FreeBSD). |
| However, because of new compiler optimizations in the way complex |
| arguments are handled, the same code was selected on x86_64 Linux |
| with \command{gcc 4.5.x} at the default \code{-O2} optimization |
| (but not at \code{-O}). |
| |
| \item There is a workaround for crashes seen with several packages |
| on systems using \samp{zlib 1.2.5}: see the INSTALLATION section. |
| } |
| } |
| |
| \subsection{NEW FEATURES}{ |
| \itemize{ |
| \item PCRE has been updated to 8.12 (two bug-fix releases since 8.10). |
| |
| \item \code{rep()}, \code{seq()}, \code{seq.int()} and |
| \code{seq_len()} report more often when the first element is taken |
| of an argument of incorrect length. |
| |
| \item The Cocoa back-end for the \code{quartz()} graphics device |
| on Mac OS X provides a way to disable event loop processing |
| temporarily (useful, e.g., for forked instances of \R). |
| |
| \item \code{kernel()}'s default for \code{m} was not appropriate |
| if \code{coef} was a set of coefficients. (Reported by Pierre |
| Chausse.) |
| |
| \item \code{bug.report()} has been updated for the current \R bug |
| tracker, which does not accept emailed submissions. |
| |
| \item \command{R CMD check} now checks for the correct use of |
| \samp{$(LAPACK_LIBS)} (as well as \samp{$(BLAS_LIBS)}), since |
| several CRAN recent submissions have ignored \sQuote{Writing R |
| Extensions}. |
| } |
| } |
| |
| \subsection{INSTALLATION}{ |
| \itemize{ |
| \item The \samp{zlib} sources in the distribution are now built |
| with all symbols remapped: this is intended to avoid problems seen |
| with packages such as \CRANpkg{XML} and \CRANpkg{rggobi} which link to |
| \file{zlib.so.1} on systems using \samp{zlib 1.2.5}. |
| |
| \item The default for \env{FFLAGS} and \env{FCFLAGS} with |
| \command{gfortran} on x86_64 Linux has been changed back to \samp{-g |
| -O2}: however, setting \samp{-g -O} may still be needed for |
| \command{gfortran 4.3.x}. |
| } |
| } |
| |
| \subsection{PACKAGE INSTALLATION}{ |
| \itemize{ |
| \item A \samp{LazyDataCompression} field in the \file{DESCRIPTION} |
| file will be used to set the value for the |
| \option{--data-compress} option of \command{R CMD INSTALL}. |
| |
| \item Files \file{R/sysdata.rda} of more than 1Mb are now stored |
| in the lazyload database using \command{xz} compression: this for |
| example halves the installed size of package \CRANpkg{Imap}. |
| |
| \item \command{R CMD INSTALL} now ensures that directories |
| installed from \file{inst} have search permission for everyone. |
| |
| It no longer installs files \file{inst/doc/Rplots.ps} and |
| \file{inst/doc/Rplots.pdf}. These are almost certainly left-overs |
| from \code{Sweave} runs, and are often large. |
| } |
| } |
| |
| \subsection{DEPRECATED & DEFUNCT}{ |
| \itemize{ |
| \item The \sQuote{experimental} alternative specification of a |
| namespace via \code{.Export()} etc is now deprecated. |
| |
| \item \code{zip.file.extract()} is now deprecated. |
| |
| \item Zip-ing data sets in packages (and hence \command{R CMD |
| INSTALL --use-zip-data} and the \samp{ZipData: yes} field in a |
| \code{DESCRIPTION} file) is deprecated: using efficiently |
| compressed \file{.rda} images and lazy-loading of data has |
| superseded it. |
| } |
| } |
| |
| \subsection{BUG FIXES}{ |
| \itemize{ |
| \item \code{identical()} could in rare cases generate a warning |
| about non-pairlist attributes on CHARSXPs. As these are used for |
| internal purposes, the attribute check should be skipped. |
| (Reported by Niels Richard Hansen). |
| |
| \item If the filename extension (usually \file{.Rnw}) was not |
| included in a call to \code{Sweave()}, source references would not |
| work properly and the \code{keep.source} option failed. (\PR{14459}) |
| |
| \item \code{format.data.frame()} now keeps zero character column names. |
| |
| \item \code{pretty(x)} no longer raises an error when \code{x} |
| contains solely non-finite values. (\PR{14468}) |
| |
| \item The \code{plot.TukeyHSD()} function now uses a line width of |
| 0.5 for its reference lines rather than \samp{lwd = 0} (which |
| caused problems for some PDF and PostScript viewers). |
| |
| \item The \code{big.mark} argument to \code{prettyNum()}, |
| \code{format()}, etc. was inserted reversed if it was more than |
| one character long. |
| |
| \item \command{R CMD check} failed to check the filenames under |
| \file{man} for Windows' reserved names. |
| |
| \item The \code{"Date"} and \code{"POSIXt"} methods for |
| \code{seq()} could overshoot when \code{to} was supplied and |
| \code{by} was specified in months or years. |
| |
| \item The internal method of \code{untar()} now restores hard |
| links as file copies rather than symbolic links (which did not |
| work for cross-directory links). |
| |
| \item \code{unzip()} did not handle zip files which contained |
| filepaths with two or more leading directories which were not in |
| the zipfile and did not already exist. (It is unclear if such |
| zipfiles are valid and the third-party C code used did not support |
| them, but \PR{14462} created one.) |
| |
| \item \code{combn(n, m)} now behaves more regularly for the border |
| case \eqn{m = 0}. (\PR{14473}) |
| |
| \item The rendering of numbers in plotmath expressions (e.g., |
| \code{expression(10^2)}) used the current settings for conversion |
| to strings rather than setting the defaults, and so could be |
| affected by what has been done before. (\PR{14477}) |
| |
| \item The methods of \code{napredict()} and \code{naresid()} for |
| \code{na.action = na.exclude} fits did not work correctly in the |
| very rare event that every case had been omitted in the fit. |
| (Reported by Simon Wood.) |
| |
| \item \code{weighted.residuals(drop0=TRUE)} returned a vector when |
| the residuals were a matrix (e.g., those of class \code{"mlm"}). |
| (Reported by Bill Dunlap.) |
| |
| \item Package HTML index files \file{<pkg>/html/00Index.html} were |
| generated with a stylesheet reference that was not correct for |
| static browsing in libraries. |
| |
| \item \code{ccf(na.action = na.pass)} was not implemented. |
| |
| \item The parser accepted some incorrect numeric constants, |
| e.g.\sspace{}\code{20x2}. (Reported by Olaf Mersmann.) |
| |
| \item \code{format(*, zero.print)} did not always replace the full |
| zero parts. |
| |
| \item Fixes for subsetting or subassignment of \code{"raster"} |
| objects when not both \code{i} and \code{j} are specified. |
| |
| \item \command{R CMD INSTALL} was not always respecting the |
| \samp{ZipData: yes} field of a \file{DESCRIPTION} file (although |
| this is frequently incorrectly specified for packages with no data |
| or which specify lazy-loading of data). |
| |
| \command{R CMD INSTALL --use-zip-data} was incorrectly implemented |
| as \option{--use-zipdata} since \R 2.9.0. |
| |
| \item \command{source(file, echo=TRUE)} could fail if the file |
| contained \samp{#line} directives. It now recovers more gracefully, but |
| may still display the wrong line if the directive gives incorrect |
| information. |
| |
| \item \code{atan(1i)} returned \code{NaN+Infi} (rather than |
| \code{0+Infi}) on platforms without C99 complex support. |
| |
| \item \code{library()} failed to cache S4 metadata (unlike |
| \code{loadNamespace()}) causing failures in S4-using packages |
| without a namespace (e.g., those using reference classes). |
| |
| \item The function \code{qlogis(lp, log.p=TRUE)} no longer |
| prematurely overflows to \code{Inf} when exp(lp) is close to 1. |
| |
| \item Updating S4 methods for a group generic function requires |
| resetting the methods tables for the members of the group (patch |
| contributed by Martin Morgan). |
| |
| \item In some circumstances (including for package \CRANpkg{XML}), |
| \command{R CMD INSTALL} installed version-control directories from |
| source packages. |
| |
| \item Added \code{PROTECT} calls to some constructed expressions |
| used in C level \code{eval} calls. |
| |
| \item \code{utils:::create.post()} (used by \code{bug.report()} |
| and \code{help.request()}) failed to quote arguments to the |
| mailer, and so often failed. |
| |
| \item \code{bug.report()} was naive about how to extract |
| maintainer email addresses from package descriptions, so would |
| often try mailing to incorrect addresses. |
| |
| \item \code{debugger()} could fail to read the environment of a |
| call to a function with a \code{\dots} argument. (Reported by |
| Charlie Roosen.) |
| |
| \item \code{prettyNum(c(1i, NA), drop0=TRUE)} or |
| \code{str(NA_complex_)} now work correctly. |
| } |
| } |
| } |
| |
| \section{\Rlogo CHANGES IN R VERSION 2.12.1}{ |
| \subsection{NEW FEATURES}{ |
| \itemize{ |
| \item The DVI/PDF reference manual now includes the help pages for |
| all the standard packages: \pkg{splines}, \pkg{stats4} and |
| \pkg{tcltk} were previously omitted (intentionally). |
| |
| \item \url{http://www.rforge.net} has been added to the default |
| set of repositories known to \code{setRepositories()}. |
| |
| \item xz-utils has been updated to version 5.0.0. |
| |
| \item \code{reshape()} now makes use of \code{sep} when forming |
| names during reshaping to wide format. (\PR{14435}) |
| |
| \item \code{legend()} allows the length of lines to be set by the |
| end user \emph{via} the new argument \code{seg.len}. |
| |
| \item New S4 reference class utility methods \code{copy()}, |
| \code{field()}, \code{getRefClass()} and \code{getClass()} have |
| been added to package \pkg{methods}. |
| |
| \item When a character value is used for the \code{EXPR} |
| argument in \code{switch()}, a warning is given if more than |
| one unnamed alternative value is given. This will become an |
| error in \R 2.13.0. |
| |
| \item \code{StructTS(type = "BSM")} now allows series with just |
| two seasons. (Reported by Birgit Erni.) |
| } |
| } |
| |
| \subsection{INSTALLATION}{ |
| \itemize{ |
| \item The PDF reference manual is now built as PDF version 1.5 |
| with object compression, which on platforms for which this is not |
| the default (notably MiKTeX) halves its size. |
| |
| \item Variable \env{FCLIBS} can be set during configuration, for |
| any additional library flags needed when linking a shared object |
| with the Fortran 9x compiler. (Needed with Solaris Studio 12.2.) |
| } |
| } |
| |
| \subsection{BUG FIXES}{ |
| \itemize{ |
| \item \code{seq.int()} no longer sometimes evaluates arguments |
| twice. (\PR{14388}) |
| |
| \item The \code{data.frame} method of \code{format()} failed if a |
| column name was longer than 256 bytes (the maximum length allowed |
| for an \R name). |
| |
| \item \code{predict(<lm object>, type ="terms", ...)} failed if |
| both \code{terms} and \code{interval} were specified. (Reported |
| by Bill Dunlap.) |
| |
| Also, if \code{se.fit = TRUE} the standard errors were reported |
| for all terms, not just those selected by a non-null \code{terms}. |
| |
| \item The TRE regular expressions engine could terminate \R rather |
| than give an error when given certain invalid regular expressions. |
| (\PR{14398}) |
| |
| \item \code{cmdscale(eig = TRUE)} was documented to return \eqn{n-1} |
| eigenvalues but in fact only returned \code{k}. It now returns |
| all \eqn{n} eigenvalues. |
| |
| \code{cmdscale(add = TRUE)} failed to centre the return |
| configuration and sometimes lost the labels on the points. Its |
| return value was described wrongly (it is always a list and |
| contains component \code{ac}). |
| |
| \item \code{promptClass()} in package \pkg{methods} now works for |
| reference classes and gives a suitably specialized skeleton of |
| documentation. |
| |
| Also, \code{callSuper()} now works via the \code{methods()} |
| invocation as well as for initially specified methods. |
| |
| \item \code{download.file()} could leave the destination file open |
| if the URL was not able to be opened. (\PR{14414}) |
| |
| \item Assignment of an environment to functions or as an attribute |
| to other objects now works for S4 subclasses of \code{"environment"}. |
| |
| \item Use of \samp{[[<-} for S4 subclasses of |
| \code{"environment"} generated an infinite recursion from the |
| method. The method has been replaced by internal code. |
| |
| \item In a reference class S4 method, \code{callSuper()} now works in |
| \code{initialize()} methods when there is no explicit superclass |
| method. |
| |
| \item \samp{!} dropped attributes such as names and dimensions from a |
| length-zero argument. (\PR{14424}) |
| |
| \item When \code{list2env()} created an environment it was missing |
| a \code{PROTECT} call and so was vulnerable to garbage collection. |
| |
| \item \code{Sweave()} with \code{keep.source=TRUE} dropped |
| comments at the start and end of code chunks. It could also |
| fail when \samp{\SweaveInput} was combined with named chunks. |
| |
| \item The Fortran code used by \code{nls(algorithm = "port")} |
| could infinite-loop when compiled with high optimization on a |
| modern version of \code{gcc}, and \code{SAFE_FFLAGS} is now used |
| to make this less likely. (\PR{14427}, seen with 32-bit Windows |
| using \code{gcc 4.5.0} used from \R 2.12.0.) |
| |
| \item \code{sapply()} with default \code{simplify = TRUE} and |
| \code{mapply()} with default \code{SIMPLIFY = TRUE} wrongly |
| simplified language-like results, as, e.g., in |
| \code{mapply(1:2, c(3,7), FUN = function(i,j) call(':',i,j))}. |
| |
| \item Backreferences to undefined patterns in |
| \code{[g]sub(pcre = TRUE)} could cause a segfault. (\PR{14431}) |
| |
| \item The \code{format()} (and hence the \code{print()}) method |
| for class \code{"Date"} rounded fractional dates towards zero: it |
| now always rounds them down. |
| |
| \item Reference S4 class creation could generate ambiguous |
| inheritance patterns under very special circumstances. |
| |
| \item \samp{[[<-} turned S4 subclasses of \code{"environment"} into |
| plain environments. |
| |
| \item Long titles for help pages were truncated in package indices |
| and a few other places. |
| |
| \item Additional utilities now work correctly with S4 subclasses of |
| \code{"environment"} (\code{rm}, locking tools and active |
| bindings). |
| |
| \item \code{spec.ar()} now also work for the \code{"ols"} method. |
| (Reported by Hans-Ruedi Kuensch.) |
| |
| \item The initialization of objects from S4 subclasses of |
| \code{"environment"} now allocates a new environment object. |
| |
| \item \command{R CMD check} has more protection against (probably |
| erroneous) example or test output which is invalid in the current |
| locale. |
| |
| \item \code{qr.X()} with column names and pivoting now also pivots |
| the column names. (\PR{14438}) |
| |
| \item \code{unit.pmax()} and \code{unit.pmin()} in package |
| \pkg{grid} gave incorrect results when all inputs were of length 1. |
| (\PR{14443}) |
| |
| \item The parser for \file{NAMESPACE} files ignored misspelled |
| directives, rather than signalling an error. For 2.12.x a warning |
| will be issued, but this will be correctly reported as an error |
| in later releases. (Reported by Charles Berry.) |
| |
| \item Fix for subsetting of \code{"raster"} objects when only one |
| of \code{i} or \code{j} is specified. |
| |
| \item \code{grid.raster()} in package \pkg{grid} did not accept |
| \code{"nativeRaster"} objects (like \code{rasterImage()} does). |
| |
| \item Rendering raster images in PDF output was resetting the |
| clipping region. |
| |
| \item Rendering of raster images on cairo X11 device was wrong, |
| particularly when a small image was being scaled up using |
| interpolation. |
| |
| With cairo < 1.6, will be better than before, though still a |
| little clunky. With cairo >= 1.6, should be sweet as. |
| |
| \item Several bugs fixed in \code{read.DIF()}: single column |
| inputs caused errors, cells marked as \code{"character"} could |
| be converted to other types, and (in Windows) copying from the |
| clipboard failed. |
| } |
| } |
| } |
| |
| \section{\Rlogo CHANGES IN R VERSION 2.12.0}{ |
| \subsection{NEW FEATURES}{ |
| \itemize{ |
| \item Reading a package's \file{CITATION} file now defaults to |
| ASCII rather than Latin-1: a package with a non-ASCII |
| \file{CITATION} file should declare an encoding in its |
| \file{DESCRIPTION} file and use that encoding for the |
| \file{CITATION} file. |
| |
| \item \code{difftime()} now defaults to the \code{"tzone"} |
| attribute of \code{"POSIXlt"} objects rather than to the current |
| timezone as set by the default for the \code{tz} argument. (Wish |
| of \PR{14182}.) |
| |
| \item \code{pretty()} is now generic, with new methods for |
| \code{"Date"} and \code{"POSIXt"} classes (based on code |
| contributed by Felix Andrews). |
| |
| \item \code{unique()} and \code{match()} are now faster on |
| character vectors where all elements are in the global \code{CHARSXP} |
| cache and have unmarked encoding (ASCII). Thanks to Matthew |
| Dowle for suggesting improvements to the way the hash code is |
| generated in \file{unique.c}. |
| |
| \item The \code{enquote()} utility, in use internally, is exported now. |
| |
| \item \code{.C()} and \code{.Fortran()} now map non-zero return |
| values (other than \code{NA_LOGICAL}) for logical vectors to |
| \code{TRUE}: it has been an implicit assumption that they are |
| treated as true. |
| |
| \item The \code{print()} methods for \code{"glm"} and \code{"lm"} |
| objects now insert linebreaks in long calls in the same way that |
| the \code{print()} methods for \code{"summary.[g]lm"} objects |
| have long done. This does change the layout of the examples for |
| a number of packages, e.g.\sspace{}\CRANpkg{MASS}. (\PR{14250}) |
| |
| \item \code{constrOptim()} can now be used with method |
| \code{"SANN"}. (\PR{14245}) |
| |
| It gains an argument \code{hessian} to be passed to |
| \code{optim()}, which allows all the \code{...} arguments to be |
| intended for \code{f()} and \code{grad()}. (\PR{14071}) |
| |
| \item \code{curve()} now allows \code{expr} to be an object of |
| mode \code{"expression"} as well as \code{"call"} and |
| \code{"function"}. |
| |
| \item The \code{"POSIX[cl]t"} methods for \code{Axis()} have been |
| replaced by a single method for \code{"POSIXt"}. |
| |
| There are no longer separate \code{plot()} methods for |
| \code{"POSIX[cl]t"} and \code{"Date"}: the default method has |
| been able to handle those classes for a long time. This |
| \emph{inter alia} allows a single date-time object to be |
| supplied, the wish of \PR{14016}. |
| |
| The methods had a different default (\code{""}) for \code{xlab}. |
| |
| \item Classes \code{"POSIXct"}, \code{"POSIXlt"} and |
| \code{"difftime"} have generators \code{.POSIXct()}, |
| \code{.POSIXlt()} and \code{.difftime()}. Package authors are |
| advised to make use of them (they are available from \R 2.11.0) to |
| proof against planned future changes to the classes. |
| |
| The ordering of the classes has been changed, so \code{"POSIXt"} |
| is now the second class. See the document \sQuote{Updating |
| packages for changes in R 2.12.x} on |
| \url{http://developer.r-project.org} for the consequences for a |
| handful of CRAN packages. |
| |
| \item The \code{"POSIXct"} method of \code{as.Date()} allows a |
| timezone to be specified (but still defaults to UTC). |
| |
| \item New \code{list2env()} utility function as an inverse of |
| \code{as.list(<environment>)} and for fast multi-\code{assign()} |
| to existing environment. \code{as.environment()} is now generic |
| and uses \code{list2env()} as list method. |
| |
| \item There are several small changes to output which \sQuote{zap} |
| small numbers, e.g.\sspace{}in printing quantiles of residuals in |
| summaries from \code{"lm"} and \code{"glm"} fits, and in test |
| statistics in \code{print.anova()}. |
| |
| \item Special names such as \code{"dim"}, \code{"names"}, etc, are |
| now allowed as slot names of S4 classes, with \code{"class"} the |
| only remaining exception. |
| |
| \item File \file{.Renviron} can have architecture-specific versions |
| such as \file{.Renviron.i386} on systems with sub-architectures. |
| |
| \item \code{installed.packages()} has a new argument |
| \code{subarch} to filter on sub-architecture. |
| |
| \item The \code{summary()} method for \code{packageStatus()} now |
| has a separate \code{print()} method. |
| |
| \item The default \code{summary()} method returns an object |
| inheriting from class \code{"summaryDefault"} which has a |
| separate \code{print()} method that calls \code{zapsmall()} for |
| numeric/complex values. |
| |
| \item The startup message now includes the platform and if used, |
| sub-architecture: this is useful where different |
| (sub-)architectures run on the same OS. |
| |
| \item The \code{getGraphicsEvent()} mechanism now allows multiple windows |
| to return graphics events, through the new functions |
| \code{setGraphicsEventHandlers()}, \code{setGraphicsEventEnv()}, and |
| \code{getGraphicsEventEnv()}. (Currently implemented in the |
| \code{windows()} and \code{X11()} devices.) |
| |
| \item \code{tools::texi2dvi()} gains an \code{index} argument, |
| mainly for use by \command{R CMD Rd2pdf}. |
| |
| It avoids the use of \command{texindy} by \command{texinfo}'s |
| \command{texi2dvi >= 1.157}, since that does not emulate |
| 'makeindex' well enough to avoid problems with special characters |
| (such as \samp{(}, \samp{\{}, \samp{!}) in indices. % ) |
| |
| \item The ability of \code{readLines()} and \code{scan()} to |
| re-encode inputs to marked UTF-8 strings on Windows since \R 2.7.0 |
| is extended to non-UTF-8 locales on other OSes. |
| |
| \item \code{scan()} gains a \code{fileEncoding} argument to |
| match \code{read.table()}. |
| |
| \item \code{points()} and \code{lines()} gain \code{"table"} |
| methods to match \code{plot()}. (Wish of \PR{10472}.) |
| |
| \item \code{Sys.chmod()} allows argument \code{mode} to be a |
| vector, recycled along \code{paths}. |
| |
| \item There are \code{|}, \code{&} and \code{xor()} methods for |
| classes \code{"octmode"} and \code{"hexmode"}, which work |
| bitwise. |
| |
| \item Environment variables \env{R_DVIPSCMD}, \env{R_LATEXCMD}, |
| \env{R_MAKEINDEXCMD}, \env{R_PDFLATEXCMD} are no longer used |
| nor set in an \R session. (With the move to |
| \code{tools::texi2dvi()}, the conventional environment variables |
| \env{LATEX}, \env{MAKEINDEX} and \env{PDFLATEX} will be used. |
| \code{options("dvipscmd")} defaults to the value of \env{DVIPS}, |
| then to \code{"dvips"}.) |
| |
| \item New function \code{isatty()} to see if terminal connections are |
| redirected. |
| |
| \item \code{summaryRprof()} returns the sampling interval in |
| component \code{sample.interval} and only returns in |
| \code{by.self} data for functions with non-zero self times. |
| |
| \item \code{print(x)} and \code{str(x)} now indicate if an empty |
| list \code{x} is named. |
| |
| \item \code{install.packages()} and \code{remove.packages()} with |
| \code{lib} unspecified and multiple libraries in |
| \code{.libPaths()} inform the user of the library location used |
| with a message rather than a warning. |
| |
| \item There is limited support for multiple compressed streams on a |
| file: all of \code{[bgx]zfile()} allow streams to be appended to an |
| existing file, but \code{bzfile()} reads only the first stream. |
| |
| \item Function \code{person()} in package \pkg{utils} now uses |
| a given/family scheme in preference to first/middle/last, is |
| vectorized to handle an arbitrary number of persons, and gains a |
| \code{role} argument to specify person roles using a controlled |
| vocabulary (the MARC relator terms). |
| |
| \item Package \pkg{utils} adds a new \code{"bibentry"} class |
| for representing and manipulating bibliographic information in |
| enhanced BibTeX style, unifying and enhancing the previously |
| existing mechanisms. |
| |
| \item A \code{bibstyle()} function has been added to the |
| \pkg{tools} package with default JSS style for rendering |
| \code{"bibentry"} objects, and a mechanism for registering other |
| rendering styles. |
| |
| \item Several aspects of the display of text help are now |
| customizable using the new \code{Rd2txt_options()} function. |
| options(\code{"help_text_width"}) is no longer used. |
| |
| \item Added \samp{\href} tag to the Rd format, to allow |
| hyperlinks to URLs without displaying the full URL. |
| |
| \item Added \samp{\newcommand} and \samp{\renewcommand} tags |
| to the Rd format, to allow user-defined macros. |
| |
| \item New \code{toRd()} generic in the \pkg{tools} package to |
| convert objects to fragments of Rd code, and added |
| \code{"fragment"} argument to \code{Rd2txt()}, \code{Rd2HTML()}, |
| and \code{Rd2latex()} to support it. |
| |
| \item Directory \file{R_HOME/share/texmf} now follows the TDS |
| conventions, so can be set as a \code{texmf} tree (\sQuote{root |
| directory} in MiKTeX parlance). |
| |
| \item S3 generic functions now use correct S4 inheritance when |
| dispatching on an S4 object. See \code{?Methods}, section on |
| \dQuote{Methods for S3 Generic Functions} for recommendations |
| and details. |
| |
| \item \code{format.pval()} gains a \code{...} argument to pass |
| arguments such as \code{nsmall} to \code{format()}. (Wish of |
| \PR{9574}) |
| |
| \item \code{legend()} supports \code{title.adj}. (Wish of |
| \PR{13415}) |
| |
| \item Added support for subsetting \code{"raster"} objects, plus |
| assigning to a subset, conversion to a matrix (of colour |
| strings), and comparisons (\samp{==} and \samp{!=}). |
| |
| \item Added a new \code{parseLatex()} function (and related |
| functions \code{deparseLatex()} and \code{latexToUtf8()}) to |
| support conversion of bibliographic entries for display in R. |
| |
| \item Text rendering of \samp{\itemize} in help uses a Unicode |
| bullet in UTF-8 and most single-byte Windows locales. |
| |
| \item Added support for polygons with holes to the graphics |
| engine. This is implemented for the \code{pdf()}, |
| \code{postscript()}, \code{x11(type="cairo")}, \code{windows()}, |
| and \code{quartz()} devices (and associated raster formats), |
| but not for \code{x11(type="Xlib")} or \code{xfig()} or |
| \code{pictex()}. The user-level interface is the |
| \code{polypath()} function in \pkg{graphics} and |
| \code{grid.path()} in \pkg{grid}. |
| |
| \item File \file{NEWS} is now generated at installation with a |
| slightly different format: it will be in UTF-8 on platforms using |
| UTF-8, and otherwise in ASCII. There is also a PDF version, |
| \file{NEWS.pdf}, installed at the top-level of the R distribution. |
| |
| \item \code{kmeans(x, 1)} now works. Further, \code{kmeans} now |
| returns between and total sum of squares. |
| |
| \item \code{arrayInd()} and \code{which()} gain an argument |
| \code{useNames}. For \code{arrayInd}, the default is now false, |
| for speed reasons. |
| |
| \item As is done for closures, the default \code{print} method for |
| the formula class now displays the associated environment if it is |
| not the global environment. |
| |
| \item A new facility has been added for inserting code into a |
| package without re-installing it, to facilitate testing |
| changes which can be selectively added and backed out. See |
| \code{?insertSource}. |
| |
| \item New function \code{readRenviron} to (re-)read files in the |
| format of \file{~/.Renviron} and \file{Renviron.site}. |
| |
| \item \code{require()} will now return \code{FALSE} (and not fail) |
| if loading the package or one of its dependencies fails. |
| |
| \item \code{aperm()} now allows argument \code{perm} to be a |
| character vector when the array has named dimnames (as the results |
| of \code{table()} calls do). Similarly, \code{array()} allows |
| \code{MARGIN} to be a character vector. (Based on suggestions of |
| Michael Lachmann.) |
| |
| \item Package \pkg{utils} now exports and documents functions |
| \code{aspell_package_Rd_files()} and |
| \code{aspell_package_vignettes()} for spell checking package Rd |
| files and vignettes using Aspell, Ispell or Hunspell. |
| |
| \item Package news can now be given in Rd format, and |
| \code{news()} prefers these \file{inst/NEWS.Rd} files to old-style |
| plain text \file{NEWS} or \file{inst/NEWS} files. |
| |
| \item New simple function \code{packageVersion()}. |
| |
| \item The PCRE library has been updated to version 8.10. |
| |
| \item The standard Unix-alike terminal interface declares its name |
| to readline as 'R', so that can be used for conditional sections |
| in \file{~/.inputrc} files. |
| |
| \item \sQuote{Writing R Extensions} now stresses that the standard |
| sections in \file{.Rd} files (other than \samp{\alias}, |
| \samp{\keyword} and \samp{\note}) are intended to be unique, and |
| the conversion tools now drop duplicates with a warning. |
| |
| The \file{.Rd} conversion tools also warn about an unrecognized type |
| in a \samp{\docType} section. |
| |
| \item \code{ecdf()} objects now have a \code{quantile()} method. |
| |
| \item \code{format()} methods for date-time objects now attempt to make |
| use of a \code{"tzone"} attribute with \code{"\%Z"} and |
| \code{"\%z"} formats, but it is not always possible. (Wish of |
| \PR{14358}.) |
| |
| \item \code{tools::texi2dvi(file, clean = TRUE)} now works in more |
| cases (e.g., where emulation is used and when \file{file} is not in |
| the current directory). |
| |
| \item New function \code{droplevels()} to remove unused factor levels. |
| |
| \item \code{system(command, intern = TRUE)} now gives an error on |
| a Unix-alike (as well as on Windows) if \code{command} cannot be |
| run. It reports a non-success exit status from running |
| \code{command} as a warning. |
| |
| On a Unix-alike an attempt is made to return the actual exit |
| status of the command in \code{system(intern = FALSE)}: previously |
| this had been system-dependent but on POSIX-compliant systems the |
| value return was 256 times the status. |
| |
| \item \code{system()} has a new argument \code{ignore.stdout} |
| which can be used to (portably) ignore standard output. |
| |
| \item \code{system(intern = TRUE)} and \code{pipe()} connections |
| are guaranteed to be available on all builds of \R. |
| |
| \item \code{Sys.which()} has been altered to return \code{""} if |
| the command is not found (even on Solaris). |
| |
| \item A facility for defining reference-based S4 classes (in the |
| OOP style of Java, C++, etc.) has been added experimentally to |
| package \pkg{methods}; see \code{?ReferenceClasses}. |
| |
| \item The \code{predict} method for \code{"loess"} fits gains an |
| \code{na.action} argument which defaults to \code{na.pass} rather |
| than the previous default of \code{na.omit}. |
| |
| Predictions from \code{"loess"} fits are now named from the row |
| names of \code{newdata}. |
| |
| \item Parsing errors detected during \code{Sweave()} processing |
| will now be reported referencing their original location in the |
| source file. |
| |
| \item New \code{adjustcolor()} utility, e.g., for simple |
| translucent color schemes. |
| |
| \item \code{qr()} now has a trivial \code{lm} method with a |
| simple (fast) validity check. |
| |
| \item An experimental new programming model has been added to |
| package \pkg{methods} for reference (OOP-style) classes and |
| methods. See \code{?ReferenceClasses}. |
| |
| \item bzip2 has been updated to version 1.0.6 (bug-fix release). |
| \option{--with-system-bzlib} now requires at least version 1.0.6. |
| |
| \item R now provides \file{jss.cls} and \file{jss.bst} (the class |
| and bib style file for the Journal of Statistical Software) as |
| well as \file{RJournal.bib} and \file{Rnews.bib}, and |
| \command{R CMD} ensures that the \file{.bst} and \file{.bib} files |
| are found by BibTeX. |
| |
| \item Functions using the \env{TAR} environment variable no longer |
| quote the value when making \code{system} calls. This allows |
| values such as \samp{tar --force-local}, but does require |
| additional quotes in, e.g., \code{TAR = "'/path with spaces/mytar'"}. |
| } |
| } |
| |
| \subsection{DEPRECATED & DEFUNCT}{ |
| \itemize{ |
| \item Supplying the parser with a character string containing both |
| octal/hex and Unicode escapes is now an error. |
| |
| \item File extension \file{.C} for C++ code files in packages is |
| now defunct. |
| |
| \item \command{R CMD check} no longer supports configuration |
| files containing Perl configuration variables: use the environment |
| variables documented in \sQuote{R Internals} instead. |
| |
| \item The \code{save} argument of \code{require()} now defaults to |
| \code{FALSE} and \code{save = TRUE} is now deprecated. (This |
| facility is very rarely actually used, and was superseded by the |
| \samp{Depends} field of the \file{DESCRIPTION} file long ago.) |
| |
| \item \command{R CMD check --no-latex} is deprecated in favour of |
| \option{--no-manual}. |
| |
| \item \command{R CMD Sd2Rd} is formally deprecated and will be |
| removed in \R 2.13.0. |
| } |
| } |
| \subsection{PACKAGE INSTALLATION}{ |
| \itemize{ |
| \item \code{install.packages()} has a new argument |
| \code{libs_only} to optionally pass \option{--libs-only} to |
| \command{R CMD INSTALL} and works analogously for Windows binary |
| installs (to add support for 64- or 32-bit Windows). |
| |
| \item When sub-architectures are in use, the installed |
| architectures are recorded in the \code{Archs} field of the |
| \file{DESCRIPTION} file. There is a new default filter, |
| \code{"subarch"}, in \code{available.packages()} to make use of |
| this. |
| |
| Code is compiled in a copy of the \file{src} directory when a |
| package is installed for more than one sub-architecture: this |
| avoid problems with cleaning the sources between building |
| sub-architectures. |
| |
| \item \command{R CMD INSTALL --libs-only} no longer overrides the |
| setting of locking, so a previous version of the package will be |
| restored unless \option{--no-lock} is specified. |
| } |
| } |
| \subsection{UTILITIES}{ |
| \itemize{ |
| \item \command{R CMD Rprof|build|check} are now based on \R rather |
| than Perl scripts. The only remaining Perl scripts are the |
| deprecated \command{R CMD Sd2Rd} and \code{install-info.pl} (used |
| only if \code{install-info} is not found) as well as some |
| maintainer-mode-only scripts. |
| |
| \strong{NB:} because these have been completely rewritten, users |
| should not expect undocumented details of previous |
| implementations to have been duplicated. |
| |
| \command{R CMD} no longer manipulates the environment variables |
| \env{PERL5LIB} and \env{PERLLIB}. |
| |
| \item \command{R CMD check} has a new argument \option{--extra-arch} |
| to confine tests to those needed to check an additional |
| sub-architecture. |
| |
| Its check for \dQuote{Subdirectory 'inst' contains no files} is |
| more thorough: it looks for files, and warns if there are only |
| empty directories. |
| |
| Environment variables such as \env{R_LIBS} and those used for |
| customization can be set for the duration of checking \emph{via} a file |
| \file{~/.R/check.Renviron} (in the format used by |
| \file{.Renviron}, and with sub-architecture specific versions |
| such as \file{~/.R/check.Renviron.i386} taking precedence). |
| |
| There are new options \option{--multiarch} to check the package |
| under all of the installed sub-architectures and |
| \option{--no-multiarch} to confine checking to the |
| sub-architecture under which \command{check} is invoked. If |
| neither option is supplied, a test is done of installed |
| sub-architectures and all those which can be run on the current |
| OS are used. |
| |
| Unless multiple sub-architectures are selected, the install done |
| by \code{check} for testing purposes is only of the current |
| sub-architecture (\emph{via} \command{R CMD INSTALL --no-multiarch}). |
| |
| It will skip the check for non-ascii characters in code or data |
| if the environment variables \env{_R_CHECK_ASCII_CODE_} or |
| \env{_R_CHECK_ASCII_DATA_} are respectively set to \env{FALSE}. |
| (Suggestion of Vince Carey.) |
| |
| \item \command{R CMD build} no longer creates an \file{INDEX} file |
| (\command{R CMD INSTALL} does so), and \option{--force} removes |
| (rather than overwrites) an existing \file{INDEX} file. |
| |
| It supports a file \file{~/.R/build.Renviron} analogously to |
| \command{check}. |
| |
| It now runs build-time \samp{\Sexpr} expressions in help files. |
| |
| \item \command{R CMD Rd2dvi} makes use of \code{tools::texi2dvi()} |
| to process the package manual. It is now implemented entirely in |
| \R (rather than partially as a shell script). |
| |
| \item \command{R CMD Rprof} now uses \code{utils::summaryRprof()} |
| rather than Perl. It has new arguments to select one of the |
| tables and to limit the number of entries printed. |
| |
| \item \command{R CMD Sweave} now runs \R with \option{--vanilla} so |
| the environment setting of \env{R_LIBS} will always be used. |
| } |
| } |
| \subsection{C-LEVEL FACILITIES}{ |
| \itemize{ |
| \item \code{lang5()} and \code{lang6()} (in addition to |
| pre-existing \code{lang[1-4]()}) convenience functions for easier |
| construction of \code{eval()} calls. If you have your own |
| definition, do wrap it inside \code{#ifndef lang5 .... #endif} |
| to keep it working with old and new \R. |
| |
| \item Header \file{R.h} now includes only the C headers it itself needs, |
| hence no longer includes \code{errno.h}. (This helps avoid problems |
| when it is included from C++ source files.) |
| |
| \item Headers \file{Rinternals.h} and \file{R_ext/Print.h} include |
| the C++ versions of \file{stdio.h} and \file{stdarg.h} |
| respectively if included from a C++ source file. |
| } |
| } |
| |
| \subsection{INSTALLATION}{ |
| \itemize{ |
| \item A C99 compiler is now required, and more C99 language features |
| will be used in the \R sources. |
| |
| \item Tcl/Tk >= 8.4 is now required (increased from 8.3). |
| |
| \item System functions \code{access}, \code{chdir} and |
| \code{getcwd} are now essential to configure \R. (In practice |
| they have been required for some time.) |
| |
| \item \command{make check} compares the output of the examples |
| from several of the base packages to reference output rather than |
| the previous output (if any). Expect some differences due to |
| differences in floating-point computations between platforms. |
| |
| \item File \file{NEWS} is no longer in the sources, but generated as |
| part of the installation. The primary source for changes is now |
| \file{doc/NEWS.Rd}. |
| |
| \item The \code{popen} system call is now required to build \R. |
| This ensures the availability of \code{system(intern = TRUE)}, |
| \code{pipe()} connections and printing from \code{postscript()}. |
| |
| \item The \command{pkg-config} file \file{libR.pc} now also works |
| when \R is installed using a sub-architecture. |
| |
| \item \R has always required a BLAS that conforms to IE60559 |
| arithmetic, but after discovery of more real-world problems caused |
| by a BLAS that did not, this is tested more thoroughly in this |
| version. |
| } |
| } |
| |
| \subsection{BUG FIXES}{ |
| \itemize{ |
| \item Calls to \code{selectMethod()} by default no longer cache |
| inherited methods. This could previously corrupt methods used by |
| \code{as()}. |
| |
| \item The densities of non-central chi-squared are now more accurate |
| in some cases in the extreme tails, |
| e.g.\sspace{}\code{dchisq(2000, 2, 1000)}, |
| as a series expansion was truncated too early. |
| (\PR{14105}) |
| |
| \item \code{pt()} is more accurate in the left tail for \code{ncp} |
| large, e.g.\sspace{}\code{pt(-1000, 3, 200)}. (\PR{14069}) |
| |
| \item The default C function (\code{R_binary}) for binary ops now |
| sets the S4 bit in the result if either argument is an S4 object. |
| (\PR{13209}) |
| |
| \item \code{source(echo=TRUE)} failed to echo comments that |
| followed the last statement in a file. |
| |
| \item S4 classes that contained one of \code{"matrix"}, |
| \code{"array"} or \code{"ts"} and also another class now accept |
| superclass objects in \code{new()}. Also fixes failure to call |
| \code{validObject()} for these classes. |
| |
| \item Conditional inheritance defined by argument \code{test} in |
| \code{methods::setIs()} will no longer be used in S4 method |
| selection (caching these methods could give incorrect results). |
| See \code{?setIs}. |
| |
| \item The signature of an implicit generic is now used by |
| \code{setGeneric()} when that does not use a definition nor |
| explicitly set a signature. |
| |
| \item A bug in \code{callNextMethod()} for some examples with |
| \code{"..."} in the arguments has been fixed. See file |
| \file{src/library/methods/tests/nextWithDots.R} in the sources. |
| |
| \item \code{match(x, table)} (and hence \code{\%in\%}) now treat |
| \code{"POSIXlt"} consistently with, e.g., \code{"POSIXct"}. |
| |
| \item Built-in code dealing with environments (\code{get()}, |
| \code{assign()}, \code{parent.env()}, \code{is.environment()} and |
| others) now behave consistently to recognize S4 subclasses; |
| \code{is.name()} also recognizes subclasses. |
| |
| \item The \code{abs.tol} control parameter to \code{nlminb()} |
| now defaults to \code{0.0} to avoid false declarations of |
| convergence in objective functions that may go negative. |
| |
| \item The standard Unix-alike termination dialog to ask whether to |
| save the workspace takes a EOF response as \code{n} to avoid |
| problems with a damaged terminal connection. (\PR{14332}) |
| |
| \item Added \code{warn.unused} argument to \code{hist.default()} |
| to allow suppression of spurious warnings about graphical |
| parameters used with \code{plot=FALSE}. (\PR{14341}) |
| |
| \item \code{predict.lm()}, \code{summary.lm()}, and indeed |
| \code{lm()} itself had issues with residual DF in zero-weighted |
| cases (the latter two only in connection with empty |
| models). (Thanks to Bill Dunlap for spotting the |
| \code{predict()} case.) |
| |
| \item \code{aperm()} treated \code{resize = NA} as \code{resize = |
| TRUE}. |
| |
| \item \code{constrOptim()} now has an improved convergence |
| criterion, notably for cases where the minimum was (very close to) |
| zero; further, other tweaks inspired from code proposals by Ravi |
| Varadhan. |
| |
| \item Rendering of S3 and S4 methods in man pages has been |
| corrected and made consistent across output formats. |
| |
| \item Simple markup is now allowed in \samp{\title} sections |
| in \file{.Rd} files. |
| |
| \item The behaviour of \code{as.logical()} on factors (to use the |
| levels) was lost in \R 2.6.0 and has been restored. |
| |
| \item \code{prompt()} did not backquote some default arguments in |
| the \samp{\usage} section. (Reported by Claudia Beleites.) |
| |
| \item \code{writeBin()} disallows attempts to write 2GB or |
| more in a single call. (\PR{14362}) |
| |
| \item \code{new()} and \code{getClass()} will now work if Class |
| is a subclass of \code{"classRepresentation"} and should also be |
| faster in typical calls. |
| |
| \item The \code{summary()} method for data frames makes a better |
| job of names containing characters invalid in the current locale. |
| |
| \item \code{[[} sub-assignment for factors could create an invalid |
| factor (reported by Bill Dunlap). |
| |
| \item \code{Negate(f)} would not evaluate argument \code{f} |
| until first use of returned function (reported by Olaf Mersmann). |
| |
| \item \code{quietly=FALSE} is now also an optional argument of |
| \code{library()}, and consequently, \code{quietly} is now |
| propagated also for loading dependent packages, e.g., in |
| \code{require(*, quietly=TRUE)}. |
| |
| \item If the loop variable in a \code{for} loop was deleted, it |
| would be recreated as a global variable. (Reported by Radford |
| Neal; the fix includes his optimizations as well.) |
| |
| \item Task callbacks could report the wrong expression when |
| the task involved parsing new code. (\PR{14368}) |
| |
| \item \code{getNamespaceVersion()} failed; this was an |
| accidental change in 2.11.0. (\PR{14374}) |
| |
| \item \code{identical()} returned \code{FALSE} for external |
| pointer objects even when the pointer addresses were the same. |
| |
| \item \code{L$a@x[] <- val} did not duplicate in a case it should have. |
| |
| \item \code{tempfile()} now always gives a random file name (even |
| if the directory is specified) when called directly after |
| startup and before the \R RNG had been used. (\PR{14381}) |
| |
| \item \code{quantile(type=6)} behaved inconsistently. (\PR{14383}) |
| |
| \item \code{backSpline(.)} behaved incorrectly when the knot |
| sequence was decreasing. (\PR{14386}) |
| |
| \item The reference BLAS included in \R was assuming that |
| \code{0*x} and \code{x*0} were always zero (whereas they could be |
| \code{NA} or \code{NaN} in IEC 60559 arithmetic). This was seen |
| in results from \code{tcrossprod}, and for example that |
| \code{log(0) \%*\% 0} gave \code{0}. |
| |
| \item The calculation of whether text was completely outside |
| the device region (in which case, you draw nothing) |
| was wrong for screen devices (which have [0, 0] at top-left). |
| The symptom was (long) text disappearing when |
| resizing a screen window (to make it smaller). (\PR{14391}) |
| |
| \item \code{model.frame(drop.unused.levels = TRUE)} did not |
| take into account \code{NA} values of factors when deciding to |
| drop levels. (\PR{14393}) |
| |
| \item \code{library.dynam.unload} required an absolute path for |
| \code{libpath}. (\PR{14385}) |
| |
| Both \code{library()} and \code{loadNamespace()} now record |
| absolute paths for use by \code{searchpaths()} and |
| \code{getNamespaceInfo(ns, "path")}. |
| |
| \item The self-starting model \code{NLSstClosestX} failed if some |
| deviation was exactly zero. (\PR{14384}) |
| |
| \item \code{X11(type = "cairo")} (and other devices such as |
| \code{png} using cairographics) and which use Pango font selection |
| now work around a bug in Pango when very small fonts (those with |
| sizes between 0 and 1 in Pango's internal units) are requested. |
| (\PR{14369}) |
| |
| \item Added workaround for the font problem with \code{X11(type = |
| "cairo")} and similar on Mac OS X whereby italic and bold styles |
| were interchanged. (\PR{13463} amongst many other reports.) |
| |
| \item \code{source(chdir = TRUE)} failed to reset the working |
| directory if it could not be determined -- that is now an error. |
| |
| \item Fix for crash of \code{example(rasterImage)} on |
| \code{x11(type="Xlib")}. |
| |
| \item Force Quartz to bring the on-screen display up-to-date |
| immediately before the snapshot is taken by \code{grid.cap()} |
| in the Cocoa implementation. (\PR{14260}) |
| |
| \item \code{model.frame} had an unstated 500 byte limit on |
| variable names. (Example reported by Terry Therneau.) |
| |
| \item The 256-byte limit on names is now documented. |
| |
| \item Subassignment by \code{[}, \code{[[} or \code{$} on an |
| expression object with value \code{NULL} coerced the object to a |
| list. |
| } |
| } |
| } |
| |
| |
| \section{\Rlogo CHANGES IN R VERSION 2.11.1 patched}{ |
| \subsection{NEW FEATURES}{ |
| \itemize{ |
| \item \code{install.packages()} has a new optional argument |
| \code{INSTALL_opts} which can be used to pass options to |
| \command{R CMD INSTALL} for source-package installs. |
| |
| \item \command{R CMD check} now runs the package-specific tests |
| with \env{LANGUAGE=en} to facilitate comparison to |
| \file{.Rout.save} files. |
| |
| \item \code{sessionInfo()} gives more detailed platform |
| information, including 32/64-bit and the sub-architecture if one |
| is used. |
| } |
| } |
| |
| \subsection{DEPRECATED & DEFUNCT}{ |
| \itemize{ |
| \item The use of Perl configuration variables for \command{R CMD |
| check} (as previously documented in \sQuote{Writing R |
| Extensions}) is deprecated and will be removed in \R 2.12.0. Use |
| the environment variables documented in \sQuote{R Internals} |
| instead. |
| } |
| } |
| |
| \subsection{BUG FIXES}{ |
| \itemize{ |
| \item \command{R CMD Rd2dvi} failed if run from a path containing |
| space(s). This also affected \command{R CMD check}, which calls |
| \command{Rd2dvi}. |
| |
| \item \code{stripchart()} could fail with an empty factor |
| level. (\PR{14317}) |
| |
| \item Text help rendering of \samp{\tabular\{\}} has been |
| improved: under some circumstances leading blank columns were |
| not rendered. |
| |
| \item \code{strsplit(x, fixed=TRUE)} marked UTF-8 strings with the |
| local encoding when no splits were found. |
| |
| \item \code{weighted.mean(NA, na.rm=TRUE)} and similar now returns |
| \code{NaN} again, as it did prior to \R 2.10.0. |
| |
| \item \command{R CMD} had a typo in its detection of whether the |
| environment variable \env{TEXINPUTS} was set (reported by Martin |
| Morgan). |
| |
| \item The command-line parser could mistake |
| \option{--file=size...} for one of the options for setting limits |
| for Ncells or Vcells. |
| |
| \item The internal \code{strptime()} could corrupt its copy of the |
| timezone which would then lead to spurious warnings. (\PR{14338}) |
| |
| \item \code{dir.create(recursive = TRUE)} could fail if one of the |
| components existed but was a directory on a read-only file system. |
| (Seen on Solaris, where the error code returned is not even listed |
| as possible on the man page.) |
| |
| \item The \code{postscript()} and \code{pdf()} devices will now |
| allow \code{lwd} values less than 1 (they used to force such |
| values to be 1). |
| |
| \item Fixed font face for CID fonts in \code{pdf()} graphics output. |
| (\PR{14326}) |
| |
| \item \code{GERaster()} now checks for width or height of zero and |
| does nothing in those cases; previously the behaviour was |
| undefined, probably device-specific, and possibly dangerous. |
| |
| \item \code{wilcox.test(x, y, conf.int = TRUE)} failed with an unhelpful |
| message if \code{x} and \code{y} were constant vectors, and |
| similarly in the one-sample case. (\PR{14329}) |
| |
| \item Improperly calling \code{Recall()} from outside a function |
| could cause a segfault. (Reported by Robert McGehee.) |
| |
| \item \samp{\Sexpr[result=rd]} in an Rd file added a |
| spurious newline, which was displayed as extra whitespace when |
| rendered. |
| |
| \item \code{require(save = TRUE)} recorded the names of packages |
| it failed to load. |
| |
| \item \code{packageStatus()} could return a data frame with |
| duplicate row names which could then not be printed. |
| |
| \item \code{txtProgressBar(style = 2)} did not work correctly. |
| |
| \code{txtProgressBar(style = 3)} did not display until a |
| non-minimum value was set. |
| |
| \item \code{contour()} did not display dashed line types |
| properly when contour lines were labelled. (Reported by |
| David B. Thompson.) |
| |
| \item \code{tools::undoc()} again detects undocumented data |
| objects. Of course, this also affects \command{R CMD check}. |
| |
| \item \code{ksmooth(x,NULL)} no longer segfaults. |
| |
| \item \code{approxfun()}, \code{approx()}, \code{splinefun()} |
| and \code{spline()} could be confused by \code{x} values that |
| were different but so close as to print identically. |
| (\PR{14377}) |
| } |
| } |
| } |
| |
| |
| \section{\Rlogo CHANGES IN R VERSION 2.11.1}{ |
| \subsection{NEW FEATURES}{ |
| \itemize{ |
| \item \command{R CMD INSTALL} checks if dependent packages are |
| available early on in the installation of source packages, |
| thereby giving clearer error messages. |
| |
| \item \command{R CMD INSTALL --build} now names the file in the |
| format used for Mac OS X binary files on that platform. |
| |
| \item \code{BIC()} in package \pkg{stats4} now also works with |
| multiple fitted models, analogously to \code{AIC()}. |
| } |
| } |
| \subsection{DEPRECATED & DEFUNCT}{ |
| \itemize{ |
| \item Use of file extension \file{.C} for C++ code in packages is now |
| deprecated: it has caused problems for some \command{make}s on |
| case-insensitive file systems (although it currently works |
| with the recommended toolkits). |
| } |
| } |
| \subsection{INSTALLATION}{ |
| \itemize{ |
| \item Command \command{gnutar} is preferred to \command{tar} |
| when configure sets \env{TAR}. This is needed on Mac OS 10.6, |
| where the default \code{tar}, \code{bsdtar 2.6.2}, has been |
| reported to produce archives with illegal extensions to tar |
| (according to the POSIX standard). |
| } |
| } |
| \subsection{BUG FIXES}{ |
| \itemize{ |
| \item The C function \code{mkCharLenCE} now no longer reads past |
| \code{len} bytes (unlikely to be a problem except in user |
| code). (\PR{14246}) |
| |
| \item On systems without any default \env{LD_LIBRARY_PATH} (not |
| even \file{/usr/local/lib}), \env{[DY]LIB_LIBRARY_PATH} is now |
| set without a trailing colon. (\PR{13637}) |
| |
| \item More efficient implementation of \code{utf8ToInt()} on long |
| multi-byte strings with many multi-byte characters. (\PR{14262}) |
| |
| \item \code{aggregate.ts()} gave platform-dependent results due to |
| rounding error for \code{ndeltat != 1}. |
| |
| \item \code{package.skeleton()} sometimes failed to fix filenames |
| for \file{.R} or \file{.Rd} files to start with an alphanumeric. |
| (\PR{14253}) |
| |
| It also failed when only an S4 class without any methods was |
| defined. (\PR{14280}) |
| |
| \item \code{splinefun(method = "monoH.FC")} was not |
| quite monotone in rare cases. (\PR{14215}) |
| |
| \item \code{Rhttpd} no longer crashes due to \code{SIGPIPE} when |
| the client closes the connection prematurely. (\PR{14266}) |
| |
| \item \code{format.POSIXlt()} could cause a stack overflow and |
| crash when used on very long vectors. (\PR{14267}) |
| |
| \item \code{Rd2latex()} incorrectly escaped special characters in |
| \samp{\usage} sections. |
| |
| \item \code{mcnemar.test()} could alter the levels (dropping |
| unused levels) if passed \code{x} and \code{y} as factors |
| (reported by Greg Snow). |
| |
| \item \command{Rd2pdf} sometimes needed a further |
| \command{pdflatex} pass to get hyperlinked pages correct. |
| |
| \item \code{interaction()} produced malformed results when levels were |
| duplicated, causing segfaults in \code{split()}. |
| |
| \item \code{cut(d, breaks = <n>)} now also works for \code{"Date"} |
| or \code{"POSIXt"} argument \code{d}. |
| (\PR{14288}) |
| |
| \item \code{memDecompress()} could decompress incompletely rare |
| \code{xz}-compressed input due to incorrect documentation of |
| \command{xz utils}. (Report and patch from Olaf Mersmann.) |
| |
| \item The S4 \code{initialize()} methods for \code{"matrix"}, |
| \code{"array"}, and \code{"ts"} have been fixed to call |
| \code{validObject()}. (\PR{14284}) |
| |
| \item \command{R CMD INSTALL} now behaves the same way with or |
| without \option{--no-multiarch} on platforms with only one |
| installed architecture. (It used to clean the \file{src} |
| directory without \option{--no-multiarch}.) |
| |
| \item \code{[<-.data.frame} was not quite careful enough in |
| assigning (and potentially deleting) columns |
| right-to-left. (\PR{14263}) |
| |
| \item \code{rbeta(n, a, b)} no longer occasionally returns |
| \code{NaN} for \code{a >> 1 > b}. (\PR{14291}) |
| |
| \item \code{pnorm(x, log.p = TRUE)} could return \code{NaN} not |
| \code{-Inf} for \code{x} near (minus for \code{lower.tail=TRUE}) |
| the largest representable number. |
| |
| \item Compressed data files \file{*.(txt|tab|csv).(gz|bz2|xz)} |
| were not recognized for the list of data topics and hence for |
| packages using \code{LazyData}. (\PR{14273}) |
| |
| \item \code{textConnection()} did an unnecessary translation on |
| strings in a foreign encoding (e.g., UTF-8 strings on Windows) and |
| so was slower than it could have been on very long input strings. |
| (\PR{14286}) |
| |
| \item \code{tools::Rd2txt()} did not render poorly written Rd |
| files consistently with other renderers. |
| |
| It computed widths of strings that would be \code{print()}ed with |
| escapes incorrectly, for example in the computation of column |
| width for \samp{\tabular}. |
| |
| \item \code{na.action()} did not extract the \code{na.action} |
| component as documented. |
| |
| \item \code{do.call()}ing \code{NextMethod} in erroneous ways no |
| longer segfaults. (\PR{13487}) |
| } |
| } |
| } |
| |
| |
| \section{\Rlogo CHANGES IN R VERSION 2.11.0}{ |
| \subsection{SIGNIFICANT USER-VISIBLE CHANGES}{ |
| \itemize{ |
| \item Packages must have been installed under \R >= 2.10.0, as the |
| current help system is the only one now supported. |
| |
| \item A port to 64-bit Windows is now available as well as binary |
| package repositories: see the \sQuote{R Administration and |
| Installation Manual}. |
| |
| \item Argument matching for primitive functions is now done in the |
| same way as for interpreted functions except for the deliberate |
| exceptions |
| \preformatted{ |
| call switch .C .Fortran .Call .External |
| } |
| all of which use positional matching for their first argument, |
| and also some internal-use-only primitives. |
| |
| \item The default device for command-line \R at the console on Mac OS X |
| is now \code{quartz()} and not \code{X11()}. |
| } |
| } |
| \subsection{NEW FEATURES}{ |
| \itemize{ |
| \item The \code{open} modes for connections are now interpreted |
| more consistently. \code{open = "r"} is now equivalent to |
| \code{open = "rt"} for all connections. The default \code{open = |
| ""} now means \code{"rt"} for all connections except the |
| compressed-file connections \code{gzfile()}, \code{bzfile()} and |
| \code{xzfile()} for which it means \code{"rb"}. |
| |
| \item \command{R CMD INSTALL} now uses the internal \code{untar()} |
| function in package \pkg{utils}: this ensures that all platforms |
| can install \command{bzip2}- and \command{xz}-compressed |
| tarballs. In case this causes problems (as it has on some |
| Windows file systems when run from Cygwin tools) it can be |
| overridden by the environment variable \env{R_INSTALL_TAR}: |
| setting this to a modern external tar program will speed up |
| unpacking of large (tens of Mb or more) tarballs. |
| |
| \item \code{help(try.all.packages = TRUE)} is much faster |
| (although the time taken by the OS to find all the packages the |
| first time it is used can dominate the time). |
| |
| \item \command{R CMD check} has a new option \option{--timings} |
| to record per-example timings in file |
| \file{<pkg>.Rcheck/<pkg>-Ex.timings}. |
| |
| \item The TRE library has been updated to version 0.8.0 (minor bugfixes). |
| |
| \item \code{grep[l]}, \code{[g]sub} and \code{[g]regexpr} now work |
| in bytes in an 8-bit locales if there is no marked UTF-8 input |
| string: this will be somewhat faster, and for \code{[g]sub()} |
| give the result in the native encoding rather than in UTF-8 |
| (which returns to the behaviour prior to \R 2.10.0). |
| |
| \item A new argument \code{skipCalls} has been added to |
| \code{browser()} so that it can report the original context when |
| called by other debugging functions. |
| |
| \item More validity checking of UTF-8 and MBCS strings is done by |
| \code{agrep()} and the regular-expression matching functions. |
| |
| \item The undocumented restriction on \code{gregexpr()} to |
| \code{length(text) > 0} has been removed. |
| |
| \item Package \pkg{tcltk} now sends strings to Tcl in UTF-8: this |
| means that strings with a marked UTF-8 encoding are supported in |
| non-UTF-8 locales. |
| |
| \item The graphics engine now supports rendering of raster (bitmap) |
| images, though not all graphics devices can provide (full) |
| support. Packages providing graphics devices (e.g., \code{Cairo}, |
| \code{RSvgDevice}, \code{cairoDevice}) will need to be reinstalled. |
| |
| There is also support in the graphics engine for capturing |
| raster images from graphics devices (again not supported |
| on all graphics devices). |
| |
| \item \command{R CMD check} now also checks if the package and |
| namespace can be unloaded: this provides a check of the |
| \code{.Last.lib()} and \code{.onUnload()} hook functions (unless |
| \option{--install=fake}). |
| |
| \item \code{prop.table(x)} now accepts a one-dimensional table for |
| \code{x}. |
| |
| \item A new function \code{vapply()} has been added, based on a |
| suggestion from Bill Dunlap. It requires that a template for the |
| function value be specified, and uses it to determine the output |
| type and to check for consistency in the function values. |
| |
| \item The main HTML help page now links to a reformatted copy of |
| this \file{NEWS} file. (Suggested by Henrik Bengtsson.) Package |
| index files link to the package \file{DESCRIPTION} and |
| \file{NEWS} files and a list of demos when using dynamic help. |
| |
| \item The \code{[} method for class \code{"AsIs"} allows the next |
| method to change the underlying class. (Wish of Jens |
| Oehlschlägel.) |
| |
| \item \code{write.csv[2]} no longer allow argument \code{append} |
| to be changed: as ever, direct calls to \code{write.table()} give |
| more flexibility as well as more room for error. |
| |
| \item The index page for HTML help for a package now collapses |
| multiple signatures for S4 methods into a single entry. |
| |
| \item The use of \code{.required} by \code{require()} and |
| \code{detach()} has been replaced by \code{.Depends} which is set |
| from the \code{Depends} field of a package (even in packages with |
| namespaces). By default \code{detach()} prevents such |
| dependencies from being detached: this can be overridden by the |
| argument \code{force}. |
| |
| \item \code{bquote()} has been extended to work on function |
| definitions. (Wish of |
| \PR{14031}). |
| |
| \item \code{detach()} when applied to an object other than a |
| package returns the environment that has been detached, to |
| parallel \code{attach()}. |
| |
| \item \code{readline()} in non-interactive use returns \code{""} |
| and does not attempt to read from the \sQuote{terminal}. |
| |
| \item New function \code{file_ext()} in package \pkg{tools}. |
| |
| \item \code{xtfrm()} is now primitive and internally generic, as |
| this allows S4 methods to be set on it without name-space scoping |
| issues. |
| |
| There are now \code{"AsIs"} and \code{"difftime"} methods, and |
| the default method uses \code{unclass(x)} if \code{is.numeric(x)} |
| is true (which will be faster but relies on \code{is.numeric()} |
| having been set correctly for the class). |
| |
| \item \code{is.numeric(x)} is now false for a \code{"difftime"} |
| object (multiplication and division make no sense for such |
| objects). |
| |
| \item The default method of \code{weighted.mean(x, w)} coerces |
| \code{w} to be numeric (aka double); previously only integer |
| weights were coerced. Zero weights are handled specially so an |
| infinite value with zero weight does not force an \code{NaN} |
| result. |
| |
| There is now a \code{"difftime"} method. |
| |
| \item \code{bug.report()} now has arguments \code{package} and |
| \code{lib.loc} to generate bug reports about packages. When |
| this is used, it looks for a \code{BugReports} field in the |
| package \file{DESCRIPTION} file, which will be assumed to be a |
| URL at which to submit the report, and otherwise generates an |
| email to the package maintainer. (Suggested by Barry |
| Rowlingson.) |
| |
| \item \code{quantile()} now has a method for the date-time class |
| \code{"POSIXt"}, and types 1 and 3 (which never interpolate) work |
| for Dates and ordered factors. |
| |
| \item \code{length(<POSIXlt>)} now returns the length of the |
| corresponding abstract timedate-vector rather than always 9 (the |
| length of the underlying list structure). (Wish of \PR{14073} |
| and \PR{10507}.) |
| |
| \item The \code{readline} completion backend no longer sorts |
| possible completions alphabetically (e.g., function argument |
| names) if \R was built with \code{readline >= 6}. |
| |
| \item \code{select.list()} gains a \code{graphics} argument to |
| allow Windows/Mac users to choose the text interface. This |
| changes the behaviour of \code{new.packages(ask=TRUE)} to be like |
| \code{update.packages(ask=TRUE)} on those platforms in using a |
| text menu: use ask=\code{"graphics"} for a graphical menu. |
| |
| \item New function \code{chooseBioCmirror()} to set the |
| \code{"BioC_mirror"} option. |
| |
| \item The \R grammar now prevents using the argument \code{name} |
| in signatures of S4 methods for \code{$} and \code{$<-}, since |
| they will always be called with a character string value for |
| \code{name}. The implicit S4 generic functions have been |
| changed to reflect this: packages which included \code{name} in |
| the signature of their methods need to be updated and |
| re-installed. |
| |
| \item The handling of the \code{method} argument of \code{glm()} |
| has been refined following suggestions by Ioannis Kosmidis and |
| Heather Turner. |
| |
| \item \code{str()} gains a new argument \code{list.len} with |
| default 99, limiting the number of \code{list()} items (per |
| level), thanks to suggestions from David Winsenius. |
| |
| \item Having formal arguments of an S4 method in a different order |
| from the generic is now an error (the warning having been |
| ignored by some package maintainers for a long time). |
| |
| \item New functions \code{enc2native()} and \code{enc2utf8()} |
| convert character vectors with possibly marked encodings to the |
| current locale and UTF-8 respectively. |
| |
| \item Unrecognized escapes and embedded nuls in character strings are |
| now an error, not just a warning. Thus option \code{"warnEscapes"} |
| is no longer needed. \code{rawToChar()} now removes trailing nuls |
| silently, but other embedded nuls become errors. |
| |
| \item Informational messages about masked objects displayed when a |
| package is attached are now more compact, using \code{strwrap()} |
| instead of one object per line. |
| |
| \item \code{print.rle()} gains argument \code{prefix}. |
| |
| \item \code{download.file()} gains a \code{"curl"} method, mainly |
| for use on platforms which have \command{curl} but not |
| \command{wget}, but also for some hard-to-access URLs. |
| |
| \item In \code{Rd}, \samp{\eqn} and \samp{\deqn} will render in |
| HTML (and convert to text) upper- and lower-case Greek letters |
| (entered as \samp{\alpha} \dots), \samp{\ldots}, \samp{\dots}, |
| \samp{\ge} and \samp{\le}. |
| |
| \item \code{utf8ToInt()} and \code{intToUtf8()} now map \code{NA} inputs |
| to \code{NA} outputs. |
| |
| \item \code{file()} has a new argument \code{raw} which may help |
| if it is used with something other than a regular file, e.g.\sspace{}a |
| character device. |
| |
| \item New function \code{strtoi()}, a wrapper for the C function |
| \code{strtol}. |
| |
| \item \code{as.octmode()} and \code{as.hexmode()} now allow inputs |
| of length other than one. |
| |
| The \code{format()} and \code{print()} methods for |
| \code{"octmode"} now preserve names and dimensions (as those for |
| \code{"hexmode"} did). |
| |
| The \code{format()} methods for classes \code{"octmode"} and |
| \code{"hexmode"} gain a \code{width} argument. |
| |
| \item \code{seq.int()} returns an integer result in some further cases |
| where \code{seq()} does, e.g.\sspace{}\code{seq.int(1L, 9L, by = 2L)}. |
| |
| \item Added \samp{\subsection\{\}\{\}} macro to Rd syntax, for |
| subsections within sections. |
| |
| \item n-dimensional arrays with dimension names can now be indexed |
| by an n-column character matrix. The indices are matched against |
| the dimension names. \code{NA} indices are propagated to the |
| result. Unmatched values and \code{""} are not allowed and |
| result in an error. |
| |
| \item \code{interaction(drop=TRUE)} uses less memory (related to |
| \PR{14121}). |
| |
| \item \code{summary()} methods have been added to the |
| \code{"srcref"} and \code{"srcfile"} classes, and various |
| encoding issues have been cleaned up. |
| |
| \item If option \code{"checkPackageLicense"} is set to \code{TRUE} (not |
| currently the default), users will be asked to agree to |
| non-known-to-be-FOSS package licences at first use. |
| |
| \item Checking \code{setAs(a, b)} methods only gives a message |
| instead of a warning, when one of \code{a} or \code{b} is |
| unknown. |
| |
| \item New function \code{norm()} to compute a matrix norm. |
| \code{norm()} and also \code{backsolve()} and \code{sample()} |
| have implicit S4 generics. |
| |
| \item Files \file{Renviron.site} and \file{Rprofile.site} can have |
| architecture-specific versions on systems with sub-architectures. |
| |
| \item \command{R CMD check} now (by default) also checks Rd files |
| for auto-generated content in need of editing, and missing |
| argument descriptions. |
| |
| \item \code{aggregate()} gains a formula method thanks to a |
| contribution by Arni Magnusson. The data frame method now allows |
| summary functions to return arbitrarily many values. |
| |
| \item \code{path.expand()} now propagates \code{NA} values rather |
| than converting them to \code{"NA"}. |
| |
| \item \code{file.show()} now disallows \code{NA} values for file names, |
| headers, and pager. |
| |
| \item The \sQuote{fuzz} used by \code{seq()} and \code{seq.int()} has |
| been reduced from \code{1e-7} to \code{1e-10}, which should be |
| ample for the double-precision calculations used in \R. It |
| ensures that the fuzz never comes into play with sequences of |
| integers (wish of \PR{14169}). |
| |
| \item The default value of \code{RSiteSearch(restrict=)} has been |
| changed to include vignettes but to exclude R-help. The R-help |
| archives available have been split, with a new option of |
| \code{"Rhelp10"} for those from 2010. |
| |
| \item New function \code{rasterImage()} in the \code{graphics} |
| package for drawing raster images. |
| |
| \item \code{stats:::extractAIC.coxph()} now omits aliased terms |
| when computing the degrees of freedom (suggestion of Terry |
| Therneau). |
| |
| \item \code{cor()} and \code{cov()} now test for misuse with |
| non-numeric arguments, such as the non-bug report \PR{14207}. |
| |
| \item \code{pchisq(ncp =, log.p = TRUE)} is more accurate for |
| probabilities near one. E.g., \code{pchisq(80, 4, ncp=1, |
| log.p=TRUE)}. (Maybe what was meant in \PR{14216}.) |
| |
| \item \code{maintainer()} has been added, to give convenient |
| access to the name of the maintainer of a package (contributed by |
| David Scott). |
| |
| \item \code{sample()} and \code{sample.int()} allow zero items to |
| be sampled from a zero-length input. \code{sample.int()} gains a |
| default value \code{size=n} to be more similar to |
| \code{sample()}. |
| |
| \item \code{switch()} returned \code{NULL} on error (not |
| previously documented on the help page): it now does so |
| invisibly, analogously to if-without-else. |
| |
| It is now primitive: this means that argument \code{EXPR} is |
| always matched to the first argument and there is no danger of |
| partial matching to later named arguments. |
| |
| \item Primitive functions \code{UseMethod()}, \code{attr()}, |
| \code{attr<-()}, \code{on.exit()}, \code{retracemem()} and |
| \code{substitute()} now use standard argument matching (rather |
| than positional matching). This means that all multi-argument |
| primitives which are not internal now use standard argument |
| matching except where positional matching is desirable (as for |
| \code{switch()}, \code{call()}, \code{.C()} ...). |
| |
| \item All the one-argument primitives now check that any name |
| supplied for their first argument is a partial match to the |
| argument name as documented on the help page: this also |
| applies to replacement functions of two arguments. |
| |
| \item \code{base::which()} uses a new \code{.Internal} function |
| when \code{arr.ind} is \code{FALSE} resulting in a 10x speedup. |
| Thanks to Patrick Aboyoun for implementation suggestions. |
| |
| \item Help conversion to text now uses the first part of |
| \samp{\enc\{\}\{\}} markup if it is representable in the current |
| output encoding. On the other hand, conversion to LaTeX with the |
| default \code{outputEncoding = "ASCII"} uses the second part. |
| |
| \item A new class \code{"listOfMethods"} has been introduced to |
| represent the methods in a methods table, to replace the |
| deprecated class \code{"MethodsList"}. |
| |
| \item \code{any()} and \code{all()} return early if possible. |
| This may speed up operations on long vectors. |
| |
| \item \code{strptime()} now accepts \code{"\%z"} (for the offset |
| from UTC in the RFC822 format of \code{+/-hhmm}). |
| |
| \item The PCRE library has been updated to version 8.02, a bug-fix |
| release which also updates tables to Unicode 5.02. |
| |
| \item Functions which may use a graphical \code{select.list()} |
| (including \code{menu()} and \code{install.packages()}) now check |
| on a Unix-alike that Tk can be started (and not just |
| \code{capabilities("tcltk") && capabilities("X11")}). |
| |
| \item The parser no longer marks strings containing octal or hex |
| escapes as being in UTF-8 when entered in a UTF-8 locale. |
| |
| \item On platforms with cairo but not Pango (notably Mac OS X) the |
| initial default \code{X11()} type is set to \code{"Xlib"}: this avoids |
| several problems with font selection when done by cairo rather |
| than Pango (at least on Mac OS X). |
| |
| \item New function \code{arrayInd()} such that \code{which(x, |
| arr.ind = TRUE)} for an array 'x' is now equivalent to |
| \code{arrayInd(which(x), dim(x), dimnames(x))}. |
| } |
| } |
| \subsection{DEPRECATED & DEFUNCT}{ |
| \itemize{ |
| \item Bundles of packages are defunct. |
| |
| \item \code{stats::clearNames()} is defunct: use \code{unname()}. |
| |
| \item Basic regular expressions are defunct, and |
| \code{strsplit()}, \code{grep()}, \code{grepl()}, \code{sub()}, |
| \code{gsub()}, \code{regexpr()} and \code{gregexpr()} no longer |
| have an \code{extended} argument. |
| |
| \item \code{methods::trySilent()} is defunct. |
| |
| \item \code{index.search()} (which was deprecated in 2.10.0) is no |
| longer exported and has a different argument list. |
| |
| \item Use of multiple arguments to \code{return()} is now defunct. |
| |
| \item The use of \code{UseMethod()} with more than two arguments |
| is now defunct. |
| |
| \item In the \pkg{methods} package, the \code{"MethodsList"} |
| metadata objects which had been superseded by hash tables |
| (environments) since \R 2.8.0 are being phased out. Objects of |
| this class are no longer assigned or used as metadata by the |
| package. |
| |
| \code{getMethods()} is now deprecated, with its internal use replaced |
| by \code{findMethods()} and other changes. Creating objects from the |
| \code{"MethodsList"} class is also deprecated. |
| |
| \item Parsing strings containing both octal/hex and Unicode escapes |
| now gives a warning and will become an error in \R 2.12.0. |
| } |
| } |
| \subsection{INSTALLATION}{ |
| \itemize{ |
| \item UTF-8 is now used for the reference manual and package |
| manuals. This requires LaTeX \sQuote{2005/12/01} or later. |
| |
| \item \command{configure} looks for a POSIX compliant |
| \command{tr}, Solaris's \command{/usr/ucb/tr} having been found |
| to cause \command{Rdiff} to malfunction. |
| |
| \item \command{configure} is now generated with \command{autoconf |
| 2.65}, which works better on recent systems and on Mac OS X. |
| } |
| } |
| \subsection{PACKAGE INSTALLATION}{ |
| \itemize{ |
| \item Characters in \R source which are not translatable to the |
| current locale are now handled more tolerantly: these will be |
| converted to hex codes with a warning. Such characters are |
| only really portable if they appear in comments. |
| |
| \item \command{R CMD INSTALL} now tests that the installed package |
| can be loaded (and backs out the installation if it cannot): this |
| can be suppressed by \option{--no-test-load}. This avoids |
| installing/updating a package that cannot be used: common causes |
| of failures to load are missing/incompatible external software |
| and missing/broken dependent packages. |
| |
| \item Package installation on Windows for a package with a |
| \file{src} directory now checks if a DLL is created unless there |
| is a \file{src/Makefile.win} file: this helps catch broken |
| installations where the toolchain has not reported problems in |
| building the DLL. (Note: this can be any DLL, not just one named |
| \file{<pkg-name>.dll}.) |
| } |
| } |
| \subsection{BUG FIXES}{ |
| \itemize{ |
| |
| \item Using \code{with()}, \code{eval()} etc with a list with some |
| unnamed elements now works. |
| (\PR{14035}) |
| |
| \item The \code{"quick"} dispatch of S4 methods for primitive |
| functions was not happening, forcing a search each time. |
| (Dispatch for closures was not affected.) A side effect is that |
| default values for arguments in a method that do not have |
| defaults in the generic will now be ignored. |
| |
| \item Trying to dispatch S4 methods for primitives during the search |
| for inherited methods slows that search down and potentially |
| could cause an infinite recursion. An internal switch was |
| added to turn off all such methods from |
| \code{findInheritedMethods()}. |
| |
| \item \R framework installation (on Mac OS X) would not work |
| properly if a rogue \code{Resources} directory was present at the |
| top level. Such a non-symlink will now be renamed to |
| \code{Resources.old} (and anything previously named |
| \code{Resources.old} removed) as part of the framework |
| installation process. |
| |
| \item The checks for conforming S4 method arguments could fail |
| when the signature of the generic function omitted some of the |
| formal arguments (in addition to \code{...}). Arguments omitted |
| from the method definition but conforming (per the documentation) |
| should now be ignored (treated as \code{"ANY"}) in dispatching. |
| |
| \item The computations for S4 method evaluation when \code{...} |
| was in the signature could fail, treating \code{...} as an |
| ordinary symbol. This has been fixed, for the known cases. |
| |
| \item Various \code{ar()} fitting methods have more protection for |
| singular fits. |
| |
| \item \code{callNextMethod} now works again with the \code{drop=} |
| argument in \samp{[} |
| |
| \item \code{parse()} and \code{parse_Rd()} miscounted columns when |
| multibyte UTF-8 characters were present. |
| |
| \item Formatting of help pages has had minor improvements: extra |
| blank lines have been removed from the text format, and empty |
| package labels removed from HTML. |
| |
| \item \code{cor(A, B)} where \code{A} is \eqn{n \times 1}{n x 1} |
| and \code{B} a 1-dimensional array segfaulted or gave an internal |
| error. (The case \code{cor(B, A)} was |
| \PR{7116}.) |
| |
| \item \code{cut.POSIXt()} applied to a start value after the DST |
| transition on a DST-change day could give the wrong time for |
| argument \code{breaks} in units of days or longer. (\PR{14208}) |
| |
| \item \code{do_par()} \code{UNPROTECT}ed too early (\PR{14214}) |
| |
| \item Subassignment \code{x[[....]] <- y} didn't check for a |
| zero-length right hand side, and inserted a rubbish |
| value. (\PR{14217}) |
| |
| \item \code{fisher.test()} no longer gives a P-value \strong{very} |
| slightly > 1, in some borderline cases. |
| |
| \item Internal function \code{matchArgs()} no longer modifies the |
| general purpose bits of the \code{SEXP}s that make up the formals |
| list of \R functions. This fixes an invalid error message that |
| would occur when a garbage collection triggered a second call to |
| \code{matchArgs} for the same function \emph{via} a finalizer. |
| |
| \item \code{gsub()} in 2.10.x could fail from stack overflow for |
| extremely long strings due to temporary data being allocated on |
| the stack. Also, \code{gsub()} with \code{fixed=TRUE} is in some |
| circumstances considerably faster. |
| |
| \item Several primitives, including \code{attributes()}, |
| \code{attr<-()} \code{interactive()}, \code{nargs()} and |
| \code{proc.time()}, did not check that they were called with the |
| correct number of arguments. |
| |
| \item A potential race condition in \code{list.files()} when other |
| processes are operating on the directory has been fixed; the code |
| now dynamically allocates memory for file listings in a single |
| pass instead of making an initial count pass. |
| |
| \item \code{mean(x, trim=, na.rm = FALSE)} failed to return \code{NA} if |
| \code{x} contained missing values. (Reported by Bill Dunlap.) |
| |
| \item Extreme tail behavior of, \code{pbeta()} \{and hence |
| \code{pf()}\}, e.g., \code{pbeta(x, 3, 2200, lower.tail=FALSE, |
| log.p=TRUE)} now returns finite values instead of jumping to |
| \code{-Inf} too early. (\PR{14230}). |
| |
| \item \code{parse(text=x)} misbehaved for objects \code{x} that |
| were not coerced internally to character, notably symbols. |
| (Reported to R-devel by Bill Dunlap.) |
| |
| \item The internal C function \code{coerceSymbol} now handles |
| coercion to character, and warns if coercion fails (rather than |
| silently returning \code{NULL}). This allows a name to be given |
| where a character vector is required in functions which coerce |
| internally. |
| |
| \item The interpretation by \code{strptime()} of \code{"\%c"} was |
| non-standard (not that it is ever advisable to use locale- and |
| system-specific input formats). |
| |
| \item capabilities(\code{"X11"}) now works the same way on Mac OS X as on |
| other platforms (and as documented: it was always true for R |
| built with \option{--with-aqua}, as the CRAN builds are). |
| |
| \item The \code{X11()} device with cairo but not Pango (notably Mac OS X) |
| now checks validity of text strings in UTF-8 locales (since |
| Pango does but cairo it seems does not). |
| |
| \item \code{read.fwf()} misread multi-line records when n was specified. |
| (\PR{14241}) |
| |
| \item \code{all.equal(tolerance = e)} passes the numeric |
| tolerance also to the comparison of the attributes. |
| |
| \item \code{pgamma(0, 0)}, a boundary case, now returns 0, its |
| limit from the left, rather than the limit from the right. |
| |
| \item Issuing \code{POST} requests to the internal web server could stall |
| the request under certain circumstances. |
| |
| \item \code{gzcon( <textConnection> )}, an error, no longer |
| damages the connection (in a way to have it |
| segfault). (\PR{14237}) |
| |
| \item All the results from \code{hist()} now use the nominal |
| \code{breaks} not those adjusted by the numeric \sQuote{fuzz}: |
| in recent versions the nominal \code{breaks} were reported but |
| the 'density' referred to the intervals used in the calculation |
| -- which mattered very slightly for one of the extreme bins. |
| (Based on a report by Martin Becker.) |
| |
| \item If \code{xy[z].coords} (used internally by many graphics |
| functions) are given a list as \code{x}, they now check that |
| the list has suitable names and give a more informative error |
| message. (\PR{13936}) |
| } |
| } |
| } |
| |
| |
| \section{\Rlogo CHANGES IN R VERSION 2.10.1 patched}{ |
| \subsection{NEW FEATURES}{ |
| \itemize{ |
| \item The handling of line textures in the \code{postscript()} and |
| \code{pdf()} devices was set up for round end caps (the only type |
| which existed at the time): it has now been adjusted for butt |
| endcaps. |
| |
| \item \code{lchoose(a, k)} is now defined as |
| \code{log(abs(choose(a,k)))}, analogously to \code{lfactorial()}. |
| |
| \item Although \code{\\eqn\{\}} in Rd files is defined as a |
| \sQuote{verbatim} macro, many packages expected \code{\\dots} and |
| \code{\\ldots} to be interpreted there (as was the case in \R < |
| 2.10.0), so this is now done (using an ellipsis in HTML |
| rendering). |
| |
| \item Escaping of braces in quoted strings in \R-code sections of |
| Rd files is allowed again. This had been changed for the new Rd |
| format in \R 2.10.0 but was only documented on the developer site |
| and was handled inconsistently by the converters: text and |
| example conversion removed the escapes but HTML conversion did |
| not. |
| |
| \item The PCRE library has been updated to version 8.01, a bug-fix |
| release. |
| |
| \item \code{tools::readNEWS()} now accepts a digit as the first |
| character of a news section. |
| } |
| } |
| \subsection{BUG FIXES}{ |
| \itemize{ |
| \item Using \code{read.table(header=TRUE)} on a header with an |
| embedded new line would copy part of the header into the data. |
| (\PR{14103}) |
| |
| \item \code{qpois(p = 1, lambda = 0)} now gives 0 as for all other |
| \code{p}. (\PR{14135}) |
| |
| \item Functions related to string comparison |
| (e.g., \code{unique()}, \code{match()}) could cause crashes when |
| used with strings not in the native encoding, e.g., UTF-8 strings |
| on Windows. (\PR{14114} and \PR{14125}) |
| |
| \item \code{x[ , drop=TRUE]} dropped an \code{NA} level even if it |
| was in use. |
| |
| \item The dynamic HTML help system reported the wrong MIME type |
| for the style sheet. |
| |
| \item \code{tools::codoc()} (used by \command{R CMD check}) was |
| missing cases where the function had no arguments but was |
| documented to have some. |
| |
| \item Help links containing special characters (e.g., \code{"?"}) |
| were not generated correctly when rendered in |
| HTML. (\PR{14155}) |
| |
| \item \code{lchoose(a, k)} no longer wrongly gives \code{NaN} for |
| negative \code{a}. |
| |
| \item \code{ks.test()} could give a p-value that was off by one |
| observation due to rounding error. (\PR{14145}) |
| |
| \item \code{readBin()}/\code{readChar()} when reading millions of |
| character strings in a single call used excessive amounts of |
| memory (which also slowed them down). |
| |
| \item \command{R CMD SHLIB} could fail if used with paths that |
| were not alphanumeric, e.g.\sspace{}contained \code{+}. (\PR{14168}) |
| |
| \item \code{sprintf()} was not re-entrant, which potentially |
| caused problems if an \code{as.character()} method called it. |
| |
| \item The \code{quartz()} device did not restore the clipping |
| region when filling the background for a new page. This could be |
| observed in multi-page bitmap output as stale outer regions of |
| the plot. |
| |
| \item \code{p.adjust(method, n)} now works correctly for the |
| rare case \code{n > length(p)}, also when method differs from |
| \code{"bonferroni"} or \code{"none"}, thanks to a patch from |
| Gordon Smyth. |
| |
| \item \code{tools::showNonASCII()} failed to detect non-ASCII characters |
| if \code{iconv()} (incorrectly) converted them to different ASCII |
| characters. (Seen on Windows only.) |
| |
| \item \code{tcrossprod()} wrongly failed in some cases when one of the |
| arguments was a vector and the other a matrix. |
| |
| \item \code{[cr]bind(..., deparse.level=2)} was not always giving |
| names when documented to do so. (Discovered whilst investigating |
| \PR{14189}.) |
| |
| \item \code{match(incomparables=<non-NULL>)} could in rare cases |
| infinite-loop. |
| |
| \item \code{poisson.test()} needed to pass argument |
| \code{conf.level} to \code{binom.test()}. (\PR{14195}) |
| |
| \item The \code{"nls"} method for \code{df.residual()} gave |
| incorrect results for models fitted with \code{na.action = |
| na.exclude}. (\PR{14194}) |
| |
| \item A change to \code{options(scipen=)} was only implemented |
| when printing next occurred, even though it should have affected |
| intervening calls to \code{axis()}, \code{contour()} and |
| \code{filledcontour()}. |
| |
| \item \code{prettyNum(drop0trailing=TRUE)} did not handle signs of |
| imaginary parts of complex numbers correctly (and this was used |
| by \code{str()}: \PR{14201}). |
| |
| \item \code{system.time()} had the \code{sys.child} component |
| wrong (copied \code{user.child} instead) on systems with |
| \code{HAVE_GETRUSAGE}. |
| (\PR{14210}) |
| |
| \item Changing both line texture and line cap (end) resulted in the |
| latter to be omitted form the PDF code. In addition, line cap |
| (end) and join are now set explicitly in PDF output to ensure |
| correct defaults. |
| |
| \item The suppression of auto-rotation in \code{bitmap()} and |
| \code{dev2bitmap()} with the \code{"pdfwrite"} device was not |
| working correctly. |
| |
| \item \code{plot(ecdf(), log="x")} no longer gives an incorrect |
| warning. |
| |
| \item \code{read.fwf()} works again when argument \code{file} is |
| a connection. |
| |
| \item Startup files will now be found if their paths exceed 255 |
| bytes. (\PR{14228}) |
| |
| \item \code{contrasts<-} (in the \pkg{stats} package) no longer has an |
| undeclared dependence on \pkg{methods} (introduced in 2.10.0). |
| } |
| } |
| } |
| |
| |
| \section{\Rlogo CHANGES IN R VERSION 2.10.1}{ |
| \subsection{NEW FEATURES}{ |
| \itemize{ |
| \item The PCRE library has been updated to version 8.00. |
| |
| \item \command{R CMD INSTALL} has new options \option{--no-R}, |
| \option{--no-libs}, \option{--no-data}, \option{--no-help}, |
| \option{--no-demo}, \option{--no-exec}, and \option{--no-inst} to |
| suppress installation of the specified part of the package. |
| These are intended for special purposes (e.g., building a database |
| of help pages without fully installing all packages). |
| |
| \item The documented line-length limit of 4095 bytes when reading |
| from the console now also applies also to \code{parse(file="")} |
| (which previously had a limit of around 1024 bytes). |
| |
| \item A Bioconductor mirror can be set for use by |
| \code{setRepositories()} \emph{via} the option \code{"BioC_mirror"}, |
| e.g.\sspace{}the European mirror can be selected by |
| \code{options(BioC_mirror="http://bioconductor.statistik.tu-dortmund.de")}. |
| |
| \item Double-clicking in a \code{tk_select.list()} list box now |
| selects the item and closes the list box (as happens on the |
| Windows \code{select.list()} widget). |
| } |
| } |
| \subsection{INSTALLATION}{ |
| \itemize{ |
| \item \command{configure} will be able to find a usable |
| \code{libtiff} in some rare circumstances where it did not |
| previously (where \code{libtiff} needed to be linked explicitly against |
| \code{-ljpeg}). |
| |
| \item Making \code{refman.pdf} works around a problem with the indexing |
| with \code{hyperref 6.79d} and later. |
| } |
| } |
| \subsection{DEPRECATED & DEFUNCT}{ |
| \itemize{ |
| \item The \code{extended} argument is deprecated in |
| \code{strsplit()}, \code{grep()}, \code{grepl()}, \code{sub()}, |
| \code{gsub()}, \code{regexpr()} and \code{gregexpr()} (not just |
| the value \code{extended = FALSE}) and will be removed in \R |
| 2.11.0. |
| } |
| } |
| \subsection{BUG FIXES}{ |
| \itemize{ |
| \item \code{trigamma(x)} and other \code{psigamma(x, n)} calls |
| are now accurate for very large \code{abs(x)}. (\PR{14020}) |
| |
| \item \code{[g]sub(perl=FALSE, fixed=FALSE)} could use excessive |
| stack space when used with a very long vector containing some |
| non-ASCII strings. |
| |
| \item The default method of \code{weighted.mean(na.rm = TRUE)} |
| did not omit weights for \code{NA} observations in 2.10.0. |
| (\PR{14032}) |
| |
| \item \code{[g]regexpr(pattern, fixed = TRUE)} returned match |
| positions in bytes (not characters) in an MBCS locale if |
| \code{pattern} was a single byte. |
| |
| \code{[g]sub(fixed = TRUE)} with a single-byte pattern could |
| conceivably have matched part of a multibyte character in a |
| non-UTF-8 MBCS. |
| |
| \item \code{findLineNum()} and \code{setBreakpoint()} would |
| sometimes fail if the specified file was not in the current |
| directory. |
| |
| \item Package \pkg{tcltk}'s \code{demo(tkdensity)} was broken in |
| 2.9.0 when \code{demo()} was changed to set \code{par(ask = TRUE)}. |
| |
| \item \code{gsub()} with backrefs could fail on extremely long strings |
| (hundreds of thousands of characters) due to integer overflow |
| in a length calculation. |
| |
| \item \code{abline(untf=TRUE)} now uses a better x-grid in |
| log-scale, e.g., for \code{plot(c(1,300), c(1,300), log="xy"); |
| abline(4,1, untf=TRUE)}. |
| |
| \item \code{detach()}/\code{unloadNamespace()} arrange to flush |
| the package's lazyload cache of \R objects once the |
| package/namespace is no longer needed. |
| |
| \item There have been small fixes to the rendering of help, |
| e.g.\sspace{}\code{\\command} is now rendered verbatim |
| (so e.g.\sspace{}\code{--} is not interpreted, \PR{14045}). |
| |
| Also, there are many small changes to help files where the new |
| converters were not rendering them in the same way as before. |
| |
| \item \code{available.packages()} would fail when run on a |
| repository with no packages meeting the filtering conditions. |
| (\PR{14042}) |
| |
| \item \code{rep(x, times, each = 2)} gave invalid results when the |
| \code{times} argument was a vector longer than \code{x}. |
| Reported by Bill Dunlap. |
| |
| \item An error when \code{unloadNamespace()} attempted to run the |
| \code{.onUnload()} function gave an error in the reporting |
| function and so was not reported properly. |
| |
| \item Text help rendering did not handle very long input lines |
| properly. |
| |
| \item \code{promptMethods()} generated signature documentation |
| improperly. |
| |
| \item \code{pgamma(x, a, lower.tail=FALSE)} and |
| \code{qgamma(\dots)} are now considerably more accurate in some |
| regions for very small \code{a}. \code{qgamma()} now correctly |
| returns \code{0} instead of \code{NaN} in similar extreme cases, |
| and \code{qgamma()} no longer warns in the case of small |
| \code{a}, see (\PR{12324}). |
| |
| \item \code{unname()} now also removes names from a zero length vector. |
| |
| \item Printing results from \code{ls.str()} no longer evaluates |
| unevaluated calls. |
| |
| \item \code{complete.cases()} failed on a 0-column data frame |
| argument. (Underlies \PR{14066}.) |
| |
| It could return nonsensical results if no input determined the |
| number of cases (seen in the no-segfault tests). |
| |
| \item An error in \code{nls()} with a long formula could cause a |
| segfault. (\PR{14059}) |
| |
| \item \code{qchisq(p, df, ncp, lower.tail = FALSE)} with |
| \code{ncp >= 80} was inaccurate for small \code{p} (as the help page |
| said): it is now less inaccurate. (In part, |
| \PR{13999}.) |
| |
| For \code{ncp} less than but close to 80, \code{pchisq()} and |
| \code{qchisq()} are more accurate for probabilities very close |
| to 1 (a series expansion was truncated slightly too early). |
| |
| \code{pchisq(x, df, ncp)} can no longer return values just larger |
| than one for large values of \code{ncp}. |
| |
| \item \code{intToUtf8()} could fail when asked to produce 10Mb or more |
| strings, something it was never intended to do: unfortunately |
| Windows crashed \R (other OSes reported a lack of resources). |
| (\PR{14068}) |
| |
| \item \code{chisq.test()} could fail when given argument |
| \code{x} or \code{y} which deparsed to more than one line. |
| (Reported by Laurent Gauthier.) |
| |
| \item S4 methods are uncached whenever the namespace containing |
| them is unloaded (by \code{unloadNamespace()} as well as by |
| \code{detach(unload = TRUE))}. |
| |
| \item The internal record-keeping by |
| \code{dyn.load}/\code{dyn.unload} was incomplete, which could |
| crash \R if a DLL that registered \code{.External} routines had |
| earlier been unloaded. |
| |
| \item \code{bessel[JY](x, nu)} with \code{nu} a negative integer (a |
| singular case) is now correct, analogously to \code{besselI()}, |
| see \PR{13556}. |
| |
| \item \code{tools::file_path_as_absolute()} doubled the file |
| separator when applied to a file such as \file{"/vmunix"} or (on |
| Windows) \file{"d:/afile"} in a directory for which |
| \code{getwd()} would return a path with a trailing separator |
| (largely cosmetic, as reasonable file systems handle such a path |
| correctly). (Perhaps what was meant by \PR{14078}.) |
| |
| \item \code{unsplit(drop = TRUE)} applied to a data frame failed |
| to pass \code{drop} to the computation of row names. (\PR{14084}) |
| |
| \item The \code{"difftime"} method of \code{mean()} ignored its |
| \code{na.rm} argument. |
| |
| \item \code{tcltk::tk_select.list()} is now more likely to remove the |
| widget immediately after selection is complete. |
| |
| \item Adding/subtracting a \code{"difftime"} object to/from a |
| \code{"POSIXt"} or \code{"Date"} object works again (it was |
| broken by the addition of \code{Ops.difftime}). |
| |
| \item Conversion to latex of an Rd file with no aliases failed. |
| |
| \item \code{wilcox.test(conf.int=TRUE)} has achieved.level |
| corrected and, for \code{exact=FALSE}, now returns a |
| \code{estimate} component which does not depend on the |
| alternative used. |
| |
| \item \code{help.search()} failed when the package argument was |
| specified. (\PR{14113}) |
| |
| \item \code{switch(EXPR = "A")} now returns \code{NULL}, as does |
| \code{switch(1)} (which used to signal an error). |
| } |
| } |
| } |
| |
| |
| \section{\Rlogo CHANGES IN R VERSION 2.10.0}{ |
| \subsection{SIGNIFICANT USER-VISIBLE CHANGES}{ |
| \itemize{ |
| \item Package help is now converted from \code{Rd} by the \R-based |
| converters that were first introduced in 2.9.0. This means |
| |
| \itemize{ |
| \item Packages that were installed by R-devel after 2009-08-09 |
| should not be used with earlier versions of \R, and most |
| aspects of package help (including the runnable examples) |
| will be missing if they are so used. |
| |
| \item Text, HTML and latex help and examples for packages |
| installed under the new system are converted on-demand from |
| stored parsed Rd files. (Conversions stored in packages |
| installed under \R < 2.10.0 are used if no parsed Rd files |
| are found. It is recommended that such packages be |
| re-installed.) |
| } |
| |
| \item HTML help is now generated dynamically using an HTTP server |
| running in the \R process and listening on the loopback |
| interface. |
| |
| \itemize{ |
| \item Those worried about security implications of such |
| a server can disable it by setting the environment variable |
| \env{R_DISABLE_HTTPD} to a non-empty value. This disables |
| \code{help.start()} and HTML help (so text help is shown |
| instead). |
| |
| \item The Java/Javascript search engine has been replaced by an |
| HTML interface to \code{help.search()}. \code{help.start()} no |
| longer has an argument \code{searchEngine} as it is no longer |
| needed. |
| |
| \item The HTML help can now locate cross-references of the form |
| \code{\\link[pkg]\{foo\}} and \code{\\link[pkg:foo]\{bar\}} |
| where \code{foo} is an alias in the package, rather than the |
| documented (basename of a) filename (since the documentation |
| has been much ignored). |
| } |
| } |
| } |
| \subsection{NEW FEATURES}{ |
| \itemize{ |
| \item \code{polygon()}, \code{pdf()} and \code{postscript()} now |
| have an argument \code{fillOddEven} (default \code{FALSE}), |
| which controls the mode used for polygon fills of |
| self-intersecting shapes. |
| |
| \item New \code{debugonce()} function; further, |
| \code{getOption("deparse.max.lines")} is now observed when |
| debugging, from a code suggestion by John Brzustowski. |
| (\PR{13647}/8) |
| |
| \item \code{plot()} methods for \code{"stepfun"} and hence |
| \code{"ecdf"} no longer plot points by default for \code{n >= 1000}. |
| |
| \item \code{[g]sub(perl=TRUE)} now also supports \code{"\\E"} |
| in order to \strong{end} \code{"\\U"} and \code{"\\L"} case changes, |
| thanks to a patch from Bill Dunlap. |
| |
| \item \code{factor()}, \code{levels()<-}, etc, now ensure that |
| the resulting factor levels are unique (as was always the implied |
| intention). Factors with duplicated levels are still |
| constructible by low-level means, but are now declared illegal. |
| |
| \item New \code{print()} (S3) method for class \code{"function"}, |
| also used for auto-printing. Further, \code{.Primitive} |
| functions now print and auto-print identically. The new method |
| is based on code suggestions by Romain François. |
| |
| \item The \code{print()} and \code{toLatex()} methods for class |
| \code{"sessionInfo"} now show the locale in a nicer format and |
| have arguments to suppress locale information. |
| |
| \item In addition to previously only \code{round()}, there are |
| other \code{Math} group (S3) methods for \code{"difftime"}, |
| such as \code{floor()}, \code{signif()}, \code{abs()}, etc. |
| |
| \item For completeness, \code{old.packages()} and |
| \code{available.packages()} allow arguments \code{type} to be |
| specified (you could always specify arguments \code{available} |
| or \code{contriburl}). |
| |
| \item \code{available.packages()} by default only returns |
| information on the latest versions of packages whose version |
| requirements are satisfied by the currently running \R. |
| |
| \item \code{tools::write_PACKAGES()} has a new argument |
| \code{latestOnly}, which defaults to \code{TRUE} when only the |
| latest versions in the repository will be listed in the index. |
| |
| \item \code{getOption()} has a new argument \code{default} that |
| is returned if the specified option is not set. This simplifies |
| querying a value and checking whether it is \code{NULL} or not. |
| |
| \item \code{parse()} now warns if the requested encoding is not supported. |
| |
| \item The \code{"table"} method of \code{as.data.frame()} gains a |
| \code{stringsAsFactors} argument to allow the classifying |
| factors to be returned as character vectors rather than the |
| default factor type. |
| |
| \item If \code{model.frame.default()} encounters a character |
| variable where \code{xlev} indicates a factor, it now converts |
| the variable to a factor (with a warning). |
| |
| \item \code{curve()} now returns a list containing the points that |
| w§ere drawn. |
| |
| \item \code{spineplot()} now accepts \code{axes = FALSE}, for |
| consistency with other functions called by \code{plot.factor()}. |
| |
| \item The Kendall and Spearman methods of \code{cor.test()} can |
| optionally use continuity correction when not computing exact |
| p-values. (The Kendall case is the wish of \PR{13691}.) |
| |
| \item \R now keeps track of line numbers during execution for code |
| sourced with \code{options(keep.source = TRUE)}. The source |
| reference is displayed by debugging functions such as |
| \code{traceback()}, \code{browser()}, \code{recover()}, and |
| \code{dump.frames()}, and is stored as an attribute on each |
| element returned by \code{sys.calls()}. |
| |
| \item More functions now have an implicit (S4) generic definition. |
| |
| \item \code{quantile.default()} now disallows factors (wish of |
| \PR{13631}) and its help |
| documents what numeric-like properties its input need to have to |
| work correctly. |
| |
| \item \code{weighted.mean()} is now generic and has \code{"Date"}, |
| \code{"POSIXct"} and \code{"POSIXlt"} methods. |
| |
| \item Naming subscripts (e.g., \code{x[i=1, j=2]}) in |
| \code{data.frame} methods for \code{[} and \code{[[} now gives a |
| warning. (Names are ignored in the default method, but could |
| have odd semantics for other methods, and do for the data.frame |
| ones.) |
| |
| \item \code{as.data.frame()} has an \code{"aovproj"} method. |
| (Wish of \PR{13505}) |
| |
| \item \code{as.character(x)} for numeric \code{x} no longer |
| produces strings such as \code{"0.30"}, i.e., with trailing |
| zeros. This change also renders levels construction in |
| \code{factor()} more consistent. |
| |
| \item \code{codocClasses()}, which checks consistency of the |
| documentation of S4 class slots, now does so in considerably more |
| cases. The documentation of inherited slots (from superclasses) |
| is now optional. This affects \command{R CMD check <pkg>} when |
| the package defines S4 classes. |
| |
| \item \code{codoc()} now also checks S4 methods for code/documentation |
| mismatches. |
| |
| \item \code{for()}, \code{while()}, and \code{repeat()} loops now |
| always return NULL as their (invisible) value. This change was |
| needed to address a reference counting bug without creating |
| performance penalties for some common use cases. |
| |
| \item The \code{print()} method for \code{ls.str()} results now |
| obeys an optional \code{digits} argument. |
| |
| \item The \code{method} argument of \code{glm()} now allows |
| user-contributed methods. |
| |
| \item More general \code{reorder.default()} replaces functionality of |
| \code{reorder.factor()} and \code{reorder.character()}. |
| |
| \item The function \code{aspell()} has been added to provide an |
| interface to the \command{Aspell} spell-checker. |
| |
| \item Filters \code{RdTextFilter()} and \code{SweaveTeXFilter()} |
| have been added to the tools package to provide support for |
| \code{aspell()} or other spell checkers. |
| |
| \item \code{xtabs()} with the new argument \code{sparse = TRUE} |
| now returns a sparse Matrix, using package \CRANpkg{Matrix}. |
| |
| \item \code{contr.sum()} etc gain an argument \code{sparse} |
| which allows sparse matrices to be returned. |
| |
| \code{contrasts()} also gains a \code{sparse} argument which it |
| passes to the actual contrast function if that has a formal |
| argument \code{sparse}. |
| |
| \code{contrasts(f, .) <- val} now also works when \code{val} |
| is a sparse Matrix. It is planned that \code{model.matrix()} |
| will work with such factors \code{f} in the future. |
| |
| \item \code{readNEWS()} will recognize a UTF-8 byte-order mark |
| (BOM) in the \file{NEWS} file. However, it is safer to use only |
| ASCII code there because not all editors recognize BOMs. |
| |
| \item New utility function \code{inheritedSlotNames()} for S4 |
| class programming. |
| |
| \item \code{tabulate()} now allows NAs to pass through (and be ignored). |
| |
| \item If \code{debug()} is called on an S3 generic function then |
| all methods are debugged as well. |
| |
| \item Outlier symbols drawn by \code{boxplot()} now obey the |
| \code{outlwd} argument. Reported by Jurgen Kluge. |
| |
| \item \code{svd(x)} and \code{eigen(x)} now behave analogously to |
| \code{qr(x)} in accepting logical matrices \code{x}. |
| |
| \item File \file{NEWS} is now in UTF-8, and has a BOM (often |
| invisible) on the first line, and \command{Emacs} local variables |
| set for UTF-8 at the end. \code{RShowDoc("NEWS")} should display |
| this correctly, given suitable fonts. |
| |
| \item \code{terms.formula(simplify = TRUE)} now does not deparse |
| the LHS and so preserves non-standard responses such as \code{`a: |
| b`} (requested by Sundar Dorai-Raj). |
| |
| \item New function \code{news()} for building and querying \R or |
| package news information. |
| |
| \item \code{z^n} for integer \code{n} and complex \code{z} is more |
| accurate now if \code{|n| <= 65536}. |
| |
| \item \code{factor(NULL)} now returns the same as |
| \code{factor(character(0))} instead of an error, and |
| \code{table(NULL)} consequently does analogously. |
| |
| \item \code{as.data.frame.vector()} (and its copies) is slightly faster |
| by avoiding a copy if there are no names (following a |
| suggestion of Tim Hesterberg). |
| |
| \item \code{writeLines()}, \code{writeBin()} and |
| \code{writeChar()} have a new argument \code{useBytes}. If |
| false, character strings with marked encodings are translated to |
| the current locale (as before) but if true they are written |
| byte-by-byte. |
| |
| \item \code{iconv()} has a new argument \code{mark} which can be |
| used (by experts) to suppress the declaration of encodings. |
| |
| \item \file{DESCRIPTION} file's \code{LinkingTo} specs are now |
| recognized as installation dependencies, and included in package |
| management computations. |
| |
| \item Standardized \file{DESCRIPTION} file \code{License} specs |
| are now available for package management computations. |
| |
| \item \code{"\\uxxxx"} and \code{"\\Uxxxxxxxx"} escapes can now be |
| parsed to a UTF-8 encoded string even in non-UTF-8 locales (this |
| has been implemented on Windows since \R 2.7.0). The semantics |
| have been changed slightly: a string containing such escapes is |
| always stored in UTF-8 (and hence is suitable for portably |
| including Unicode text in packages). |
| |
| \item New \code{as.raw()} method for \code{"tclObj"} objects (wish |
| of \PR{13758}). |
| |
| \item \code{Rd.sty} now makes a better job of setting email addresses, |
| including using a monospaced font. |
| |
| \item \code{textConnection()} gains an \code{encoding} argument |
| to determine how input strings with marked encodings will be |
| handled. |
| |
| \item \command{R CMD Rd2pdf} is available as a shortcut for |
| \command{R CMD Rd2dvi --pdf}. |
| |
| \item \command{R CMD check} now checks links where a package is |
| specified (\code{\\link[pkg]\{file\}} or |
| \code{\\link[pkg:file]\{topic\}}), if the package is available. |
| It notes if the package is not available, as in many cases this |
| is an error in the link. |
| |
| \item \code{identical()} gains three logical arguments, which |
| allow for even more differentiation, notably \code{-0} and |
| \code{0}. |
| |
| \item \code{legend()} now can specify the \code{border} color of |
| filled boxes, thanks to a patch from Frederic Schutz. |
| |
| \item Indexing with a vector index to \code{[[ ]]} has now been |
| extended to all recursive types. |
| |
| \item Pairlists may now be assigned as elements of lists. (Lists |
| could always be created with pairlist elements, but \code{[[<-} |
| didn't support assigning them.) |
| |
| \item The parser now supports C-preprocessor-like \code{#line} |
| directives, so error messages and source references may refer to |
| the original file rather than an intermediate one. |
| |
| \item New functions \code{findLineNum()} and |
| \code{setBreakpoint()} work with the source references to find |
| the location of source lines and set breakpoints (using |
| \code{trace()}) at those lines. |
| |
| \item Namespace importing is more careful about warning on masked |
| generics, thanks to a patch by Yohan Chalabi. |
| |
| \item \code{detach()} now has an argument \code{character.only} |
| with the same meaning as for \code{library()} or |
| \code{require()}. |
| |
| \item \code{available.packages()} gains a \code{filters} |
| argument for specifying the filtering operations performed on the |
| packages found in the repositories. A new built-in |
| \code{"license/FOSS"} filter only retains packages for which |
| installation can proceed solely based on packages which can be |
| verified as Free or Open Source Software (FOSS) employing the |
| available license specifications. |
| |
| \item In registering an S3 class by a call to |
| \code{setOldClass()}, the data part (e.g., the object type) |
| required for the class can be included as one of the superclasses |
| in the Classes argument. |
| |
| \item The argument \code{f} to \code{showMethods()} can be an |
| expression evaluating to a generic function, allowing methods to |
| be shown for non-exported generics and other nonstandard cases. |
| |
| \item \code{sprintf()} now supports \code{\%o} for octal |
| conversions. |
| |
| \item New function \code{Sys.readlink()} for information about symbolic |
| links, including if a file is a symbolic link. |
| |
| \item Package \pkg{tools} has new functions |
| \code{checkRdaFiles()} and \code{resaveRdaFiles()} to report on |
| the format of \file{.rda}/\file{.RData} data files, and to |
| re-save them in a different compressed format, including choosing |
| the most compact format available. |
| |
| A new \command{INSTALL} option, \option{--resave-data}, makes use |
| of this. |
| |
| \item File \file{~/.R/config} is used in preference to |
| \file{~/.Rconfig}, and these are now documented in \sQuote{R |
| Installation and Administration}. |
| |
| \item Logic operations with complex numbers now work, as they were always |
| documented to, and as in S. |
| |
| \item \code{arrows()} and \code{segments()} allow one of \code{x1} |
| or \code{y1} to be omitted to simplify the specification of |
| vertical or horizontal lines (suggestion of Tim Hesterberg). |
| |
| \item \code{approxfun()} is faster by avoiding repeated \code{NA} |
| checks (diagnosis and patch by Karline Soetaert & Thomas |
| Petzoldt). |
| |
| \item There are the beginnings of a Nynorsk translation by Karl Ove |
| Hufthammer. |
| |
| \item \code{stripchart()} allows \code{par} \code{bg} to be |
| passed in for the background colour for \code{pch = 21} (wish of |
| \PR{13984}). |
| |
| \item New generic function \code{.DollarNames()} to enable class authors |
| to customize completion after the \code{$} extractor. |
| |
| \item \code{load()}, \code{save()}, \code{dput()} and |
| \code{dump()} now open a not-yet-open connection in the |
| appropriate mode (as other functions using connections directly |
| already did). |
| } |
| } |
| \subsection{REGULAR EXPRESSIONS}{ |
| \itemize{ |
| \item A different regular expression engine is used for basic and |
| extended regexps and is also for approximate matching. This is |
| based on the TRE library of Ville Laurikari, a modified copy of |
| which is included in the \R sources. |
| |
| This is often faster, especially in a MBCS locale. |
| |
| Some known differences are that it is less tolerant of invalid |
| inputs in MBCS locales, and in its interpretation of undefined |
| (extended) regexps such as \code{"^*"}. Also, the interpretation of |
| ranges such as \code{[W-z]} in caseless matching is no longer to map |
| the range to lower case. |
| |
| This engine may in future be used in \sQuote{literal} mode for |
| \code{fixed = TRUE}, and there is a compile-time option in |
| \code{src/main/grep.c} to do so. |
| |
| \item The use of repeated boundary regexps in \code{gsub()} and |
| \code{gregexpr()} as warned about in the help page does not work |
| in this engine (it did in the previous one since 2005). |
| |
| \item Extended (and basic) regexps now support same set of options |
| as for \code{fixed = TRUE} and \code{perl = TRUE}, including |
| \code{useBytes} and support for UTF-8-encoded strings in |
| non-UTF-8 locales. |
| |
| \item \code{agrep()} now has full support for MBCS locales with a modest |
| speed penalty. This enables \code{help.search()} to use approximate |
| matching character-wise rather than byte-wise. |
| |
| \item \code{[g]sub} use a single-pass algorithm instead of |
| matching twice and so is usually faster. |
| |
| \item The \code{perl = TRUE} versions now work correctly in a |
| non-UTF-8 MBCS locale, by translating the inputs to UTF-8. |
| |
| \item \code{useBytes = TRUE} now inhibits the translation of inputs with |
| marked encodings. |
| |
| \item \code{strsplit()} gains a \code{useBytes} argument. |
| |
| \item The algorithm used by \code{strsplit()} has been reordered |
| to batch by elements of \code{split}: this can be much faster for |
| \code{fixed = FALSE} (as multiple compilation of regexps is avoided). |
| |
| \item The help pages, including \code{?regexp}, have been updated |
| and should be consulted for details of the new implementations. |
| } |
| } |
| \subsection{HELP & Rd FILE CHANGES}{ |
| \itemize{ |
| \item A new dynamic HTML help system is used by default, and may be |
| controlled using \code{tools::startDynamicHelp()}. With this enabled, |
| HTML help pages will be generated on request, resolving links |
| by searching through the current \code{.libPaths()}. The user |
| may set options(\code{"help.ports"}) to control which IP port is used |
| by the server. |
| |
| \item \code{help.start()} no longer sets \code{options(htmlhelp = |
| TRUE)} (it used to on Unix but not on Windows). Nor does it on |
| Unix reset the \code{"browser"} option if given an argument of |
| that name. |
| |
| Arguments \code{update} and \code{remote} are now available |
| on all platforms: the default is \code{update = FALSE} since the |
| http server will update the package index at first use. |
| |
| \item \code{help()} has a new argument \code{help_type} (with |
| default set by the option of that name) to supersede arguments |
| \code{offline}, \code{htmlhelp} and \code{chmhelp} |
| (although for now they still work if \code{help_type} is |
| unset). There is a new type, \code{"PDF"} to allow offline PDF |
| (rather than PostScript). |
| |
| A function \code{offline_help_helper()} will be used if this exists |
| in the workspace or further down the search path, otherwise |
| the function of that name in the \pkg{utils} namespace is used. |
| |
| \item Plain text help is now used as the fallback for HTML help (as |
| it always was for Compiled HTML help on Windows). |
| |
| \item It is possible to ask for static HTML pages to be prebuilt |
| \emph{via} the configure option \option{--enable-prebuilt-html}. This |
| may be useful for those who wish to make HTML help available |
| outside R, e.g.\sspace{}on a local web site. |
| |
| \item An experimental tag \code{\\Sexpr} has been added to Rd |
| files, to evaluate expressions at build, install, or render time. |
| Currently install time and render time evaluation are supported. |
| |
| \item Tags \code{\\if}, \code{\\ifelse} and \code{\\out} have been |
| added to allow format-specific (or more general, using |
| \code{\\Sexpr}) conditional text in man pages. |
| |
| \item The \code{parse_Rd()} parser has been made more tolerant of coding |
| errors in Rd files: now all syntax errors are reported as |
| warnings, and an attempt is made to continue parsing. |
| |
| \item \code{parse_Rd()} now has an argument \code{fragment} |
| (default \code{FALSE}) to accept small fragments of Rd files (so |
| that \code{\\Sexpr} can output Rd code which is then parsed). |
| |
| \item \code{parse_Rd()} now always converts its input to UTF-8. |
| The \code{Rd2*} rendering functions have a new argument, |
| \code{outputEncoding}, which controls how their output is |
| encoded. |
| |
| \item \code{parse_Rd()} no longer includes the newline as part of |
| a \code{"\%"}-style comment. |
| |
| \item There have been various bug fixes and code reorganization in |
| the Rd renderers \code{Rd2HTML}, \code{Rd2latex}, \code{Rd2txt}, |
| and \code{Rd2ex}. |
| |
| All example files are now created with either ASCII or UTF-8 |
| encoding, and the encoding is only marked in the file if there |
| is any non-UTF-8 code (previously it was marked if the help |
| file had non-ASCII contents, possibly in other sections). |
| |
| \item \code{print.Rd()} now adds necessary escape characters so that |
| printing and re-parsing an Rd object should produce an |
| equivalent object. |
| |
| \item \code{parse_Rd()} was incorrectly handling multiple backslashes in |
| \R code strings, converting 4n+3 backslashes to 2n+1 instead |
| of 2n+2. |
| |
| \item \code{parse_Rd()} now recognizes the \code{\\var} tag within |
| a quoted string in \R-like text. |
| |
| \item \code{parse_Rd()} now treats the argument of |
| \code{\\command} as LaTeX-like, rather than verbatim. |
| } |
| } |
| \subsection{COMPRESSION}{ |
| \itemize{ |
| \item New function \code{untar()} to list or unpack tar archives, |
| possibly compressed. This uses either an external \command{tar} |
| command or an internal implementation. |
| |
| \item New function \code{tar()} to create (possibly compressed) |
| tar archives. |
| |
| \item New functions \code{memCompress()} and |
| \code{memDecompress()} for in-memory compression and |
| decompression. |
| |
| \item \code{bzfile()} has a \code{compress} argument to select |
| the amount of effort put into compression when writing. |
| |
| \item New function \code{xzfile()} for use with |
| \command{xz}-compressed files. (This can also read files |
| compressed by some versions of \command{lzma}.) |
| |
| \item \code{gzfile()} looks at the file header and so can now also |
| read \command{bzip2}-ed files and \command{xz}-compressed files. |
| |
| \item There are the new options of \code{save(compress = "bzip2")} |
| and \code{"xz"} to use \command{bzip2} or \command{xz} |
| compression (which will be slower, but can give substantially |
| smaller files). Argument \code{compression_level} gives finer |
| control over the space/time tradeoffs. |
| |
| \code{load()} can read such saves (but only as from this version of \R). |
| |
| \item \command{R CMD INSTALL}/\command{check} and |
| \code{tools::writePACKAGES} accept a wider range of compressed |
| tar archives. Precisely how wide depends on the capabilities of |
| the host system's \command{tar} command: they almost always |
| include \command{.tar.bz2} archives, and with modern versions of |
| \command{tar} other forms of compression such as \command{lzma} |
| and \command{xz}, and arbitrary extensions. |
| |
| \item \command{R CMD INSTALL} has a new option |
| \option{--data-compress} to control the compression used when |
| lazy-loading data. New possibilities are |
| \option{--data-compress=bzip2} which will give ca 15\% better |
| compression at the expense of slower installation times, and |
| \option{--data-compress=xz}, often giving even better compression |
| on large datasets at the expense of much longer installation |
| times. (The latter is used for the recommended packages: it is |
| particularly effective for \CRANpkg{survival}.) |
| |
| \item \code{file()} for open = \code{""}, \code{"r"} or |
| \code{"rt"} will automagically detect compressed files (from |
| \command{gzip}, \command{bzip2} or \command{xz}). This means |
| that compressed files can be specified by file name (rather than |
| \emph{via} a \code{gzfile()} connection) to \code{read.table()}, |
| \code{readlines()}, \code{scan()} and so on. |
| |
| \item \code{data()} can handle compressed text files with extensions |
| \file{.\{txt,tab,csv\}.\{gz,bz2,xz\}} . |
| } |
| } |
| \subsection{DEPRECATED & DEFUNCT}{ |
| \itemize{ |
| \item \code{png(type="cairo1")} is defunct: the value is no longer |
| recognized. |
| |
| \item \code{tools::Rd_parse()} is defunct (as this version of \R |
| uses only Rd version 2). |
| |
| \item Use of file \file{~/.Rconf} (which was deprecated in favour |
| of \file{~/.Rconfig} in 2004) has finally been removed. |
| |
| \item Bundles of packages are deprecated. See \sQuote{Writing R |
| Extensions} for the steps needed to unbundle a bundle. |
| |
| \item \code{help()} arguments \code{offline}, \code{htmlhelp} and |
| \code{chmhelp} are deprecated in favour of \code{help_type}. |
| |
| \item \code{clearNames()} (in package \pkg{stats}) is deprecated |
| for \code{unname()}. |
| |
| \item Basic regular expressions (\code{extended = FALSE}) are |
| deprecated in \code{strsplit}, \code{grep} and friends. There is |
| a precise POSIX standard for them, but it is not what recent RE |
| engines implement, and it seems that in almost all cases package |
| authors intended \code{fixed = TRUE} when using \code{extended = |
| FALSE}. |
| |
| \item \code{methods::trySilent()} is deprecated in favour of |
| \code{try(silent=TRUE)} or -- more efficiently and flexibly -- |
| something like \code{tryCatch(error = function(e) e)}. |
| |
| \item \code{index.search()} is deprecated: there are no longer |
| directories of types other than \code{help}. |
| } |
| } |
| \subsection{INSTALLATION}{ |
| \itemize{ |
| \item cairo >= 1.2 is now required (1.2.0 was released in July 2006) |
| for cairo-based graphics devices (which remain optional). |
| |
| \item A suitable \code{iconv()} is now required: support for |
| configure option \option{--without-iconv} has been withdrawn (it |
| was deprecated in \R 2.5.0). |
| |
| \item Perl is no longer \sQuote{essential}. \R can be built |
| without it, but scripts \command{R CMD build}, \command{check}, |
| \command{Rprof} and \command{Sd2d} currently require it. |
| |
| \item A system \command{glob} function is now essential (a working |
| \code{Sys.glob()} has been assumed since \R 2.9.0 at least). |
| |
| \item C99 support for MBCS is now required, and configure option |
| \option{--disable-mbcs} has been withdrawn. |
| |
| \item Having a version of \command{tar} capable of automagically |
| detecting compressed archives is useful for |
| \code{utils::untar()}, and so \command{gtar} (a common name for |
| GNU \command{tar}) is preferred to \command{tar}: set environment |
| variable \env{TAR} to specify a particular \command{tar} command. |
| } |
| } |
| \subsection{INTERNATIONALIZATION}{ |
| \itemize{ |
| \item There is some makefile support for adding/updating translations |
| in packages: see \code{po/README} and \sQuote{Writing R Extensions}. |
| |
| There is support for the use of \code{dngettext} for C-level |
| translations in packages: see \sQuote{Writing R Extensions}. |
| } |
| } |
| \subsection{BUG FIXES}{ |
| \itemize{ |
| \item Assigning an extra 0-length column to a data frame by |
| \code{DF[, "foo"] <- value} now works in most cases (by filling |
| with \code{NA}s) or fails. (It used to give a corrupt data |
| frame.) |
| |
| \item \code{validObject()} avoids an error during evaluation in the case |
| of various incorrect slot definitions. |
| |
| \item \code{n:m} now returns a result of type \code{"integer"} in |
| a few more boundary cases. |
| |
| \item The \code{zap.ind} argument to \code{printCoefmat()} did |
| not usually work as other code attempted to ensure that non-zero |
| values had a non-zero representation. |
| |
| \item \code{printCoefmat()} formatted groups of columns together, |
| not just the \code{cs.ind} group but also the \code{zap.ind} |
| group and a residual group. It now formats all columns except |
| the \code{cs.ind} group separately (and zaps the \code{zap.ind} |
| group column-by-column). The main effect will be see in the |
| output from \code{print.anova()}, as this grouped SS-like columns |
| in the \code{zap.ind} group. |
| |
| \item \code{R_ReplDLLinit()} initializes the top-level jump so |
| that some embedded applications on Windows no longer crash on |
| error. |
| |
| \item \code{identical()} failed to take the encoding of character |
| strings into account, so identical byte patterns are not |
| necessarily identical strings, and similarly Latin-1 and UTF-8 |
| versions of the same string differ in byte pattern. |
| |
| \item \code{methods(f)} used to warn unnecessarily for an S4 |
| generic \code{f} which had been created based on an existing S3 |
| generic. |
| |
| \item The check for consistent ordering of superclasses was not |
| ignoring all conditional relations (the symptom was usually |
| spurious warnings for classes extending \code{"array"}). |
| |
| \item Trying to assign into a raw vector with an index vector |
| containing \code{NA}s could cause a segfault. Reported by Hervé |
| Pagès. |
| |
| \item \command{Rscript} could segfault if (by user error) its |
| filename argument was missing. Reported by Martin Morgan. |
| |
| \item \code{getAnywhere()} (and functions that use it, including argument |
| completion in the console) did not handle special built-in |
| functions. Reported by Romain Francois. |
| |
| \item \code{order()} was missing a \code{PROTECT()} call and so |
| could segfault when called on character data under certain (rare) |
| circumstances involving marked non-native encodings. |
| |
| \item \code{prettyNum(z, drop0trailing=TRUE)} did not work |
| correctly when \code{z} was a complex vector. Consequently, |
| \code{str(z, \dots)} also did not. (\PR{13985}) |
| |
| \item \command{make distclean} removed too many files in |
| \code{etc/} if builddir = srcdir. |
| |
| \item \command{R CMD} replaced \code{TEXINPUTS} rather than |
| appending to it (as documented and intended). |
| |
| \item \code{help.start()} no longer fails on unix when |
| \code{"browser"} is a function. |
| |
| \item \code{pbeta(x, ..., log.p = TRUE)} is sometimes more accurate, |
| e.g., for very small \code{x}. |
| |
| \item Unserializing a pre-2.8 workspace containing pure ASCII |
| character objects with a Latin-1 or UTF-8 encoding would corrupt |
| the \code{CHARSXP} cache. |
| } |
| } |
| } |
| |
| \section{OLDER NEWS}{ |
| News for \R 2.9.2 patched and earlier can be found in files |
| such as \file{NEWS.2} in the \file{doc} directory. |
| } |