| % -*- 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{\Rlogo CHANGES IN R 3.6.3}{ | 
 |  | 
 |   \subsection{NEW FEATURES}{ | 
 |     \itemize{ | 
 |       \item The included LAPACK has been updated to version 3.9.0 (for | 
 |       the included routines, just bug fixes). | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{BUG FIXES}{ | 
 |     \itemize{ | 
 |       \item Fixed a C level integer overflow in \code{rhyper()}; reported | 
 |       by Benjamin Tyner in \PR{17694}. | 
 |  | 
 |       \item Uses of \code{url(gzcon(.))} needing to extend buffer size | 
 |       have failed (with HTTP/2 servers), reported by Gábor Csárdi. | 
 |  | 
 |       \item \code{predict(loess(..), se=TRUE)} now errors out (instead of | 
 |       seg.faulting etc) for large sample sizes, thanks to a report and | 
 |       patch by Benjamin Tyner in \PR{17121}. | 
 |  | 
 |       \item \code{tools:assertCondition(., "error")} and hence | 
 |       \code{assertError()} no longer return errors twice (invisibly). | 
 |  | 
 |       \item \code{update(form, new)} in the case of a long \code{new} | 
 |       formula sometimes wrongly eliminated the intercept from \code{form}, | 
 |       or (more rarely) added a garbage term (or seg.faulted !); the fix | 
 |       happened by simplifying the C-level logic of \code{terms.formula()}. | 
 |       Reported by Mathias Ambühl in \PR{16326}. | 
 |  | 
 |       \item The error message from \code{stopifnot(.., <error producing call>)} | 
 |       again contains the full \code{"stopifnot(.......)"} call: Its | 
 |       attempted suppression did not work consistently. % & was an ugly hack | 
 |  | 
 |       \item On Windows, \code{download.file(., , "wininet", headers=character())} | 
 |       would fail; reported with patch proposal by Kevin Ushey in \PR{17710}. | 
 |     } | 
 |   } | 
 | } | 
 |  | 
 | \section{\Rlogo CHANGES IN R 3.6.2}{ | 
 |  | 
 |   \subsection{NEW FEATURES}{ | 
 |     \itemize{ | 
 |       \item \code{runmed(x, *)} gains a new option \code{na.action} | 
 |       determining \emph{how} to handle \code{NaN} or \code{NA} in \code{x}. | 
 |  | 
 |       \item \code{dotchart()} gains new options \code{ann}, \code{xaxt}, | 
 |       \code{frame.plot} and \code{log}. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{INSTALLATION on a UNIX-ALIKE}{ | 
 |     \itemize{ | 
 |       \item Detection of the C stack direction has been moved from | 
 |       run-time to \command{configure}: this is safer with LTO builds and | 
 |       allows the detection to be overridden -- see file | 
 |       \file{config.site}. | 
 |  | 
 |       \item Source-code changes enable installation on platforms using | 
 |       \command{gcc -fno-common} (the expected default for | 
 |       \command{gcc 10.x}). | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{C-LEVEL FACILITIES}{ | 
 |     \itemize{ | 
 |       \item \code{installTrChar} (which is nowadays is wrapped by | 
 |       \code{installChar}) is defined in \file{Rinternals.h}.  (Neither | 
 |       are part of the API.) | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{PACKAGE INSTALLATION}{ | 
 |     \itemize{ | 
 |       \item Header \file{Rconfig.h} contains the value of | 
 |       \code{FC_LEN_T} deduced at installation which is used by the | 
 |       prototypes in headers \file{R_ext/BLAS.h} and | 
 |       \file{R_ext/Lapack.h} but to avoid extensive breakage this is | 
 |       only exposed when \code{USE_FC_LEN_T} is defined. | 
 |  | 
 |       If a package's C/C++ calls to BLAS/LAPACK allow for the | 
 |       \sQuote{hidden} arguments used by most Fortran compilers to pass | 
 |       the lengths of Fortran character arguments, define | 
 |       \code{USE_FC_LEN_T} and include \file{Rconfig.h} (possibly | 
 |       \emph{via} \file{R.h}) before including \file{R_ext/BLAS.h} or | 
 |       \file{R_ext/Lapack.h}. | 
 |  | 
 |       \item A package with Fortran source code and perhaps C (but not | 
 |       C++) sources can request for its shared object/DLL to be linked by | 
 |       the Fortran compiler by including a line \code{USE_FC_TO_LINK=} in | 
 |       \file{src/Makevars[.win]} and using \code{$(SHLIB_OPENMP_FFLAGS)} | 
 |       as part of \code{PKG_LIBS}. | 
 |  | 
 |       The known reason for doing so is a package which uses Fortran | 
 |       (only) OpenMP on a platform where the Fortran OpenMP runtime is | 
 |       incompatible with the C one (e.g.\sspace{}\command{gfortran} 9.x | 
 |       with \command{clang}). | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{UTILITIES}{ | 
 |     \itemize{ | 
 |       \item \command{R CMD check} has a new option to mitigate checks | 
 |       leaving files/directories in \file{/tmp}.  See the \sQuote{R | 
 | 	Internals} manual -- this is part of \code{--as-cran}. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{Windows}{ | 
 |     \itemize{ | 
 |       \item The default standard for C++ in package installation is | 
 |       C++11 (as it has been on other platforms where available since \R{} | 
 |       3.6.0: the default toolchain on Windows was defaulting to C++98). | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{DEPRECATED AND DEFUNCT}{ | 
 |     \itemize{ | 
 |       \item Support for specifying C++98 in package installation is | 
 |       deprecated. | 
 |  | 
 |       \item Support in \command{R CMD config} for \samp{F77}, | 
 |       \samp{FCPIFCPLAGS}, \samp{CPP}, \samp{CXXCPP} and \samp{CXX98} and | 
 |       similar is deprecated.  (\samp{CPP} is found from the system | 
 |       \command{make} and may well not be set.) | 
 |  | 
 |       Use \samp{$CC -E} and \samp{$CXX -E} instead of \samp{CPP} and | 
 |       \samp{CXXCPP}. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{BUG FIXES}{ | 
 |     \itemize{ | 
 |       \item \code{runmed(x, *)} when \code{x} contains missing values | 
 |       now works consistently for both \code{algorithm="Stuetzle"} and | 
 |       \code{"Turlach"}, and no longer segfaults for \code{"Turlach"}, as | 
 |       reported by Hilmar Berger. | 
 |  | 
 |       \item \code{apply(diag(3), 2:3, mean)} now gives a helpful error message. | 
 |  | 
 |       \item \code{dgamma(x, shape, log=TRUE)} now longer overflows | 
 |       to \code{Inf} for shape < 1 and very small \code{x}, fixing | 
 |       \PR{17577}, reported by Jonathan Rougier. | 
 |  | 
 |       \item Buffer overflow in building error messages fixed. Reported | 
 |       by Benjamin Tremblay. | 
 |  | 
 |       \item \code{options(str = .)} is correctly initialized at | 
 |       package \pkg{utils} load time, now.  A consequence is that | 
 |       \code{str()} in scripts now is more consistent to interactive use, | 
 |       e.g., when displaying function(**) argument lists. | 
 |  | 
 |       \item \code{as.numeric(<call>)} now gives correct error message. | 
 |  | 
 |       \item Printing \code{ls.str()} no longer wrongly shows | 
 |       \code{"<missing>"} in rare cases. | 
 |  | 
 |       \item Auto-printing S4 objects no longer duplicates the object, | 
 |       for faster speed and reduced memory consumption. Reported by Aaron | 
 |       Lun. | 
 |  | 
 |       \item \code{pchisq(<LRG>, <LRG>, ncp=100)} no longer takes | 
 |       practically forever in some cases.  Hence ditto for corresponding | 
 |       \code{qchisq()} calls. | 
 |  | 
 |       \item \code{x \%\% L} for finite \code{x} no longer returns | 
 |       \code{NaN} when \code{L} is infinite, nor suffers from cancellation | 
 |       for large finite \code{L}, thanks to Long Qu's \PR{17611}. | 
 |  | 
 |       Analogously, \code{x \%/\% L} and \code{L \%/\% x} suffer less from | 
 |       cancellation and return values corresponding to limits for large | 
 |       \code{L}. | 
 |  | 
 |       \item \code{grepl(NA, *)} now returns \code{logical} as documented. | 
 |  | 
 |       \item \code{options(warn=1e11)} is an error now, instead of later | 
 |       leading to C stack overflow because of infinite recursion. | 
 |  | 
 |       \item \code{R_tryCatch} no longer transfers control for all | 
 |       conditions. Reported and patch provided by Lionel Henry in | 
 |       \PR{17617}. | 
 |  | 
 |       \item \code{format(object.size(.), digits=NULL)} now works, fixing | 
 |       \PR{17628} reported by Jonathan Carroll. | 
 |  | 
 |       \item \code{get_all_vars(f, d)} now also works for cases, e.g. where | 
 |       \code{d} contains a matrix.  Reported by Simon Wood in 2009 and patch | 
 |       provided by Ben Bolker in \PR{13624}. | 
 |  | 
 |       Additionally, it now also works when some variables are data frames, | 
 |       fixing \PR{14905}, reported by Patrick Breheny. | 
 |  | 
 |       \item \code{barplot()} could get spacings wrong if there were exactly two | 
 |       bars \PR{15522}.  Patch by Michael Chirico. | 
 |  | 
 |       \item \code{power.t.test()} works in more cases when returning values | 
 |       of n smaller than 2. | 
 |  | 
 |       \item \code{dotchart(*, pch=., groups=.)} now works better.  Reported | 
 |       by Robert and confirmed by Nic Rochette in \PR{16953}. | 
 |  | 
 |       \item \code{canCoerce(obj, cl)} no longer assumes | 
 |       \code{length(class(obj)) == 1}. | 
 |  | 
 |       \item \code{plot.formula(*, subset = *)} now also works in a boundary | 
 |       case reported by Robert Schlicht (TU Dresden). | 
 |  | 
 |       \item \code{readBin()} and \code{writeBin()} of a | 
 |       \code{rawConnection()} now also work in large cases, thanks to a | 
 |       report and proposal by Taeke Harkema in \PR{17665}. | 
 |     } | 
 |   } | 
 | } | 
 |  | 
 | \section{\Rlogo CHANGES IN R 3.6.1}{ | 
 |  | 
 |   \subsection{INSTALLATION on a UNIX-ALIKE}{ | 
 |     \itemize{ | 
 |       \item The default detection of the shell variable \code{libNN} is | 
 |       overridden for derivatives of Debian Linux, some of which have | 
 |       started to have a \file{/usr/lib64} directory. | 
 |       (E.g.\sspace{}Ubuntu 19.04.)  As before, it can be specified in | 
 |       \file{config.site}. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{UTILITIES}{ | 
 |     \itemize{ | 
 |       \item \command{R CMD config} knows the values of \code{AR} and | 
 |       \code{RANLIB}, often set for LTO builds. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{DEPRECATED AND DEFUNCT}{ | 
 |     \itemize{ | 
 |       \item The use of a character vector with \code{.Fortran()} is | 
 |       formally deprecated and gives a non-portability warning.  (It has | 
 |       long been strongly discouraged in \sQuote{Writing R Extensions}.) | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{BUG FIXES}{ | 
 |     \itemize{ | 
 |       \item On Windows, GUI package installation via \code{menuInstallPkgs()} | 
 |       works again, thanks to Len Weil's and Duncan Murdoch's \PR{17556}. | 
 |  | 
 |       \item \command{R CMD check} on \code{data()} fixing \PR{17558} | 
 |       thanks to Duncan Murdoch. | 
 |  | 
 |       \item \code{quasi(*, variance = list(..))} now works more | 
 |       efficiently, and should work in all cases fixing \PR{17560}. | 
 |       Further, \code{quasi(var = mu(1-mu))} and \code{quasi(var = "mu ^ 3")} | 
 |       now work, and \code{quasi(variance = "log(mu)")} now gives a correct | 
 |       error message. | 
 |  | 
 |       \item Creation of lazy loading database during package installation is | 
 |       again robust to Rprofile changing the current working directory | 
 |       (\PR{17559}). | 
 |  | 
 |       \item \code{boxplot(y ~ f, horizontal=TRUE)} now produces correct x- | 
 |       and y-labels. | 
 |  | 
 |       \item \code{rbind.data.frame()} allows to keep \code{<NA>} levels | 
 |       from factor columns (\PR{17562}) via new option \code{factor.exclude}. | 
 |  | 
 |       Additionally, it works in one more case with matrix-columns which | 
 |       had been reported on 2017-01-16 by Krzysztof Banas. | 
 |  | 
 |       \item Correct messaging in C++ pragma checks in \pkg{tools} code for | 
 |       \command{R CMD check}, fixing \PR{17566} thanks to Xavier Robin. | 
 |  | 
 |       \item{print()}ing and auto-printing no longer differs for | 
 |       \code{function}s with a user defined \code{print.function}, thanks to | 
 |       Bill Dunlap's report. | 
 |  | 
 |       \item On Windows, \code{writeClipboard(.., format = <n>)} now | 
 |       does correctly pass \code{format} to the underlying C code, thanks to | 
 |       a bug report (with patch) by Jenny Bryan. | 
 |  | 
 |       \item \code{as.data.frame()} treats 1D arrays the same as vectors, | 
 |       \PR{17570}. | 
 |  | 
 |       \item Improvements in \code{smoothEnds(x, *)} working with | 
 |       \code{NA}s (towards \code{runmed()} working in that case, in the next | 
 |       version of R). | 
 |  | 
 |       \item \code{vcov(glm(<quasi>), dispersion = *)} works correctly | 
 |       again, fixing \PR{17571} thanks to Pavel Krivitsky. | 
 |  | 
 |       \item \command{R CMD INSTALL} of binary packages on Windows now | 
 |       works also with per-directory locking. | 
 |  | 
 |       \item \command{R CMD INSTALL} and \code{install.packages()} on Windows | 
 |       are now more robust against a locked file in an earlier installation | 
 |       of the package to be installed.  The default value of option | 
 |       \code{install.lock} on Windows has been changed to \code{TRUE}. | 
 |  | 
 |       \item On Unix alikes (when \command{readline} is active), only | 
 |       expand tilde (\code{~}) file names starting with a tilde, instead of | 
 |       almost all tildes. | 
 |  | 
 |       \item In R documentation (\file{*.Rd}) files, \samp{\item [..]} is no | 
 |       longer treated specially when rendered in LaTeX and hence pdf, but | 
 |       rather shows the brackets in all cases. | 
 |     } | 
 |   } | 
 | } | 
 |  | 
 | \section{\Rlogo CHANGES IN R 3.6.0}{ | 
 |  | 
 |    \subsection{SIGNIFICANT USER-VISIBLE CHANGES}{ | 
 |      \itemize{ | 
 |        \item Serialization format version 3 becomes the default for | 
 |        serialization and saving of the workspace (\code{save()}, | 
 |        \code{serialize()}, \code{saveRDS()}, \code{compiler::cmpfile()}). | 
 |        Serialized data in format 3 cannot be read by versions of \R prior | 
 |        to version 3.5.0.  Serialization format version 2 is still | 
 |        supported and can be selected by \code{version = 2} in the | 
 |        save/serialization functions.  The default can be changed back for | 
 |        the whole \R session by setting environment variables | 
 |        \env{R_DEFAULT_SAVE_VERSION} and \env{R_DEFAULT_SERIALIZE_VERSION} | 
 |        to \code{2}.  For maximal back-compatibility, files | 
 |        \file{vignette.rds} and \file{partial.rdb} generated by \command{R | 
 | 	 CMD build} are in serialization format version 2, and resave by | 
 |        default produces files in serialization format version 2 (unless | 
 |        the original is already in format version 3). | 
 |  | 
 |        \item The default method for generating from a discrete uniform | 
 |        distribution (used in \code{sample()}, for instance) has been | 
 |        changed.  This addresses the fact, pointed out by Ottoboni and | 
 |        Stark, that the previous method made \code{sample()} noticeably | 
 |        non-uniform on large populations.  See \PR{17494} for a | 
 |        discussion.  The previous method can be requested using | 
 |        \code{RNGkind()} or \code{RNGversion()} if necessary for | 
 |        reproduction of old results.  Thanks to Duncan Murdoch for | 
 |        contributing the patch and Gabe Becker for further assistance. | 
 |  | 
 |        The output of \code{RNGkind()} has been changed to also return the | 
 |        \sQuote{kind} used by \code{sample()}. | 
 |      } | 
 |   } | 
 |  | 
 |    \subsection{NEW FEATURES}{ | 
 |     \itemize{ | 
 |       \item \code{Sys.setFileTime()} has been vectorized so arguments | 
 |       \code{path} and \code{time} of length greater than one are now | 
 |       supported. | 
 |  | 
 |       \item \code{axis()} gets new option \code{gap.axis = NA} for | 
 |       specifying a multiplication factor for the minimal \dQuote{gap} | 
 |       (distance) between axis labels drawn.   Its default is \code{1} | 
 |       for labels \emph{parallel} to the axis, and \code{0.25} for | 
 |       perpendicular ones. | 
 |  | 
 |       Perpendicular labels no longer overlap, fixing bug \PR{17384}. | 
 |  | 
 |       \item The default method of \code{plot()} gains new arguments | 
 |       \code{xgap.axis = NA} and \code{ygap.axis = NA} to be passed to | 
 |       the x-- and y-- \code{axis(.., gap.axis=*)} calls. | 
 |  | 
 |       \item \code{removeSource()} now works not only for functions but | 
 |       also for some language objects. | 
 |  | 
 |       \item \code{as.call()}, \code{rep.int()}, \code{rep_len()} and | 
 |       \code{nchar()} dispatch internally. | 
 |  | 
 |       \item \code{is(object, class2)} looks for \code{class2} in the | 
 |       calling namespace after looking in the namespace of | 
 |       \code{class(object)}. | 
 |  | 
 |       \item \code{extendrange(.., f)} with a length-2 \code{f} now | 
 |       extends separately to the left and the right. | 
 |  | 
 |       \item \code{lengths()} dispatches internally to S4 methods. | 
 |  | 
 |       \item \code{download.file()} on Windows now uses \code{URLdecode()} | 
 |       to determine the file extension, and uses binary transfer | 
 |       (\code{mode = "wb"}) also for file extension \file{.rds}. | 
 |  | 
 |       The help page for \code{download.file()} now contains the same | 
 |       information on all platforms. | 
 |  | 
 |       \item Setting \samp{C} locale for collation \emph{via} environment | 
 |       variables \env{LC_ALL} and \env{LC_COLLATE} and \emph{via} a call | 
 |       to \code{Sys.setlocale()} now takes precedence over environment | 
 |       variable \env{R_ICU_LOCALE}. | 
 |  | 
 |       \item There is a new function, \code{nullfile()}, to give the file | 
 |       name of the null system device (e.g., \file{/dev/null}) on the | 
 |       current platform. % not the null graphics device. | 
 |  | 
 |       \item There are two new options, \code{keep.parse.data} and | 
 |       \code{keep.parse.data.pkgs}, which control whether parse data are | 
 |       included into sources when \code{keep.source} or | 
 |       \code{keep.source.pkgs} is \code{TRUE}.  By default, | 
 |       \code{keep.parse.data.pkgs} is now \code{FALSE}, which changes | 
 |       previous behavior and significantly reduces space and time overhead | 
 |       when sources are kept when installing packages. | 
 |  | 
 |       \item In \code{rapply(x, ..)}, \code{x} can also be | 
 |       \dQuote{list-like} and of length \eqn{\ge 2^{31}}{>= 2^{31}}. | 
 |  | 
 |       \item \code{trimws()} gets new optional \code{whitespace} | 
 |       argument, allowing more extensive definitions of \dQuote{space}, | 
 |       such as including Unicode spaces (as wished in \PR{17431}). | 
 |  | 
 |       \item \code{weighted.mean()} no longer coerces the weights to a | 
 |       double/numeric vector, since \code{sum()} now handles integer | 
 |       overflow. This makes \code{weighted.mean()} more polymorphic and | 
 |       endomorphic, but be aware that the results are no longer | 
 |       guaranteed to be a vector of type \samp{double}. | 
 |  | 
 |       \item When loading namespaces, S3 method registrations which | 
 |       overwrite previous registrations are now noted by default (using | 
 |       \code{packageStartupMessage()}). | 
 |  | 
 |       \item \code{compiler::cmpfile()} gains a \code{version} argument, for | 
 |       use when the output file should be saved in serialization format 2. | 
 |  | 
 |       \item The axis labeling in the default method of \code{pairs()} | 
 |       may now be toggled by new options \code{horOdd} and \code{verOdd}. | 
 |  | 
 |       \item (Not Windows nor macOS.) Package \pkg{tcltk} now supports an | 
 |       environment variable \env{R_DONT_USE_TK} which if set disables Tk | 
 |       initialization.  This is intended for use to circumvent errors in | 
 |       loading the package, e.g.\sspace{}with recent Linux running under | 
 |       an address sanitizer. | 
 |  | 
 |       \item The \code{numeric} method of \code{all.equal()} gets | 
 |       optional arguments \code{countEQ} and \code{formatFUN}.  If | 
 |       \code{countEQ} is true, the mean error is more sensible when many | 
 |       entries are \bold{eq}ual. | 
 |  | 
 |       \item \code{outer(x,y, FUN = "*")} is more efficient using | 
 |       \code{tcrossprod(u,v)} instead of \code{u \%*\% t(v)}. | 
 |  | 
 |       \item \code{vcov(<mlm>)} is more efficient via new optional | 
 |       arguments in \code{summary.mlm()}. | 
 |  | 
 |       \item The default method of \code{summary()} gets an option to | 
 |       choose the \emph{kind} of \code{quantile()}s to use; wish of | 
 |       \PR{17438}. | 
 |  | 
 |       \item Fitting multiple linear models \emph{via} \code{lm()} does | 
 |       work with \emph{matrix} offsets, as suggested in \PR{17407}. | 
 |  | 
 |       \item The new functions \code{mem.maxVSize()} and | 
 |       \code{mem.maxMSize()} allow the maximal size of the vector heap | 
 |       and the maximal number of nodes allowed in the current \command{R} | 
 |       process to be queried and set. | 
 |  | 
 |       \item \code{news()} gains support for \file{NEWS.md} files. | 
 |  | 
 |       \item An effort has been started to have our reference manuals, | 
 |       i.e., all help pages. show platform-independent information (rather | 
 |       than Windows or Unix-alike specifics visible only on that platform). | 
 |       Consequently, the Windows version of \code{X11()} / \code{x11()} | 
 |       got identical formal arguments to the Unix one. | 
 |  | 
 |       \item \code{sessionInfo()$running} has been factored out in a new | 
 |       variable \code{osVersion}. % precomputed at utils namespace load time | 
 |  | 
 |       \item \code{slice.index()} now also works for multi-dimensional | 
 |       margins. | 
 |  | 
 |       \item \code{untar()} used with an external \command{tar} command | 
 |       assumes this supports decompression including \command{xz} and | 
 |       automagically detecting the compression type.  This has been true | 
 |       of all mainstream implementations since 2009 (for GNU | 
 |       \command{tar}, since version 1.22): older implementations are | 
 |       still supported \emph{via} the new argument | 
 |       \code{support_old_tars} whose default is controlled by environment | 
 |       variable \env{R_SUPPORT_OLD_TARS}.  (It looks like NetBSD and | 
 |       OpenBSD have \sQuote{older} \command{tar} commands for this | 
 |       purpose.) | 
 |  | 
 |       \item The new function \code{asplit()} allow splitting an array or | 
 |       matrix by its margins. | 
 |  | 
 |       \item New functions \code{errorCondition()} and | 
 |       \code{warningCondition()} provide a convenient way to create | 
 |       structured error and warning objects. | 
 |  | 
 |       \code{.Deprecated()} now signals a warning of class | 
 |       \code{"deprecatedWarning"}, and \code{.Defunct()} now signals an | 
 |       error of class \code{"defunctError"}. | 
 |  | 
 |       \item Many \sQuote{package not found} errors are now signaled as | 
 |       errors of class \code{"packageNotFoundError"}. | 
 |  | 
 |       \item As an experimental feature, when \code{loadNamespace()} fails | 
 |       because the requested package is not available the error is | 
 |       initially signaled with a \code{retry_loadNamespace} restart | 
 |       available.  This allows a calling handler to try to install the | 
 |       package and continue. | 
 |  | 
 |       \item \code{S3method()} directives in \file{NAMESPACE} can now | 
 |       also be used to perform \emph{delayed} S3 method registration. | 
 |  | 
 |       \item Experimentally, setting environment variable | 
 |       \env{_R_CHECK_LENGTH_1_LOGIC2_} will lead to warnings (or errors | 
 |       if the variable is set to a \sQuote{true} value) when \code{&&} or | 
 |       \code{||} encounter and use arguments of length more than one. | 
 |  | 
 |       \item Added \code{"lines"} and \code{"chars"} coordinate systems | 
 |       to \code{grconvertX()} and \code{grconvertY()}. | 
 |  | 
 |       \item \code{getOption()} is more efficient notably for the rare | 
 |       case when called with two arguments, from several contributors in | 
 |       \PR{17394}. | 
 |  | 
 |       \item In \code{.col(dim)} and \code{.row(dim)}, \code{dim} now may | 
 |       also be an integer-valued \code{"double"}. | 
 |  | 
 |       \item \code{sQuote()} and \code{dQuote()} get an explicit \code{q} | 
 |       argument with obvious default instead of using | 
 |       \code{getOption("fancyQuotes")} implicitly and unconditionally. | 
 |  | 
 |       \item \code{unzip()} can list archives with comments and with | 
 |       spaces in file names even using an external \command{unzip} command. | 
 |  | 
 |       \item Command line completion has a new setting | 
 |       \code{rc.settings(dots = FALSE)} to remove \code{...} from the | 
 |       list of possible function arguments. | 
 |  | 
 |       \item \code{library()} no longer checks packages with compiled | 
 |       code match \samp{R.version$platform}.  \code{loadNamespace()} | 
 |       never has, and increasingly the \sQuote{canonical name} does not | 
 |       reflect the important characteristics of compiled code. | 
 |       %% E.g. 32/64-bit compiler settings | 
 |  | 
 |       \item The primitive functions \code{drop()} and \code{unclass()} | 
 |       now avoid duplicating their data for atomic vectors that are large | 
 |       enough, by returning \code{ALTREP} wrapper objects with adjusted | 
 |       attributes.  \R{}-level assignments to change attributes will also | 
 |       use wrapper objects to avoid duplicating data for larger atomic | 
 |       vectors. \R functions like \code{structure()} and \code{unname()} | 
 |       will therefore not duplicate data in these settings.  Generic | 
 |       vectors as produced by \code{list()} are not yet covered by this | 
 |       optimization but may be in due course. | 
 |  | 
 |       \item In \code{formals()}, \code{envir} becomes an optional | 
 |       argument instead of being hardwired. | 
 |  | 
 |       \item Instead of signalling an error for an invalid S4 object | 
 |       \code{x}, \code{str(x)} now gives a warning and subsequently still | 
 |       shows most parts of \code{x}, e.g., when slots are missing. | 
 |  | 
 |       \item \code{gamma(x)} and \code{lgamma(x)} no longer warn when | 
 |       correctly returning \code{Inf} or underflowing to zero.  This | 
 |       helps maximum likelihood and similar computations. | 
 |  | 
 |       \item \code{convertColor()} is now vectorized, so a lot faster for | 
 |       converting many colours at once.  The new argument | 
 |       \code{vectorized} to \code{colorConverter()} ensures that | 
 |       non-vectorized colour converters still work.  (Thanks to Brodie | 
 |       Gaslam.) | 
 |  | 
 |       \item \code{download.file()} and \code{url()} get new argument | 
 |       \code{headers} for custom HTTP headers, e.g., allowing to perform | 
 |       basic http authentication, thanks to a patch contributed by Gábor | 
 |       Csárdi. | 
 |  | 
 |       \item File-based connection functions \code{file()}, | 
 |       \code{gzfile()}, \code{bzfile()} and \code{xzfile()} now signal an | 
 |       error when used on a directory. | 
 |  | 
 |       \item For \code{approx()}, \code{splinefun()} \emph{etc}, a new | 
 |       setting \code{ties = c("ordered", <fun>)} allows skipping the | 
 |       sorting and still treat ties. | 
 |  | 
 |       \item \code{format(x)} gives a more user friendly error message in | 
 |       the case where no method is defined.  A minimal method is provided | 
 |       in \code{format.default(x)} when \code{isS4(x)} is true. | 
 |  | 
 |       \item \code{which(x)} now also works when \code{x} is a long | 
 |       vector, thanks to Suharto Anggono's \PR{17201}.  \strong{NB}: this | 
 |       may return a double result, breaking the previous guarantee of an | 
 |       integer result. | 
 |  | 
 |       \item \code{seq.default()} is more careful to return an | 
 |       \code{integer} (as opposed to \code{double}) result when its | 
 |       arguments are large and/or classed objects; see comment #9 of | 
 |       Suharto Anggono's \PR{17497}. | 
 |  | 
 |       \item The \code{plot()} method for \code{lm} and \code{glm} fits, | 
 |       \code{plot.lm()}, gains a new option \code{iter.smooth} with a | 
 |       default of \code{0} for binomial fits, no longer down-weighting | 
 |       when smoothing the residuals. | 
 |  | 
 |       \item \code{zip()} passes its list of files \emph{via} standard | 
 |       input to the external command when too long for the command line | 
 |       (on some platforms). | 
 |  | 
 |       \item \code{data()} gains an \code{overwrite} argument. | 
 |  | 
 |       \item \code{t.test()} now also returns the standard error (in | 
 |       list component \code{stderr}). | 
 |  | 
 |       \item \code{model.matrix(*, contrasts.arg = CC)} now warns about | 
 |       invalid \code{contrasts.arg}s. | 
 |  | 
 |       \item Performance of \code{substr()} and \code{substring()} has been | 
 |       improved. | 
 |  | 
 |       \item \code{stopifnot()} has been simplified thanks to Suharto | 
 |       Anggono's proposals to become considerably faster for cheap | 
 |       expressions. | 
 |  | 
 |       \item The default \sQuote{user agent} has been changed when | 
 |       accessing \samp{http://} and \samp{https://} sites using | 
 |       \samp{libcurl}.  (A site was found which caused \samp{libcurl} to | 
 |       infinite-loop with the previous default.) | 
 |  | 
 |       \item \code{sessionInfo()} now also contains \code{RNGkind()} and | 
 |       prints it when it differs from the default; based on a proposal and | 
 |       patch by Gabe Becker in \PR{17535}. | 
 |       Also, \code{RNGversion(getRversion())} works directly. | 
 |  | 
 |       \item \code{library()} and \code{require()} now allow more control | 
 |       over handling search path conflicts when packages are | 
 |       attached. The policy is controlled by the new | 
 |       \code{conflicts.policy} option. | 
 |  | 
 |       \item \code{barplot()} gets a formula method, thanks to a patch | 
 |       proposal by Arni Magnusson in \PR{17521}. | 
 |  | 
 |       \item \code{pmax()} and \code{pmin(x)} now also work for long | 
 |       vectors, thanks to Suharto Anggono's \PR{17533}. | 
 |  | 
 |       \item \code{bxp()} now warns when omitting duplicated arguments. | 
 |  | 
 |       \item New \code{hcl.colors()} function to provide wide range of | 
 |       HCL-based colour palettes with much better perceptual properties | 
 |       than the existing RGB/HSV-based palettes like \code{rainbow()}. | 
 |  | 
 |       Also a new \code{hcl.pals()} function to list available palette | 
 |       names for \code{hcl.colors()}. | 
 |  | 
 |       Contributed by Achim Zeileis. | 
 |  | 
 |       \item The default colours for \code{image()} and | 
 |       \code{filled.contour()} are now based on \code{hcl.colors()}. | 
 |  | 
 |       \item The palette-generating functions \code{rainbow()}, | 
 |       \code{gray.colors()}, etc.\sspace{}get a new \code{rev} argument | 
 |       to facilitate reversing the order of colors. | 
 |  | 
 |       \item New \code{str2lang()} and \code{str2expression()} as streamlined | 
 |       versions of \code{parse(text=., keep.source=FALSE)} allow to abstract | 
 |       typical call constructions, e.g., in \code{formula} manipulations. | 
 |       (Somewhat experimental) % << TO DO | 
 |  | 
 |       \item Add \code{update_PACKAGES()} for incrementally updating a | 
 |       package repository index, instead of rebuilding the index from | 
 |       scratch. Thanks to Gabe Becker in \PR{17544} for the patch, based | 
 |       on part of his \pkg{switchr} package. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{INSTALLATION on a UNIX-ALIKE}{ | 
 |     \itemize{ | 
 |       \item The options selected for the C++ compiler default to the | 
 |       C++11 standard if supported, otherwise to the C++98 standard. | 
 |  | 
 |       \item Visibility macros such as \samp{C_VISIBILITY} can now be | 
 |       user-set (including to empty), e.g.\sspace{}in \file{config.site}. | 
 |  | 
 |       \item Macro \samp{FCLIBS}, which has sometimes been needed on | 
 |       Solaris, has been renamed to \samp{FCLIBS_XTRA}. | 
 |  | 
 |       \item Macro \samp{F77} is always set to the value of \samp{FC}, so | 
 |       the latter should be set to user-select the Fortran compiler for | 
 |       both fixed-form and free-form Fortran.  In particular, | 
 |       \command{gfortran} is now the first choice for \samp{F77}, not | 
 |       \command{f95}. | 
 |  | 
 |       Macros \samp{FFLAGS} and \samp{FCFLAGS} remain distinct to allow | 
 |       for a compiler which needs a flag to select free- or fixed-form | 
 |       Fortran (most use the source-file extension to choose: \file{.f} | 
 |       is fixed-form and \file{.f90} and \file{.f95} are free-form). | 
 |  | 
 |       If only one of them is set, its value is used for both. | 
 |  | 
 |       \item The special-casing of \samp{CFLAGS}, \samp{CXXFLAGS} and | 
 |       \samp{FFLAGS} for Intel compilers on Linux has been removed: we do | 
 |       not have recent experience but the generic defaults now chosen are | 
 |       the same as those previously special-cased for \samp{x86_64}. | 
 |  | 
 |       If necessary, override the defaults on the \command{configure} | 
 |       command line or in file \file{config.site}. | 
 |  | 
 |       \item Long-untested \command{configure} support for HP-UX and very | 
 |       old versions of Linux has been removed. | 
 |  | 
 |       \item \command{configure --with-blas} (without specifying a value) | 
 |       includes OpenBLAS in its search (before ATLAS and a generic | 
 |       BLAS).  This follows recent versions of the \samp{ax_blas} | 
 |       autoconf macro. | 
 |  | 
 |       \item The \command{configure} macro \samp{MAKEINFO} has been | 
 |       updated to \samp{TEXI2ANY}. | 
 |  | 
 |       \item Support for \command{make install-strip} has been enhanced. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{PACKAGE INSTALLATION}{ | 
 |     \itemize{ | 
 |       \item Source package installation is by default \sQuote{staged}: | 
 |       the package is installed into a temporary location under the final | 
 |       library directory and moved into place once the installation is | 
 |       complete.  The benefit is that partially-installed packages are | 
 |       hidden from other \R sessions. | 
 |  | 
 |       The overall default is set by environment variable | 
 |       \env{R_INSTALL_STAGED}.  \command{R CMD INSTALL} has new options | 
 |       \option{--staged-install} and \option{--no-staged-install}, and | 
 |       packages can use the \samp{StagedInstall} field in their | 
 |       \file{DESCRIPTION} file to opt out.  (That opt-out is a temporary | 
 |       measure which may be withdrawn in future.) | 
 |  | 
 |       Staged installation requires either \option{--pkglock} or | 
 |       \option{--lock}, one of which is used by default. | 
 |  | 
 |       \item The interpretation of source code with extension \file{.f} | 
 |       is changing.  Previously this denoted FORTRAN 77 code, but current | 
 |       compilers no longer have a FORTRAN 77 mode and interpret it as | 
 |       \sQuote{fixed-form} Fortran 90 (or later where supported) code. | 
 |       Extensions \file{.f90} and \file{.f95} continue to indicate | 
 |       \sQuote{free-form} Fortran code. | 
 |  | 
 |       Legal FORTRAN 77 code is also legal fixed-form Fortran 9x; however | 
 |       this change legitimizes the use of later features, in particular | 
 |       to replace features marked \sQuote{obsolescent} in Fortran 90 and | 
 |       \sQuote{deleted} in Fortran 2018 which \command{gfortran} 8.x and | 
 |       later warn about. | 
 |  | 
 |       \item Packages containing files in the \file{src} directory with | 
 |       extensions \file{.f90} or \file{.f95} are now linked using the C | 
 |       or C++ compiler rather than the Fortran 9x compiler.  This is | 
 |       consistent with fixed-form Fortran code and allows mixing of C++ | 
 |       and free-form Fortran on most platforms. | 
 |  | 
 |       Consequentially, a package which includes free-form Fortran 9x | 
 |       code which uses OpenMP should include \samp{SHLIB_OPENMP_CFLAGS} | 
 |       (or the \samp{CXXFLAGS} version if they also include C++ code) in | 
 |       \samp{PKG_LIBS} rather than \samp{SHLIB_OPENMP_FCFLAGS} --- | 
 |       fortunately on almost all current platforms they are the same | 
 |       flag. | 
 |  | 
 |       \item Macro \samp{PKG_FFLAGS} will be used for the compilation of | 
 |       both fixed-form and free-form Fortran code unless | 
 |       \samp{PKG_FCFLAGS} is also set (in \file{src/Makevars} or | 
 |       \file{src/Makevars.win}). | 
 |  | 
 |       \item The make macro \samp{F_VISIBILITY} is now preferred for | 
 |       both fixed-form and free-form Fortran, for use in | 
 |       \file{src/Makevars} and similar. | 
 |  | 
 |       \item \command{R CMD INSTALL} gains a new option \option{--strip} | 
 |       which (where supported) strips installed shared object(s): this | 
 |       can also be achieved by setting the environment variable | 
 |       \env{_R_SHLIB_STRIP_} to a true value. | 
 |  | 
 |       The new option \option{--strip-lib} attempts stripping of | 
 |       static and shared libraries installed under \file{lib}. | 
 |  | 
 |       These are most useful on platforms using GNU \code{binutils} (such | 
 |       as Linux) and compiling with \option{-g} flags. | 
 |  | 
 |       \item There is more support for installing UTF-8-encoded packages | 
 |       in a strict Latin-1 locale (and probably for other Latin locales): | 
 |       non-ASCII comments in \R code (and \file{NAMESPACE} files) are | 
 |       worked around better. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{UTILITIES}{ | 
 |     \itemize{ | 
 |       \item \command{R CMD check} now optionally checks makefiles for | 
 |       correct and portable use of the \samp{SHLIB_OPENMP_*FLAGS} macros. | 
 |  | 
 |       \item \command{R CMD check} now evaluates \code{\\Sexpr{}} | 
 |       expressions (including those in macros) before checking the | 
 |       contents of \file{Rd} files and so detects issues both in | 
 |       evaluating the expressions and in the expanded contents. | 
 |  | 
 |       \item \command{R CMD check} now lists missing packages separated | 
 |       by commas and with regular quotes such as to be useful as argument | 
 |       in calling \code{install.packages(c(..))}; from a suggestion by | 
 |       Marcel Ramos. | 
 |  | 
 |       \item \code{tools::Rd2latex()} now uses UTF-8 as its default | 
 |       output encoding. | 
 |  | 
 |       \item \command{R CMD check} now checks line endings of files with | 
 |       extension \file{.hpp} and those under \file{inst/include}.  The | 
 |       check now includes that a non-empty file is terminated with a | 
 |       newline. | 
 |  | 
 |       \command{R CMD build} will correct line endings in such files. | 
 |  | 
 |       \item \command{R CMD check} now tries re-building all vignettes | 
 |       rather than stopping at the first error: whilst doing so it adds | 
 |       \sQuote{bookmarks} to the log.  By default (see the \sQuote{R | 
 |       Internals} manual) it re-builds each vignette in a separate | 
 |       process. | 
 |  | 
 |       It now checks for duplicated vignette titles (also known as | 
 |       \sQuote{index entries}): they are used as hyperlinks on | 
 |       \acronym{CRAN} package pages and so do need to be unique. | 
 |  | 
 |       \item \command{R CMD check} has more comprehensive checks on the | 
 |       \file{data} directory and the functioning of \code{data()} in a | 
 |       package. | 
 |  | 
 |       \item \command{R CMD check} now checks | 
 |       \command{autoconf}-generated \file{configure} files have their | 
 |       corresponding source files, including optionally attempting to | 
 |       regenerate them on platforms with \command{autoreconf}. | 
 |  | 
 |       \item \command{R CMD build} has a new option | 
 |       \option{--compression} to select the compression used for the tarball. | 
 |  | 
 |       \item \command{R CMD build} now removes \file{src/*.mod} files on | 
 |       all platforms. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{C-LEVEL FACILITIES}{ | 
 |     \itemize{ | 
 |       \item New pointer protection C functions \code{R_PreserveInMSet} and | 
 |       \code{R_ReleaseFromMSet} have been introduced to replace | 
 |       \code{UNPROTECT_PTR}, which is not safe to mix with \code{UNPROTECT} | 
 |       (and with \code{PROTECT_WITH_INDEX}). Intended for use in parsers | 
 |       only. | 
 |  | 
 |       \item \code{NAMEDMAX} has been raised to 7 to allow further | 
 |       protection of intermediate results from (usually ill-advised) | 
 |       assignments in arguments to \code{BUILTIN} functions. Properly | 
 |       written package code should not be affected. | 
 |  | 
 |       \item \code{R_unif_index} is now considered to be part of the C API. | 
 |  | 
 |       \item \code{R_GetCurrentEnv()} allows C code to retrieve the current | 
 |       environment. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{DEPRECATED AND DEFUNCT}{ | 
 |     \itemize{ | 
 |       \item Argument \code{compressed} of \code{untar()} is | 
 |       deprecated --- it is only used for external \code{tar} commands | 
 |       which increasingly for extraction auto-detect compression and | 
 |       ignore their \option{zjJ} flags. | 
 |  | 
 |       \item \code{var(f)} and hence \code{sd(f)} now give an error for | 
 |       \code{factor} arguments; they gave a deprecation warning since \R | 
 |       3.2.3, \PR{16564}. | 
 |  | 
 |       \item Package \pkg{tools}' \code{vignetteDepends()} has been | 
 |       deprecated (it called a function deprecated since Feb 2016), being | 
 |       partly replaced by newly exported \code{vignetteInfo()}. | 
 |  | 
 |       \item The \command{f77_f2c} script has been removed: it | 
 |       no longer sufficed to compile the \file{.f} files in \R. | 
 |  | 
 |       \item The deprecated legacy support of \command{make} macros such | 
 |       as \samp{CXX1X} has been removed: use the \samp{CXX11} forms | 
 |       instead. | 
 |  | 
 |       \item Make macro \samp{F77_VISIBILITY} is deprecated in favour of | 
 |       \samp{F_VISIBILITY}. | 
 |  | 
 |       \item Make macros \samp{F77}, \samp{FCPIFCPLAGS} and | 
 |       \samp{SHLIB_OPENMP_FCFLAGS} are deprecated in favour of \samp{FC}, | 
 |       \samp{FPICFLAGS} and \samp{SHLIB_OPENMP_FFLAGS} respectively. | 
 |  | 
 |       \item \code{$.data.frame} had become an expensive version of | 
 |       the default method, so has been removed. (Thanks to Radford Neal | 
 |       for picking this up and to Duncan Murdoch for providing a patch.) | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{BUG FIXES}{ | 
 |     \itemize{ | 
 |       \item \code{replayPlot(r)} now also works in the same \R session | 
 |       when \code{r} has been \dQuote{reproduced} from serialization, | 
 |       typically after saving to and reading from an RDS file. | 
 |  | 
 |       \item \code{substr()} and \code{substring()} now signal an error | 
 |       when the input is invalid UTF-8. | 
 |  | 
 |       \item \code{file.copy()} now works also when its argument \code{to} | 
 |       is of length greater than one. | 
 |  | 
 |       \item \code{mantelhaen.test()} no longer suffers from integer | 
 |       overflow in largish cases, thanks to Ben Bolker's \PR{17383}. | 
 |  | 
 |       \item Calling \code{setGeneric("foo")} in a package no longer | 
 |       fails when the enclosing environment of the implicit generic | 
 |       \code{foo()} is \code{.GlobalEnv}. | 
 |  | 
 |       \item \code{untar(file("<some>.tar.gz"), *)} now gives a better | 
 |       error message, suggesting to use \code{gzfile()} instead. | 
 |  | 
 |       \item Method dispatch uses more relevant environments when looking | 
 |       up class definitions. | 
 |  | 
 |       \item The documentation for \code{identify()} incorrectly claimed | 
 |       that the indices of identified points were returned in the order | 
 |       that the points were selected.  \code{identify()} now has a new | 
 |       argument \code{order} to allow the return value to include the | 
 |       order in which points were identified; the documentation has been | 
 |       updated.  Reported by Richard Rowe and Samuel Granjeaud. | 
 |  | 
 |       \item \code{order(...., decreasing=c(TRUE, FALSE))} could fail in | 
 |       some cases. Reported from StackOverflow via Karl Nordström. | 
 |  | 
 |       \item User macros in Rd files now accept empty and multi-line | 
 |       arguments. | 
 |  | 
 |       \item Changes in \code{print.*()}, thanks to Lionel Henry's | 
 |       patches in \PR{17398}: | 
 |       \itemize{ | 
 | 	\item Printing lists, pairlists or attributes containing calls | 
 | 	with S3 class no longer evaluate those. | 
 |  | 
 | 	\item Printing S4 objects within lists and pairlists dispatches | 
 | 	with \code{show()} rather than \code{print()}, as with | 
 | 	auto-printing. | 
 |  | 
 | 	\item The indexing tags (names or \code{[[<n>]]}) of recursive | 
 | 	data structures are now printed correctly in complex cases. | 
 |  | 
 | 	\item Arguments supplied to \code{print()} are now properly | 
 | 	forwarded to methods when printing lists, pairlists or | 
 | 	attributes containing S3 objects. | 
 |  | 
 | 	\item The print parameters are now preserved when printing S3 | 
 | 	objects or deparsing symbols and calls.  Previously, printing | 
 | 	lists containing S3 objects or expressions would reset these | 
 | 	parameters. | 
 |  | 
 | 	\item Printing lists, pairlists or attributes containing | 
 | 	functions now uses \code{srcref} attributes if present. | 
 |       } | 
 |  | 
 |       \item Calling \code{install.packages()} with a length zero | 
 |       \code{pkgs} argument now is a no-op (\PR{17422}). | 
 |  | 
 |       \item \code{unlist(x)} now returns a correct \code{factor} when | 
 |       \code{x} is a nested list with factor leaves, fixing \PR{12572} | 
 |       and \PR{17419}. | 
 |  | 
 |       \item The documentation \code{help(family)} gives more details | 
 |       about the \code{aic} component, thanks to Ben Bolker's prompting. | 
 |  | 
 |       \item The documentation for \code{attributes} and | 
 |       \code{`attributes<-`} now gives \code{x} as name of the first and | 
 |       main argument which the implementation has been requiring, fixing | 
 |       \PR{17434}.  For consistency, the first argument name is also | 
 |       changed from \code{obj} to \code{x} for \code{`mostattributes<-`}. | 
 |  | 
 |       \item \code{strwidth()} now uses \code{par("font")} as default | 
 |       font face (\PR{17352}). | 
 |  | 
 |       \item \code{plot(<table>, log="x")} no longer warns about \code{log}. | 
 |  | 
 |       \item The \code{print()} method for \code{"htest"} objects now | 
 |       formats the test statistic and parameter directly and hence no | 
 |       longer rounds to units \emph{before} the decimal point.  Consequently, | 
 |       printing of \code{t.test()} results with a small number of digits | 
 |       now shows non-large \code{df}'s to the full precision (\PR{17444}). | 
 |  | 
 |       \item \code{kruskal.test()} and \code{fligner.test()} no longer | 
 |       erroneously insist on numeric \code{g} group arguments (\PR{16719}). | 
 |  | 
 |       \item Printing a news db via the browser now does a much better | 
 |       job (\PR{17433}). | 
 |  | 
 |       \item \code{print.aov()} missed column names in the multivariate case | 
 |       due to misspelling (reported by Chris Andrews). | 
 |  | 
 |       \item \code{axis()} now creates valid \code{at} locations also for | 
 |       small subnormal number ranges in log scale plots. | 
 |  | 
 |       \item \code{format.POSIXlt()} now also recycles the \code{zone} | 
 |       and \code{gmtoff} list components to full length when needed, | 
 |       and its internal C code detects \code{have_zone} in more cases. | 
 |       In some cases, this changes its output to become compatible with | 
 |       \code{format.POSIXct()}. | 
 |  | 
 |       \item On Windows, \code{detectCores()} in package \pkg{parallel} | 
 |       now detects processors in all processor groups, not just the group | 
 |       \R is running in (impacts particularly systems with more than 64 | 
 |       logical processors).  Reported by Arunkumar Srinivasan. | 
 |  | 
 |       \item On Windows, \code{socketSelect()} would hang with more than | 
 |       64 sockets, and hence \code{parallel::clusterApplyLB()} would hang | 
 |       with more than 64 workers.  Reported by Arunkumar Srinivasan. | 
 |  | 
 |       \item \code{as(1L, "double")} now does coerce (\PR{17457}). | 
 |  | 
 |       \item \code{lm.influence()}, \code{influence.measures()}, | 
 |       \code{rstudent()} etc now work (more) correctly for multivariate | 
 |       models (\code{"mlm"}), thanks to (anonymous) stackoverflow remarks. | 
 |  | 
 |       \item \code{sample.int(2.9, *, replace=TRUE)} again behaves as | 
 |       documented and as in R < 3.0.0, namely identically to | 
 |       \code{sample.int(2, ..)}.% consider back porting to 3.5.x ! | 
 |  | 
 |       \item Fixes to \code{convertColor()} for chromatic adaptation; | 
 |       thanks to Brodie Gaslam \PR{17473}. | 
 |  | 
 |       \item Using \code{\\Sexpr[stage=install]{..}} to create an | 
 |       \file{Rd} section no longer gives a warning in \command{R CMD | 
 | 	check}; problem originally posted by Gábor Csárdi, then reported | 
 |       as \PR{17479} with a partial patch by Duncan Murdoch. | 
 |  | 
 |       \item Parse data now include a special node for equal assignment. | 
 |  | 
 |       \item \code{split.default()} no longer relies on \code{[[<-()}, so | 
 |       it behaves as expected when splitting an object by a factor with | 
 |       the empty string as one of its levels.  Thanks to Brad Friedman for | 
 |       the report. | 
 |  | 
 |       \item Line numbers in messages about \file{.Rd} files are now more | 
 |       reliable, thanks to a patch from Duncan Murdoch. | 
 |  | 
 |       \item In the \code{numeric} method for \code{all.equal()}, a | 
 |       numeric \code{scale} argument is now checked to be positive and | 
 |       allowed to be of length > 1. (The latter worked originally and | 
 |       with a warning in recent years). | 
 |  | 
 |       \item Deferred string conversions now record the \code{OutDec} | 
 |       option setting when not equal to the default.  Reported by Michael | 
 |       Sannella. | 
 |  | 
 |       \item When \code{y} is numeric and \code{f} a \code{factor}, | 
 |       \code{plot(y ~ f)} nicely uses "y" and "f" as y- and x-labels. | 
 |       The more direct \code{boxplot(y ~ f)} now does too.  The new | 
 |       argument \code{ann = FALSE} may be used to suppress these. | 
 |  | 
 |       \item Subassignment to no/empty rows of a data frame is more | 
 |       consistent and typically a no-op in all cases instead of sometimes | 
 |       an error; part of Emil Bode's \PR{17483}. | 
 |  | 
 |       \item Calls like \code{formatC(*, zero.print = "< 0.001")} no | 
 |       longer give an error and are further improved via new optional | 
 |       argument \code{replace.zero}.  Reported by David Hugh-Jones. | 
 |  | 
 |       \item \code{methods::formalArgs("<fn>")} now finds the same | 
 |       function as \code{formals("<fn>")}, fixing Emil Bode's \PR{17499}. | 
 |  | 
 |       \item The \pkg{methods} package better handles duplicated class | 
 |       names across packages. | 
 |  | 
 |       \item The default method of \code{seq()} now avoids integer | 
 |       overflow, thanks to the report and "cumsum" patch of Suharto | 
 |       Anggono's \PR{17497}. | 
 |  | 
 |       \item \code{sub()} no longer loses encodings for non-ASCII | 
 |       replacements (\PR{17509}). | 
 |  | 
 |       \item Fix for rotated raster image on X11 device.  (Partial | 
 |       fix for \PR{17148};  thanks to Mikko Korpela). | 
 |  | 
 |       \item \code{formula(model.frame(frml, ..))} now returns \code{frml} | 
 |       in all cases, thanks to Bill Dunlap.   The previous behavior is | 
 |       available as \code{DF2formula(<model.frame>)}. | 
 |  | 
 |       \item \code{ar.ols()} also returns scalar \code{var.pred} in | 
 |       univariate case (\PR{17517}). | 
 |  | 
 |       \item \code{normalizePath()} now treats \code{NA} path as non-existent | 
 |       and normalizes it to \code{NA}.  \code{file.access()} treats \code{NA} | 
 |       file name as non-existent.  \code{file.edit()} and connection | 
 |       functions such as \code{file()} now treat \code{NA} file names as | 
 |       errors. | 
 |  | 
 |       \item The internal \code{regularize.values()} auxiliary of | 
 |       \code{approx()}, \code{splinefun()} etc now warns again when there | 
 |       are ties and the caller did not specify \code{ties}.  Further, it no | 
 |       longer duplicates \code{x} and \code{y} unnecessarily when \code{x} | 
 |       is already sorted (\PR{17515}). | 
 |  | 
 |       \item \code{strtoi("", base)} now gives \code{NA} on all platforms, | 
 |       following its documentation.  Reported by Michael Chirico. | 
 |  | 
 |       \item In the definition of an S4 class, prototype elements are | 
 |       checked against the slots of the class, with giving a prototype | 
 |       for an undefined slot now being an error.  (Reported by Bill | 
 |       Dunlap.) | 
 |  | 
 |       \item From \code{setClassUnion()}, if environment variable | 
 |       \env{_R_METHODS_SHOW_CHECKSUBCLASSES} is set | 
 |       to true, the internal \code{.checkSubclasses()} utility prints | 
 |       debugging info to see where it is used. | 
 |  | 
 |       \item \code{max.col(m)} with an \code{m} of zero columns now | 
 |       returns integer \code{NA} (instead of \code{1}). | 
 |  | 
 |       \item \code{axTicks()} no longer returns small \dQuote{almost zero} | 
 |       numbers (in exponential format) instead of zero, fixing Ilario | 
 |       Gelmetti's \PR{17534}. | 
 |  | 
 |       \item \code{isSymmetric(matrix(0, dimnames=list("A","b")))} is | 
 |       \code{FALSE} again, as always documented. | 
 |  | 
 |       \item The \code{cairo_pdf} graphics device (and other Cairo-based | 
 |       devices) now clip correctly to the right and bottom border. | 
 |  | 
 |       There was an off-by-one-pixel bug, reported by Lee Kelvin. | 
 |  | 
 |       \item \code{as.roman(3) <= 2:4} and all other comparisons now work, | 
 |       as do group \code{"Summary"} function calls such as | 
 |       \code{max(as.roman(sample(20)))} and \code{as.roman(NA)}. | 
 |       (Partly reported by Bill Dunlap in \PR{17542}.) | 
 |  | 
 |       \item \code{reformulate("x", response = "sin(y)")} no longer produces | 
 |       extra back quotes, \PR{17359}, and gains new optional argument | 
 |       \code{env}. | 
 |  | 
 |       \item When reading console input from \file{stdin} with re-encoding | 
 |       (\command{R --encoding=enc < input}) the code on a Unix-alike now | 
 |       ensures that each converted input line is terminated with a | 
 |       newline even if re-encoding fails. | 
 |  | 
 |       \item \code{as.matrix.data.frame()} now produces better strings from | 
 |       logicals, thanks to \PR{17548} from Gabe Becker. | 
 |  | 
 |       \item The S4 generic signature of \code{rowSums()}, | 
 |       \code{rowMeans()}, \code{colSums()} and \code{colMeans()} is | 
 |       restricted to \code{"x"}. | 
 |  | 
 |       \item \code{match(x, tab)} now works for long \emph{character} | 
 |       vectors \code{x}, thanks to \PR{17552} by Andreas Kersting. | 
 |  | 
 |       \item Class unions are unloaded when their namespace is | 
 |       unloaded (\PR{17531}, adapted from a patch by Brodie Gaslam). | 
 |  | 
 |       \item \code{selectMethod()} is robust to ANY-truncation of method | 
 |       signatures (thanks to Herve Pages for the report). | 
 |     } | 
 |   } | 
 | } | 
 |  | 
 | \section{\Rlogo CHANGES IN R 3.5.3}{ | 
 |  | 
 |   \subsection{INSTALLATION on a UNIX-ALIKE}{ | 
 |     \itemize{ | 
 |       \item Detection of flags for C++98/11/14/17 has been improved: in | 
 |       particular if CXX??STD is set, it is tried first with no | 
 |       additional flags. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{PACKAGE INSTALLATION}{ | 
 |     \itemize{ | 
 |       \item New macro \samp{F_VISIBILITY} as an alternative to | 
 |       \samp{F77_VISIBILITY}.  This will become the preferred form in | 
 |       \R 3.6.0. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{BUG FIXES}{ | 
 |     \itemize{ | 
 |       \item \code{writeLines(readLines(fnam), fnam)} now works as expected, | 
 |       thanks to Peter Meissner's \PR{17528}. | 
 |  | 
 |       \item \code{setClassUnion()} no longer warns, but uses \code{message()} | 
 |       for now, when encountering \dQuote{non local} subclasses of class members. | 
 |  | 
 |       \item \code{stopifnot(exprs = T)} no longer fails. | 
 |     } | 
 |   } | 
 | } | 
 |  | 
 | \section{\Rlogo CHANGES IN R 3.5.2}{ | 
 |  | 
 |   \subsection{PACKAGE INSTALLATION}{ | 
 |     \itemize{ | 
 |       \item New macro \samp{CXX_VISIBILITY} analogous to | 
 |       \samp{C_VISIBILITY} (which several packages have been misusing for | 
 |       C++ code) for the default C++ compiler (but not necessarily one used | 
 |       for non-default C++ dialects like C++14). | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{TESTING}{ | 
 |     \itemize{ | 
 |       \item The random number generator tests in | 
 |       \file{tests/p-r-random-tests.R} no longer fail occasionally as | 
 |       they now randomly sample from \dQuote{certified} random seeds. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{BUG FIXES}{ | 
 |     \itemize{ | 
 |       \item The \code{"glm"} method of \code{drop1()} miscalculated the | 
 |       score test (\code{test="Rao"}) when the model contained an offset. | 
 |  | 
 |       \item Linear multiple empty models such as \code{lm(y ~ 0)} | 
 |       now have a correctly dimensioned empty coefficient matrix; | 
 |       reported by Brett Presnell. | 
 |  | 
 |       \item \code{vcov(<empty mlm>)} and hence \code{confint()} now | 
 |       work (via a consistency change in \code{summary.lm()}). | 
 |  | 
 |       \item \code{confint(<multiple lm()>)} now works correctly; | 
 |       reported on R-devel by Steven Pav. | 
 |  | 
 |       \item \code{quade.test()} now also works correctly when its | 
 |       arguments are not yet sorted along \code{groups}, fixing \PR{15842}. | 
 |  | 
 |       \item Installation on a Unix-alike tries harder to link to the | 
 |       \samp{pthread} library where required (rather than relying on | 
 |       OpenMP to provide it: configuring with \option{--disable-openmp} | 
 |       was failing on some Linux systems). | 
 |  | 
 |       \item The \code{data.frame} method for \code{print(x)} is fast now | 
 |       also for large data frames \code{x} and got an optional argument | 
 |       \code{max}, thanks to suggestions by Juan Telleria. | 
 |  | 
 |       \item \code{hist()} no longer integer overflows in very rare | 
 |       cases, fixing \PR{17450}. | 
 |  | 
 |       \item \code{untar()} ignored a character \code{compressed} | 
 |       argument: however many external \command{tar} programs ignore | 
 |       the flags which should have been set and automagically choose the | 
 |       compression type, and if appropriate \command{gzip} or | 
 |       \command{bzip2} compression would have been chosen from the magic | 
 |       header of the tarball. | 
 |  | 
 |       \item \code{zapsmall(x)} now works for more \dQuote{number-like} objects. | 
 |  | 
 |       \item The tools-internal function called from \command{R CMD | 
 | 	INSTALL} now gets a \code{warnOption = 1} argument and only sets | 
 |       \code{options(warn = warnOption)} when that increases the warning | 
 |       level (\PR{17453}). | 
 |  | 
 |       \item Analogously, the tools-internal function called from \command{R CMD | 
 | 	check} gets a \code{warnOption = 1} argument and uses the larger | 
 |       of that and \code{getOption("warn")}, also allowing to be run with | 
 |       increased warning level. | 
 |  | 
 |       \item Parse data now have deterministic parent nodes (\PR{16041}). | 
 |  | 
 |       \item Calling \code{match()} with length one \code{x} and POSIXlt | 
 |       \code{table} gave a segfault (\PR{17459}). | 
 |  | 
 |       \item Fork clusters could hang due to a race condition in cluster | 
 |       initialization (\code{makeCluster()}). | 
 |  | 
 |       \item \code{nextn(n)} now also works for larger \code{n} and no | 
 |       longer loops infinitely for e.g, \code{n <- 214e7}. | 
 |  | 
 |       \item \code{cooks.distance()} and \code{rstandard()} now work | 
 |       correctly for multiple linear models (\code{"mlm"}). | 
 |  | 
 |       \item \code{polym()} and corresponding \code{lm()} prediction now | 
 |       also work for a boundary "vector" case fixing \PR{17474}, | 
 |       reported by Alexandre Courtiol. | 
 |  | 
 |       \item With a very large number of variables \code{terms()} could | 
 |       segfault (\PR{17480}). | 
 |  | 
 |       \item \code{cut(rep(0, 7))} now works, thanks to Joey Reid and | 
 |       Benjamin Tyner (\PR{16802}). | 
 |  | 
 |       \item \code{download.file(*, method = "curl", cacheOK = FALSE)} | 
 |       should work now on Windows, thanks to Kevin Ushey's patch in | 
 |       \PR{17323}. | 
 |  | 
 |       \item \code{duplicated(<dataframe with 'f'>)} now works, too, | 
 |       thanks to Andreas Kersting's \PR{17485}; ditto for | 
 |       \code{anyDuplicated()}. | 
 |  | 
 |       \item \code{legend(*, cex = 1:2)} now works less badly. | 
 |  | 
 |       \item The \code{print()} method for \code{POSIXct} and | 
 |       \code{POSIXlt} now correctly obeys \code{getOption("max.print")}, | 
 |       fixing a long-standing typo, and it also gets a corresponding | 
 |       optional \code{max} argument. | 
 |  | 
 |       \item Unserialization of raw vectors serialized in ASCII | 
 |       representation now works correctly. | 
 |  | 
 |       \item \code{<data frame>[TRUE, <new>] <- list(c1, c2)} now works | 
 |       correctly, thanks to Suharto Anggono's \PR{15362} and Emil Bode's | 
 |       patch in \PR{17504}. | 
 |  | 
 |       \item \code{seq.int(*, by=by, length=n)} no longer wrongly | 
 |       \dQuote{drops fractional parts} when \code{by} is integer, thanks | 
 |       to Suharto Anggono's report \PR{17506}. | 
 |  | 
 |       \item Buffering is disabled for \code{file()} connections to | 
 |       non-regular files (like sockets), as well as \code{fifo()} and | 
 |       \code{pipe()} connections.  Fixes \PR{17470}, reported by Chris | 
 |       Culnane. | 
 |     } | 
 |   } | 
 | } | 
 |  | 
 | \section{\Rlogo CHANGES IN R 3.5.1}{ | 
 |  | 
 |   \subsection{BUG FIXES}{ | 
 |     \itemize{ | 
 |       \item \code{file("stdin")} is no longer considered seekable. | 
 |  | 
 |       \item \code{dput()} and \code{dump()} are no longer truncating | 
 |       when \code{options(deparse.max.lines = *)} is set. | 
 |  | 
 |       \item Calls with an S3 class are no longer evaluated when printed, | 
 |       fixing part of \PR{17398}, thanks to a patch from Lionel Henry. | 
 |  | 
 |       \item Allow \code{file} argument of \command{Rscript} to include space | 
 |       even when it is first on the command line. | 
 |  | 
 |       \item \code{callNextMethod()} uses the generic from the | 
 |       environment of the calling method. Reported by Hervé Pagès with | 
 |       well documented examples. | 
 |  | 
 |       \item Compressed file connections are marked as blocking. | 
 |  | 
 |       \item \code{optim(*, lower = c(-Inf, -Inf))} no longer warns (and | 
 |       switches the method), thanks to a suggestion by John Nash. | 
 |  | 
 |       \item \code{predict(fm, newdata)} is now correct also for models | 
 |       where the formula has terms such as \code{splines::ns(..)} or | 
 |       \code{stats::poly(..)}, fixing \PR{17414}, based on a patch from | 
 |       Duncan Murdoch. | 
 |  | 
 |       \item \code{simulate.lm(glm(*, gaussian(link = <non-default>)))} | 
 |       has been corrected, fixing \PR{17415} thanks to Alex Courtiol. | 
 |  | 
 |       \item \code{unlist(x)} no longer fails in some cases of nested | 
 |       empty lists.  Reported by Steven Nydick. | 
 |  | 
 |       \item \code{qr.coef(qr(<all 0, w/ colnames>))} now works. | 
 |       Reported by Kun Ren. | 
 |  | 
 |       \item The radix sort is robust to vectors with >1 billion elements | 
 |       (but long vectors are still unsupported). Thanks to Matt Dowle for | 
 |       the fix. | 
 |  | 
 |       \item Terminal connections (e.g., stdin) are no longer | 
 |       buffered. Fixes \PR{17432}. | 
 |  | 
 |       \item \code{deparse(x)}, \code{dput(x)} and \code{dump()} now | 
 |       respect \code{c()}'s argument names \code{recursive} and | 
 |       \code{use.names}, e.g., for \code{x <- setNames(0, "recursive")}, | 
 |       thanks to Suharto Anggono's \PR{17427}. | 
 |  | 
 |       \item Unbuffered connections now work with encoding conversion. | 
 |       Reported by Stephen Berman. | 
 |  | 
 |       \item \file{.Renviron} on Windows with \command{Rgui} is again by | 
 |       default searched for in user documents directory when invoked | 
 |       \emph{via} the launcher icon.  Reported by Jeroen Ooms. | 
 |  | 
 |       \item \code{printCoefmat()} now also works with explicit | 
 |       \code{right=TRUE}. | 
 |  | 
 |       \item \code{print.noquote()} now also works with explicit | 
 |       \code{quote=FALSE}. | 
 |  | 
 |       \item The default method for \code{pairs(.., horInd=*, verInd=*)} | 
 |       now gets the correct order, thanks to reports by Chris Andrews and | 
 |       Gerrit Eichner.  Additionally, when \code{horInd} or \code{verInd} | 
 |       contain only a subset of variables, all the axes are labeled | 
 |       correctly now. | 
 |  | 
 |       \item \code{agrep("..|..", .., fixed=FALSE)} now matches when it | 
 |       should, thanks to a reminder by Andreas Kolter. | 
 |  | 
 |       \item \code{str(ch)} now works for more invalid multibyte strings. | 
 |     } | 
 |   } | 
 | } | 
 |  | 
 | \section{\Rlogo CHANGES IN R 3.5.0}{ | 
 |  | 
 |   \subsection{SIGNIFICANT USER-VISIBLE CHANGES}{ | 
 |     \itemize{ | 
 |       \item All packages are by default byte-compiled on installation. | 
 |       This makes the installed packages larger (usually marginally so) | 
 |       and may affect the format of messages and tracebacks (which often | 
 |       exclude \code{.Call} and similar). | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{NEW FEATURES}{ | 
 |     \itemize{ | 
 |       \item \code{factor()} now uses \code{order()} to sort its levels, | 
 |       rather than \code{sort.list()}.  This allows \code{factor()} to | 
 |       support custom vector-like objects if methods for the appropriate | 
 |       generics are defined.  It has the side effect of making | 
 |       \code{factor()} succeed on empty or length-one non-atomic | 
 |       vector(-like) types (e.g., \code{"list"}), where it failed before. | 
 |  | 
 |       \item \code{diag()} gets an optional \code{names} argument: this | 
 |       may require updates to packages defining S4 methods for it. | 
 |  | 
 |       \item \code{chooseCRANmirror()} and \code{chooseBioCmirror()} no | 
 |       longer have a \code{useHTTPS} argument, not needed now all \R | 
 |       builds support \samp{https://} downloads. | 
 |  | 
 |       \item New \code{summary()} method for \code{warnings()} with a | 
 |       (somewhat experimental) \code{print()} method. | 
 |  | 
 |       \item (\pkg{methods} package.) \code{.self} is now automatically | 
 |       registered as a global variable when registering a reference class | 
 |       method. | 
 |  | 
 |       \item \code{tempdir(check = TRUE)} recreates the \code{tempdir()} | 
 |       directory if it is no longer valid (e.g.\sspace{}because some | 
 |       other process has cleaned up the \file{/tmp} directory). | 
 |  | 
 |       \item New \code{askYesNo()} function and \code{"askYesNo"} option | 
 |       to ask the user binary response questions in a customizable but | 
 |       consistent way.  (Suggestion of \PR{17242}.) | 
 |  | 
 |       \item New low level utilities \code{...elt(n)} and \code{...length()} | 
 |       for working with \code{...} parts inside a function. | 
 |  | 
 |       \item \code{isTRUE()} is more tolerant and now true | 
 |       in  \preformatted{   x <- rlnorm(99) | 
 |    isTRUE(median(x) == quantile(x)["50\%"])} | 
 |       New function \code{isFALSE()} defined analogously to \code{isTRUE()}. | 
 |  | 
 |       \item The default symbol table size has been increased from 4119 | 
 |       to 49157; this may improve the performance of symbol resolution | 
 |       when many packages are loaded.  (Suggested by Jim Hester.) | 
 |  | 
 |       \item \code{line()} gets a new option \code{iter = 1}. | 
 |  | 
 |       \item Reading from connections in text mode is buffered, | 
 |       significantly improving the performance of \code{readLines()}, as | 
 |       well as \code{scan()} and \code{read.table()}, at least when | 
 |       specifying \code{colClasses}. | 
 |  | 
 |       \item \code{order()} is smarter about picking a default sort | 
 |       \code{method} when its arguments are objects. | 
 |  | 
 |       \item \code{available.packages()} has two new arguments which | 
 |       control if the values from the per-session repository cache are | 
 |       used (default true, as before) and if so how old cached values can | 
 |       be used (default one hour). | 
 |  | 
 |       These arguments can be passed from \code{install.packages()}, | 
 |       \code{update.packages()} and functions calling that: to enable | 
 |       this \code{available.packages()}, \code{packageStatus()} and | 
 |       \code{download.file()} gain a \code{\dots} argument. | 
 |  | 
 |       \item \code{packageStatus()}'s \code{upgrade()} method no longer | 
 |       ignores its \code{\dots} argument but passes it to | 
 |       \code{install.packages()}. | 
 |  | 
 |       \item \code{installed.packages()} gains a \code{\dots} argument to | 
 |       allow arguments (including \code{noCache}) to be passed from | 
 |       \code{new.packages()}, \code{old.packages()}, | 
 |       \code{update.packages()} and \code{packageStatus()}. | 
 |  | 
 |       \item \code{factor(x, levels, labels)} now allows duplicated | 
 |       \code{labels} (not duplicated \code{levels}!).  Hence you can map | 
 |       different values of \code{x} to the same level directly. | 
 |  | 
 |       \item Attempting to use \code{names<-()} on an S4 derivative of a | 
 |       basic type no longer emits a warning. | 
 |  | 
 |       \item The \code{list} method of \code{within()} gains an option | 
 |       \code{keepAttrs = FALSE} for some speed-up. | 
 |  | 
 |       \item \command{system()} and \command{system2()} now allow the | 
 |       specification of a maximum elapsed time (\sQuote{timeout}). | 
 |  | 
 |       \item \code{debug()} supports debugging of methods on any object | 
 |       of S4 class \code{"genericFunction"}, including group generics. | 
 |  | 
 |       \item Attempting to increase the length of a variable containing | 
 |       \code{NULL} using \code{length()<-} still has no effect on the | 
 |       target variable, but now triggers a warning. | 
 |  | 
 |       \item \code{type.convert()} becomes a generic function, with | 
 |       additional methods that operate recursively over list and | 
 |       \code{data.frame} objects. Courtesy of Arni Magnusson | 
 |       (\PR{17269}). | 
 |  | 
 |       \item \code{lower.tri(x)} and \code{upper.tri(x)} only needing | 
 |       \code{dim(x)} now work via new functions \code{.row()} and | 
 |       \code{.col()}, so no longer call \code{as.matrix()} by default in | 
 |       order to work efficiently for all kind of matrix-like objects. | 
 |  | 
 |       \item \code{print()} methods for \code{"xgettext"} and | 
 |       \code{"xngettext"} now use \code{encodeString()} which keeps, | 
 |       e.g.\sspace{}\code{"\n"}, visible.  (Wish of \PR{17298}.) | 
 |  | 
 |       \item \code{package.skeleton()} gains an optional \code{encoding} | 
 |       argument. | 
 |  | 
 |       \item \code{approx()}, \code{spline()}, \code{splinefun()} and | 
 |       \code{approxfun()} also work for long vectors. | 
 |  | 
 |       %% one item with several paragraphs | 
 |       \item \code{deparse()} and \code{dump()} are more useful for S4 | 
 |       objects, \code{dput()} now using the same internal C code instead | 
 |       of its previous imperfect workaround R code.  S4 objects now | 
 |       typically deparse perfectly, i.e., can be recreated identically | 
 |       from deparsed code. | 
 |  | 
 |       \code{dput()}, \code{deparse()} and \code{dump()} now print the | 
 |       \code{names()} information only once, using the more readable | 
 |       \code{(tag = value)} syntax, notably for \code{list()}s, i.e., | 
 |       including data frames. | 
 |  | 
 |       These functions gain a new control option \code{"niceNames"} (see | 
 |       \code{.deparseOpts()}), which when set (as by default) also uses | 
 |       the \code{(tag = value)} syntax for atomic vectors.  On the other | 
 |       hand, without deparse options \code{"showAttributes"} and | 
 |       \code{"niceNames"}, names are no longer shown also for lists. | 
 |       \code{as.character(list(  c (one = 1)))} now includes the name, as | 
 |       \code{as.character(list(list(one = 1)))} has always done. | 
 |  | 
 |       \code{m:n} now also deparses nicely when \eqn{m > n}. | 
 |  | 
 |       The \code{"quoteExpressions"} option, also part of \code{"all"}, | 
 |       no longer \code{quote()}s formulas as that may not re-parse | 
 |       identically.  (\PR{17378}) | 
 |  | 
 |       \item If the option \code{setWidthOnResize} is set and \code{TRUE}, | 
 |       \R run in a terminal using a recent \code{readline} library will | 
 |       set the \code{width} option when the terminal is | 
 |       resized.  Suggested by Ralf Goertz. | 
 |  | 
 |       \item If multiple \code{on.exit()} expressions are set using | 
 |       \code{add = TRUE} then all expressions will now be run even if one | 
 |       signals an error. | 
 |  | 
 |       \item \code{mclapply()} gets an option \code{affinity.list} which | 
 |       allows more efficient execution with heterogeneous processors, | 
 |       thanks to Helena Kotthaus. | 
 |  | 
 |       \item The \code{character} methods for \code{as.Date()} and | 
 |       \code{as.POSIXlt()} are more flexible \emph{via} new arguments | 
 |       \code{tryFormats} and \code{optional}: see their help pages. | 
 |  | 
 |       \item \code{on.exit()} gains an optional argument \code{after} | 
 |       with default \code{TRUE}. Using \code{after = FALSE} with | 
 |       \code{add = TRUE} adds an exit expression before any | 
 |       existing ones. This way the expressions are run in a first-in | 
 |       last-out fashion. (From Lionel Henry.) | 
 |  | 
 |       \item On Windows, \code{file.rename()} internally retries the | 
 |       operation in case of error to attempt to recover from possible | 
 |       anti-virus interference. | 
 |  | 
 |       \item Command line completion on \samp{::} now also includes | 
 |       lazy-loaded data. | 
 |  | 
 |       \item If the \env{TZ} environment variable is set when date-time | 
 |       functions are first used, it is recorded as the session default | 
 |       and so will be used rather than the default deduced from the OS | 
 |       if \env{TZ} is subsequently unset. | 
 |  | 
 |       \item There is now a \code{[} method for class \code{"DLLInfoList"}. | 
 |  | 
 |       \item \code{glm()} and \code{glm.fit} get the same | 
 |       \code{singular.ok = TRUE} argument that \code{lm()} has had | 
 |       forever.  As a consequence, in \code{glm(*, method = <your_own>)}, | 
 |       user specified methods need to accept a \code{singular.ok} | 
 |       argument as well. | 
 |  | 
 |       \item \code{aspell()} gains a filter for Markdown (\file{.md} and | 
 |       \file{.Rmd}) files. | 
 |  | 
 |       \item \code{intToUtf8(multiple = FALSE)} gains an argument to | 
 |       allow surrogate pairs to be interpreted. | 
 |  | 
 |       \item The maximum number of DLLs that can be loaded into R | 
 |       e.g.\sspace{}\emph{via} \code{dyn.load()} has been increased up to 614 | 
 |       when the OS limit on the number of open files allows. | 
 |  | 
 |       \item \code{Sys.timezone()} on a Unix-alike caches the value at | 
 |       first use in a session: \emph{inter alia} this means that setting | 
 |       \env{TZ} later in the session affects only the \emph{current} time | 
 |       zone and not the \emph{system} one. | 
 |  | 
 |       \code{Sys.timezone()} is now used to find the system timezone to | 
 |       pass to the code used when \R is configured with | 
 |       \option{--with-internal-tzcode}. | 
 |  | 
 |       \item When \code{tar()} is used with an external command which is | 
 |       detected to be GNU \command{tar} or libarchive \command{tar} (aka | 
 |       \command{bsdtar}), a different command-line is generated to | 
 |       circumvent line-length limits in the shell. | 
 |  | 
 |       \item \code{system(*, intern = FALSE)}, \code{system2()} (when not | 
 |       capturing output), \code{file.edit()} and \code{file.show()} now | 
 |       issue a warning when the external command cannot be executed. | 
 |  | 
 |       \item The \dQuote{default} (\code{"lm"} etc) methods of | 
 |       \code{vcov()} have gained new optional argument \code{complete = | 
 |       TRUE} which makes the \code{vcov()} methods more consistent with | 
 |       the \code{coef()} methods in the case of singular designs.  The | 
 |       former (back-compatible) behavior is given by \code{vcov(*, | 
 | 	complete = FALSE)}. | 
 |  | 
 |       \item \code{coef()} methods (for \code{lm} etc) also gain a | 
 |       \code{complete = TRUE} optional argument for consistency with | 
 |       \code{vcov()}. \cr | 
 |       For \code{"aov"}, both \code{coef()} and \code{vcov()} methods | 
 |       remain back-compatibly consistent, using the \emph{other} default, | 
 |       \code{complete = FALSE}. | 
 |  | 
 |       \item \code{attach(*, pos = 1)} is now an error instead of a | 
 |       warning. | 
 |  | 
 |       \item New function \code{getDefaultCluster()} in package | 
 |       \pkg{parallel} to get the default cluster set via | 
 |       \code{setDefaultCluster()}. | 
 |  | 
 |       \item \code{str(x)} for atomic objects \code{x} now treats both | 
 |       cases of \code{is.vector(x)} similarly, and hence much less often | 
 |       prints \code{"atomic"}.  This is a slight non-back-compatible | 
 |       change producing typically both more informative and shorter | 
 |       output. | 
 |  | 
 |       \item \code{gc()} gets new argument \code{full}. | 
 |  | 
 |       \item \code{write.dcf()} gets optional argument \code{useBytes}. | 
 |  | 
 |       \item New, partly experimental \code{packageDate()} which tries to | 
 |       get a valid \code{"Date"} object from a package \file{DESCRIPTION} | 
 |       file, thanks to suggestions in \PR{17324}. | 
 |  | 
 |       \item \code{tools::resaveRdaFiles()} gains a \code{version} | 
 |       argument, for use when packages should remain compatible with | 
 |       earlier versions of \R. | 
 |  | 
 |       \item \code{ar.yw(x)} and hence by default \code{ar(x)} now work | 
 |       when \code{x} has \code{NA}s, mostly thanks to a patch by Pavel | 
 |       Krivitsky in \PR{17366}.   The \code{ar.yw.default()}'s AIC | 
 |       computations have become more efficient by using | 
 |       \code{determinant()}. | 
 |  | 
 |       \item New \code{warnErrList()} utility (from package \pkg{nlme}, | 
 |       improved). | 
 |  | 
 |       \item By default the (arbitrary) signs of the loadings from | 
 |       \code{princomp()} are chosen so the first element is non-negative. | 
 |  | 
 |       \item If \option{--default-packages} is not used, then | 
 |       \command{Rscript} now checks the environment variable | 
 |       \env{R_SCRIPT_DEFAULT_PACKAGES}. If this is set, then it takes | 
 |       precedence over \env{R_DEFAULT_PACKAGES}. If default packages are | 
 |       not specified on the command line or by one of these environment | 
 |       variables, then \command{Rscript} now uses the same default | 
 |       packages as \command{R}. For now, the previous behavior of not | 
 |       including \pkg{methods} can be restored by setting the environment | 
 |       variable \env{R_SCRIPT_LEGACY} to \samp{yes}. | 
 |  | 
 |       \item When a package is found more than once, the warning from | 
 |       \code{find.package(*, verbose=TRUE)} lists all library locations. | 
 |  | 
 |       \item POSIXt objects can now also be rounded or truncated to month | 
 |       or year. | 
 |  | 
 |       \item \code{stopifnot()} can be used alternatively via new argument | 
 |       \code{exprs} which is nicer and useful when testing several | 
 |       expressions in one call. | 
 |  | 
 |       \item The environment variable \env{R_MAX_VSIZE} can now be used | 
 |       to specify the maximal vector heap size. On macOS, unless specified | 
 |       by this environment variable, the maximal vector heap size is set to | 
 |       the maximum of 16GB and the available physical memory. This is to | 
 |       avoid having the \command{R} process killed when macOS over-commits | 
 |       memory. | 
 |  | 
 |       \item \code{sum(x)} and \code{sum(x1, x2, .., x<N>)} with many or | 
 |       long logical or integer vectors no longer overflows (and returns | 
 |       \code{NA} with a warning), but returns \code{double} numbers in | 
 |       such cases. | 
 |  | 
 |       \item Single components of \code{"POSIXlt"} objects can now be | 
 |       extracted and replaced via \code{[} indexing with 2 indices. | 
 |  | 
 |       \item S3 method lookup now searches the namespace registry after | 
 |       the top level environment of the calling environment. | 
 |  | 
 |       \item Arithmetic sequences created by \code{1:n}, | 
 |       \code{seq_along}, and the like now use compact internal | 
 |       representations via the \code{ALTREP} framework.  Coercing integer | 
 |       and numeric vectors to character also now uses the \code{ALTREP} | 
 |       framework to defer the actual conversion until first use. | 
 |  | 
 |       \item Finalizers are now run with interrupts suspended. | 
 |  | 
 |       \item \code{merge()} gains new option \code{no.dups} and by | 
 |       default suffixes the second of two duplicated column names, | 
 |       thanks to a proposal by Scott Ritchie (and Gabe Becker). | 
 |  | 
 |       \item \code{scale.default(x, center, scale)} now also allows | 
 |       \code{center} or \code{scale} to be \dQuote{numeric-alike}, i.e., | 
 |       such that \code{as.numeric(.)} coerces them correctly.  This also | 
 |       eliminates a wrong error message in such cases. | 
 |  | 
 |       \item \code{par*apply} and \code{par*applyLB} gain an optional | 
 |       argument \code{chunk.size} which allows to specify the granularity of | 
 |       scheduling. | 
 |  | 
 |       \item Some \code{as.data.frame()} methods, notably the | 
 |       \code{matrix} one, are now more careful in not accepting | 
 |       duplicated or \code{NA} row names, and by default produce unique | 
 |       non-NA row names.  This is based on new function | 
 |       \code{.rowNamesDF(x, make.names = *) <- rNms} where the logical | 
 |       argument \code{make.names} allows to specify \emph{how} invalid | 
 |       row names \code{rNms} are handled.  \code{.rowNamesDF()} is a | 
 |       \dQuote{workaround} compatible default. | 
 |  | 
 |       \item R has new serialization format (version 3) which supports | 
 |       custom serialization of \code{ALTREP} framework objects.  These | 
 |       objects can still be serialized in format 2, but less efficiently. | 
 |       Serialization format 3 also records the current native encoding of | 
 |       unflagged strings and converts them when de-serialized in R | 
 |       running under different native encoding.  Format 3 comes with new | 
 |       serialization magic numbers (RDA3, RDB3, RDX3).  Format 3 can be | 
 |       selected by \code{version = 3} in \code{save()}, | 
 |       \code{serialize()} and \code{saveRDS()}, but format 2 remains the | 
 |       default for all serialization and saving of the workspace. | 
 |       Serialized data in format 3 cannot be read by versions of \R prior | 
 |       to version 3.5.0. | 
 |  | 
 |       \item The \code{"Date"} and \dQuote{date-time} classes | 
 |       \code{"POSIXlt"} and \code{"POSIXct"} now have a working | 
 |       \code{length<-()} method, as wished in \PR{17387}. | 
 |  | 
 |       \item \code{optim(*, control = list(warn.1d.NelderMead = FALSE))} | 
 |       allows to turn off the warning when applying the default | 
 |       \code{"Nelder-Mead"} method to 1-dimensional problems. | 
 |  | 
 |       \item \code{matplot(.., panel.first = .)} etc now work, as | 
 |       \code{log} becomes explicit argument and \code{...} is passed to | 
 |       \code{plot()} unevaluated, as suggested by Sebastian Meyer in \PR{17386}. | 
 |  | 
 |       \item Interrupts can be suspended while evaluating an expression | 
 |       using \code{suspendInterrupts}.  Subexpression can be evaluated | 
 |       with interrupts enabled using \code{allowInterrupts}.  These | 
 |       functions can be used to make sure cleanup handlers cannot be | 
 |       interrupted. | 
 |  | 
 |       \item \R 3.5.0 includes a framework that allows packages to | 
 |       provide alternate representations of basic \R objects | 
 |       (\code{ALTREP}).  The framework is still experimental and may | 
 |       undergo changes in future \R releases as more experience is | 
 |       gained. For now, documentation is provided in | 
 |       \url{https://svn.r-project.org/R/branches/ALTREP/ALTREP.html}. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{UTILITIES}{ | 
 |     \itemize{ | 
 |       \item \code{install.packages()} for source packages now has the | 
 |       possibility to set a \sQuote{timeout} (elapsed-time limit).  For | 
 |       serial installs this uses the \code{timeout} argument of | 
 |       \code{system2()}: for parallel installs it requires the | 
 |       \command{timeout} utility command from GNU \pkg{coreutils}. | 
 |  | 
 |       \item It is now possible to set \sQuote{timeouts} (elapsed-time | 
 |       limits) for most parts of \command{R CMD check} \emph{via} | 
 |       environment variables documented in the \sQuote{R Internals} | 
 |       manual. | 
 |  | 
 |       \item The \sQuote{BioC extra} repository which was dropped from | 
 |       Bioconductor 3.6 and later has been removed from | 
 |       \code{setRepositories()}.  This changes the mapping for 6--8 used | 
 |       by \code{setRepositories(ind=)}. | 
 |  | 
 |       \item \command{R CMD check} now also applies the settings of | 
 |       environment variables \env{_R_CHECK_SUGGESTS_ONLY_} and | 
 |       \env{_R_CHECK_DEPENDS_ONLY_} to the re-building of vignettes. | 
 |  | 
 |       \item \command{R CMD check} with environment variable | 
 |       \env{_R_CHECK_DEPENDS_ONLY_} set to a true value makes | 
 |       test-suite-management packages available and (for the time being) | 
 |       works around a common omission of \CRANpkg{rmarkdown} from the | 
 |       \samp{VignetteBuilder} field. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{INSTALLATION on a UNIX-ALIKE}{ | 
 |     \itemize{ | 
 |       \item Support for a system Java on macOS has been | 
 |       removed --- install a fairly recent Oracle Java (see \sQuote{R | 
 | 	Installation and Administration} §C.3.2). | 
 |  | 
 |       \item \command{configure} works harder to set additional flags in | 
 |       \samp{SAFE_FFLAGS} only where necessary, and to use flags which | 
 |       have little or no effect on performance. | 
 |  | 
 |       In rare circumstances it may be necessary to override the | 
 |       setting of \samp{SAFE_FFLAGS}. | 
 |  | 
 |       \item C99 functions \code{expm1}, \code{hypot}, \code{log1p} and | 
 |       \code{nearbyint} are now required. | 
 |  | 
 |       \item \command{configure} sets a \option{-std} flag for the C++ | 
 |       compiler for all supported C++ standards (e.g., \option{-std=gnu++11} | 
 |       for the C++11 compiler).   Previously this was not done in a few | 
 |       cases where the default standard passed the tests made | 
 |       (e.g.\sspace\command{clang 6.0.0} for C++11). | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{C-LEVEL FACILITIES}{ | 
 |     \itemize{ | 
 |       \item \sQuote{Writing R Extensions} documents macros | 
 |       \code{MAYBE_REFERENCED}, \code{MAYBE_SHARED} and | 
 |       \code{MARK_NOT_MUTABLE} that should be used by package \code{C} | 
 |       code instead \code{NAMED} or \code{SET_NAMED}. | 
 |  | 
 |       \item The object header layout has been changed to support merging | 
 |       the \code{ALTREP} branch. This requires re-installing packages | 
 |       that use compiled code. | 
 |  | 
 |       \item \sQuote{Writing R Extensions} now documents the | 
 |       \code{R_tryCatch}, \code{R_tryCatchError}, and | 
 |       \code{R_UnwindProtect} functions. | 
 |  | 
 |       \item \code{NAMEDMAX} has been raised to 3 to allow protection of | 
 |       intermediate results from (usually ill-advised) assignments in | 
 |       arguments to \code{BUILTIN} functions. Package \code{C} code using | 
 |       \code{SET_NAMED} may need to be revised. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{DEPRECATED AND DEFUNCT}{ | 
 |     \itemize{ | 
 |       \item \code{Sys.timezone(location = FALSE)} is defunct, and is | 
 |       ignored (with a warning). | 
 |  | 
 |       \item \code{methods:::bind_activation()} is defunct now; it | 
 |       typically has been unneeded for years. | 
 |  | 
 |       The undocumented \sQuote{hidden} objects \code{.__H__.cbind} and | 
 |       \code{.__H__.rbind} in package \pkg{base} are deprecated (in | 
 |       favour of \code{cbind} and \code{rbind}). | 
 |  | 
 |       \item The declaration of \code{pythag()} in \file{Rmath.h} has | 
 |       been removed --- the entry point has not been provided since \R | 
 |       2.14.0. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{BUG FIXES}{ | 
 |     \itemize{ | 
 |       \item \code{printCoefmat()} now also works without column names. | 
 |  | 
 |       \item The S4 methods on \code{Ops()} for the \code{"structure"} class no | 
 |       longer cause infinite recursion when the structure is not an S4 object. | 
 |  | 
 |       \item \code{nlm(f, ..)} for the case where \code{f()} has a | 
 |       \code{"hessian"} attribute now computes | 
 |       \eqn{LL' = H + \mu I}{LL' = H + µI} correctly.  (\PR{17249}). | 
 |  | 
 |       \item An S4 method that \dQuote{rematches} to its generic and | 
 |       overrides the default value of a generic formal argument to | 
 |       \code{NULL} no longer drops the argument from its formals. | 
 |  | 
 |       \item \code{Rscript} can now accept more than one argument given on | 
 |       the \samp{#!} line of a script. Previously, one could only pass a | 
 |       single argument on the \samp{#!} line in Linux. | 
 |  | 
 |       \item Connections are now written correctly with encoding | 
 |       \code{"UTF-16LE"}.  (\PR{16737}). | 
 |  | 
 |       \item Evaluation of \code{..0} now signals an error.  When | 
 |       \code{..1} is used and \code{...} is empty, the error message is | 
 |       more appropriate. | 
 |  | 
 |       \item (Windows mainly.)  Unicode code points which require | 
 |       surrogate pairs in UTF-16 are now handled.  All systems should | 
 |       properly handle surrogate pairs, even those systems that do not | 
 |       need to make use of them.  (\PR{16098}) | 
 |  | 
 |       \item \code{stopifnot(e, e2, ...)} now evaluates the | 
 |       expressions sequentially and in case of an error or warning shows | 
 |       the relevant expression instead of the full \code{stopifnot(..)} | 
 |       call. | 
 |  | 
 |       \item \code{path.expand()} on Windows now accepts paths specified as | 
 |       UTF-8-encoded character strings even if not representable in the | 
 |       current locale.  (\PR{17120}) | 
 |  | 
 |       \item \code{line(x, y)} now correctly computes the medians of the | 
 |       left and right group's x-values and in all cases reproduces | 
 |       straight lines. | 
 |  | 
 |       \item Extending S4 classes with slots corresponding to special | 
 |       attributes like \code{dim} and \code{dimnames} now works. | 
 |  | 
 |       \item Fix for \code{legend()} when \code{fill} has multiple values | 
 |       the first of which is \code{NA} (all colours used to default to | 
 |       \code{par(fg)}).  (\PR{17288}) | 
 |  | 
 |       \item \code{installed.packages()} did not remove the cached value | 
 |       for a library tree that had been emptied (but would not use the | 
 |       old value, just waste time checking it). | 
 |  | 
 |       \item The documentation for \code{installed.packages(noCache = TRUE)} | 
 |       incorrectly claimed it would refresh the cache. | 
 |  | 
 |       \item \code{aggregate(<data.frame>)} no longer uses spurious names | 
 |       in some cases.  (\PR{17283}) | 
 |  | 
 |       \item \code{object.size()} now also works for long vectors. | 
 |  | 
 |       \item \code{packageDescription()} tries harder to solve | 
 |       re-encoding issues, notably seen in some Windows locales.  This | 
 |       fixes the \code{citation()} issue in \PR{17291}. | 
 |  | 
 |       \item \code{poly(<matrix>, 3)} now works, thanks to prompting by | 
 |       Marc Schwartz. | 
 |  | 
 |       \item \code{readLines()} no longer segfaults on very large files | 
 |       with embedded \code{'\0'} (aka \sQuote{nul}) characters. | 
 |       (\PR{17311}) | 
 |  | 
 |       \item \code{ns()} (package \pkg{splines}) now also works for a | 
 |       single observation.  \code{interpSpline()} gives a more friendly | 
 |       error message when the number of points is less than four. | 
 |  | 
 |       \item \code{dist(x, method = "canberra")} now uses the correct | 
 |       definition; the result may only differ when \code{x} contains | 
 |       values of differing signs, e.g.\sspace{}not for 0-1 data. | 
 |  | 
 |       \item \code{methods:::cbind()} and \code{methods:::rbind()} avoid | 
 |       deep recursion, thanks to Suharto Anggono via \PR{17300}. | 
 |  | 
 |       \item Arithmetic with zero-column data frames now works more | 
 |       consistently; issue raised by Bill Dunlap. | 
 |  | 
 |       Arithmetic with data frames gives a data frame for \code{^} (which | 
 |       previously gave a numeric matrix). | 
 |  | 
 |       \item \code{pretty(x, n)} for large \code{n} or large | 
 |       \code{diff(range(x))} now works better (though | 
 |       it was never meant for large \code{n}); internally it uses the | 
 |       same rounding fuzz (1e-10) as \code{seq.default()} --- as it did up | 
 |       to 2010-02-03 when both were 1e-7. | 
 |  | 
 |       \item Internal C-level \code{R_check_class_and_super()} and hence | 
 |       \code{R_check_class_etc()} now also consider non-direct super | 
 |       classes and hence return a match in more cases.  This e.g., fixes | 
 |       behaviour of derived classes in package \CRANpkg{Matrix}. | 
 |  | 
 |       \item Reverted unintended change in behavior of \code{return} | 
 |       calls in \code{on.exit} expressions introduced by stack unwinding | 
 |       changes in \R 3.3.0. | 
 |  | 
 |       \item Attributes on symbols are now detected and prevented; attempt | 
 |       to add an attribute to a symbol results in an error. | 
 |  | 
 |       \item \code{fisher.test(*, workspace = <n>)} now may also increase | 
 |       the internal stack size which allows larger problem to be solved, | 
 |       fixing \PR{1662}. | 
 |  | 
 |       \item The \pkg{methods} package no longer directly copies slots | 
 |       (attributes) into a prototype that is of an \dQuote{abnormal} | 
 |       (reference) type, like a symbol. | 
 |  | 
 |       \item The \pkg{methods} package no longer attempts to call | 
 |       \code{length<-()} on \code{NULL} (during the bootstrap process). | 
 |  | 
 |       \item The \pkg{methods} package correctly shows methods when there | 
 |       are multiple methods with the same signature for the same generic | 
 |       (still not fully supported, but at least the user can see them). | 
 |  | 
 |       \item \code{sys.on.exit()} is now always evaluated in the right | 
 |       frame. (From Lionel Henry.) | 
 |  | 
 |       \item \code{seq.POSIXt(*, by = "<n> DSTdays")} now should work | 
 |       correctly in all cases and is faster.  (\PR{17342}) | 
 |  | 
 |       \item \code{.C()} when returning a logical vector now always maps | 
 |       values other than FALSE and NA to TRUE (as documented). | 
 |  | 
 |       \item Subassignment with zero length vectors now coerces as | 
 |       documented (\PR{17344}).\cr | 
 |       Further, \code{x <- numeric(); x[1] <- character()} now signals | 
 |       an error \sQuote{\verb{replacement has length zero}} (or a | 
 |       translation of that) instead of doing nothing. | 
 |  | 
 |       \item (Package \pkg{parallel}.)  \code{mclapply()}, \code{pvec()} | 
 |       and \code{mcparallel()} (when \code{mccollect()} is used to | 
 |       collect results) no longer leave zombie processes behind. | 
 |  | 
 |       \item \code{R CMD INSTALL <pkg>} now produces the intended error | 
 |       message when, e.g., the \code{LazyData} field is invalid. | 
 |  | 
 |       \item \code{as.matrix(dd)} now works when the data frame \code{dd} | 
 |       contains a column which is a data frame or matrix, including a | 
 |       0-column matrix/d.f. . | 
 |  | 
 |       \item \code{mclapply(X, mc.cores)} now follows its documentation | 
 |       and calls \code{lapply()} in case \code{mc.cores = 1} also in the | 
 |       case \code{mc.preschedule} is false.  (\PR{17373}) | 
 |  | 
 |       \item \code{aggregate(<data.frame>, drop=FALSE)} no longer calls | 
 |       the function on <empty> parts but sets corresponding results to | 
 |       \code{NA}.  (Thanks to Suharto Anggono's patches in \PR{17280}). | 
 |  | 
 |       \item The \code{duplicated()} method for data frames is now based | 
 |       on the \code{list} method (instead of string coercion).  Consequently | 
 |       \code{unique()} is better distinguishing data frame rows, fixing | 
 |       \PR{17369} and \PR{17381}.  The methods for matrices and arrays | 
 |       are changed accordingly. | 
 |  | 
 |       \item Calling \code{names()} on an S4 object derived from | 
 |       \code{"environment"} behaves (by default) like calling | 
 |       \code{names()} on an ordinary environment. | 
 |  | 
 |       \item \code{read.table()} with a non-default separator now | 
 |       supports quotes following a non-whitespace character, matching the | 
 |       behavior of \code{scan()}. | 
 |  | 
 |       \item \code{parLapplyLB} and \code{parSapplyLB} have been fixed to do | 
 |       load balancing (dynamic scheduling).  This also means that results of | 
 |       computations depending on random number generators will now really be | 
 |       non-reproducible, as documented. | 
 |  | 
 |       \item Indexing a list using dollar and empty string (\code{l$""}) | 
 |       returns NULL. | 
 |  | 
 |       \item Using \code{ \\usage\{ data(<name>, package="<pkg>") \} } | 
 |       no longer produces \command{R CMD check} warnings. | 
 |  | 
 |       \item \code{match.arg()} more carefully chooses the environment | 
 |       for constructing default \code{choices}, fixing \PR{17401} as | 
 |       proposed by Duncan Murdoch. | 
 |  | 
 |       \item Deparsing of consecutive \code{!} calls is now consistent | 
 |       with deparsing unary \code{-} and \code{+} calls and creates code | 
 |       that can be reparsed exactly; thanks to a patch by Lionel Henry in | 
 |       \PR{17397}.  (As a side effect, this uses fewer parentheses in | 
 |       some other deparsing involving \code{!} calls.) | 
 |     } | 
 |   } | 
 | } | 
 |  | 
 | \section{\Rlogo CHANGES IN R 3.4.4}{ | 
 |  | 
 |   \subsection{NEW FEATURES}{ | 
 |     \itemize{ | 
 |       \item \code{Sys.timezone()} tries more heuristics on Unix-alikes and so | 
 |       is more likely to succeed (especially on Linux).  For the slowest | 
 |       method, a warning is given recommending that \env{TZ} is set to | 
 |       avoid the search. | 
 |  | 
 |       \item The version of LAPACK included in the sources has been | 
 |       updated to 3.8.0 (for the routines used by \R, a very minor bug-fix | 
 |       change). | 
 |  | 
 |       \item \code{parallel::detectCores(logical = FALSE)} is ignored on | 
 |       Linux systems, since the information is not available with | 
 |       virtualized OSes. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{INSTALLATION on a UNIX-ALIKE}{ | 
 |     \itemize{ | 
 |       \item \command{configure} will use \command{pkg-config} to find the | 
 |       flags to link to \code{jpeg} if available (as it should be for the | 
 |       recently-released \code{jpeg-9c} and \code{libjpeg-turbo}).  (This | 
 |       amends the code added in \R 3.3.0 as the module name in | 
 |       \code{jpeg-9c} is not what that tested for.) | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{DEPRECATED AND DEFUNCT}{ | 
 |     \itemize{ | 
 |       \item \code{Sys.timezone(location = FALSE)} (which was a stop-gap | 
 |       measure for Windows long ago) is deprecated.  It no longer returns | 
 |       the value of environment variable \env{TZ} (usually a location). | 
 |  | 
 |       \item Legacy support of \command{make} macros such as \samp{CXX1X} | 
 |       is formally deprecated: use the \samp{CXX11} forms instead. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{BUG FIXES}{ | 
 |     \itemize{ | 
 |       \item \code{power.prop.test()} now warns when it cannot solve the | 
 |       problem, typically because of impossible constraints. (\PR{17345}) | 
 |  | 
 |       \item \code{removeSource()} no longer erroneously removes | 
 |       \code{NULL} in certain cases, thanks to Dénes Tóth. | 
 |  | 
 |       \item \code{nls(`NO [mol/l]` ~ f(t))} and \code{nls(y ~ a)} now | 
 |       work.  (Partly from \PR{17367}) | 
 |  | 
 |       \item \command{R CMD build} checks for GNU \command{cp} rather | 
 |       than assuming Linux has it.  (\PR{17370} says \sQuote{Alpine | 
 | 	Linux} does not.) | 
 |  | 
 |       \item Non-UTF-8 multibyte character handling fixed more | 
 |       permanently (\PR{16732}). | 
 |  | 
 |       \item \code{sum(<large ints>, <stuff>)} is more consistent. | 
 |       (\PR{17372}) | 
 |  | 
 |       \item \code{rf()} and \code{rbeta()} now also work correctly when | 
 |       \code{ncp} is not scalar, notably when (partly) \code{NA}. | 
 |       (\PR{17375}) | 
 |  | 
 |       \item \code{is.na(NULL)} no longer warns.  (\PR{16107}) | 
 |  | 
 |       \item \command{R CMD INSTALL} now correctly sets C++ compiler flags | 
 |       when all source files are in sub-directories of \file{src}. | 
 |     } | 
 |   } | 
 | } | 
 |  | 
 | \section{\Rlogo CHANGES IN R 3.4.3}{ | 
 |  | 
 |   \subsection{INSTALLATION on a UNIX-ALIKE}{ | 
 |     \itemize{ | 
 |       \item A workaround has been added for the changes in location of | 
 |       time-zone files in macOS 10.13 \sQuote{High Sierra} and | 
 |       again in 10.13.1, so the default time zone is deduced | 
 |       correctly from the system setting when \R is configured with | 
 |       \option{--with-internal-tzcode} (the default on macOS). | 
 |  | 
 |       \item \command{R CMD javareconf} has been updated to recognize the | 
 |       use of a Java 9 SDK on macOS. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{BUG FIXES}{ | 
 |     \itemize{ | 
 |       \item \code{raw(0) & raw(0)} and \code{raw(0) | raw(0)} | 
 |       again return \code{raw(0)} (rather than \code{logical(0)}). | 
 |  | 
 |       \item \code{intToUtf8()} converts integers corresponding to | 
 |       surrogate code points to \code{NA} rather than invalid UTF-8, as | 
 |       well as values larger than the current Unicode maximum of | 
 |       \code{0x10FFFF}.  (This aligns with the current RFC3629.) | 
 |  | 
 |       \item Fix calling of methods on S4 generics that dispatch on | 
 |       \code{\dots} when the call contains \code{\dots}. | 
 |  | 
 |       \item Following Unicode \sQuote{Corrigendum 9}, the UTF-8 | 
 |       representations of U+FFFE and U+FFFF are now regarded as valid by | 
 |       \code{utf8ToInt()}. | 
 |  | 
 |       \item \code{range(c(TRUE, NA), finite = TRUE)} and similar no longer | 
 |       return \code{NA}. (Reported by Lukas Stadler.) | 
 |  | 
 |       \item The self starting function \code{attr(SSlogis, "initial")} | 
 |       now also works when the y values have exact minimum zero and is | 
 |       slightly changed in general, behaving symmetrically in the y range. | 
 |  | 
 |       \item The printing of named raw vectors is now formatted nicely as | 
 |       for other such atomic vectors, thanks to Lukas Stadler. | 
 |     } | 
 |   } | 
 | } | 
 |  | 
 | \section{\Rlogo CHANGES IN R 3.4.2}{ | 
 |  | 
 |   \subsection{NEW FEATURES}{ | 
 |     \itemize{ | 
 |       \item Setting the \code{LC_ALL} category in \code{Sys.setlocale()} | 
 |       invalidates any cached locale-specific day/month names and the | 
 |       AM/PM indicator for \code{strptime()} (as setting \code{LC_TIME} | 
 |       has since \R 3.1.0). | 
 |  | 
 |       \item The version of LAPACK included in the sources has been | 
 |       updated to 3.7.1, a bug-fix release. | 
 |  | 
 |       \item The default for \code{tools::write_PACKAGES(rds_compress=)} | 
 |       has been changed to \code{"xz"} to match the compression used by | 
 |       \acronym{CRAN}. | 
 |  | 
 |       \item \code{c()} and \code{unlist()} are now more efficient in | 
 |       constructing the \code{names(.)} of their return value, thanks to | 
 |       a proposal by Suharto Anggono.  (\PR{17284}) | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{UTILITIES}{ | 
 |     \itemize{ | 
 |       \item \command{R CMD check} checks for and \command{R CMD build} | 
 |       corrects CRLF line endings in shell scripts \command{configure} | 
 |       and \command{cleanup} (even on Windows). | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{INSTALLATION on a UNIX-ALIKE}{ | 
 |     \itemize{ | 
 |       \item The order of selection of OpenMP flags has been changed: | 
 |       Oracle Developer Studio 12.5 accepts \option{-fopenmp} and | 
 |       \option{-xopenmp} but only the latter enables OpenMP so it is now | 
 |       tried first. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{BUG FIXES}{ | 
 |     \itemize{ | 
 |       \item \code{within(List, rm(x1, x2))} works correctly again, | 
 |       including when \code{List[["x2"]]} is \code{NULL}. | 
 |  | 
 |       \item \code{regexec(pattern, text, *)} now applies | 
 |       \code{as.character(.)} to its first two arguments, as documented. | 
 |  | 
 |       \item \code{write.table()} and related functions, | 
 |       \code{writeLines()}, and perhaps other functions writing text to | 
 |       connections did not signal errors when the writes failed, | 
 |       e.g.\sspace{}due to a disk being full.  Errors will now be | 
 |       signalled if detected during the write, warnings if detected when | 
 |       the connection is closed.  (\PR{17243}) | 
 |  | 
 |       \item \code{rt()} assumed the \code{ncp} parameter was a scalar.  (\PR{17306}) | 
 |  | 
 |       \item \code{menu(choices)} with more than 10 choices which easily | 
 |       fit into one \code{getOption("width")}-line no longer erroneously | 
 |       repeats choices.  (\PR{17312}) | 
 |  | 
 |       \item \code{length()<-} on a pairlist succeeds. | 
 |       (\url{https://stat.ethz.ch/pipermail/r-devel/2017-July/074680.html}) | 
 |  | 
 |       \item Language objects such as \code{quote(("\n"))} or \R | 
 |       functions are correctly printed again, where \R 3.4.1 accidentally | 
 |       duplicated the backslashes. | 
 |  | 
 |       \item Construction of \code{names()} for very large objects in | 
 |       \code{c()} and \code{unlist()} now works, thanks to Suharto | 
 |       Anggono's patch proposals in \PR{17292}. | 
 |  | 
 |       \item Resource leaks (and similar) reported by Steve Grubb fixed. | 
 |       (\PR{17314}, \PR{17316}, \PR{17317}, \PR{17318}, \PR{17319}, \PR{17320}) | 
 |  | 
 |       \item \code{model.matrix(~1, mf)} now gets the row names from | 
 |       \code{mf} also when they differ from \code{1:nrow(mf)}, fixing | 
 |       \PR{14992} thanks to the suggestion by Sebastian Meyer. | 
 |  | 
 |       \item \code{sigma(fm)} now takes the correct denominator degrees | 
 |       of freedom for a fitted model with \code{NA} coefficients.  (\PR{17313}) | 
 |  | 
 |       \item \code{hist(x, "FD")} no longer \dQuote{dies} with a somewhat | 
 |       cryptic error message when \code{x} has extreme outliers or | 
 |       \code{IQR()} zero:  \code{nclass.FD(x)} tries harder to find a | 
 |       robust bin width \eqn{h} in the latter case, and | 
 |       \code{hist.default(*, breaks)} now checks and corrects a too large | 
 |       \code{breaks} number.  (\PR{17274}) | 
 |  | 
 |       \item \code{callNextMethod()} works for \code{\dots} methods. | 
 |  | 
 |       \item \code{qr.coef(qd, y)} now has correct names also when | 
 |       \code{qd} is a complex QR or stems from \code{qr(*, LAPACK=TRUE)}. | 
 |  | 
 |       \item Setting \code{options(device = *)} to an invalid function no | 
 |       longer segfaults when plotting is initiated.  (\PR{15883}) | 
 |  | 
 |       \item \code{encodeString(<very large string>)} no longer | 
 |       segfaults.  (\PR{15885}) | 
 |  | 
 |       \item It is again possible to use \command{configure | 
 | 	--enable-maintainer-mode} without having installed | 
 |       \command{notangle} (it was required in \R 3.4.[01]). | 
 |  | 
 |       \item S4 method dispatch on \code{\dots} calls the method by name | 
 |       instead of \code{.Method} (for consistency with default dispatch), | 
 |       and only attempts to pass non-missing arguments from the generic. | 
 |  | 
 |       \item \code{readRDS(textConnection(.))} works again.  (\PR{17325}) | 
 |  | 
 |       \item \code{(1:n)[-n]} no longer segfaults for \code{n <- 2.2e9} | 
 |       (on a platform with enough RAM). | 
 |  | 
 |       \item \code{x <- 1:2; tapply(x, list(x, x), function(x) "")[1,2]} | 
 |       now correctly returns \code{NA}.  (\PR{17333}) | 
 |  | 
 |       \item Running of finalizers after explicit GC request moved from | 
 |       the \R interface \code{do_gc} to the \code{C} interface | 
 |       \code{R_gc}.  This helps with reclaiming inaccessible connections. | 
 |  | 
 |       \item \code{help.search(topic)} and \code{??topic} matching topics | 
 |       in vignettes with multiple file name extensions (e.g., | 
 |       \file{*.md.rsp} but not \file{*.Rmd}) failed with an error | 
 |       when using \code{options(help_type = "html")}. | 
 |  | 
 |       \item The X11 device no longer uses the Xlib backing store (\PR{16497}). | 
 |  | 
 |       \item \code{array(character(), 1)} now gives (a 1D array with) | 
 |       \code{NA} as has been documented for a long time as in the other | 
 |       cases of zero-length array initialization and also compatibly with | 
 |       \code{matrix(character(), *)}.  As mentioned there, this also | 
 |       fixes \PR{17333}. | 
 |  | 
 |       \item \code{splineDesign(.., derivs = 4)} no longer segfaults. | 
 |  | 
 |       \item \code{fisher.test(*, hybrid=TRUE)} now (again) will use the | 
 |       hybrid method when Cochran's conditions are met, fixing \PR{16654}. | 
 |     } | 
 |   } | 
 | } | 
 |  | 
 | \section{\Rlogo CHANGES IN R 3.4.1}{ | 
 |  | 
 |   \subsection{INSTALLATION on a UNIX-ALIKE}{ | 
 |     \itemize{ | 
 |       \item The deprecated support for PCRE versions older than 8.20 | 
 |       has been removed. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{BUG FIXES}{ | 
 |     \itemize{ | 
 |       \item \code{getParseData()} gave incorrect column information when | 
 |       code contained multi-byte characters.  (\PR{17254}) | 
 |  | 
 |       \item Asking for help using expressions like \code{?stats::cor()} | 
 |       did not work.  (\PR{17250}) | 
 |  | 
 |       \item \code{readRDS(url(....))} now works. | 
 |  | 
 |       \item \command{R CMD Sweave} again returns \samp{status = 0} on | 
 |       successful completion. | 
 |  | 
 |       \item Vignettes listed in \file{.Rbuildignore} were not being | 
 |       ignored properly.  (\PR{17246}) | 
 |  | 
 |       \item \code{file.mtime()} no longer returns NA on Windows when the | 
 |       file or directory is being used by another process.  This affected | 
 |       \code{installed.packages()}, which is now protected against this. | 
 |  | 
 |       \item \command{R CMD INSTALL} Windows .zip file obeys \code{--lock} | 
 |       and \code{--pkglock} flags. | 
 |  | 
 |       \item (Windows only)  The \code{choose.files()} function could | 
 |       return incorrect results when called with \code{multi = FALSE}. | 
 |       (\PR{17270}) | 
 |  | 
 |       \item \code{aggregate(<data.frame>, drop = FALSE)} now also works in | 
 |       case of near-equal numbers in \code{by}.  (\PR{16918}) | 
 |  | 
 |       \item \code{fourfoldplot()} could encounter integer overflow when | 
 |       calculating the odds ratio. (\PR{17286}) | 
 |  | 
 |       \item \code{parse()} no longer gives spurious warnings when | 
 |       extracting srcrefs from a file not encoded in the current locale. | 
 |  | 
 |       This was seen from \command{R CMD check} with \file{inst/doc/*.R} | 
 |       files, and \code{check} has some additional protection for such files. | 
 |  | 
 |       \item \code{print.noquote(x)} now always returns its argument | 
 |       \code{x} (invisibly). | 
 |  | 
 |       \item Non-UTF-8 multibyte character sets were not handled properly | 
 |       in source references.  (\PR{16732}) | 
 |     } | 
 |   } | 
 | } | 
 |  | 
 | \section{\Rlogo CHANGES IN R 3.4.0}{ | 
 |  | 
 |   \subsection{SIGNIFICANT USER-VISIBLE CHANGES}{ | 
 |     \itemize{ | 
 |       \item (Unix-alike) | 
 |       The default methods for \code{download.file()} and \code{url()} | 
 |       now choose \code{"libcurl"} except for \samp{file://} | 
 |       URLs.  There will be small changes in the format and wording of | 
 |       messages, including in rare cases if an issue is a warning or an | 
 |       error.  For example, when HTTP re-direction occurs, some messages | 
 |       refer to the final URL rather than the specified one. | 
 |  | 
 |       Those who use proxies should check that their settings are | 
 |       compatible (see \code{?download.file}: the most commonly used | 
 |       forms work for both \code{"internal"} and \code{"libcurl"}). | 
 |  | 
 |       \item \code{table()} has been amended to be more internally | 
 |       consistent and become back compatible to \R \eqn{\le}{<=} 2.7.2 | 
 |       again.  Consequently, \code{table(1:2, exclude = NULL)} no longer | 
 |       contains a zero count for \code{<NA>}, but \code{useNA = "always"} | 
 |       continues to do so. | 
 |  | 
 |       \item \code{summary.default()} no longer rounds, but its print | 
 |       method does resulting in less extraneous rounding, notably of | 
 |       numbers in the ten thousands. | 
 |  | 
 |       \item \code{factor(x, exclude = L)} behaves more rationally when | 
 |       \code{x} or \code{L} are character vectors.  Further, | 
 |       \code{exclude = <factor>} now behaves as documented for long. | 
 |  | 
 |       \item Arithmetic, logic (\code{&}, \code{|}) and comparison (aka | 
 |       \sQuote{relational}, e.g., \code{<}, \code{==}) operations with | 
 |       arrays now behave consistently, notably for arrays of length zero. | 
 |  | 
 |       Arithmetic between length-1 arrays and longer non-arrays had | 
 |       silently dropped the array attributes and recycled.  This now | 
 |       gives a warning and will signal an error in the future, as it has | 
 |       always for logic and comparison operations in these cases (e.g., | 
 |       compare \code{matrix(1,1) + 2:3} and \code{matrix(1,1) < 2:3}). | 
 |  | 
 |       \item The JIT (\sQuote{Just In Time}) byte-code compiler is now | 
 |       enabled by default at its level 3. This means functions will be | 
 |       compiled on first or second use and top-level loops will be | 
 |       compiled and then run.  (Thanks to Tomas Kalibera for extensive | 
 |       work to make this possible.) | 
 |  | 
 |       For now, the compiler will not compile code containing explicit | 
 |       calls to \code{browser()}: this is to support single stepping from | 
 |       the \code{browser()} call. | 
 |  | 
 |       JIT compilation can be disabled for the rest of the session using | 
 |       \code{compiler::enableJIT(0)} or by setting environment variable | 
 |       \env{R_ENABLE_JIT} to \code{0}. | 
 |  | 
 |       \item \code{xtabs()} works more consistently with \code{NA}s, also | 
 |       in its result no longer setting them to \code{0}.  Further, a new | 
 |       logical option \code{addNA} allows to count \code{NA}s where | 
 |       appropriate.  Additionally, for the case \code{sparse = TRUE}, the | 
 |       result's \code{dimnames} are identical to the default case's. | 
 |  | 
 |       \item Matrix products now consistently bypass BLAS when the inputs | 
 |       have \code{NaN}/\code{Inf} values. Performance of the check of | 
 |       inputs has been improved. Performance when BLAS is used is | 
 |       improved for matrix/vector and vector/matrix multiplication (DGEMV | 
 |       is now used instead of DGEMM). | 
 |  | 
 |       One can now choose from alternative matrix product implementations | 
 |       \emph{via} \code{options(matprod = )}.  The \code{"internal"} | 
 |       implementation is not optimized for speed but consistent in | 
 |       precision with other summations in R (using \code{long double} | 
 |       accumulators where available).  \code{"blas"} calls BLAS directly | 
 |       for best speed, but usually with undefined behavior for inputs | 
 |       with \code{NaN}/\code{Inf}. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{NEW FEATURES}{ | 
 |     \itemize{ | 
 |       \item User errors such as \code{integrate(f, 0:1, 2)} are now caught. | 
 |  | 
 |       \item Add \code{signature} argument to \code{debug()}, | 
 |       \code{debugonce()}, \code{undebug()} and \code{isdebugged()} for | 
 |       more conveniently debugging S3 and S4 methods.  (Based on a patch by | 
 |       Gabe Becker.) | 
 |  | 
 |       \item Add \code{utils::debugcall()} and | 
 |       \code{utils::undebugcall()} for debugging the function that would | 
 |       be called by evaluating the given expression. When the call is to | 
 |       an S4 generic or standard S3 generic, \code{debugcall()} debugs the | 
 |       method that would be dispatched. A number of internal utilities | 
 |       were added to support this, most notably | 
 |       \code{utils::isS3stdGeneric()}.  (Based on a patch by Gabe Becker.) | 
 |  | 
 |       \item Add \code{utils::strcapture()}. Given a character vector and | 
 |       a regular expression containing capture expressions, | 
 |       \code{strcapture()} will extract the captured tokens into a | 
 |       tabular data structure, typically a \code{data.frame}. | 
 |  | 
 |       \item \code{str()} and \code{strOptions()} get a new option | 
 |       \code{drop.deparse.attr} with improved but \emph{changed} default | 
 |       behaviour for expressions.  For \code{expression} objects | 
 |       \code{x}, \code{str(x)} now may remove extraneous white space and | 
 |       truncate long lines. | 
 |  | 
 |       \item \code{str(<looooooooong_string>)} is no longer very slow; | 
 |       inspired by Mikko Korpela's proposal in \PR{16527}. | 
 |  | 
 |       \item \code{str(x)}'s default method is more \dQuote{accurate} and | 
 |       hence somewhat more generous in displaying character vectors; this | 
 |       will occasionally change \R outputs (and need changes to some | 
 |       \file{*.Rout(.save)} files). | 
 |       \cr %% same \item | 
 |       For a classed integer vector such as \code{x <- xtabs(~ c(1,9,9,9))}, | 
 |       \code{str(x)} now shows both the class and \code{"int"}, instead | 
 |       of only the latter. | 
 |  | 
 |       \item \code{isSymmetric(m)} is much faster for large asymmetric | 
 |       matrices \code{m} \emph{via} pre-tests and a new option \code{tol1} | 
 |       (with which strict back compatibility is possible but not the | 
 |       default). | 
 |  | 
 |       \item The result of \code{eigen()} now is of class \code{"eigen"} | 
 |       in the default case when eigenvectors are computed. | 
 |  | 
 |       \item Zero-length date and date-time objects (of classes | 
 |       \code{"POSIX[cl]?t"}) now \code{print()} \dQuote{recognizably}. | 
 |  | 
 |       \item \code{xy.coords()} and \code{xyz.coords()} get a new | 
 |       \code{setLab} option. | 
 |  | 
 |       \item The \code{method} argument of \code{sort.list()}, | 
 |       \code{order()} and \code{sort.int()} gains an \code{"auto"} option | 
 |       (the default) which should behave the same as before when | 
 |       \code{method} was not supplied. | 
 |  | 
 |       \item \code{stopifnot(E, ..)} now reports differences when | 
 |       \code{E} is a call to \code{all.equal()} and that is not true. | 
 |  | 
 |       \item \code{boxplot(<formula>, *)} gain optional arguments | 
 |       \code{drop}, \code{sep}, and \code{lex.order} to pass to | 
 |       \code{split.default()} which itself gains an argument | 
 |       \code{lex.order} to pass to \code{interaction()} for more | 
 |       flexibility. | 
 |  | 
 |       \item The \code{plot()} method for \code{ppr()} has enhanced | 
 |       default labels (\code{xmin} and \code{main}). | 
 |  | 
 |       \item \code{sample.int()} gains an explicit \code{useHash} option | 
 |       (with a back compatible default). | 
 |  | 
 |       \item \code{identical()} gains an \code{ignore.srcref} option | 
 |       which drops \code{"srcref"} and similar attributes when true (as | 
 |       by default). | 
 |  | 
 |       \item \code{diag(x, nrow = n)} now preserves \code{typeof(x)}, also | 
 |       for logical, integer and raw \code{x} (and as previously for | 
 |       complex and numeric). | 
 |  | 
 |       \item \code{smooth.spline()} now allows direct specification of | 
 |       \code{lambda}, gets a \code{hatvalues()} method and keeps | 
 |       \code{tol} in the result, and optionally parts of the internal | 
 |       matrix computations. | 
 |  | 
 |       \item \code{addNA()} is faster now, e.g.\sspace{}when applied twice. | 
 |       (Part of \PR{16895}.) | 
 |  | 
 |       \item New option \code{rstandard(<lm>, type = "predicted")} | 
 |       provides the \dQuote{PRESS}--related leave-one-out | 
 |       cross-validation errors for linear models. | 
 |  | 
 |       \item After seven years of deprecation, duplicated factor levels | 
 |       now produce a warning when printed and an error in \code{levels<-} | 
 |       instead of a warning. | 
 |  | 
 |       \item Invalid factors, e.g., with duplicated levels (invalid but | 
 |       constructable) now give a warning when printed, \emph{via} new | 
 |       function \code{.valid.factor()}. | 
 |  | 
 |       \item \code{sessionInfo()} has been updated for Apple's change in | 
 |       OS naming as from \sQuote{10.12} (\sQuote{macOS Sierra} \emph{vs} | 
 |       \sQuote{OS X El Capitan}). | 
 |  | 
 |       Its \code{toLatex()} method now includes the \code{running} | 
 |       component. | 
 |  | 
 |       \item \code{options(interrupt=)} can be used to specify a default | 
 |       action for user interrupts.  For now, if this option is not set | 
 |       and the \code{error} option is set, then an unhandled user | 
 |       interrupt invokes the \code{error} option.  (This may be dropped in | 
 |       the future as \code{interrupt} conditions are not \code{error} | 
 |       conditions.) | 
 |  | 
 |       \item In most cases user interrupt handlers will be called with a | 
 |       \code{"resume"} restart available.  Handlers can invoke this | 
 |       restart to resume computation. At the browser prompt the \code{r} | 
 |       command will invoke a \code{"resume"} restart if one is | 
 |       available. Some read operations cannot be resumed properly when | 
 |       interrupted and do not provide a \code{"resume"} restart. | 
 |  | 
 |       \item Radix sort is now chosen by \code{method = "auto"} for | 
 |       \code{sort.int()} for double vectors (and hence used for | 
 |       \code{sort()} for unclassed double vectors), excluding | 
 |       \sQuote{long} vectors. | 
 |  | 
 |       \code{sort.int(method = "radix")} no longer rounds double vectors. | 
 |  | 
 |       \item The \code{default} and \code{data.frame} methods for | 
 |       \code{stack()} preserve the names of empty elements in the levels | 
 |       of the \code{ind} column of the return value.  Set the new | 
 |       \code{drop} argument to \code{TRUE} for the previous behavior. | 
 |  | 
 |       \item Speedup in \code{simplify2array()} and hence \code{sapply()} and | 
 |       \code{mapply()} (for the case of names and common length > 1), | 
 |       thanks to Suharto Anggono's \PR{17118}. | 
 |  | 
 |       \item \code{table(x, exclude = NULL)} now sets | 
 |       \code{useNA = "ifany"} (instead of \code{"always"}). | 
 |       Together with the bug fixes for this case, this recovers more | 
 |       consistent behaviour  compatible to older versions of \R.  As | 
 |       a consequence, \code{summary()} for a logical vector no longer | 
 |       reports (zero) counts for \code{NA} when there are no \code{NA}s. | 
 |  | 
 |       \item \code{dump.frames()} gets a new option | 
 |       \code{include.GlobalEnv} which allows to also dump the global | 
 |       environment, thanks to Andreas Kersting's proposal in \PR{17116}. | 
 |  | 
 |       \item \code{system.time()} now uses \code{message()} instead of | 
 |       \code{cat()} when terminated early, such that | 
 |       \code{suppressMessages()} has an effect; suggested by Ben Bolker. | 
 |  | 
 |       \item \code{citation()} supports \file{inst/CITATION} files from | 
 |       package source trees, with \code{lib.loc} pointing to the | 
 |       directory containing the package. | 
 |  | 
 |       %% Would need more work (notably in  ../src/main/sort.c ) | 
 |       %% \item New \code{orderL(lst, ....)} for use in \code{do.call()} to | 
 |       %% avoid the name problem seen in \PR{17119}. | 
 |  | 
 |       \item \code{try()} gains a new argument \code{outFile} with a | 
 |       default that can be modified \emph{via} | 
 |       \code{options(try.outFile = .)}, useful notably for \code{Sweave}. | 
 |  | 
 |       \item The unexported low-level functions in package \pkg{parallel} | 
 |       for passing serialized \R objects to and from forked children now | 
 |       support long vectors on 64-bit platforms.  This removes some | 
 |       limits on higher-level functions such as \code{mclapply()} (but | 
 |       returning gigabyte results from forked processes \emph{via} | 
 |       serialization should be avoided if at all possible). | 
 |  | 
 |       \item Connections now \code{print()} without error even if | 
 |       invalid, e.g.\sspace{}after having been destroyed. | 
 |  | 
 |       \item \code{apropos()} and \code{find(simple.words = FALSE)} no | 
 |       longer match object names starting with \samp{.} which are known | 
 |       to be internal objects (such as \code{.__S3MethodsTable__.}). | 
 |  | 
 |       \item Convenience function \code{hasName()} has been added; it | 
 |       is intended to replace the common idiom \code{!is.null(x$name)} | 
 |       without the usually unintended partial name matching. | 
 |  | 
 |       \item \code{strcapture()} no longer fixes column names nor coerces | 
 |       strings to factors (suggested by Bill Dunlap). | 
 |  | 
 |       \item \code{strcapture()} returns \code{NA} for non-matching | 
 |       values in \code{x} (suggested by Bill Dunlap). | 
 |  | 
 |       \item \code{source()} gets new optional arguments, notably | 
 |       \code{exprs}; this is made use of in the new utility function | 
 |       \code{withAutoprint()}. | 
 |  | 
 |       \item \code{sys.source()} gets a new \code{toplevel.env} argument. | 
 |       This argument is useful for frameworks running package tests; | 
 |       contributed by Tomas Kalibera. | 
 |  | 
 |       \item \code{Sys.setFileTime()} and | 
 |       \code{file.copy(copy.date = TRUE)} will set timestamps with | 
 |       fractions of seconds on platforms/filesystems which support this. | 
 |  | 
 |       \item (Windows only.) \code{file.info()} now returns file | 
 |       timestamps including fractions of seconds; it has done so on other | 
 |       platforms since \R 2.14.0.  (NB: some filesystems do not | 
 |       record modification and access timestamps to sub-second | 
 |       resolution.) | 
 |  | 
 |       \item The license check enabled by | 
 |       \code{options(checkPackageLicense = TRUE)} is now done when the | 
 |       package's namespace is first loaded. | 
 |  | 
 |       \item \code{ppr()} and \code{supsmu()} get an optional | 
 |       \code{trace} argument, and \code{ppr(.., sm.method = ..spline)} is | 
 |       no longer limited to sample size \eqn{n \le 2500}{n <= 2500}. | 
 |  | 
 |       \item The \code{POSIXct} method for \code{print()} gets optional | 
 |       \code{tz} and \code{usetz} arguments, thanks to a report from | 
 |       Jennifer S. Lyon. | 
 |  | 
 |       \item New function \code{check_packages_in_dir_details()} in | 
 |       package \pkg{tools} for analyzing package-check log files to | 
 |       obtain check details. | 
 |  | 
 |       \item Package \pkg{tools} now exports function | 
 |       \code{CRAN_package_db()} for obtaining information about current | 
 |       packages in the \acronym{CRAN} package repository, and several | 
 |       functions for obtaining the check status of these packages. | 
 |  | 
 |       \item The (default) Stangle driver \code{Rtangle} allows | 
 |       \code{annotate} to be a function and gets a new | 
 |       \code{drop.evalFALSE} option. | 
 |  | 
 |       \item The default method for \code{quantile(x, prob)} should now | 
 |       be monotone in \code{prob}, even in border cases, see \PR{16672}. | 
 |  | 
 |       \item \code{bug.report()} now tries to extract an email address | 
 |       from a \samp{BugReports} field, and if there is none, from a | 
 |       \samp{Contacts} field. | 
 |  | 
 |       \item The \code{format()} and \code{print()} methods for | 
 |       \code{object.size()} results get new options \code{standard} and | 
 |       \code{digits}; notably, \code{standard = "IEC"} and | 
 |       \code{standard = "SI"} allow more standard (but less common) | 
 |       abbreviations than the default ones, e.g.\sspace{}for kilobytes. | 
 |       (From contributions by Henrik Bengtsson.) | 
 |  | 
 |       \item If a reference class has a validity method, | 
 |       \code{validObject} will be called automatically from the | 
 |       default initialization method for reference classes. | 
 |  | 
 |       \item \code{tapply()} gets new option \code{default = NA} | 
 |       allowing to change the previously hardcoded value. | 
 |  | 
 |       \item \code{read.dcf()} now consistently interprets any | 
 |       \sQuote{whitespace} to be stripped to include newlines. | 
 |  | 
 |       \item The maximum number of DLLs that can be loaded into R | 
 |       e.g.\sspace{}\emph{via} \code{dyn.load()} can now be increased by | 
 |       setting the environment variable \code{R_MAX_NUM_DLLS} before | 
 |       starting R. | 
 |  | 
 |       \item Assigning to an element of a vector beyond the current | 
 |       length now over-allocates by a small fraction. The new vector is | 
 |       marked internally as growable, and the true length of the new | 
 |       vector is stored in the \code{truelength} field. This makes | 
 |       building up a vector result by assigning to the next element | 
 |       beyond the current length more efficient, though pre-allocating is | 
 |       still preferred.  The implementation is subject to change and not | 
 |       intended to be used in packages at this time. | 
 |  | 
 |       \item Loading the \pkg{parallel} package namespace no longer sets | 
 |       or changes the \code{.Random.seed}, even if \env{R_PARALLEL_PORT} | 
 |       is unset. | 
 |  | 
 |       NB: This can break reproducibility of output, and did for a | 
 |       \acronym{CRAN} package. | 
 |  | 
 |       \item Methods \code{"wget"} and \code{"curl"} for | 
 |       \code{download.file()} now give an \R error rather than a non-zero | 
 |       return value when the external command has a non-zero status. | 
 |  | 
 |       \item Encoding name \code{"utf8"} is mapped to \code{"UTF-8"}. | 
 |       Many implementations of \code{iconv} accept \code{"utf8"}, but not | 
 |       GNU \pkg{libiconv} (including the late 2016 version 1.15). | 
 |  | 
 |       \item \code{sessionInfo()} shows the full paths to the library or | 
 |       executable files providing the BLAS/LAPACK implementations | 
 |       currently in use (not available on Windows). | 
 |  | 
 |       \item The binning algorithm used by bandwidth selectors | 
 |       \code{bw.ucv()}, \code{bw.bcv()} and \code{bw.SJ()} switches to a | 
 |       version linear in the input size \code{n} for \code{n > nb/2}. | 
 |       (The calculations are the same, but for larger \code{n/nb} it is | 
 |       worth doing the binning in advance.) | 
 |  | 
 |       \item There is a new option \code{PCRE_study} which controls when | 
 |       \code{grep(perl = TRUE)} and friends \sQuote{study} the compiled | 
 |       pattern.  Previously this was done for 11 or more input strings: | 
 |       it now defaults to 10 or more (but most examples need many more | 
 |       for the difference from studying to be noticeable). | 
 |  | 
 |       \item \code{grep(perl = TRUE)} and friends can now make use of | 
 |       PCRE's Just-In-Time mechanism, for PCRE \eqn{\ge}{>=} 8.20 on | 
 |       platforms where JIT is supported.  It is used by default whenever | 
 |       the \code{pattern} is studied (see the previous item).  (Based on | 
 |       a patch from Mikko Korpela.) | 
 |  | 
 |       This is controlled by a new option \code{PCRE_use_JIT}. | 
 |  | 
 |       Note that in general this makes little difference to the speed, | 
 |       and may take a little longer: its benefits are most evident on | 
 |       strings of thousands of characters.  As a side effect it reduces | 
 |       the chances of C stack overflow in the PCRE library on very long | 
 |       strings (millions of characters, but see next item). | 
 |  | 
 |       Warning: segfaults were seen using PCRE with JIT enabled on 64-bit | 
 |       Sparc builds. | 
 |  | 
 |       \item There is a new option \code{PCRE_limit_recursion} for | 
 |       \code{grep(perl = TRUE)} and friends to set a recursion limit | 
 |       taking into account \R's estimate of the remaining C stack space | 
 |       (or 10000 if that is not available).  This reduces the chance of C | 
 |       stack overflow, but because it is conservative may report a | 
 |       non-match (with a warning) in examples that matched before.  By | 
 |       default it is enabled if any input string has 1000 or more bytes. | 
 |       (\PR{16757}) | 
 |  | 
 |       \item \code{getGraphicsEvent()} now works on | 
 |       \code{X11(type = "cairo")} devices.  Thanks to Frederick Eaton (for | 
 |       reviving an earlier patch). | 
 |  | 
 |       \item There is a new argument \code{onIdle} for | 
 |       \code{getGraphicsEvent()}, which allows an R function to be run | 
 |       whenever there are no pending graphics events.  This is currently | 
 |       only supported on X11 devices.  Thanks to Frederick Eaton. | 
 |  | 
 |       \item The \code{deriv()} and similar functions now can compute | 
 |       derivatives of \code{log1p()}, \code{sinpi()} and similar | 
 |       one-argument functions, thanks to a contribution by Jerry Lewis. | 
 |  | 
 |       \item \code{median()} gains a formal \code{\dots} argument, so | 
 |       methods with extra arguments can be provided. | 
 |  | 
 |       \item \code{strwrap()} reduces \code{indent} if it is more than | 
 |       half \code{width} rather than giving an error.  (Suggested by Bill | 
 |       Dunlap.) | 
 |  | 
 |       \item When the condition \code{code} in \code{if(.)} or | 
 |       \code{while(.)} is not of length one, an error instead of a | 
 |       warning may be triggered by setting an environment variable, see | 
 |       the help page. | 
 |  | 
 |       \item Formatting and printing of bibliography entries | 
 |       (\code{bibentry}) is more flexible and better documented.  Apart | 
 |       from setting \code{options(citation.bibtex.max = 99)} you can also | 
 |       use \code{print(<citation>, bibtex=TRUE)} (or \code{format(..)}) | 
 |       to get the BibTeX entries in the case of more than one entry. | 
 |       This also affects \code{citation()}. | 
 |       Contributions to enable \code{style = "html+bibtex"} are welcome. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{C-LEVEL FACILITIES}{ | 
 |     \itemize{ | 
 |       \item Entry points \code{R_MakeExternalPtrFn} and | 
 |       \code{R_ExternalPtrFn} are now declared in header | 
 |       \file{Rinternals.h} to facilitate creating and retrieving an \R{} | 
 |       external pointer from a C function pointer without ISO C warnings | 
 |       about the conversion of function pointers. | 
 |  | 
 |       \item There was an exception for the native Solaris C++ compiler | 
 |       to the dropping (in \R 3.3.0) of legacy C++ headers from headers | 
 |       such as \file{R.h} and \file{Rmath.h} --- this has now been | 
 |       removed.  That compiler has strict C++98 compliance hence does not | 
 |       include extensions in its (non-legacy) C++ headers: some | 
 |       packages will need to request C++11 or replace non-C++98 calls | 
 |       such as \code{lgamma}: see §1.6.4 of \sQuote{Writing R Extensions}. | 
 |  | 
 |       Because it is needed by about 70 CRAN packages, headers \file{R.h} | 
 |       and \file{Rmath.h} still declare \preformatted{use namespace std;} | 
 |       when included on Solaris. | 
 |  | 
 |       \item When included from C++, the \R headers now use forms such as | 
 |       \code{std::FILE} directly rather than including the line \preformatted{using std::FILE;} | 
 |       C++ code including these headers might be relying on the latter. | 
 |  | 
 |       \item Headers \file{R_ext/BLAS.h} and \file{R_ext/Lapack.h} have | 
 |       many improved declarations including \code{const} for | 
 |       double-precision complex routines. \emph{Inter alia} this avoids | 
 |       warnings when passing \sQuote{string literal} arguments from C++11 | 
 |       code. | 
 |  | 
 |       \item Headers for Unix-only facilities \file{R_ext/GetX11Image.h}, | 
 |       \file{R_ext/QuartzDevice.h} and \file{R_ext/eventloop.h} are no | 
 |       longer installed on Windows. | 
 |  | 
 |       \item No-longer-installed headers \file{GraphicsBase.h}, | 
 |       \file{RGraphics.h}, \file{Rmodules/RX11.h} and | 
 |       \file{Rmodules/Rlapack.h} which had a LGPL license no longer do so. | 
 |  | 
 |       \item \code{HAVE_UINTPTR_T} is now defined where appropriate by | 
 |       \code{Rconfig.h} so that it can be included before | 
 |       \code{Rinterface.h} when \code{CSTACK_DEFNS} is defined and a C | 
 |       compiler (not C++) is in use.  \code{Rinterface.h} now includes C | 
 |       header \file{stdint.h} or C++11 header \file{cstdint} where | 
 |       needed. | 
 |  | 
 |       \item Package \pkg{tools} has a new function | 
 |       \code{package_native_routine_registration_skeleton()} to assist | 
 |       adding native-symbol registration to a package.  See its help and | 
 |       §5.4.1 of \sQuote{Writing R Extensions} for how to use it.  (At | 
 |       the time it was added it successfully automated adding | 
 |       registration to over 90\% of \acronym{CRAN} packages which lacked | 
 |       it.  Many of the failures were newly-detected bugs in the | 
 |       packages, e.g.\sspace50 packages called entry points with varying | 
 |       numbers of arguments and 65 packages called entry points not in | 
 |       the package.) | 
 |       %% 235 fail out of 2460, with 15 others working with | 
 |       %% character_only = FALSE. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{INSTALLATION on a UNIX-ALIKE}{ | 
 |     \itemize{ | 
 |       \item \code{readline} headers (and not just the library) are | 
 |       required unless configuring with \option{--with-readline=no}. | 
 |  | 
 |       \item \command{configure} now adds a compiler switch for C++11 | 
 |       code, even if the compiler supports C++11 by default.  (This | 
 |       ensures that \command{g++} 6.x uses C++11 mode and not its default | 
 |       mode of C++14 with \sQuote{GNU extensions}.) | 
 |  | 
 |       The tests for C++11 compliance are now much more comprehensive. | 
 |       For gcc < 4.8, the tests from R 3.3.0 are used in order to maintain | 
 |       the same behaviour on Linux distributions with long-term support. | 
 |  | 
 |       \item An alternative compiler for C++11 is now specified with | 
 |       \samp{CXX11}, not \samp{CXX1X}. Likewise C++11 flags are specified | 
 |       with \samp{CXX11FLAGS} and the standard (e.g., \samp{-std=gnu++11}) | 
 |       is specified with \samp{CXX11STD}. | 
 |  | 
 |       \item \command{configure} now tests for a C++14-compliant compiler | 
 |       by testing some basic features.  This by default tries flags for | 
 |       the compiler specified by \samp{CXX11}, but an alternative compiler, | 
 |       options and standard can be specified by variables \samp{CXX14}, | 
 |       \samp{CXX14FLAGS} and \samp{CXX14STD} (e.g., \option{-std=gnu++14}). | 
 |  | 
 |       \item There is a new macro \code{CXXSTD} to help specify the | 
 |       standard for C++ code, e.g.\sspace{}\option{-std=c++98}.  This | 
 |       makes it easier to work with compilers which default to a later | 
 |       standard: for example, with \code{CXX=g++6 CXXSTD=-std=c++98} | 
 |       \command{configure} will select commands for \command{g++} 6.x | 
 |       which conform to C++11 and C++14 where specified but otherwise use | 
 |       C++98. | 
 |  | 
 |       \item Support for the defunct IRIX and OSF/1 OSes and Alpha CPU | 
 |       has been removed. | 
 |  | 
 |       \item \command{configure} checks that the compiler specified by | 
 |       \samp{$CXX $CXXFLAGS} is able to compile C++ code. | 
 |  | 
 |       \item \command{configure} checks for the required header | 
 |       \file{sys/select.h} (or \file{sys/time.h} on legacy systems) and | 
 |       system call \code{select} and aborts if they are not found. | 
 |  | 
 |       \item If available, the POSIX 2008 system call \code{utimensat} | 
 |       will be used by \code{Sys.setFileTime()} and | 
 |       \code{file.copy(copy.date = TRUE)}.  This may result in slightly | 
 |       more accurate file times.  (It is available on Linux and FreeBSD | 
 |       but not macOS.) | 
 |       %% My Solaris 10 system does not have it, but Oracle's online help does | 
 |  | 
 |       \item The minimum version requirement for \code{libcurl} has been | 
 |       reduced to 7.22.0, although at least 7.28.0 is preferred and | 
 |       earlier versions are little tested.  (This is to support Debian 7 | 
 |       \sQuote{Wheezy} LTS and Ubuntu \sQuote{Precise} 12.04 LTS, | 
 |       although the latter is close to end-of-life.) | 
 |       %% Debian Wheezy LTS is supported until 2018-05-31 | 
 |  | 
 |       \item \command{configure} tests for a C++17-compliant compiler. | 
 |       The tests are experimental and subject to change in the future. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{INCLUDED SOFTWARE}{ | 
 |     \itemize{ | 
 |       \item (Windows only) Tcl/Tk version 8.6.4 is now included in the | 
 |       binary builds.  The \file{tcltk*.chm} help file is no longer | 
 |       included; please consult the online help at | 
 |       \url{http://www.tcl.tk/man/} instead. | 
 |  | 
 |       \item The version of LAPACK included in the sources has been | 
 |       updated to 3.7.0: no new routines have been added to \R{}. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{PACKAGE INSTALLATION}{ | 
 |     \itemize{ | 
 |       \item There is support for compiling C++14 or C++17 code in | 
 |       packages on suitable platforms: see \sQuote{Writing R Extensions} | 
 |       for how to request this. | 
 |  | 
 |       \item The order of flags when \samp{LinkingTo} other packages has | 
 |       been changed so their include directories come earlier, before | 
 |       those specified in \code{CPPFLAGS}.  This will only have an effect | 
 |       if non-system include directories are included with \option{-I} | 
 |       flags in \code{CPPFLAGS} (and so not the default | 
 |       \code{-I/usr/local/include} which is treated as a system include | 
 |       directory on most platforms). | 
 |       %% This ensures that BH's 'boost' directory gets precedent over | 
 |       %% any Boost headers in, say, /opt/csw/include . | 
 |  | 
 |       \item Packages which register native routines for \code{.C} or | 
 |       \code{.Fortran} need to be re-installed for this version (unless | 
 |       installed with R-devel SVN revision r72375 or later). | 
 |  | 
 |       \item Make variables with names containing \code{CXX1X} are | 
 |       deprecated in favour of those using \code{CXX11}, but for the time | 
 |       being are still made available \emph{via} file | 
 |       \file{etc/Makeconf}.  Packages using them should be converted to | 
 |       the new forms and made dependent on \samp{R (>= 3.4.0)}. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{UTILITIES}{ | 
 |     \itemize{ | 
 |       \item Running \command{R CMD check --as-cran} with | 
 |       \env{_R_CHECK_CRAN_INCOMING_REMOTE_} false now skips tests that | 
 |       require remote access.  The remaining (local) tests typically | 
 |       run quickly compared to the remote tests. | 
 |  | 
 |       \item \command{R CMD build} will now give priority to vignettes | 
 |       produced from files in the \file{vignettes} directory over those | 
 |       in the \file{inst/doc} directory, with a warning that the latter | 
 |       are being ignored. | 
 |  | 
 |       \item \command{R CMD config} gains a \option{--all} option for | 
 |       printing names and values of all basic configure variables. | 
 |  | 
 |       It now knows about all the variables used for the C++98, C++11 and | 
 |       C++14 standards. | 
 |  | 
 |       \item \command{R CMD check} now checks that output files in | 
 |       \file{inst/doc} are newer than the source files in \file{vignettes}. | 
 |  | 
 |       \item For consistency with other package subdirectories, files | 
 |       named \file{*.r} in the \file{tests} directory are now recognized | 
 |       as tests by \command{R CMD check}. (Wish of \PR{17143}.) | 
 |  | 
 |       \item \command{R CMD build} and \command{R CMD check} now use the | 
 |       \emph{union} of \env{R_LIBS} and \code{.libPaths()}.  They may not | 
 |       be equivalent, e.g., when the latter is determined by | 
 |       \env{R_PROFILE}. | 
 |  | 
 |       \item \command{R CMD build} now preserves dates when it copies files | 
 |       in preparing the tarball.  (Previously on Windows it changed the | 
 |       dates on all files; on Unix, it changed some dates when installing | 
 |       vignettes.) | 
 |  | 
 |       \item The new option \command{R CMD check --no-stop-on-test-error} | 
 |       allows running the remaining tests (under \file{tests/}) even if | 
 |       one gave an error. | 
 |  | 
 |       \item Check customization \emph{via} environment variables to | 
 |       detect side effects of \code{.Call()} and \code{.External()} calls | 
 |       which alter their arguments is described in §8 of the \sQuote{R | 
 |       Internals} manual. | 
 |  | 
 |       \item \command{R CMD check} now checks any \samp{BugReports} field | 
 |       to be non-empty and a suitable single URL. | 
 |  | 
 |       \item \command{R CMD check --as-cran} now NOTEs if the package | 
 |       does not register its native routines or does not declare its | 
 |       intentions on (native) symbol search.  (This will become a WARNING | 
 |       in due course.) | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{DEPRECATED AND DEFUNCT}{ | 
 |     \itemize{ | 
 |       \item (Windows only) Function \code{setInternet2()} is defunct. | 
 |  | 
 |       \item Installation support for \code{readline} emulations based on | 
 |       \code{editline} (aka \code{libedit}) is deprecated. | 
 |  | 
 |       \item Use of the C/C++ macro \samp{NO_C_HEADERS} is defunct and | 
 |       silently ignored. | 
 |  | 
 |       \item \code{unix.time()}, a traditional synonym for | 
 |       \code{system.time()}, has been deprecated. | 
 |  | 
 |       \item \code{structure(NULL, ..)} is now deprecated as you cannot | 
 |       set attributes on \code{\link{NULL}}. | 
 |  | 
 |       \item Header \file{Rconfig.h} no longer defines | 
 |       \samp{SUPPORT_OPENMP}; instead use \samp{_OPENMP} (as documented | 
 |       for a long time). | 
 |  | 
 |       \item (C-level Native routine registration.)  The deprecated | 
 |       \code{styles} member of the \code{R_CMethodDef} and | 
 |       \code{R_FortranMethodDef} structures has been removed. | 
 |       Packages using these will need to be re-installed for \R 3.4.0. | 
 |  | 
 |       \item The deprecated support for PCRE versions older than 8.20 | 
 |       will be removed in \R 3.4.1. (Versions 8.20--8.31 will still be | 
 |       accepted but remain deprecated.) | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{BUG FIXES}{ | 
 |     \itemize{ | 
 |       \item Getting or setting \code{body()} or \code{formals()} on | 
 |       non-functions for now signals a warning and may become an error | 
 |       for setting. | 
 |  | 
 |       \item \code{match(x, t)}, \code{duplicated(x)} and | 
 |       \code{unique(x)} work as documented for complex numbers with \code{NA}s | 
 |       or \code{NaN}s, where all those containing \code{NA} do match, | 
 |       whereas in the case of \code{NaN}'s both real and imaginary parts | 
 |       must match, compatibly with how \code{print()} and \code{format()} | 
 |       work for complex numbers. | 
 |  | 
 |       \item \code{deparse(<complex>, options = "digits17")} prints more | 
 |       nicely now, mostly thanks to a suggestion by Richie Cotton. | 
 |  | 
 |       \item Rotated symbols in plotmath expressions are now positioned | 
 |       correctly on \code{x11(type = "Xlib")}. (\PR{16948}) | 
 |  | 
 |       \item \code{as<-()} avoids an infinite loop when a virtual class | 
 |       is interposed between a subclass and an actual superclass. | 
 |  | 
 |       \item Fix level propagation in \code{unlist()} when the list | 
 |       contains zero-length lists or factors. | 
 |  | 
 |       \item Fix S3 dispatch on S4 objects when the \pkg{methods} package is | 
 |       not attached. | 
 |  | 
 |       \item Internal S4 dispatch sets \code{.Generic} in the method | 
 |       frame for consistency with \code{standardGeneric()}.  (\PR{16929}) | 
 |  | 
 |       \item Fix \code{order(x, decreasing = TRUE)} when \code{x} is an | 
 |       integer vector containing \code{MAX_INT}.  Ported from a fix Matt | 
 |       Dowle made to \CRANpkg{data.table}. | 
 |  | 
 |       \item Fix caching by \code{callNextMethod()}, resolves \PR{16973} | 
 |       and \PR{16974}. | 
 |  | 
 |       \item \code{grouping()} puts NAs last, to be consistent with the | 
 |       default behavior of \code{order()}. | 
 |  | 
 |       \item Point mass limit cases: \code{qpois(-2, 0)} now gives | 
 |       \code{NaN} with a warning and \code{qgeom(1, 1)} is \code{0}. | 
 |       (\PR{16972}) | 
 |  | 
 |       \item \code{table()} no longer drops an \code{"NaN"} factor level, | 
 |       and better obeys \code{exclude = <chr>}, thanks to Suharto Anggono's | 
 |       patch for \PR{16936}.  Also, in the case of \code{exclude = NULL} | 
 |       and \code{NA}s, these are tabulated correctly (again). | 
 |  | 
 |       Further, \code{table(1:2, exclude = 1, useNA = "ifany")} no longer | 
 |       erroneously reports \code{<NA>} counts. | 
 |  | 
 |       Additionally, all cases of empty \code{exclude} are equivalent, | 
 |       and \code{useNA} is not overwritten when specified (as it was by | 
 |       \code{exclude = NULL}). | 
 |  | 
 |       \item \code{wilcox.test(x, conf.int=TRUE)} no longer errors out in | 
 |       cases where the confidence interval is not available, such as for | 
 |       \code{x = 0:2}. | 
 |  | 
 |       \item \code{droplevels(f)} now keeps <NA> levels when present. | 
 |  | 
 |       \item In integer arithmetic, \code{NULL} is now treated as | 
 |       \code{integer(0)} whereas it was previously treated as \code{double(0)}. | 
 |  | 
 |       \item The radix sort considers \code{NA_real_} and \code{NaN} to | 
 |       be equivalent in rank (like the other sort algorithms). | 
 |  | 
 |       \item When \code{index.return=TRUE} is passed to \code{sort.int()}, | 
 |       the radix sort treats \code{NA}s like \code{sort.list()} does | 
 |       (like the other sort algorithms). | 
 |  | 
 |       \item When in \code{tabulate(bin, nbin)} \code{length(bin)} is | 
 |       larger than the maximal integer, the result is now of type | 
 |       \code{double} and hence no longer silently overflows to wrong | 
 |       values.  (\PR{17140}) | 
 |  | 
 |       \item \code{as.character.factor()} respects S4 inheritance when | 
 |       checking the type of its argument. (\PR{17141}) | 
 |  | 
 |       \item The \code{factor} method for \code{print()} no longer sets | 
 |       the class of the factor to \code{NULL}, which would violate a | 
 |       basic constraint of an S4 object. | 
 |  | 
 |       \item \code{formatC(x, flag = f)} allows two new flags, and | 
 |       signals an error for invalid flags also in the case of character | 
 |       formatting. | 
 |  | 
 |       \item Reading from \code{file("stdin")} now also closes the | 
 |       connection and hence no longer leaks memory when reading from a | 
 |       full pipe, thanks to Gábor Csárdi, see thread starting at | 
 |       \url{https://stat.ethz.ch/pipermail/r-devel/2016-November/073360.html}. | 
 |  | 
 |       \item Failure to create file in \code{tempdir()} for compressed | 
 |       \code{pdf()} graphics device no longer errors (then later | 
 |       segfaults).  There is now a warning instead of error and | 
 |       compression is turned off for the device.  Thanks to Alec | 
 |       Wysoker (\PR{17191}). | 
 |  | 
 |       \item Asking for \code{methods()} on \code{"|"} returns only S3 | 
 |       methods. See | 
 |       \url{https://stat.ethz.ch/pipermail/r-devel/2016-December/073476.html}. | 
 |  | 
 |       \item \code{dev.capture()} using Quartz Cocoa device (macOS) returned | 
 |       invalid components if the back-end chose to use ARGB instead of RGBA | 
 |       image format. (Reported by Noam Ross.) | 
 |  | 
 |       \item \code{seq("2", "5")} now works too, equivalently to | 
 |       \code{"2":"5"} and \code{seq.int()}. | 
 |  | 
 |       \item \code{seq.int(to = 1, by = 1)} is now correct, other cases are | 
 |       integer (instead of \code{double}) when \code{seq()} is integer | 
 |       too, and the "non-finite" error messages are consistent between | 
 |       \code{seq.default()} and \code{seq.int()}, no longer mentioning | 
 |       \code{NaN} etc. | 
 |  | 
 |       \item \code{rep(x, times)} and \code{rep.int(x, times)} now work | 
 |       when \code{times} is larger than the largest value representable | 
 |       in an integer vector.  (\PR{16932}) | 
 |  | 
 |       \item \code{download.file(method = "libcurl")} does not check for | 
 |       URL existence before attempting downloads; this is more robust to | 
 |       servers that do not support HEAD or range-based retrieval, but may | 
 |       create empty or incomplete files for aborted download requests. | 
 |  | 
 |       \item Bandwidth selectors \code{bw.ucv()}, \code{bw.bcv()} and | 
 |       \code{bw.SJ()} now avoid integer overflow for large sample sizes. | 
 |  | 
 |       \item \code{str()} no longer shows \code{"list output truncated"}, | 
 |       in cases that list was not shown at all.  Thanks to Neal Fultz | 
 |       (\PR{17219}) | 
 |  | 
 |       \item Fix for \code{cairo_pdf()} (and \code{svg()} and | 
 |       \code{cairo_ps()}) when replaying a saved display list that contains | 
 |       a mix of \pkg{grid} and \pkg{graphics} output. | 
 |       (Report by Yihui Xie.) | 
 |  | 
 |       %% It never failed in a released version of R: pre-3.3.3 did | 
 |       %% \item \code{rep(3, list(4))} works again, as \code{\link{list}}s | 
 |       %% \emph{are} vectors. | 
 |  | 
 |       \item The \code{str()} and \code{as.hclust()} methods for | 
 |       \code{"dendrogram"} now also work for deeply nested dendrograms | 
 |       thanks to non-recursive implementations by Bradley Broom. | 
 |  | 
 |       \item \code{sample()} now uses two uniforms for added precision | 
 |       when the uniform generator is \code{Knuth-TAOCP}, | 
 |       \code{Knuth-TAOCP-2002}, or a user-defined generator and the | 
 |       population size is \eqn{2^{25}}{2^25} or greater. | 
 |  | 
 |       \item If a vignette in the \file{vignettes} directory is listed in | 
 |       \file{.Rbuildignore}, \command{R CMD build} would not include it | 
 |       in the tarball, but would include it in the vignette database, | 
 |       leading to a check warning.  (\PR{17246}) | 
 |  | 
 |       \item \code{tools::latexToUtf8()} infinite looped on certain | 
 |       inputs.  (\PR{17138}) | 
 |  | 
 |       \item \code{terms.formula()} ignored argument names when determining | 
 |       whether two terms were identical.  (\PR{17235}) | 
 |  | 
 |       \item \code{callNextMethod()} was broken when called from a method | 
 |       that augments the formal arguments of a primitive generic. | 
 |  | 
 |       \item Coercion of an S4 object to a vector during sub-assignment | 
 |       into a vector failed to dispatch through the \code{as.vector()} | 
 |       generic (often leading to a segfault). | 
 |  | 
 |       \item Fix problems in command completion:  Crash (\PR{17222}) | 
 |       and junk display in Windows, handling special characters in | 
 |       filenames on all systems. | 
 |     } | 
 |   } | 
 | } | 
 |  | 
 | \section{\Rlogo CHANGES IN R 3.3.3}{ | 
 |   \subsection{NEW FEATURES}{ | 
 |     \itemize{ | 
 |       \item Changes when redirection of a \samp{http://} URL to a | 
 |       \samp{https://} URL is encountered: | 
 |  | 
 |       \itemize{ | 
 | 	\item The internal methods of \code{download.file()} and | 
 | 	\code{url()} now report that they cannot follow this (rather | 
 | 	than failing silently). | 
 |  | 
 | 	\item (Unix-alike) \code{download.file(method = "auto")} (the | 
 | 	default) re-tries with \code{method = "libcurl"}. | 
 |  | 
 | 	\item (Unix-alike) \code{url(method = "default")} with an | 
 | 	explicit \code{open} argument re-tries with | 
 | 	\code{method = "libcurl"}.  This covers many of the usages, | 
 | 	e.g.\sspace{}\code{readLines()} with a URL argument. | 
 |       } | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{INSTALLATION on a UNIX-ALIKE}{ | 
 |     \itemize{ | 
 |       \item The \command{configure} check for the \code{zlib} version is | 
 |       now robust to versions longer than 5 characters, including | 
 |       \code{1.2.11}. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{UTILITIES}{ | 
 |     \itemize{ | 
 |       \item Environmental variable \env{_R_CHECK_TESTS_NLINES_} controls | 
 |       how \command{R CMD check} reports failing tests (see §8 of the | 
 |       \sQuote{R Internals} manual). | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{DEPRECATED AND DEFUNCT}{ | 
 |     \itemize{ | 
 |       \item (C-level Native routine registration.)  The undocumented | 
 |       \code{styles} field of the components of \code{R_CMethodDef} and | 
 |       \code{R_FortranMethodDef} is deprecated. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{BUG FIXES}{ | 
 |     \itemize{ | 
 |       \item \code{vapply(x, *)} now works with long vectors \code{x}. | 
 |       (\PR{17174}) | 
 |  | 
 |       \item \code{isS3method("is.na.data.frame")} and similar are | 
 |       correct now.  (\PR{17171}) | 
 |  | 
 |       \item \code{grepRaw(<long>, <short>, fixed = TRUE)} now works, | 
 |       thanks to a patch by Mikko Korpela.  (\PR{17132}) | 
 |  | 
 |       \item Package installation into a library where the package exists | 
 |       \emph{via} symbolic link now should work wherever | 
 |       \code{Sys.readlink()} works, resolving \PR{16725}. | 
 |  | 
 |       \item \code{"Cincinnati"} was missing an \code{"n"} in the | 
 |       \code{precip} dataset. | 
 |  | 
 |       \item Fix buffer overflow vulnerability in \code{pdf()} when | 
 |       loading an encoding file.  Reported by Talos (TALOS-2016-0227). | 
 |  | 
 |       \item \code{getDLLRegisteredRoutines()} now produces its warning | 
 |       correctly when multiple DLLs match, thanks to Matt Dowle's \PR{17184}. | 
 |  | 
 |       \item \code{Sys.timezone()} now returns non-NA also on platforms | 
 |       such as \samp{Ubuntu 14.04.5 LTS}, thanks to Mikko Korpela's | 
 |       \PR{17186}. | 
 |  | 
 |       \item \code{format(x)} for an illegal \code{"POSIXlt"} object | 
 |       \code{x} no longer segfaults. | 
 |  | 
 |       \item \code{methods(f)} now also works for \code{f} \code{"("} | 
 |       or \code{"{"}. | 
 |  | 
 |       \item (Windows only)  \code{dir.create()} did not check the length | 
 |       of the path to create, and so could overflow a buffer and crash | 
 |       \R.  (\PR{17206}) | 
 |  | 
 |       \item On some systems, very small hexadecimal numbers in hex notation | 
 |       would underflow to zero.  (\PR{17199}) | 
 |  | 
 |       \item \code{pmin()} and \code{pmax()} now work again for | 
 |       \code{ordered} factors and 0-length S3 classed objects, thanks to | 
 |       Suharto Anggono's \PR{17195} and \PR{17200}. | 
 |  | 
 |       \item \code{bug.report()} did not do any validity checking on a | 
 |       package's \samp{BugReports} field.  It now ignores an empty field, | 
 |       removes leading whitespace and only attempts to open | 
 |       \samp{http://} and \samp{https://} URLs, falling back to emailing | 
 |       the maintainer. | 
 |  | 
 |       \item Bandwidth selectors \code{bw.ucv()} and | 
 |       \code{bw.SJ()} gave incorrect answers or incorrectly reported an | 
 |       error (because of integer overflow) for inputs longer than | 
 |       46341.  Similarly for \code{bw.bcv()} at length 5793. | 
 |  | 
 |       Another possible integer overflow is checked and may result in an | 
 |       error report (rather than an incorrect result) for much longer | 
 |       inputs (millions for a smooth distribution). | 
 |  | 
 |       \item \code{findMethod()} failed if the active signature had | 
 |       expanded beyond what a particular package used. (Example with | 
 |       packages \CRANpkg{XR} and \CRANpkg{XRJulia} on \acronym{CRAN}.) | 
 |  | 
 |       \item \code{qbeta()} underflowed too early in some very asymmetric | 
 |       cases.  (\PR{17178}) | 
 |  | 
 |       \item \command{R CMD Rd2pdf} had problems with packages with | 
 |       non-ASCII titles in \file{.Rd} files (usually the titles were | 
 |       omitted). | 
 |     } | 
 |   } | 
 | } | 
 |  | 
 | \section{\Rlogo CHANGES IN R 3.3.2}{ | 
 |   \subsection{NEW FEATURES}{ | 
 |     \itemize{ | 
 |       \item \code{extSoftVersion()} now reports the version (if any) of | 
 |       the \code{readline} library in use. | 
 |  | 
 |       \item The version of LAPACK included in the sources has been | 
 |       updated to 3.6.1, a bug-fix release including a speedup for the | 
 |       non-symmetric case of \code{eigen()}. | 
 |  | 
 |       \item Use \code{options(deparse.max.lines=)} to limit the number | 
 |       of lines recorded in \code{.Traceback} and other deparsing | 
 |       activities. | 
 |  | 
 |       \item \code{format(<AsIs>)} looks more regular, also for | 
 |       non-character atomic matrices. | 
 |  | 
 |       \item \code{abbreviate()} gains an option \code{named = TRUE}. | 
 |  | 
 |       \item The online documentation for package \pkg{methods} is | 
 |       extensively rewritten.  The goals are to simplify | 
 |       documentation for basic use, to note old features not | 
 |       recommended and to correct out-of-date information. | 
 |  | 
 |       \item Calls to \code{setMethod()} no longer print a message when | 
 |       creating a generic function in those cases where that is | 
 |       natural: S3 generics and primitives. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{INSTALLATION and INCLUDED SOFTWARE}{ | 
 |     \itemize{ | 
 |       \item Versions of the \code{readline} library >= 6.3 had been | 
 |       changed so that terminal window resizes were not signalled to | 
 |       \code{readline}: code has been added using a explicit signal | 
 |       handler to work around that (when \R is compiled against readline | 
 |       >= 6.3).  (\PR{16604}) | 
 |  | 
 |       \item \command{configure} works better with Oracle Developer | 
 |       Studio 12.5. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{UTILITIES}{ | 
 |     \itemize{ | 
 |       \item \command{R CMD check} reports more dubious flags in files | 
 |       \file{src/Makevars[.in]}, including \option{-w} and \option{-g}. | 
 |  | 
 |       \item \command{R CMD check} has been set up to filter important | 
 |       warnings from recent versions of \command{gfortran} with | 
 |       \option{-Wall -pedantic}: this now reports non-portable GNU | 
 |       extensions such as out-of-order declarations. | 
 |  | 
 |       \item \command{R CMD config} works better with paths containing | 
 |       spaces, even those of home directories (as reported by Ken Beath). | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{DEPRECATED AND DEFUNCT}{ | 
 |     \itemize{ | 
 |       \item Use of the C/C++ macro \samp{NO_C_HEADERS} is deprecated | 
 |       (no C headers are included by \R headers from C++ as from \R | 
 |       3.3.0, so it should no longer be needed). | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{BUG FIXES}{ | 
 |     \itemize{ | 
 |       \item The check for non-portable flags in \command{R CMD check} | 
 |       could be stymied by \file{src/Makevars} files which contained | 
 |       targets. | 
 |  | 
 |       \item (Windows only) When using certain desktop themes in Windows | 
 |       7 or higher, \kbd{Alt-Tab} could cause \command{Rterm} to stop | 
 |       accepting input.  (\PR{14406}; patch submitted by Jan Gleixner.) | 
 |  | 
 |       \item \code{pretty(d, ..)} behaves better for date-time \code{d} | 
 |       (\PR{16923}). | 
 |  | 
 |       \item When an S4 class name matches multiple classes in the S4 | 
 |       cache, perform a dynamic search in order to obey namespace | 
 |       imports.  This should eliminate annoying messages about multiple | 
 |       hits in the class cache.  Also, pass along the package from the | 
 |       \code{ClassExtends} object when looking up superclasses in the | 
 |       cache. | 
 |  | 
 |       \item \code{sample(NA_real_)} now works. | 
 |  | 
 |       \item Packages using non-ASCII encodings in their code did not | 
 |       install data properly on systems using different encodings. | 
 |  | 
 |       \item \code{merge(df1, df2)} now also works for data frames with | 
 |       column names \code{"na.last"}, \code{"decreasing"}, or | 
 |       \code{"method"}.  (\PR{17119}) | 
 |  | 
 |       \item \code{contour()} caused a segfault if the \code{labels} | 
 |       argument had length zero.  (Reported by Bill Dunlap.) | 
 |  | 
 |       \item \code{unique(warnings())} works more correctly, thanks to a | 
 |       new \code{duplicated.warnings()} method. | 
 |  | 
 |       \item \code{findInterval(x, vec = numeric(), all.inside = TRUE)} | 
 |       now returns \code{0}s as documented.  (Reported by Bill Dunlap.) | 
 |  | 
 |       \item (Windows only) \command{R CMD SHLIB} failed when a symbol | 
 |       in the resulting library had the same name as a keyword in | 
 |       the \file{.def} file.  (\PR{17130}) | 
 |  | 
 |       \item \code{pmax()} and \code{pmin()} now work with (more ?) | 
 |       classed objects, such as \code{"Matrix"} from the \CRANpkg{Matrix} | 
 |       package, as documented for a long time. | 
 |  | 
 |       \item \code{axis(side, x = D)} and hence \code{Axis()} and | 
 |       \code{plot()} now work correctly for \code{"Date"} and time | 
 |       objects \code{D}, even when \dQuote{time goes backward}, e.g., | 
 |       with decreasing \code{xlim}.  (Reported by William May.) | 
 |  | 
 |       \item \code{str(I(matrix(..)))} now looks as always intended. | 
 |  | 
 |       \item \code{plot.ts()}, the \code{plot()} method for time series, | 
 |       now respects \code{cex}, \code{lwd} and \code{lty}.  (Reported by | 
 |       Greg Werbin.) | 
 |  | 
 |       \item \code{parallel::mccollect()} now returns a named list (as | 
 |       documented) when called with \code{wait = FALSE}.  (Reported by | 
 |       Michel Lang.) | 
 |  | 
 |       \item If a package added a class to a class union in another | 
 |       package, loading the first package gave erroneous warnings | 
 |       about \dQuote{undefined subclass}. | 
 |  | 
 |       \item \code{c()}'s argument \code{use.names} is documented now, as | 
 |       belonging to the (C internal) default method.   In | 
 |       \dQuote{parallel}, argument \code{recursive} is also moved from | 
 |       the generic to the default method, such that the formal argument list | 
 |       of \pkg{base} generic \code{c()} is just \code{(...)}. | 
 |  | 
 |       \item \code{rbeta(4, NA)} and similarly \code{rgamma()} and | 
 |       \code{rnbinom()} now return \code{NaN}'s with a warning, as other | 
 |       r<dist>(), and as documented.  (\PR{17155}) | 
 |  | 
 |       \item Using \code{options(checkPackageLicense = TRUE)} no longer | 
 |       requires acceptance of the licence for non-default standard | 
 |       packages such as \pkg{compiler}.  (Reported by Mikko Korpela.) | 
 |  | 
 |       \item \code{split(<very_long>, *)} now works even when the split | 
 |       off parts are long. (\PR{17139}) | 
 |  | 
 |       \item \code{min()} and \code{max()} now also work correctly when | 
 |       the argument list starts with \code{character(0)}.  (\PR{17160}) | 
 |  | 
 |       \item Subsetting very large matrices (\code{prod(dim(.)) >= 2^31}) | 
 |       now works thanks to Michael Schubmehl's \PR{17158}. | 
 |  | 
 |       \item \code{bartlett.test()} used residual sums of squares | 
 |       instead of variances, when the argument was a list of \code{lm} objects. | 
 |       (Reported by Jens Ledet Jensen). | 
 |  | 
 |       \item \code{plot(<lm>, which = *)} now correctly labels the | 
 |       contour lines for the standardized residuals for \code{which = 6}. | 
 |       It also takes the correct \eqn{p} in case of singularities (also | 
 |       for \code{which = 5}).  (\PR{17161}) | 
 |  | 
 |       \item \code{xtabs(~ exclude)} no longer fails from wrong scope, | 
 |       thanks to Suharto Anggono's \PR{17147}. | 
 |  | 
 |       \item Reference class calls to \code{methods()} did not | 
 |       re-analyse previously defined methods, meaning that calls to | 
 |       methods defined later would fail. (Reported by Charles Tilford). | 
 |  | 
 |       \item \code{findInterval(x, vec, left.open = TRUE)} misbehaved in some | 
 |       cases. (Reported by Dmitriy Chernykh.) | 
 |     } | 
 |   } | 
 | } | 
 |  | 
 | \section{\Rlogo CHANGES IN R 3.3.1}{ | 
 |   \subsection{BUG FIXES}{ | 
 |     \itemize{ | 
 |       \item \command{R CMD INSTALL} and hence \code{install.packages()} | 
 |       gave an internal error installing a package called | 
 |       \pkg{description} from a tarball on a case-insensitive file system. | 
 |  | 
 |       \item \code{match(x, t)} (and hence \code{x \%in\% t}) failed | 
 |       when \code{x} was of length one, and either \code{character} and \code{x} | 
 |       and \code{t} only differed in their \code{Encoding} or when | 
 |       \code{x} and \code{t} where \code{complex} with \code{NA}s or \code{NaN}s. | 
 |       (\PR{16885}.) | 
 |  | 
 |       \item \code{unloadNamespace(ns)} also works again when \code{ns} is a | 
 |       \sQuote{namespace}, as from \code{getNamespace()}. | 
 |  | 
 |       \item \code{rgamma(1, Inf)} or \code{rgamma(1, 0, 0)} no longer give | 
 |       \code{NaN} but the correct limit. | 
 |  | 
 |       \item \code{length(baseenv())} is correct now. | 
 |  | 
 |       \item \code{pretty(d, ..)} for date-time \code{d} rarely failed | 
 |       when \code{"halfmonth"} time steps were tried (\PR{16923}) and | 
 |       on \sQuote{inaccurate} platforms such as 32-bit Windows or | 
 |       a configuration with \command{--disable-long-double}; see comment | 
 |       #15 of \PR{16761}. | 
 |  | 
 |       \item In \code{text.default(x, y, labels)}, the rarely(?) used | 
 |       default for \code{labels} is now correct also for the case of a | 
 |       2-column matrix \code{x} and missing \code{y}. | 
 |  | 
 |       \item \code{as.factor(c(a = 1L))} preserves \code{names()} again | 
 |       as in \R < 3.1.0. | 
 |  | 
 |       \item \code{strtrim(""[0], 0[0])} now works. | 
 |  | 
 |       \item Use of \code{Ctrl-C} to terminate a reverse incremental | 
 |       search started by \code{Ctrl-R} in the \code{readline}-based Unix | 
 |       terminal interface is now supported when \R{} was compiled against | 
 |       \code{readline} >= 6.0 (\code{Ctrl-G} always worked). | 
 |       (\PR{16603}) | 
 |  | 
 |       \item \code{diff(<difftime>)} now keeps the \code{"units"} | 
 |       attribute, as subtraction already did, \PR{16940}. | 
 |     } | 
 |   } | 
 | } | 
 |  | 
 | \section{\Rlogo CHANGES IN R 3.3.0}{ | 
 |   \subsection{SIGNIFICANT USER-VISIBLE CHANGES}{ | 
 |     \itemize{ | 
 |       \item \code{nchar(x, *)}'s argument \code{keepNA} governing how | 
 |       the result for \code{NA}s in \code{x} is determined, gets a new | 
 |       default \code{keepNA = NA} which returns \code{NA} where | 
 |       \code{x} is \code{NA}, except for \code{type = "width"} which still | 
 |       returns \code{2}, the formatting / printing width of \code{NA}. | 
 |  | 
 |       \item All builds have support for \samp{https:} URLs in the | 
 |       default methods for \code{download.file()}, \code{url()} and code | 
 |       making use of them. | 
 |  | 
 |       Unfortunately that cannot guarantee that any particular | 
 |       \samp{https:} URL can be accessed.  For example, server and client | 
 |       have to successfully negotiate a cryptographic protocol (TLS/SSL, | 
 |       \dots) and the server's identity has to be verifiable \emph{via} | 
 |       the available certificates.  Different access methods may allow | 
 |       different protocols or use private certificate bundles: we | 
 |       encountered a \samp{https:} CRAN mirror which could be accessed by | 
 |       one browser but not by another nor by \code{download.file()} on | 
 |       the same Linux machine. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{NEW FEATURES}{ | 
 |     \itemize{ | 
 |       \item The \code{print} method for \code{methods()} gains a | 
 |       \code{byclass} argument. | 
 |  | 
 |       \item New functions \code{validEnc()} and \code{validUTF8()} to | 
 |       give access to the validity checks for inputs used by | 
 |       \code{grep()} and friends. | 
 |  | 
 |       \item Experimental new functionality for S3 method checking, notably | 
 |       \code{isS3method()}. | 
 |  | 
 |       Also, the names of the \R \sQuote{language elements} are exported | 
 |       as character vector \code{tools::langElts}. | 
 |  | 
 |       \item \code{str(x)} now displays \code{"Time-Series"} also for | 
 |       matrix (multivariate) time-series, i.e. when \code{is.ts(x)} is true. | 
 |  | 
 |       \item (Windows only)  The GUI menu item to install local packages | 
 |       now accepts \file{*.tar.gz} files as well as \file{*.zip} files | 
 |       (but defaults to the latter). | 
 |  | 
 |       \item New programmeR's utility function \code{chkDots()}. | 
 |  | 
 |       \item \code{D()} now signals an error when given invalid input, | 
 |       rather than silently returning \code{NA}.  (Request of John Nash.) | 
 |  | 
 |       \item \code{formula} objects are slightly more \dQuote{first class}: | 
 |       e.g., \code{formula()} or \code{new("formula", y ~ x)} are now | 
 |       valid.  Similarly, for \code{"table"}, \code{"ordered"} and | 
 |       \code{"summary.table"}.  Packages defining S4 classes with the above | 
 |       S3/S4 classes as slots should be reinstalled. | 
 |       % notably if their classes are reused in other | 
 |       % packages. e.g. re-install arules for arulesSequence, flexmix for betareg | 
 |  | 
 |       \item New function \code{strrep()} for repeating the elements of a | 
 |       character vector. | 
 |  | 
 |       \item \code{rapply()} preserves attributes on the list when | 
 |       \code{how = "replace"}. | 
 |  | 
 |       \item New S3 generic function \code{sigma()} with methods for | 
 |       extracting the estimated standard deviation aka \dQuote{residual | 
 | 	standard deviation} from a fitted model. | 
 |  | 
 |       \item \code{news()} now displays \R and package news files within | 
 |       the HTML help system if it is available.  If no news file is found, | 
 |       a visible \code{NULL} is returned to the console. | 
 |  | 
 |       \item \code{as.raster(x)} now also accepts \code{raw} arrays | 
 |       \code{x} assuming values in \code{0:255}. | 
 |  | 
 |       \item Subscripting of matrix/array objects of type | 
 |       \code{"expression"} is now supported. | 
 |  | 
 |       \item \code{type.convert("i")} now returns a factor instead of a | 
 |       complex value with zero real part and missing imaginary part. | 
 |  | 
 |       \item Graphics devices \code{cairo_pdf()} and \code{cairo_ps()} | 
 |       now allow non-default values of the cairographics \sQuote{fallback | 
 | 	resolution} to be set. | 
 |  | 
 |       This now defaults to 300 on all platforms: that is the default | 
 |       documented by cairographics, but apparently was not used by all | 
 |       system installations. | 
 |  | 
 |       \item \code{file()} gains an explicit \code{method} argument | 
 |       rather than implicitly using | 
 |       \code{getOption("url.method", "default")}. | 
 |  | 
 |       \item Thanks to a patch from Tomas Kalibera, \code{x[x != 0]} is | 
 |       now typically faster than \code{x[which(x != 0)]} (in the case | 
 |       where \code{x} has no NAs, the two are equivalent). | 
 |  | 
 |       \item \code{read.table()} now always uses the names for a named | 
 |       \code{colClasses} argument (previously names were only used when | 
 |       \code{colClasses} was too short). (In part, wish of \PR{16478}.) | 
 |  | 
 |       \item (Windows only) \code{download.file()} with default | 
 |       \code{method = "auto"} and a \samp{ftps://} URL chooses | 
 |       \code{"libcurl"} if that is available. | 
 |  | 
 |       \item The out-of-the box Bioconductor mirror has been changed to | 
 |       one using \samp{https://}: use \code{chooseBioCmirror()} to choose | 
 |       a \samp{http://} mirror if required. | 
 |  | 
 |       \item The data frame and formula methods for \code{aggregate()} | 
 |       gain a \code{drop} argument. | 
 |  | 
 |       \item \code{available.packages()} gains a \code{repos} argument. | 
 |  | 
 |       \item The undocumented switching of methods for \code{url()} on | 
 |       \samp{https:} and \samp{ftps:} URLs is confined to | 
 |       \code{method = "default"} (and documented). | 
 |  | 
 |       \item \code{smoothScatter()} gains a \code{ret.selection} argument. | 
 |  | 
 |       \item \code{qr()} no longer has a \code{\dots} argument to pass | 
 |       additional arguments to methods. | 
 |  | 
 |       \item \code{[} has a method for class \code{"table"}. | 
 |  | 
 |       \item It is now possible (again) to \code{replayPlot()} a | 
 |       display list snapshot that was created by \code{recordPlot()} | 
 |       in a different \R session. | 
 |  | 
 |       It is still not a good idea to use snapshots as a persistent | 
 |       storage format for \R plots, but it is now not completely silly to | 
 |       use a snapshot as a format for transferring an R plot between two | 
 |       R sessions. | 
 |  | 
 |       The underlying changes mean that packages providing graphics | 
 |       devices (e.g., \CRANpkg{Cairo}, \CRANpkg{RSvgDevice}, | 
 |       \CRANpkg{cairoDevice}, \CRANpkg{tikzDevice}) will need to be | 
 |       reinstalled. | 
 |  | 
 |       Code for restoring snapshots was contributed by Jeroen Ooms | 
 |       and JJ Allaire. | 
 |  | 
 |       Some testing code is available at | 
 |       \url{https://github.com/pmur002/R-display-list}. | 
 |  | 
 |       \item \code{tools::undoc(dir = D)} and \code{codoc(dir = D)} now | 
 |       also work when \code{D} is a directory whose \code{normalizePath()}ed | 
 |       version does not end in the package name, e.g.\sspace{}from a symlink. | 
 |  | 
 |       \item \code{abbreviate()} has more support for multi-byte | 
 |       character sets -- it no longer removes bytes within characters and | 
 |       knows about Latin vowels with accents.  It is still only | 
 |       really suitable for (most) European languages, and still warns on | 
 |       non-ASCII input. | 
 |  | 
 |       \code{abbreviate(use.classes = FALSE)} is now implemented, and | 
 |       that is more suitable for non-European languages. | 
 |  | 
 |       \item \code{match(x, table)} is faster (sometimes by an order of | 
 |       magnitude) when \code{x} is of length one and \code{incomparables} | 
 |       is unchanged, thanks to Peter Haverty (\PR{16491}). | 
 |  | 
 |       \item More consistent, partly not back-compatible behavior of | 
 |       \code{NA} and \code{NaN} coercion to complex numbers, operations | 
 |       less often resulting in complex \code{NA} (\code{NA_complex_}). | 
 |  | 
 |       \item \code{lengths()} considers methods for \code{length} and | 
 |       \code{[[} on \code{x}, so it should work automatically on any | 
 |       objects for which appropriate methods on those generics are | 
 |       defined. | 
 |  | 
 |       \item The logic for selecting the default screen device on OS X | 
 |       has been simplified: it is now \code{quartz()} if that is | 
 |       available even if environment variable \env{DISPLAY} has been set | 
 |       by the user. | 
 |  | 
 |       The choice can easily be overridden \emph{via} environment | 
 |       variable \env{R_INTERACTIVE_DEVICE}. | 
 |  | 
 |       \item On Unix-like platforms which support the \command{getline} C | 
 |       library function, \code{system(*, intern = TRUE)} no longer | 
 |       truncates (output) lines longer than 8192 characters, thanks to | 
 |       Karl Millar. (\PR{16544}) | 
 |  | 
 |       \item \code{rank()} gains a \code{ties.method = "last"} option, | 
 |       for convenience (and symmetry). | 
 |  | 
 |       %% \item \code{getRcode(vignette(..))} is the \R source file name of | 
 |       %% a vignette. | 
 |  | 
 |       \item \code{regmatches(invert = NA)} can now be used to extract | 
 |       both non-matched and matched substrings. | 
 |  | 
 |       \item \code{data.frame()} gains argument \code{fix.empty.names}; | 
 |       \code{as.data.frame.list()} gets new \code{cut.names}, | 
 |       \code{col.names} and \code{fix.empty.names}. | 
 |  | 
 |       \item \code{plot(x ~ x, *)} now warns that it is the same as | 
 |       \code{plot(x ~ 1, *)}. | 
 |  | 
 |       \item \code{recordPlot()} has new arguments \code{load} and | 
 |       \code{attach} to allow package names to be stored as part of a | 
 |       recorded plot.  \code{replayPlot()} has new argument | 
 |       \code{reloadPkgs} to load/attach any package names that were | 
 |       stored as part of a recorded plot. | 
 |  | 
 |       \item S4 dispatch works within calls to \code{.Internal()}. This | 
 |       means explicit S4 generics are no longer needed for | 
 |       \code{unlist()} and \code{as.vector()}. | 
 |  | 
 |       \item Only font family names starting with \samp{"Hershey"} (and | 
 |       not \samp{"Her"} as before) are given special treatment by the | 
 |       graphics engine. | 
 |  | 
 |       \item S4 values are automatically coerced to vector (\emph{via} | 
 |       \code{as.vector}) when subassigned into atomic vectors. | 
 |  | 
 |       \item \code{findInterval()} gets a \code{left.open} option. | 
 |  | 
 |       \item The version of LAPACK included in the sources has been | 
 |       updated to 3.6.0, including those \sQuote{deprecated} routines | 
 |       which were previously included.  \emph{Ca} 40 double-complex | 
 |       routines have been added at the request of a package maintainer. | 
 |  | 
 |       As before, the details of what is included are in | 
 |       \file{src/modules/lapack/README} and this now gives information on | 
 |       earlier additions. | 
 |  | 
 |       \item \code{tapply()} has been made considerably more efficient | 
 |       without changing functionality, thanks to proposals from Peter | 
 |       Haverty and Suharto Anggono.  (\PR{16640}) | 
 |  | 
 |       \item \code{match.arg(arg)} (the one-argument case) is faster; so | 
 |       is \code{sort.int()}.  (\PR{16640}) | 
 |  | 
 |       \item The \code{format} method for \code{object_size} objects now | 
 |       also accepts \dQuote{binary} units such as \code{"KiB"} and e.g., | 
 |       \code{"Tb"}.  (Partly from \PR{16649}.) | 
 |  | 
 |       \item Profiling now records calls of the form \code{foo::bar} and | 
 |       some similar cases directly rather than as calls to | 
 |       \code{<Anonymous>}.  Contributed by Winston Chang. | 
 |  | 
 |       \item New string utilities \code{startsWith(x, prefix)} and | 
 |       \code{endsWith(x, suffix)}.  Also provide speedups for some | 
 |       \code{grepl("^...", *)} uses (related to proposals in \PR{16490}). | 
 |  | 
 |       \item Reference class finalizers run at exit, as well as on | 
 |       garbage collection. | 
 |  | 
 |       \item Avoid \pkg{parallel} dependency on \pkg{stats} for port | 
 |       choice and random number seeds.  (\PR{16668}) | 
 |  | 
 |       \item The radix sort algorithm and implementation from | 
 |       \CRANpkg{data.table} (\code{forder}) replaces the previous radix | 
 |       (counting) sort and adds a new method for \code{order()}. | 
 |       Contributed by Matt Dowle and Arun Srinivasan, the new algorithm | 
 |       supports logical, integer (even with large values), real, and | 
 |       character vectors.  It outperforms all other methods, but there | 
 |       are some caveats (see \code{?sort}). | 
 |  | 
 |       \item The \code{order()} function gains a \code{method} argument | 
 |       for choosing between \code{"shell"} and \code{"radix"}. | 
 |  | 
 |       \item New function \code{grouping()} returns a permutation that | 
 |       stably rearranges data so that identical values are adjacent.  The | 
 |       return value includes extra partitioning information on the | 
 |       groups.  The implementation came included with the new radix sort. | 
 |  | 
 |       \item \code{rhyper(nn, m, n, k)} no longer returns \code{NA} when | 
 |       one of the three parameters exceeds the maximal integer. | 
 |  | 
 |       \item \code{switch()} now warns when no alternatives are provided. | 
 |  | 
 |       \item \code{parallel::detectCores()} now has default \code{logical | 
 | 	= TRUE} on all platforms -- as this was the default on Windows, | 
 |       this change only affects Sparc Solaris. | 
 |  | 
 |       Option \code{logical = FALSE} is now supported on Linux and recent | 
 |       versions of OS X (for the latter, thanks to a suggestion of Kyaw | 
 |       Sint). | 
 |  | 
 |       \item \code{hist()} for \code{"Date"} or \code{"POSIXt"} objects | 
 |       would sometimes give misleading labels on the breaks, as they | 
 |       were set to the day before the start of the period being | 
 |       displayed.  The display format has been changed, and the shift of the | 
 |       start day has been made conditional on \code{right = TRUE} (the | 
 |       default).  (\PR{16679}) | 
 |  | 
 |       \item \R now uses a new version of the logo (donated to the R | 
 |       Foundation by RStudio).  It is defined in \file{.svg} format, so | 
 |       will resize without unnecessary degradation when displayed on | 
 |       HTML pages---there is also a vector PDF version.  Thanks to | 
 |       Dirk Eddelbuettel for producing the corresponding X11 icon. | 
 |  | 
 |       \item New function \code{.traceback()} returns the stack trace | 
 |       which \code{traceback()} prints. | 
 |  | 
 |       \item \code{lengths()} dispatches internally. | 
 |  | 
 |       \item \code{dotchart()} gains a \code{pt.cex} argument to control | 
 |       the size of points separately from the size of plot labels. | 
 |       Thanks to Michael Friendly and Milan Bouchet-Valat for ideas | 
 |       and patches. | 
 |  | 
 |       \item \code{as.roman(ch)} now correctly deals with more diverse | 
 |       character vectors \code{ch}; also arithmetic with the resulting | 
 |       roman numbers works in more cases.  (\PR{16779}) | 
 |  | 
 |       \item \code{prcomp()} gains a new option \code{rank.} allowing to | 
 |       directly aim for less than \code{min(n,p)} PC's.  The | 
 |       \code{summary()} and its \code{print()} method have been amended, | 
 |       notably for this case. | 
 |  | 
 |       \item \code{gzcon()} gains a new option \code{text}, which marks | 
 |       the connection as text-oriented (so e.g.\sspace{}\code{pushBack()} | 
 |       works).  It is still always opened in binary mode. | 
 |  | 
 |       \item The \code{import()} namespace directive now accepts an | 
 |       argument \code{except} which names symbols to exclude from the | 
 |       imports. The \code{except} expression should evaluate to a | 
 |       character vector (after substituting symbols for strings). See | 
 |       Writing R Extensions. | 
 |  | 
 |       \item New convenience function \code{Rcmd()} in package | 
 |       \pkg{tools} for invoking \command{R CMD} tools from within \R. | 
 |  | 
 |       \item New functions \code{makevars_user()} and | 
 |       \code{makevars_site()} in package \pkg{tools} to determine the | 
 |       location of the user and site specific \file{Makevars} files for | 
 |       customizing package compilation. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{UTILITIES}{ | 
 |     \itemize{ | 
 |       \item \command{R CMD check} has a new option | 
 |       \option{--ignore-vignettes} for use with non-Sweave vignettes | 
 |       whose \samp{VignetteBuilder} package is not available. | 
 |  | 
 |       \item \command{R CMD check} now by default checks code usage | 
 |       (\emph{via} \CRANpkg{codetools}) with only the base package | 
 |       attached.  Functions from default packages other than \pkg{base} | 
 |       which are used in the package code but not imported are reported | 
 |       as undefined globals, with a suggested addition to the | 
 |       \code{NAMESPACE} file. | 
 |  | 
 |       \item \command{R CMD check --as-cran} now also checks DOIs in | 
 |       package \file{CITATION} and Rd files. | 
 |  | 
 |       \item \command{R CMD Rdconv} and \command{R CMD Rd2pdf} each have | 
 |       a new option \option{--RdMacros=pkglist} which allows Rd macros | 
 |       to be specified before processing. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{DEPRECATED AND DEFUNCT}{ | 
 |     \itemize{ | 
 |       \item The previously included versions of \code{zlib}, | 
 |       \code{bzip2}, \code{xz} and PCRE have been removed, so suitable | 
 |       external (usually system) versions are required (see the | 
 |       \sQuote{R Installation and Administration} manual). | 
 |  | 
 |       \item The unexported and undocumented Windows-only devices | 
 |       \code{cairo_bmp()}, \code{cairo_png()} and \code{cairo_tiff()} | 
 |       have been removed.  (These devices should be used as | 
 |       e.g.\sspace{}\code{bmp(type = "cairo")}.) | 
 |  | 
 |       \item (Windows only)  Function \code{setInternet2()} has no effect | 
 |       and will be removed in due course.  The choice between methods | 
 |       \code{"internal"} and \code{"wininet"} is now made by the | 
 |       \code{method} arguments of \code{url()} and \code{download.file()} | 
 |       and their defaults can be set \emph{via} options.  The | 
 |       out-of-the-box default remains \code{"wininet"} (as it has been | 
 |       since \R 3.2.2). | 
 |  | 
 |       \item \code{[<-} with an S4 value into a list currently embeds the | 
 |       S4 object into its own list such that the end result is roughly | 
 |       equivalent to using \code{[[<-}.  That behavior is deprecated.  In | 
 |       the future, the S4 value will be coerced to a list with | 
 |       \code{as.list()}. | 
 |  | 
 |       \item Package \pkg{tools}' functions | 
 |       \code{package.dependencies()}, \code{pkgDepends()}, etc are | 
 |       deprecated now, mostly in favor of \code{package_dependencies()} | 
 |       which is both more flexible and efficient. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{INSTALLATION and INCLUDED SOFTWARE}{ | 
 |     \itemize{ | 
 |       \item Support for very old versions of \command{valgrind} | 
 |       (e.g., 3.3.0) has been removed. | 
 |  | 
 |       \item The included \command{libtool} script (generated by | 
 |       \command{configure}) has been updated to version 2.4.6 (from 2.2.6a). | 
 |  | 
 |       \item \code{libcurl} version 7.28.0 or later with support for the | 
 |       \code{https} protocol is required for installation (except on | 
 |       Windows). | 
 |  | 
 |       \item BSD networking is now required (except on Windows) and so | 
 |       \code{capabilities("http/ftp")} is always true. | 
 |  | 
 |       \item \command{configure} uses \command{pkg-config} for PNG, TIFF | 
 |       and JPEG where this is available.  This should work better with | 
 |       multiple installs and with those using static libraries. | 
 |  | 
 |       \item The minimum supported version of OS X is 10.6 (\sQuote{Snow | 
 | 	Leopard}): even that has been unsupported by Apple since 2012. | 
 |  | 
 |       \item The \command{configure} default on OS X is | 
 |       \option{--disable-R-framework}: enable this if you intend to | 
 |       install under \file{/Library/Frameworks} and use with \code{R.app}. | 
 |  | 
 |       \item The minimum preferred version of PCRE has since \R 3.0.0 | 
 |       been 8.32 (released in Nov 2012).  Versions 8.10 to 8.31 are now | 
 |       deprecated (with warnings from \command{configure}), but will | 
 |       still be accepted until \R 3.4.0. | 
 |  | 
 |       \item \command{configure} looks for C functions \code{__cospi}, | 
 |       \code{__sinpi} and \code{__tanpi} and uses these if \code{cospi} | 
 |       \emph{etc} are not found.  (OS X is the main instance.) | 
 |  | 
 |       \item (Windows) R is now built using \command{gcc} | 
 |       4.9.3.  This build will require recompilation of at least those packages | 
 |       that include C++ code, and possibly others.  A build of R-devel using | 
 |       the older toolchain will be temporarily available for comparison | 
 |       purposes. | 
 |  | 
 |       During the transition, the environment variable | 
 |       \env{R_COMPILED_BY} has been defined to indicate which toolchain | 
 |       was used to compile R (and hence, which should be used to compile | 
 |       code in packages).  The \code{COMPILED_BY} variable described below | 
 |       will be a permanent replacement for this. | 
 |  | 
 |       \item (Windows) A \command{make} and \command{R CMD config} variable | 
 |       named \code{COMPILED_BY} has been added.  This indicates | 
 |       which toolchain was used to compile R (and hence, which should be | 
 |       used to compile code in packages). | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{PACKAGE INSTALLATION}{ | 
 |     \itemize{ | 
 |       \item The \command{make} macro \code{AWK} which used to be made | 
 |       available to files such as \file{src/Makefile} is no longer set. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{C-LEVEL FACILITIES}{ | 
 |     \itemize{ | 
 |       \item The API call \code{logspace_sum} introduced in \R 3.2.0 is | 
 |       now remapped as an entry point to \code{Rf_logspace_sum}, and its | 
 |       first argument has gained a \code{const} qualifier.  (\PR{16470}) | 
 |  | 
 |       Code using it will need to be reinstalled. | 
 |  | 
 |       Similarly, entry point \code{log1pexp} also defined in | 
 |       \file{Rmath.h} is remapped there to \code{Rf_log1pexp} | 
 |  | 
 |       \item \code{R_GE_version} has been increased to \code{11}. | 
 |  | 
 |       \item New API call \code{R_orderVector1}, a faster | 
 |       one-argument version of \code{R_orderVector}. | 
 |  | 
 |       \item When \R{} headers such as \file{R.h} and \file{Rmath.h} are | 
 |       called from C++ code in packages they include the C++ versions of | 
 |       system headers such as \file{<cmath>} rather than the legacy | 
 |       headers such as \file{<math.h>}.  (Headers \file{Rinternals.h} and | 
 |       \file{Rinterface.h} already did, and inclusion of system headers | 
 |       can still be circumvented by defining \code{NO_C_HEADERS}, | 
 |       including as from this version for those two headers.) | 
 |  | 
 |       The manual has long said that \R{} headers should \bold{not} be | 
 |       included within an \code{extern "C"} block, and almost all the | 
 |       packages affected by this change were doing so. | 
 |  | 
 |       \item Including header \file{S.h} from C++ code would fail on some | 
 |       platforms, and so gives a compilation error on all. | 
 |  | 
 |       \item The deprecated header \file{Rdefines.h} is now compatible | 
 |       with defining \code{R_NO_REMAP}. | 
 |  | 
 |       \item The connections interface now includes a function | 
 |       \code{R_GetConnection()} which allows packages implementing | 
 |       connections to convert R \code{connection} objects to | 
 |       \code{Rconnection} handles. Code which previously | 
 |       used the low-level R-internal \code{getConnection()} entry point | 
 |       should switch. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{BUG FIXES}{ | 
 |     \itemize{ | 
 |       \item C-level \code{asChar(x)} is fixed for when \code{x} is not a | 
 |       vector, and it returns \code{"TRUE"}/\code{"FALSE"} instead of | 
 |       \code{"T"}/\code{"F"} for logical vectors. | 
 |  | 
 |       \item The first arguments of \code{.colSums()} etc (with an | 
 |       initial dot) are now named \code{x} rather than \code{X} (matching | 
 |       \code{colSums()}): thus error messages are corrected. | 
 |  | 
 |       \item A \code{coef()} method for class \code{"maov"} has been | 
 |       added to allow \code{vcov()} to work with multivariate | 
 |       results. (\PR{16380}) | 
 |  | 
 |       \item \code{method = "libcurl"} connections signal errors rather | 
 |       than retrieving HTTP error pages (where the ISP reports the | 
 |       error). | 
 |  | 
 |       \item \code{xpdrows.data.frame()} was not checking for unique | 
 |       row names; in particular, this affected assignment to non-existing | 
 |       rows \emph{via} numerical indexing. (\PR{16570}) | 
 |  | 
 |       \item \code{tail.matrix()} did not work for zero rows matrices, | 
 |       and could produce row \dQuote{labels} such as \code{"[1e+05,]"}. | 
 |  | 
 |       \item Data frames with a column named \code{"stringsAsFactors"} | 
 |       now format and print correctly.  (\PR{16580}) | 
 |  | 
 |       \item \code{cor()} is now guaranteed to return a value with | 
 |       absolute value less than or equal to 1. (\PR{16638}) | 
 |  | 
 |       \item Array subsetting now keeps \code{names(dim(.))}. | 
 |  | 
 |       \item Blocking socket connection selection recovers more | 
 |       gracefully on signal interrupts. | 
 |  | 
 |       \item The \code{data.frame} method of \code{rbind()} construction | 
 |       \code{row.names} works better in borderline integer cases, but | 
 |       may change the names assigned.  (\PR{16666}) | 
 |  | 
 |       \item (X11 only)  \code{getGraphicsEvent()} miscoded buttons and | 
 |       missed mouse motion events.  (\PR{16700}) | 
 |  | 
 |       \item \code{methods(round)} now also lists \code{round.POSIXt}. | 
 |  | 
 |       \item \code{tar()} now works with the default \code{files = NULL}. | 
 |       (\PR{16716}) | 
 |  | 
 |       \item Jumps to outer contexts, for example in error recovery, now | 
 |       make intermediate jumps to contexts where \code{on.exit()} actions | 
 |       are established instead of trying to run all \code{on.exit()} | 
 |       actions before jumping to the final target. This unwinds the stack | 
 |       gradually, releases resources held on the stack, and significantly | 
 |       reduces the chance of a segfault when running out of C stack | 
 |       space. Error handlers established using | 
 |       \code{withCallingHandlers()} and \code{options("error")} | 
 |       specifications are ignored when handling a C stack overflow error | 
 |       as attempting one of these would trigger a cascade of C stack | 
 |       overflow errors.  (These changes resolve \PR{16753}.) | 
 |  | 
 |       \item The spacing could be wrong when printing a complex array. | 
 |       (Report and patch by Lukas Stadler.) | 
 |  | 
 |       \item \code{pretty(d, n, min.n, *)} for date-time objects \code{d} | 
 |       works again in border cases with large \code{min.n}, returns a | 
 |       \code{labels} attribute also for small-range dates and in such cases | 
 |       its returned length is closer to the desired \code{n}.  (\PR{16761}) | 
 |       Additionally, it finally does cover the range of \code{d}, as it | 
 |       always claimed. | 
 |  | 
 |       \item \code{tsp(x) <- NULL} did not handle correctly objects | 
 |       inheriting from both \code{"ts"} and \code{"mts"}.  (\PR{16769}) | 
 |  | 
 |       \item \code{install.packages()} could give false errors when | 
 |       \code{options("pkgType")} was \code{"binary"}.  (Reported by | 
 |       Jose Claudio Faria.) | 
 |  | 
 |       \item A bug fix in \R 3.0.2 fixed problems with \code{locator()} | 
 |       in X11, but introduced problems in Windows.  Now both should be | 
 |       fixed.  (\PR{15700}) | 
 |  | 
 |       \item \code{download.file()} with \code{method = "wininet"} | 
 |       incorrectly warned of download file length difference when | 
 |       reported length was unknown. (\PR{16805}) | 
 |  | 
 |       \item \code{diag(NULL, 1)} crashed because of missed type | 
 |       checking.  (\PR{16853}) | 
 |     } | 
 |   } | 
 | } | 
 |  | 
 | \section{\Rlogo CHANGES IN R 3.2.5}{ | 
 |   \subsection{BUG FIXES}{ | 
 |     \itemize{ | 
 |       \item \code{format.POSIXlt()} behaved incorrectly in \R 3.2.4. | 
 |       E.g.\sspace{}the output of | 
 |       \code{format(as.POSIXlt(paste0(1940:2000, "-01-01"), tz = "CET"), | 
 | 	usetz = TRUE)} ended in two \code{"CEST"} time formats. | 
 |     } | 
 |   } | 
 | } | 
 |  | 
 | \section{\Rlogo CHANGES IN R 3.2.4}{ | 
 |   \subsection{NEW FEATURES}{ | 
 |     \itemize{ | 
 |       \item \code{install.packages()} and related functions now give a | 
 |       more informative warning when an attempt is made to install a base | 
 |       package. | 
 |  | 
 |       \item \code{summary(x)} now prints with less rounding when | 
 |       \code{x} contains infinite values. (Request of \PR{16620}.) | 
 |  | 
 |       \item \code{provideDimnames()} gets an optional \code{unique} argument. | 
 |  | 
 |       \item \code{shQuote()} gains \code{type = "cmd2"} for quoting | 
 |       in \command{cmd.exe} in Windows.  (Response to \PR{16636}.) | 
 |  | 
 |       \item The \code{data.frame} method of \code{rbind()} gains an | 
 |       optional argument \code{stringsAsFactors} (instead of only | 
 |       depending on \code{getOption("stringsAsFactors")}). | 
 |  | 
 |       \item \code{smooth(x, *)} now also works for long vectors. | 
 |  | 
 |       \item \code{tools::texi2dvi()} has a workaround for problems with | 
 |       the \command{texi2dvi} script supplied by \pkg{texinfo 6.1}. | 
 |  | 
 |       It extracts more error messages from the LaTeX logs when in | 
 |       emulation mode. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{UTILITIES}{ | 
 |     \itemize{ | 
 |       \item \command{R CMD check} will leave a log file | 
 |       \file{build_vignettes.log} from the re-building of vignettes in | 
 |       the \file{.Rcheck} directory if there is a problem, and always if | 
 |       environment variable \env{_R_CHECK_ALWAYS_LOG_VIGNETTE_OUTPUT_} is | 
 |       set to a true value. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{DEPRECATED AND DEFUNCT}{ | 
 |     \itemize{ | 
 |       \item Use of \samp{SUPPORT_OPENMP} from header \file{Rconfig.h} is | 
 |       deprecated in favour of the standard OpenMP define \samp{_OPENMP}. | 
 |  | 
 |       (This has been the recommendation in the manual for a while now.) | 
 |  | 
 |       \item The \command{make} macro \code{AWK} which is long unused by | 
 |       \R itself but recorded in file \file{etc/Makeconf} is deprecated | 
 |       and will be removed in \R 3.3.0. | 
 |  | 
 |       \item The C header file \file{S.h} is no longer documented: its | 
 |       use should be replaced by \file{R.h}. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{BUG FIXES}{ | 
 |     \itemize{ | 
 |       \item \code{kmeans(x, centers = <1-row>)} now works. (\PR{16623}) | 
 |  | 
 |       \item \code{Vectorize()} now checks for clashes in argument names. | 
 |       (\PR{16577}) | 
 |  | 
 |       \item \code{file.copy(overwrite = FALSE)} would signal a successful | 
 |       copy when none had taken place.  (\PR{16576}) | 
 |  | 
 |       \item \code{ngettext()} now uses the same default domain as | 
 |       \code{gettext()}.  (\PR{14605}) | 
 |  | 
 |       \item \code{array(.., dimnames = *)} now warns about | 
 |       non-\code{list} dimnames and, from \R 3.3.0, will signal the same | 
 |       error for invalid dimnames as \code{matrix()} has always done. | 
 |  | 
 |       \item \code{addmargins()} now adds dimnames for the extended | 
 |       margins in all cases, as always documented. | 
 |  | 
 |       \item \code{heatmap()} evaluated its \code{add.expr} argument | 
 |       in the wrong environment.  (\PR{16583}) | 
 |  | 
 |       \item \code{require()} etc now give the correct entry of | 
 |       \code{lib.loc} in the warning about an old version of a package | 
 |       masking a newer required one. | 
 |  | 
 |       \item The internal deparser did not add parentheses when | 
 |       necessary,  e.g. before \code{[]} or \code{[[]]}.  (Reported by | 
 |       Lukas Stadler; additional fixes included as well). | 
 |  | 
 |       \item \code{as.data.frame.vector(*, row.names=*)} no longer | 
 |       produces \sQuote{corrupted} data frames from row names of incorrect | 
 |       length, but rather warns about them.  This will become an error. | 
 |  | 
 |       \item \code{url} connections with \code{method = "libcurl"} are | 
 |       destroyed properly. (\PR{16681}) | 
 |  | 
 |       \item \code{withCallingHandler()} now (again) handles warnings | 
 |       even during S4 generic's argument evaluation.  (\PR{16111}) | 
 |  | 
 |       \item \code{deparse(..., control = "quoteExpressions")} | 
 |       incorrectly quoted empty expressions.  (\PR{16686}) | 
 |  | 
 |       \item \code{format()}ting datetime objects (\code{"POSIX[cl]?t"}) | 
 |       could segfault or recycle wrongly.  (\PR{16685}) | 
 |  | 
 |       \item \code{plot.ts(<matrix>, las = 1)} now does use \code{las}. | 
 |  | 
 |       \item \code{saveRDS(*, compress = "gzip")} now works as | 
 |       documented.  (\PR{16653}) | 
 |  | 
 |       \item (Windows only) The \command{Rgui} front end did not | 
 |       always initialize the console properly, and could cause | 
 |       \R to crash.  (\PR{16698}) | 
 |  | 
 |       \item \code{dummy.coef.lm()} now works in more cases, thanks to a | 
 |       proposal by Werner Stahel (\PR{16665}).  In addition, it now works | 
 |       for multivariate linear models (\code{"mlm"}, \code{\link{manova}}) | 
 |       thanks to a proposal by Daniel Wollschlaeger. | 
 |  | 
 |       \item The \code{as.hclust()} method for \code{"dendrogram"}s | 
 |       failed often when there were ties in the heights. | 
 |  | 
 |       \item \code{reorder()} and \code{midcache.dendrogram()} now are | 
 |       non-recursive and hence applicable to somewhat deeply nested | 
 |       dendrograms, thanks to a proposal by Suharto Anggono in \PR{16424}. | 
 |  | 
 |       \item \code{cor.test()} now calculates very small p values | 
 |       more accurately (affecting the result only in extreme not | 
 |       statistically relevant cases).  (\PR{16704}) | 
 |  | 
 |       \item \code{smooth(*, do.ends=TRUE)} did not always work correctly | 
 |       in \R versions between 3.0.0 and 3.2.3. | 
 |  | 
 |       \item \code{pretty(D)} for date-time objects \code{D} now also | 
 |       works well if \code{range(D)} is (much) smaller than a second.  In | 
 |       the case of only one unique value in \code{D}, the pretty range | 
 |       now is more symmetric around that value than previously. | 
 |       \cr | 
 |       Similarly, \code{pretty(dt)} no longer returns a length 5 vector | 
 |       with duplicated entries for \code{Date} objects \code{dt} which | 
 |       span only a few days. | 
 |  | 
 |       \item The figures in help pages such as \code{?points} were | 
 |       accidentally damaged, and did not appear in \R 3.2.3. | 
 |       (\PR{16708}) | 
 |  | 
 |       \item \code{available.packages()} sometimes deleted the wrong | 
 |       file when cleaning up temporary files.  (\PR{16712}) | 
 |  | 
 |       \item The \code{X11()} device sometimes froze on Red Hat | 
 |       Enterprise Linux 6. It now waits for \code{MapNotify} events | 
 |       instead of \code{Expose} events, thanks to Siteshwar | 
 |       Vashisht. (\PR{16497}) | 
 |  | 
 |       \item \code{[dpqr]nbinom(*, size=Inf, mu=.)} now works as limit | 
 |       case, for \sQuote{dpq} as the Poisson.  (\PR{16727})\cr | 
 |       \code{pnbinom()} no longer loops infinitely in border cases. | 
 |  | 
 |       \item \code{approxfun(*, method="constant")} and hence \code{ecdf()} | 
 |       which calls the former now correctly \dQuote{predict} \code{NaN} | 
 |       values as \code{NaN}. | 
 |  | 
 |       \item \code{summary.data.frame()} now displays \code{NA}s in | 
 |       \code{Date} columns in all cases.  (\PR{16709}) | 
 |     } | 
 |   } | 
 | } | 
 |  | 
 | \section{\Rlogo CHANGES IN R 3.2.3}{ | 
 |   \subsection{NEW FEATURES}{ | 
 |     \itemize{ | 
 |       \item Some recently-added Windows time zone names have been added | 
 |       to the conversion table used to convert these to Olson names. | 
 |       (Including those relating to changes for Russia in Oct 2014, as in | 
 |       \PR{16503}.) | 
 |  | 
 |       \item (Windows) Compatibility information has been added to the | 
 |       manifests for \file{Rgui.exe}, \file{Rterm.exe} and | 
 |       \file{Rscript.exe}.  This should allow \code{win.version()} and | 
 |       \code{Sys.info()} to report the actual Windows version up to | 
 |       Windows 10. | 
 |  | 
 |       \item Windows \code{"wininet"} FTP first tries EPSV / PASV mode | 
 |       rather than only using active mode (reported by Dan Tenenbaum). | 
 |       %% https://stat.ethz.ch/pipermail/r-devel/2015-August/071595.html | 
 |  | 
 |       \item \code{which.min(x)} and \code{which.max(x)} may be much | 
 |       faster for logical and integer \code{x} and now also work for long | 
 |       vectors. | 
 |  | 
 |       \item The \sQuote{emulation} part of \code{tools::texi2dvi()} has | 
 |       been somewhat enhanced, including supporting \code{quiet = TRUE}. | 
 |       It can be selected by \code{texi2dvi = "emulation"}. | 
 |  | 
 |       (Windows) MiKTeX removed its \code{texi2dvi.exe} command in Sept | 
 |       2015: \code{tools::texi2dvi()} tries \code{texify.exe} if it is | 
 |       not found. | 
 |  | 
 |       \item (Windows only) Shortcuts for printing and saving have | 
 |       been added to menus in \command{Rgui.exe}.  (Request of \PR{16572}.) | 
 |  | 
 |       \item \code{loess(..., iterTrace=TRUE)} now provides diagnostics | 
 |       for robustness iterations, and the \code{print()} method for | 
 |       \code{summary(<loess>)} shows slightly more. | 
 |  | 
 |       \item The included version of PCRE has been updated to 8.38, a | 
 |       bug-fix release. | 
 |  | 
 |       \item \code{View()} now displays nested data frames in a more | 
 |       friendly way.  (Request with patch in \PR{15915}.) | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{INSTALLATION and INCLUDED SOFTWARE}{ | 
 |     \itemize{ | 
 |       \item The included configuration code for \code{libintl} has been | 
 |       updated to that from \code{gettext} version 0.19.5.1 --- this | 
 |       should only affect how an external library is detected (and the | 
 |       only known instance is under OpenBSD).  (Wish of \PR{16464}.) | 
 |  | 
 |       \item \command{configure} has a new argument | 
 |       \option{--disable-java} to disable the checks for Java. | 
 |  | 
 |       \item The \command{configure} default for \code{MAIN_LDFLAGS} has | 
 |       been changed for the FreeBSD, NetBSD and Hurd OSes to one more | 
 |       likely to work with compilers other than \command{gcc} (FreeBSD 10 | 
 |       defaults to \command{clang}). | 
 |  | 
 |       \item \command{configure} now supports the OpenMP flags | 
 |       \option{-fopenmp=libomp} (clang) and \option{-qopenmp} (Intel C). | 
 |  | 
 |       \item Various macros can be set to override the default | 
 |       behaviour of \command{configure} when detecting OpenMP: see file | 
 |       \file{config.site}. | 
 |  | 
 |       \item Source installation on Windows has been modified to allow | 
 |       for MiKTeX installations without \command{texi2dvi.exe}.  See file | 
 |       \file{MkRules.dist}. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{BUG FIXES}{ | 
 |     \itemize{ | 
 |       \item \code{regexpr(pat, x, perl = TRUE)} with Python-style named | 
 |       capture did not work correctly when \code{x} contained \code{NA} | 
 |       strings.  (\PR{16484}) | 
 |  | 
 |       \item The description of dataset \code{ToothGrowth} has been | 
 |       improved/corrected.  (\PR{15953}) | 
 |  | 
 |       \item \code{model.tables(type = "means")} and hence | 
 |       \code{TukeyHSD()} now support \code{"aov"} fits without an | 
 |       intercept term.  (\PR{16437}) | 
 |  | 
 |       \item \code{close()} now reports the status of a \code{pipe()} | 
 |       connection opened with an explicit \code{open} argument. | 
 |       (\PR{16481}) | 
 |  | 
 |       \item Coercing a list without names to a data frame is faster if | 
 |       the elements are very long. (\PR{16467}) | 
 |  | 
 |       \item (Unix-only) Under some rare circumstances piping the output | 
 |       from \command{Rscript} or \command{R -f} could result in | 
 |       attempting to close the input file twice, possibly crashing the | 
 |       process.  (\PR{16500}) | 
 |  | 
 |       \item (Windows) \code{Sys.info()} was out of step with | 
 |       \code{win.version()} and did not report Windows 8. | 
 |  | 
 |       \item \code{topenv(baseenv())} returns \code{baseenv()} again as | 
 |       in \R 3.1.0 and earlier.  This also fixes \code{compilerJIT(3)} | 
 |       when used in \file{.Rprofile}. | 
 |  | 
 |       \item \code{detach()}ing the \pkg{methods} package keeps | 
 |       \code{.isMethodsDispatchOn()} true, as long as the methods | 
 |       namespace is not unloaded.% This keeps a sane state, see the reg-S4 test | 
 |  | 
 |       \item Removed some spurious warnings from \command{configure} about the | 
 |       preprocessor not finding header files.  (\PR{15989}) | 
 |  | 
 |       \item \code{rchisq(*, df=0, ncp=0)} now returns \code{0} instead | 
 |       of \code{NaN}, and \code{dchisq(*, df=0, ncp=*)} also no longer | 
 |       returns \code{NaN} in limit cases (where the limit is unique). | 
 |       (\PR{16521}) | 
 |  | 
 |       \item \code{pchisq(*, df=0, ncp > 0, log.p=TRUE)} no longer | 
 |       underflows (for ncp > ~60). | 
 |  | 
 |       \item \code{nchar(x, "w")} returned -1 for characters it did not | 
 |       know about (e.g.\sspace{}zero-width spaces): it now assumes 1. | 
 |       It now knows about most zero-width characters and a few more | 
 |       double-width characters. | 
 |  | 
 |       \item Help for \code{which.min()} is now more precise about | 
 |       behavior with logical arguments.  (\PR{16532}) | 
 |  | 
 |       \item The print width of character strings marked as | 
 |       \code{"latin1"} or \code{"bytes"} was in some cases computed | 
 |       incorrectly. | 
 |  | 
 |       \item \code{abbreviate()} did not give names to the return value | 
 |       if \code{minlength} was zero, unlike when it was positive. | 
 |  | 
 |       \item (Windows only) \code{dir.create()} did not always warn | 
 |       when it failed to create a directory.  (\PR{16537}) | 
 |  | 
 |       \item When operating in a non-UTF-8 multibyte locale | 
 |       (e.g.\sspace{}an East Asian locale on Windows), \code{grep()} and | 
 |       related functions did not handle UTF-8 strings properly. | 
 |       (\PR{16264}) | 
 |  | 
 |       \item \code{read.dcf()} sometimes misread lines longer than 8191 | 
 |       characters.  (Reported by Hervé Pagès with a patch.) | 
 |  | 
 |       \item \code{within(df, ..)} no longer drops columns whose name | 
 |       start with a \code{"."}. | 
 |  | 
 |       \item The built-in \code{HTTP} server converted entire | 
 |       \code{Content-Type} to lowercase including parameters which | 
 |       can cause issues for multi-part form boundaries (\PR{16541}). | 
 |  | 
 |       \item Modifying slots of S4 objects could fail when the | 
 |       \pkg{methods} package was not attached. (\PR{16545}) | 
 |  | 
 |       \item \code{splineDesign(*, outer.ok=TRUE)} (\pkg{splines}) is better now | 
 |       (\PR{16549}), and \code{interpSpline()} now allows \code{sparse=TRUE} | 
 |       for speedup with non-small sizes. | 
 |  | 
 |       \item If the expression in the traceback was too long, | 
 |       \code{traceback()} did not report the source line number.  (Patch | 
 |       by Kirill Müller.) | 
 |  | 
 |       \item The browser did not truncate the display of the function when | 
 |       exiting with \code{options("deparse.max.lines")} set. | 
 |       (\PR{16581}) | 
 |  | 
 |       \item When \code{bs(*, Boundary.knots=)} had boundary knots inside | 
 |       the data range, extrapolation was somewhat off.  (Patch by Trevor | 
 |       Hastie.) | 
 |  | 
 |       \item \code{var()} and hence \code{sd()} warn about | 
 |       \code{factor} arguments which are deprecated now. (\PR{16564}) | 
 |  | 
 |       \item \code{loess(*, weights = *)} stored wrong weights and hence | 
 |       gave slightly wrong predictions for \code{newdata}.  (\PR{16587}) | 
 |  | 
 |       \item \code{aperm(a, *)} now preserves \code{names(dim(a))}. | 
 |  | 
 |       \item \code{poly(x, ..)} now works when either \code{raw=TRUE} or | 
 |       \code{coef} is specified.  (\PR{16597}) | 
 |  | 
 |       \item \code{data(package=*)} is more careful in determining the path. | 
 |  | 
 |       \item \code{prettyNum(*, decimal.mark, big.mark)}: fixed bug | 
 |       introduced when fixing \PR{16411}. | 
 |     } | 
 |   } | 
 | } | 
 |  | 
 | \section{\Rlogo CHANGES IN R 3.2.2}{ | 
 |   \subsection{SIGNIFICANT USER-VISIBLE CHANGES}{ | 
 |     \itemize{ | 
 |       \item It is now easier to use secure downloads from | 
 |       \samp{https://} URLs on builds which support them: no longer do | 
 |       non-default options need to be selected to do so.  In particular, | 
 |       packages can be installed from repositories which offer | 
 |       \samp{https://} URLs, and those listed by \code{setRepositories()} | 
 |       now do so (for some of their mirrors). | 
 |  | 
 |       Support for \samp{https://} URLs is available on Windows, and on | 
 |       other platforms if support for \code{libcurl} was compiled in and | 
 |       if that supports the \code{https} protocol (system installations | 
 |       can be expected to do).  So \samp{https://} support can be | 
 |       expected except on rather old OSes (an example being OS X | 
 |       \sQuote{Snow Leopard}, where a non-system version of | 
 |       \code{libcurl} can be used). | 
 |  | 
 |       (Windows only) The default method for accessing URLs \emph{via} | 
 |       \code{download.file()} and \code{url()} has been changed to be | 
 |       \code{"wininet"} using Windows API calls.  This changes the way | 
 |       proxies need to be set and security settings made: there have been | 
 |       some reports of \samp{ftp:} sites being inaccessible under the new default | 
 |       method (but the previous methods remain available). | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{NEW FEATURES}{ | 
 |     \itemize{ | 
 |       \item \code{cmdscale()} gets new option \code{list.} for increased | 
 |       flexibility when a list should be returned. | 
 |  | 
 |       \item \command{configure} now supports \code{texinfo} version 6.0, | 
 |       which (unlike the change from 4.x to 5.0) is a minor update. | 
 |       (Wish of \PR{16456}.) | 
 |  | 
 |       \item (Non-Windows only) \code{download.file()} with default | 
 |       \code{method = "auto"} now chooses \code{"libcurl"} if that is | 
 |       available and a \samp{https://} or \samp{ftps://} URL is used. | 
 |  | 
 |       \item (Windows only) \code{setInternet2(TRUE)} is now the default. | 
 |       The command-line option \command{--internet2} and environment | 
 |       variable \env{R_WIN_INTERNET2} are now ignored. | 
 |  | 
 |       Thus by default the \code{"internal"} method for | 
 |       \code{download.file()} and \code{url()} uses the \code{"wininet"} | 
 |       method: to revert to the previous default use | 
 |       \code{setInternet2(FALSE)}. | 
 |  | 
 |       This means that \samp{https://} URLs can be read by default by | 
 |       \code{download.file()} (they have been readable by \code{file()} | 
 |       and \code{url()} since \R 3.2.0). | 
 |  | 
 |       There are implications for how proxies need to be set (see | 
 |       \code{?download.file}). | 
 |  | 
 |       \item \code{chooseCRANmirror()} and \code{chooseBioCmirror()} now | 
 |       offer HTTPS mirrors in preference to HTTP mirrors.  This changes | 
 |       the interpretation of their \code{ind} arguments: see their help | 
 |       pages. | 
 |  | 
 |       \item \code{capture.output()} gets optional arguments \code{type} | 
 |       and \code{split} to pass to \code{sink()}, and hence can be used to | 
 |       capture messages. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{C-LEVEL FACILITIES}{ | 
 |     \itemize{ | 
 |       \item Header \file{Rconfig.h} now defines \code{HAVE_ALLOCA_H} if | 
 |       the platform has the \file{alloca.h} header (it is needed to | 
 |       define \code{alloca} on Solaris and AIX, at least: see | 
 |       \sQuote{Writing R Extensions} for how to use it). | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{INSTALLATION and INCLUDED SOFTWARE}{ | 
 |     \itemize{ | 
 |       \item The \command{libtool} script generated by | 
 |       \command{configure} has been modified to support FreeBSD >= 10 | 
 |       (\PR{16410}). | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{BUG FIXES}{ | 
 |     \itemize{ | 
 |       \item The HTML help page links to demo code failed due to a change | 
 |       in \R 3.2.0.  (\PR{16432}) | 
 |  | 
 |       \item If the \code{na.action} argument was used in | 
 |       \code{model.frame()}, the original data could be | 
 |       modified. (\PR{16436}) | 
 |  | 
 |       \item \code{getGraphicsEvent()} could cause a crash if a graphics | 
 |       window was closed while it was in use. (\PR{16438}) | 
 |  | 
 |       \item \code{matrix(x, nr, nc, byrow = TRUE)} failed if \code{x} | 
 |       was an object of type \code{"expression"}. | 
 |  | 
 |       \item \code{strptime()} could overflow the allocated storage on | 
 |       the C stack when the timezone had a non-standard format much | 
 |       longer than the standard formats. (Part of \PR{16328}.) | 
 |  | 
 |       \item \code{options(OutDec = s)} now signals a warning (which will | 
 |       become an error in the future) when \code{s} is not a string with | 
 |       exactly one character, as that has been a documented requirement. | 
 |  | 
 |       \item \code{prettyNum()} gains a new option \code{input.d.mark} | 
 |       which together with other changes, e.g., the default for | 
 |       \code{decimal.mark}, fixes some \code{format()}ting variants with | 
 |       non-default \code{getOption("OutDec")} such as in \PR{16411}. | 
 |  | 
 |       \item \code{download.packages()} failed for \code{type} equal to | 
 |       either \code{"both"} or \code{"binary"}.  (Reported by Dan | 
 |       Tenenbaum.) | 
 |  | 
 |       \item The \code{dendrogram} method of \code{labels()} is much more | 
 |       efficient for large dendrograms, now using \code{rapply()}. | 
 |       (Comment #15 of \PR{15215}) | 
 |  | 
 |       \item The \code{"port"} algorithm of \code{nls()} could give | 
 |       spurious errors.  (Reported by Radford Neal.) | 
 |  | 
 |       \item Reference classes that inherited from reference classes in | 
 |       another package could invalidate methods of the inherited | 
 |       class. Fixing this requires adding the ability for methods to be | 
 |       \dQuote{external}, with the object supplied explicitly as the first | 
 |       argument, named \code{.self}. See "Inter-Package Superclasses" | 
 |       in the documentation. | 
 |  | 
 |       \item \code{readBin()} could fail on the SPARC architecture | 
 |       due to alignment issues.  (Reported by Radford Neal.) | 
 |  | 
 |       \item \code{qt(*, df=Inf, ncp=.)} now uses the natural | 
 |       \code{qnorm()} limit instead of returning \code{NaN}. (\PR{16475}) | 
 |  | 
 |       \item Auto-printing of S3 and S4 values now searches for | 
 |       \code{print()} in the base namespace and \code{show()} in the | 
 |       \pkg{methods} namespace instead of searching the global | 
 |       environment. | 
 |  | 
 |       \item \code{polym()} gains a \code{coefs = NULL} argument and | 
 |       returns class \code{"poly"} just like \code{poly()} which gets a | 
 |       new \code{simple=FALSE} option.  They now lead to correct | 
 |       \code{predict()}ions, e.g., on subsets of the original data. | 
 |       (\PR{16239}) | 
 |  | 
 |       \item \code{rhyper(nn, <large>)} now works correctly. (\PR{16489}) | 
 |  | 
 |       \item \code{ttkimage()} did not (and could not) work so was | 
 |       removed. Ditto for \code{tkimage.cget()} and | 
 |       \code{tkimage.configure()}. Added two Ttk widgets and missing | 
 |       subcommands for Tk's \code{image} command: | 
 |       \code{ttkscale()}, | 
 |       \code{ttkspinbox()}, | 
 |       \code{tkimage.delete()}, | 
 |       \code{tkimage.height()}, | 
 |       \code{tkimage.inuse()}, | 
 |       \code{tkimage.type()}, | 
 |       \code{tkimage.types()}, | 
 |       \code{tkimage.width()}. (\PR{15372}, \PR{16450}) | 
 |  | 
 |       \item \code{getClass("foo")} now also returns a class definition when it is | 
 |       found in the cache more than once. | 
 |     } | 
 |   } | 
 | } | 
 |  | 
 | \section{\Rlogo CHANGES IN R 3.2.1}{ | 
 |   \subsection{NEW FEATURES}{ | 
 |     \itemize{ | 
 |       \item \code{utf8ToInt()} now checks that its input is valid UTF-8 | 
 |       and returns \code{NA} if it is not. | 
 |  | 
 |       \item \code{install.packages()} now allows \code{type = "both"} | 
 |       with \code{repos = NULL} if it can infer the type of file. | 
 |  | 
 |       \item \code{nchar(x, *)} and \code{nzchar(x)} gain a new argument | 
 |       \code{keepNA} which governs how the result for \code{NA}s in | 
 |       \code{x} is determined.  For \code{nzchar()} in general and | 
 |       \code{nchar()} in the \R 3.2.x series, the default | 
 |       remains \code{FALSE} which is fully back compatible. | 
 |       From \R 3.3.0, \code{nchar()}'s default will change to | 
 |       \code{keepNA = NA} and you are advised to consider this for code | 
 |       portability. | 
 |  | 
 |       \item \code{news()} more flexibly extracts dates from package | 
 |       \file{NEWS.Rd} files. | 
 |  | 
 |       \item \code{lengths(x)} now also works (trivially) for atomic | 
 |       \code{x} and hence can be used more generally as an efficient | 
 |       replacement of \code{sapply(x, length)} and similar. | 
 |  | 
 |       \item The included version of PCRE has been updated to 8.37, a | 
 |       bug-fix release. | 
 |  | 
 |       \item \code{diag()} no longer duplicates a matrix when extracting | 
 |       its diagonal. | 
 |  | 
 |       \item \code{as.character.srcref()} gains an argument to allow | 
 |       characters corresponding to a range of source references to be | 
 |       extracted. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{BUG FIXES}{ | 
 |     \itemize{ | 
 |       \item \code{acf()} and \code{ccf()} now guarantee values strictly | 
 |       in \eqn{[-1,1]} (instead of sometimes very slightly outside). \PR{15832}. | 
 |  | 
 |       \item \code{as.integer("111111111111")} now gives NA (with a warning) as | 
 |       it does for the corresponding numeric or negative number | 
 |       coercions.  Further, \code{as.integer(M + 0.1)} now gives \code{M} | 
 |       (instead of NA) when M is the maximal representable integer. | 
 |  | 
 |       \item On some platforms \code{nchar(x, "c")} and \code{nchar(x, "w")} | 
 |       would return values (possibly \code{NA}) for inputs which were | 
 |       declared to be UTF-8 but were not, or for invalid strings without a | 
 |       marked encoding in a multi-byte locale, rather than give an | 
 |       error.  Additional checks have been added to mitigate this. | 
 |  | 
 |       \item \code{apply(a, M, function(u) c(X = ., Y = .))} again | 
 |       has dimnames containing "X" and "Y" (as in R < 3.2.0). | 
 |  | 
 |       \item (Windows only) In some cases, the \command{--clean} option | 
 |       to \command{R CMD INSTALL} could fail.  (\PR{16178}) | 
 |  | 
 |       \item (Windows only) \code{choose.files()} would occasionally | 
 |       include characters from the result of an earlier call in | 
 |       the result of a later one.  (\PR{16270}) | 
 |  | 
 |       \item A change in \code{RSiteSearch()} in \R 3.2.0 caused it to | 
 |       submit invalid URLs.  (\PR{16329}) | 
 |  | 
 |       \item \command{Rscript} and command line \command{R} silently | 
 |       ignored incomplete statements at the end of a script; now they | 
 |       are reported as parse errors.  (\PR{16350}) | 
 |  | 
 |       \item Parse data for very long strings was not stored.  (\PR{16354}) | 
 |  | 
 |       \item \code{plotNode()}, the workhorse of the \code{plot} method | 
 |       for \code{"dendrogram"}s is no longer recursive, thanks to Suharto | 
 |       Anggono, and hence also works for deeply nested dendrograms.  (\PR{15215}) | 
 |  | 
 |       \item The parser could overflow internally when given numbers | 
 |       in scientific format with extremely large exponents.  (\PR{16358}) | 
 |  | 
 |       \item If the CRAN mirror was not set, \code{install.packages(type = "both")} | 
 |       and related functions could repeatedly query the user for it. | 
 |       (Part of \PR{16362}) | 
 |  | 
 |       \item The low-level functions \code{.rowSums()} etc. did not | 
 |       check the length of their argument, so could segfault. (\PR{16367}) | 
 |  | 
 |       \item The \code{quietly} argument of \code{library()} is now | 
 |       correctly propagated from \code{.getRequiredPackages2()}. | 
 |  | 
 |       \item Under some circumstances using the internal PCRE when | 
 |       building \R from source would cause external libs such as | 
 |       \code{-llzma} to be omitted from the main link. | 
 |  | 
 |       \item The .Primitive default methods of the logic operators, i.e., | 
 |       \code{!}, \code{&} and \code{|}, now give correct error messages | 
 |       when appropriate, e.g., for \code{`&`(TRUE)} or \code{`!`()}. | 
 |       (\PR{16385}) | 
 |  | 
 |       \item \code{cummax(x)} now correctly propagates \code{NA}s also | 
 |       when \code{x} is of type \code{integer} and begins with an \code{NA}. | 
 |  | 
 |       \item \code{summaryRprof()} could fail when the profile contained | 
 |       only two records.  (\PR{16395}) | 
 |  | 
 |       \item HTML vignettes opened using \code{vignette()} did not support | 
 |       links into the rest of the HTML help system.  (Links worked properly | 
 |       when the vignette was opened using \code{browseVignettes()} or from | 
 |       within the help system.) | 
 |  | 
 |       \item \code{arima(*, xreg = .)} (for \eqn{d \ge 1}{d >= 1}) | 
 |       computes estimated variances based on a the number of effective | 
 |       observations as in \R version 3.0.1 and earlier.  (\PR{16278}) | 
 |  | 
 |       \item \code{slotNames(.)} is now correct for \code{"signature"} | 
 |       objects (mostly used internally in \pkg{methods}). | 
 |  | 
 |       \item On some systems, the first string comparison after | 
 |       a locale change would result in \code{NA}. | 
 |     } | 
 |   } | 
 | } | 
 |  | 
 | \section{\Rlogo CHANGES IN R 3.2.0}{ | 
 |   \subsection{NEW FEATURES}{ | 
 |     \itemize{ | 
 |       \item \code{anyNA()} gains a \code{recursive} argument. | 
 |  | 
 |       \item When \code{x} is missing and \code{names} is not false | 
 |       (including the default value), \code{Sys.getenv(x, names)} returns | 
 |       an object of class \code{"Dlist"} and hence prints tidily. | 
 |  | 
 |       \item (Windows.)  \code{shell()} no longer consults the | 
 |       environment variable \env{SHELL}: too many systems have been | 
 |       encountered where it was set incorrectly (usually to a path where | 
 |       software was compiled, not where it was installed). | 
 |       \env{R_SHELL}, the preferred way to select a non-default shell, | 
 |       can be used instead. | 
 |  | 
 |       \item Some unusual arguments to \code{embedFonts()} can now be | 
 |       specified as character vectors, and the defaults have been changed | 
 |       accordingly. | 
 |  | 
 |       \item Functions in the \code{Summary} group duplicate less. | 
 |       (\PR{15798}) | 
 |  | 
 |       \item (Unix-alikes.) \code{system(cmd, input = )} now uses | 
 |       \sQuote{shell-execution-environment} redirection, which will be | 
 |       more natural if \code{cmd} is not a single command (but requires a | 
 |       POSIX-compliant shell). (Wish of \PR{15508}) | 
 |  | 
 |       \item \code{read.fwf()} and \code{read.DIF()} gain a | 
 |       \code{fileEncoding} argument, for convenience. | 
 |  | 
 |       \item Graphics devices can add attributes to their description in | 
 |       \code{.Device} and \code{.Devices}.  Several of those included with | 
 |       \R use a \code{"filepath"} attribute. | 
 |  | 
 |       \item \code{pmatch()} uses hashing in more cases and so is faster | 
 |       at the expense of using more memory. (\PR{15697}) | 
 |  | 
 |       \item \code{pairs()} gains new arguments to select sets of | 
 |       variables to be plotted against each other. | 
 |  | 
 |       \item \code{file.info(, extra_cols = FALSE)} allows a minimal set | 
 |       of columns to be computed on Unix-alikes: on some systems without | 
 |       properly-configured caching this can be significantly faster with | 
 |       large file lists. | 
 |  | 
 |       \item New function \code{dir.exists()} in package \pkg{base} to | 
 |       test efficiently whether one or more paths exist and are | 
 |       directories. | 
 |  | 
 |       \item \code{dput()} and friends gain new controls | 
 |       \samp{hexNumeric} and \samp{digits17} which output double and | 
 |       complex quantities as, respectively, binary fractions (exactly, | 
 |       see \code{sprintf("\%a")}) and as decimals with up to 17 | 
 |       significant digits. | 
 |  | 
 |       \item \code{save()}, \code{saveRDS()} and \code{serialize()} now | 
 |       support \code{ascii = NA} which writes ASCII files using | 
 |       \code{sprintf("\%a")} for double/complex quantities.  This is | 
 |       read-compatible with \code{ascii = TRUE} but avoids | 
 |       binary->decimal->binary conversions with potential loss of | 
 |       precision.  Unfortunately the Windows C runtime's lack of C99 | 
 |       compliance means that the format cannot be read correctly there in | 
 |       \R before 3.1.2. | 
 |  | 
 |       \item The default for \code{formatC(decimal.mark =)} has been | 
 |       changed to be \code{getOption("OutDec")}; this makes it more | 
 |       consistent with \code{format()} and suitable for use in print | 
 |       methods, e.g.\sspace{}those for classes \code{"density"}, \code{"ecdf"}, | 
 |       \code{"stepfun"} and \code{"summary.lm"}. | 
 |  | 
 |       \code{getOption("OutDec")} is now consulted by the print method | 
 |       for class \code{"kmeans"}, by \code{cut()}, \code{dendrogram()}, | 
 |       \code{plot.ts()} and \code{quantile()} when constructing labels | 
 |       and for the report from \code{legend(trace = TRUE)}. | 
 |  | 
 |       (In part, wish of \PR{15819}.) | 
 |  | 
 |       \item \code{printNum()} and hence \code{format()} and | 
 |       \code{formatC()} give a warning if \code{big.mark} and | 
 |       \code{decimal.mark} are set to the same value (period and comma | 
 |       are not uncommonly used for each, and this is a check that | 
 |       conventions have not got mixed). | 
 |  | 
 |       \item \code{merge()} can create a result which uses long vectors | 
 |       on 64-bit platforms. | 
 |  | 
 |       \item \code{dget()} gains a new argument \code{keep.source} which | 
 |       defaults to \code{FALSE} for speed (\code{dput()} and | 
 |       \code{dget()} are most often used for data objects where this can | 
 |       make \code{dget()} many times faster). | 
 |  | 
 |       \item Packages may now use a file of common macro definitions in | 
 |       their help files, and may import definitions from other packages. | 
 |  | 
 |       \item A number of macros have been added in the new | 
 |       \file{share/Rd} directory for use in package overview help pages, | 
 |       and \code{promptPackage()} now makes use of them. | 
 |  | 
 |       \item \code{tools::parse_Rd()} gains a new \code{permissive} | 
 |       argument which converts unrecognized macros into text.  This is | 
 |       used by \code{utils:::format.bibentry} to allow LaTeX markup to be | 
 |       ignored. | 
 |  | 
 |       \item \code{options(OutDec =)} can now specify a multi-byte | 
 |       character, e.g., \code{options(OutDec = "\u00b7")} in a UTF-8 | 
 |       locale. | 
 |  | 
 |       \item \code{is.recursive(x)} is no longer true when \code{x} is an | 
 |       external pointer, a weak reference or byte code; the first enables | 
 |       \code{all.equal(x, x)} when \code{x <- getClass(.)}. | 
 |  | 
 |       \item \code{ls()} (aka \code{objects()}) and | 
 |       \code{as.list.environment()} gain a new argument \code{sorted}. | 
 |  | 
 |       \item The \code{"source"} attribute (which has not been added to | 
 |       functions by \R since before \R version 2.14.0) is no longer | 
 |       treated as special. | 
 |  | 
 |       \item Function \code{returnValue()} has been added to give | 
 |       \code{on.exit()} code access to a function's return value for | 
 |       debugging purposes. | 
 |  | 
 |       \item \code{crossprod(x, y)} allows more matrix coercions when | 
 |       \code{x} or \code{y} are vectors, now equalling | 
 |       \code{t(x) \%*\% y} in these cases (also reported by Radford Neal). | 
 |       Similarly, \code{tcrossprod(x,y)} and \code{\%*\%} work in more | 
 |       cases with vector arguments. | 
 |  | 
 |       \item Utility function \code{dynGet()} useful for detecting | 
 |       cycles, aka infinite recursions. | 
 |  | 
 |       \item The byte-code compiler and interpreter include new | 
 |       instructions that allow many scalar subsetting and assignment and | 
 |       scalar arithmetic operations to be handled more efficiently. This | 
 |       can result in significant performance improvements in scalar | 
 |       numerical code. | 
 |  | 
 |       \item \code{apply(m, 2, identity)} is now the same as the matrix | 
 |       \code{m} when it has \emph{named} row names. | 
 |  | 
 |       \item A new function \code{debuggingState()} has been added, | 
 |       allowing to temporarily turn off debugging. | 
 |  | 
 |       \item \code{example()} gets a new optional argument | 
 |       \code{run.donttest} and \code{tools::Rd2ex()} a corresponding | 
 |       \code{commentDonttest}, with a default such that | 
 |       \code{example(..)} in help examples will run \code{\\donttest} | 
 |       code only if used interactively (a change in behaviour). | 
 |  | 
 |       \item \code{rbind.data.frame()} gains an optional argument | 
 |       \code{make.row.names}, for potential speedup. | 
 |  | 
 |       \item New function \code{extSoftVersion()} to report on the | 
 |       versions of third-party software in use in this session. | 
 |       Currently reports versions of \code{zlib}, \code{bzlib}, the | 
 |       \code{liblzma} from \code{xz}, PCRE, ICU, TRE and the \code{iconv} | 
 |       implementation. | 
 |  | 
 |       A similar function \code{grSoftVersion()} in package \pkg{grDevices} | 
 |       reports on third-party graphics software. | 
 |  | 
 |       Function \code{tcltk::tclVersion()} reports the Tcl/Tk version. | 
 |  | 
 |       \item Calling \code{callGeneric()} without arguments now works | 
 |       with primitive generics to some extent. | 
 |  | 
 |       \item \code{vapply(x, FUN, FUN.VALUE)} is more efficient notably | 
 |       for large \code{length(FUN.VALUE)}; as extension of \PR{16061}. | 
 |  | 
 |       \item \code{as.table()} now allows tables with one or more | 
 |       dimensions of length 0 (such as \code{as.table(integer())}). | 
 |  | 
 |       \item \code{names(x) <- NULL} now clears the names of call | 
 |       and \code{\dots} objects. | 
 |  | 
 |       \item \code{library()} will report a warning when an insufficient | 
 |       dependency version is masking a sufficient one later on the | 
 |       library search path. | 
 |  | 
 |       \item A new \code{plot()} method for class \code{"raster"} has | 
 |       been added. | 
 |  | 
 |       \item New \code{check_packages_in_dir_changes()} function in | 
 |       package \pkg{tools} for conveniently analyzing how changing | 
 |       sources impacts the check results of their reverse dependencies. | 
 |  | 
 |       \item Speed-up from Peter Haverty for \code{ls()} and | 
 |       \code{methods:::.requirePackage()} speeding up package loading. | 
 |       (\PR{16133}) | 
 |  | 
 |       \item New \code{get0()} function, combining \code{exists()} and | 
 |       \code{get()} in one call, for efficiency. | 
 |  | 
 |       \item \code{match.call()} gains an \code{envir} argument for | 
 |       specifying the environment from which to retrieve | 
 |       the \code{\dots} in the call, if any; this environment was wrong | 
 |       (or at least undesirable) when the \code{definition} argument was | 
 |       a function. | 
 |  | 
 |       \item \code{topenv()} has been made \code{.Internal()} for | 
 |       speedup, based on Peter Haverty's proposal in \PR{16140}. | 
 |  | 
 |       \item \code{getOption()} no longer calls \code{options()} in the main | 
 |       case. | 
 |  | 
 |       \item Optional use of \code{libcurl} (version 7.28.0 from Oct 2012 | 
 |       or later) for Internet access: | 
 |       \itemize{ | 
 | 	\item \code{capabilities("libcurl")} reports if this is | 
 | 	available. | 
 |  | 
 | 	\item \code{libcurlVersion()} reports the version in use, and | 
 | 	other details of the \code{"libcurl"} build including which URL | 
 | 	schemes it supports. | 
 |  | 
 | 	\item \code{curlGetHeaders()} retrieves the headers for | 
 | 	\samp{http://}, \samp{https://}, \samp{ftp://} and | 
 | 	\samp{ftps://} URLs: analysis of these headers can provide | 
 | 	insights into the `existence' of a URL (it might for example be | 
 | 	permanently redirected) and is so used in \command{R CMD | 
 | 	  check --as-cran}. | 
 |  | 
 | 	\item \code{download.file()} has a new optional method | 
 | 	\code{"libcurl"} which will handle more URL schemes, follow | 
 | 	redirections, and allows simultaneous downloads of multiple | 
 | 	URLs. | 
 |  | 
 | 	\item \code{url()} has a new method \code{"libcurl"} which | 
 | 	handles more URL schemes and follows redirections.  The default | 
 | 	method is controlled by a new option \code{url.method}, which | 
 | 	applies also to the opening of URLs \emph{via} \code{file()} | 
 | 	(which happens implicitly in functions such as | 
 | 	\code{read.table}.) | 
 |  | 
 | 	\item When \code{file()} or \code{url()} is invoked with a | 
 | 	\code{https://} or \code{ftps://} URL which the current method | 
 | 	cannot handle, it switches to a suitable method if one is | 
 | 	available. | 
 |       } | 
 |  | 
 |       \item (Windows.) The DLLs \file{internet.dll} and | 
 |       \file{internet2.dll} have been merged.  In this version it is safe | 
 |       to switch (repeatedly) between the internal and Windows internet | 
 |       functions within an \R session. | 
 |  | 
 |       The Windows internet functions are still selected by flag | 
 |       \option{--internet2} or \code{setInternet2()}.  This can be | 
 |       overridden for an \code{url()} connection \emph{via} its new | 
 |       \code{method} argument. | 
 |  | 
 |       \code{download.file()} has new method \code{"wininet"}, selected | 
 |       as the default by \option{--internet2} or \code{setInternet2()}. | 
 |  | 
 |       \item \code{parent.env<-} can no longer modify the parent of a | 
 |       locked namespace or namespace imports environment.  Contributed by | 
 |       Karl Millar. | 
 |  | 
 |       \item New function \code{isNamespaceLoaded()} for readability and speed. | 
 |  | 
 |       \item \code{names(env)} now returns all the object names of an | 
 |       \code{environment} \code{env}, equivalently to | 
 |       \code{ls(env, all.names = TRUE, sorted = FALSE)} and also to | 
 |       the names of the corresponding list, | 
 |       \code{names(as.list(env, all.names = TRUE))}. | 
 |       Note that although \code{names()} returns a character vector, the | 
 |       names have no particular ordering. | 
 |  | 
 |       \item The memory manager now grows the heap more aggressively. This | 
 |       reduces the number of garbage collections, in particular while | 
 |       data or code are loaded, at the expense of slightly increasing the | 
 |       memory footprint. | 
 |  | 
 |       \item New function \code{trimws()} for removing leading/trailing | 
 |       whitespace. | 
 |  | 
 |       \item \code{cbind()} and \code{rbind()} now consider S4 inheritance | 
 |       during S3 dispatch and also obey \code{deparse.level}. | 
 |  | 
 |       \item \code{cbind()} and \code{rbind()} will delegate recursively | 
 |       to \code{methods::cbind2} (\code{methods::rbind2}) when at least | 
 |       one argument is an S4 object and S3 dispatch fails (due to | 
 |       ambiguity). | 
 |  | 
 |       \item (Windows.)  \code{download.file(quiet = FALSE)} now uses | 
 |       text rather than Windows progress bars in non-interactive use. | 
 |  | 
 |       \item New function \code{hsearch_db()} in package \pkg{utils} for | 
 |       building and retrieving the help search database used by | 
 |       \code{help.search()}, along with functions for inspecting the | 
 |       concepts and keywords in the help search database. | 
 |  | 
 |       \item New function \code{.getNamespaceInfo()}, a no-check version | 
 |       of \code{getNamespaceInfo()} mostly for internal speedups. | 
 |  | 
 |       \item The help search system now takes \samp{\keyword} entries in | 
 |       Rd files which are not standard keywords (as given in | 
 |       \file{KEYWORDS} in the \R documentation directory) as concepts. | 
 |       For standard keyword entries the corresponding descriptions are | 
 |       additionally taken as concepts. | 
 |  | 
 |       \item New \code{lengths()} function for getting the lengths of all | 
 |       elements in a list. | 
 |  | 
 |       \item New function \code{toTitleCase()} in package \pkg{tools}, | 
 |       tailored to package titles. | 
 |  | 
 |       \item The matrix methods of \code{cbind()} and \code{rbind()} | 
 |       allow matrices as inputs which have \eqn{2^{31}}{2^31} or more | 
 |       elements.  (For \code{cbind()}, wish of \PR{16198}.) | 
 |  | 
 |       \item The default method of \code{image()} has an explicit check | 
 |       for a numeric or logical matrix (which was always required). | 
 |  | 
 |       \item \code{URLencode()} will not by default encode further URLs | 
 |       which appear to be already encoded. | 
 |  | 
 |       \item \code{BIC(mod)} and \code{BIC(mod, mod2)} now give non-NA | 
 |       numbers for \code{arima()} fitted models, as \code{nobs(mod)} now | 
 |       gives the number of \dQuote{used} observations for such models. | 
 |       This fixes \PR{16198}, quite differently than proposed there. | 
 |  | 
 |       \item The \code{print()} methods for \code{"htest"}, | 
 |       \code{"pairwise.htest"} and \code{"power.htest"} objects now have | 
 |       a \code{digits} argument defaulting to (a function of) | 
 |       \code{getOption("digits")}, and influencing all printed numbers | 
 |       coherently.  Unavoidably, this changes the display of such test | 
 |       results in some cases. | 
 |  | 
 |       \item Code completion for namespaces now recognizes all loaded | 
 |       namespaces, rather than only the ones that are also attached. | 
 |  | 
 |       \item The code completion mechanism can now be replaced by a | 
 |       user-specified completer function, for (temporary) situations | 
 |       where the usual code completion is inappropriate. | 
 |  | 
 |       \item \code{unzip()} will now warn if it is able to detect truncation | 
 |       when unpacking a file of 4GB or more (related to \PR{16243}). | 
 |  | 
 |       \item \code{methods()} reports S4 in addition to S3 methods; | 
 |       output is simplified when the \code{class} argument is | 
 |       used.  \code{.S3methods()} and \code{methods::.S4methods()} report | 
 |       S3 and S4 methods separately. | 
 |  | 
 |       \item Higher order functions such as the \code{apply} functions | 
 |       and \code{Reduce()} now force arguments to the functions they apply | 
 |       in order to eliminate undesirable interactions between lazy | 
 |       evaluation and variable capture in closures.  This resolves | 
 |       \PR{16093}. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{INSTALLATION and INCLUDED SOFTWARE}{ | 
 |     \itemize{ | 
 |       \item The \code{\\donttest} sections of \R's help files can be | 
 |       tested by\cr | 
 |       \command{make check TEST_DONTTEST=TRUE} . | 
 |  | 
 |       \item It is possible to request the use of system | 
 |       \command{valgrind} headers \emph{via} \command{configure} option | 
 |       \option{--with-system-valgrind-headers}: note the possible future | 
 |       incompatibility of such headers discussed in the 'R Installation | 
 |       and Administration' manual. (Wish of \PR{16068}.) | 
 |  | 
 |       \item The included version of \code{liblzma} has been updated to | 
 |       \code{xz-utils} 5.0.7 (minor bug fixes from 5.0.5). | 
 |  | 
 |       \item \command{configure} options \option{--with-system-zlib}, | 
 |        \option{--with-system-bzlib} and \option{--with-system-pcre} are | 
 |        now the default.  For the time being there is fallback to the | 
 |        versions included in the \R sources if no system versions are | 
 |        found or (unlikely) if they are too old. | 
 |  | 
 |        Linux users should check that the \code{-devel} or \code{-dev} | 
 |        versions of packages \pkg{zlib}, \pkg{bzip2}/\pkg{libbz2} and | 
 |        \pkg{pcre} as well as \pkg{xz-devel}/\pkg{liblzma-dev} (or | 
 |        similar names) are installed. | 
 |  | 
 |        \item \command{configure} by default looks for the | 
 |        \command{texi2any} script from \pkg{texinfo} 5.1 or later, rather | 
 |        than the \command{makeinfo} program.  (\command{makeinfo} is a | 
 |        link to the Perl script \command{texi2any} in \pkg{texinfo} 5.x.) | 
 |  | 
 |        \item \command{R CMD INSTALL} gains an  option | 
 |        \option{--built-timestamp=STAMP} allowing 100\% reproducible | 
 |        package building, thanks to Dirk Eddelbuettel. | 
 |      } | 
 |   } | 
 |  | 
 |   \subsection{UTILITIES}{ | 
 |     \itemize{ | 
 |       \item There is support for testing the \code{\\dontrun} and | 
 |       \code{\\donttest} parts of examples in packages. | 
 |  | 
 |       \code{tools::testInstalledPackage()} accepts new arguments | 
 |       \code{commentDontrun = FALSE} and \code{commentDonttest = FALSE}. | 
 |  | 
 |       \command{R CMD check} gains options \option{--run-dontrun} and | 
 |       \option{--run-donttest}. | 
 |  | 
 |       \item The \acronym{HTML} generated by \code{tools::Rd2HTML()} and | 
 |       \code{tools::toHTML()} methods is now | 
 |       \sQuote{\acronym{XHTML} 1.0 Strict}. | 
 |  | 
 |       \item The \pkg{compiler} package's utility function | 
 |       \code{setCompilerOptions()} now returns the old values | 
 |       invisibly. The initial optimization level can also be set with the | 
 |       environment variable \env{R_COMPILER_OPTIMIZE}. | 
 |  | 
 |       \item \command{R CMD build} adds a \samp{NeedsCompilation} field | 
 |       if one is not already present in the \file{DESCRIPTION} file. | 
 |  | 
 |       \item \command{R CMD check} gains option \option{--test-dir} to | 
 |       specify an alternative set of tests to run. | 
 |  | 
 |       \item \command{R CMD check} will now by default continue with | 
 |       testing after many types of errors, and will output a summary | 
 |       count of errors at the end if any have occurred. | 
 |  | 
 |       \item \command{R CMD check} now checks that the \samp{Title} and | 
 |       \samp{Description} fields are correctly terminated. | 
 |  | 
 |       \item \command{R CMD check --as-cran} now: | 
 |       \itemize{ | 
 | 	\item checks a \file{README.md} file can be processed: this | 
 | 	needs \command{pandoc} installed. | 
 |  | 
 | 	\item checks the existence and accessibility of URLs in the | 
 | 	\file{DESCRIPTION}, \file{CITATION}, \file{NEWS.Rd} and | 
 | 	\file{README.md} files and in the help files (provided the build | 
 | 	has \code{libcurl} support). | 
 |  | 
 | 	\item reports non-ASCII characters in R source files when there | 
 | 	is no package encoding declared in the \file{DESCRIPTION} file. | 
 |  | 
 | 	\item reports (apparent) S3 methods exported but not registered. | 
 |  | 
 | 	\item reports overwriting registered S3 methods from | 
 | 	base/recommended packages.  (Such methods are replaced in the | 
 | 	affected package for the rest of the session, even if the | 
 | 	replacing namespace is unloaded.) | 
 |  | 
 | 	\item reports if the \code{Title} field does not appear to be in | 
 | 	title case (see \sQuote{Writing R Extensions}: there may be | 
 | 	false positives, but note that technical words should be | 
 | 	single-quoted and will then be accepted). | 
 |       } | 
 |  | 
 |       Most of these checks can also be selected by environment | 
 |       variables: see the \sQuote{R Internals} manual. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{C-LEVEL FACILITIES}{ | 
 |     \itemize{ | 
 |       \item New C API utility \code{logspace_sum(logx[], n)}. | 
 |  | 
 |       \item Entry points \code{rbinom_mu}, \code{rnbinom_mu} and | 
 |       \code{rmultinom} are remapped (by default) to \code{Rf_rbinom_mu} | 
 |       etc.  This requires packages using them to be re-installed. | 
 |  | 
 |       \item \code{.C(DUP = FALSE)} and \code{.Fortran(DUP = FALSE)} are | 
 |       now ignored, so arguments are duplicated if \code{DUP = TRUE} | 
 |       would do so.  As their help has long said, \code{.Call()} is much | 
 |       preferred. | 
 |  | 
 |       \item New entry point \code{R_allocLD}, like \code{R_alloc} but | 
 |       guaranteed to have sufficient alignment for \code{long double} | 
 |       pointers. | 
 |  | 
 |       \item \code{isPairList()} now returns \code{TRUE} for DOTSXP. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{WINDOWS BUILD CHANGES}{ | 
 |     A number of changes to the Windows build system are in development. | 
 |     The following are currently in place. | 
 |     \itemize{ | 
 |       \item Installation using external binary distributions | 
 |       of \pkg{zlib}, \pkg{bzip2}, \pkg{liblzma}, \pkg{pcre}, | 
 |       \pkg{libpng}, \pkg{jpeglib} and \pkg{libtiff} is now required, | 
 |       and the build instructions have been revised. | 
 |  | 
 |       \item A new \command{make} target \code{rsync-extsoft} has been | 
 |       added to obtain copies of the external libraries from | 
 |       \acronym{CRAN}. | 
 |  | 
 |       \item Building the manuals now requires \command{texi2any} from | 
 |       \pkg{texinfo} 5.1 or later.  \acronym{CRAN} binary builds include | 
 |       the manuals, but by default builds from source will not, and they | 
 |       will be accessed from \acronym{CRAN}.  See the comments in | 
 |       \file{src/gnuwin32/MkRules.dist} for how to specify the location | 
 |       of \command{texi2any}. | 
 |  | 
 |       \item (Windows) Changes have been made to support an experimental | 
 |       Windows toolchain based on GCC 4.9.2.  The default toolchain | 
 |       continues to be based on GCC 4.6.3, as the new toolchain is not | 
 |       yet stable enough.  A change to a new toolchain is expected during | 
 |       the R 3.2.x lifetime. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{PACKAGE INSTALLATION}{ | 
 |     \itemize{ | 
 |       \item  (Windows) The use of macro \code{ZLIB_LIBS} in file | 
 |       \file{src/Makevars.win} (which has not been documented for a long | 
 |       time) now requires an external \file{libz.a} to be available (it is | 
 |       part of the \sQuote{goodies} used to compile Windows binary | 
 |       packages).  It would be simpler to use \code{-lz} instead. | 
 |  | 
 |       \item The default for option \code{pkgType} on platforms using | 
 |       binary packages is now \code{"both"}, so source packages will be | 
 |       tried if binary versions are not available or not up to date. | 
 |  | 
 |       There are options for what \code{install.packages(type = "both")} | 
 |       (possibly called \emph{via} \code{update.packages()}) will do if | 
 |       compilation of a source package is desirable: see \code{?options} | 
 |       (under \pkg{utils}). | 
 |  | 
 |       If you intend not to accept updates as source packages, you should | 
 |       use \code{update.packages(type = "binary")}. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{DEPRECATED AND DEFUNCT}{ | 
 |     \itemize{ | 
 |       \item \code{download.file(method = "lynx")} is defunct. | 
 |  | 
 |       \item Building \R using the included versions of \code{zlib}, | 
 |       \code{bzip2}, \code{xz} and PCRE is deprecated: these are frozen | 
 |       (bar essential bug-fixes) and will be removed for \R 3.3.0. | 
 |  | 
 |       \item The \command{configure} option | 
 |       \option{--with-valgrind-instrumentation=3} has been withdrawn, as | 
 |       it did not work with recent \command{valgrind} headers: it is now | 
 |       treated as level \code{2}. | 
 |  | 
 |       \item The \code{MethodsList} class in package \pkg{methods} had | 
 |       been deprecated in \R 2.11.0 and is defunct now.  Functions using | 
 |       it are defunct if they had been deprecated in \R 2.11.0, and are | 
 |       deprecated now, otherwise. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{BUG FIXES}{ | 
 |     \itemize{ | 
 |       \item Fixed two obscure bugs in pairlist subassignment, reported by | 
 |       Radford Neal as part of pqR issue 16. | 
 |  | 
 |       \item Fixes for bugs in handling empty arguments and argument | 
 |       matching by name in \code{log()}. | 
 |  | 
 |       \item \code{all.equal()} gains methods for \code{environment}s and | 
 |       \code{refClass}es. | 
 |  | 
 |       \item \code{[<-} and \code{[[<-} gain S4 \code{data.frame} methods | 
 |       to avoid corruption of S4 class information by the S3 methods. | 
 |  | 
 |       \item \code{callNextMethod()} should now work within a \code{.local} | 
 |       call when \code{\dots} is absent from \code{formals(.local)}. | 
 |  | 
 |       \item \code{dput(pairlist(x))} generates a call to the | 
 |       \code{pairlist} constructor instead of the \code{list} | 
 |       constructor. | 
 |  | 
 |       \item Fix \code{missing()} when arguments are propagated through | 
 |       \code{\dots} . (\PR{15707}) | 
 |  | 
 |       \item \code{eigen(m)} now defaults to \code{symmetric = TRUE} even | 
 |       when the dimnames are asymmetric if the matrix is otherwise | 
 |       symmetric.  (\PR{16151}) | 
 |  | 
 |       \item Fix issues with forwarding \code{\dots} through | 
 |       \code{callGeneric()} and \code{callNextMethod()}.  (\PR{16141}) | 
 |  | 
 |       \item \code{callGeneric()} now works after a \code{callNextMethod()}. | 
 |  | 
 |       \item Subclass information is kept consistent when replacing an | 
 |       ordinary S4 class with an \dQuote{old class} \emph{via} the | 
 |       \code{S4Class} argument to \code{setOldClass()}. Thus, for | 
 |       example, a \code{data.frame} is valid for a \code{list} argument | 
 |       in the signature, and a \code{factor} is valid for \code{vector} | 
 |       arguments. | 
 |  | 
 |       \item In \code{qbeta()} the inversion of \code{pbeta()} is much | 
 |       more sophisticated.  This works better in corner cases some of | 
 |       which failed completely previously (\PR{15755}), or were using | 
 |       too many iterations. | 
 |  | 
 |       \item Auto-printing no longer duplicates objects when printing is | 
 |       dispatched to a method. | 
 |  | 
 |       \item \code{kmeans(x, k)} would fail when \code{nrow(x) >= 42949673}. | 
 |       (Comment 6 of \PR{15364}) | 
 |  | 
 |       \item \sQuote{Abbreviated} locale-specific day and month names | 
 |       could have been truncated in those rare locales where there are | 
 |       the same as the full names. | 
 |  | 
 |       \item An irrelevant warning message from updating subclass | 
 |       information was silenced (the namespace would not be writable | 
 |       in this case). | 
 |     } | 
 |   } | 
 | } | 
 |  | 
 | \section{\Rlogo CHANGES IN R 3.1.3}{ | 
 |   \subsection{NEW FEATURES}{ | 
 |     \itemize{ | 
 |       \item The internal method of \code{download.file()} can now handle | 
 |       files larger than 2GB on 32-bit builds which support such files | 
 |       (tested on 32-bit \R running on 64-bit Windows). | 
 |  | 
 |       \item \code{kruskal.test()} warns on more types of suspicious input. | 
 |  | 
 |       \item The \code{as.dendrogram()} method for \code{"hclust"} | 
 |       objects gains a \code{check} argument protecting against memory | 
 |       explosion for invalid inputs. | 
 |  | 
 |       \item \code{capabilities()} has a new item \code{long.double} | 
 |       which indicates if the build uses a \code{long double} type which | 
 |       is longer than \code{double}. | 
 |  | 
 |       \item \code{nlm()} no longer modifies the callback argument in | 
 |       place (a new vector is allocated for each invocation, which mimics | 
 |       the implicit duplication that occurred in R < 3.1.0); note that | 
 |       this is a change from the previously documented | 
 |       behavior. (\PR{15958}) | 
 |  | 
 |       \item \code{icuSetCollate()} now accepts \code{locale = "ASCII"} | 
 |       which uses the basic C function \code{strcmp} and so collates | 
 |       strings byte-by-byte in numerical order. | 
 |  | 
 |       \item \code{sessionInfo()} tries to report the OS version in use | 
 |       (not just that compiled under, and including details of Linux | 
 |       distributions). | 
 |  | 
 |       \item \code{model.frame()} (used by \code{lm()} and many other | 
 |       modelling functions) now warns when it drops contrasts | 
 |       from factors.  (Wish of \PR{16119}) | 
 |  | 
 |       \item \code{install.packages()} and friends now accept the value | 
 |       \code{type = "binary"} as a synonym for the native binary type on | 
 |       the platform (if it has one). | 
 |  | 
 |       \item Single source or binary files can be supplied for | 
 |       \code{install.packages(type = "both")} and the appropriate type | 
 |       and \code{repos = NULL} will be inferred. | 
 |  | 
 |       \item New function \code{pcre_config()} to report on some of the | 
 |       configuration options of the version of PCRE in use.  In | 
 |       particular, this reports if regular expressions using | 
 |       \samp{\p{xx}} are supported. | 
 |  | 
 |       \item (Windows.) \code{download.file(cacheOK = FALSE)} is now | 
 |       supported when \file{internet2.dll} is used. | 
 |  | 
 |       \item \code{browseURL()} has been updated to work with Firefox | 
 |       36.0 which has dropped support for the \option{-remote} interface. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{INSTALLATION and INCLUDED SOFTWARE}{ | 
 |     \itemize{ | 
 |       \item The included version of PCRE has been updated to 8.36. | 
 |  | 
 |       \item \command{configure} accepts \samp{MAKEINFO=texi2any} as | 
 |       another way to ensure \pkg{texinfo} 5.x is used when both 5.x and | 
 |       4.x are installed. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{UTILITIES}{ | 
 |     \itemize{ | 
 |       \item \command{R CMD check} now checks the packages used in | 
 |       \code{\\donttest} sections of the examples are specified in the | 
 |       \file{DESCRIPTION} file. | 
 |       (These are needed to run the examples interactively.) | 
 |  | 
 |       \item \command{R CMD check} checks for the undeclared use of GNU | 
 |       extensions in Makefiles, and for Makefiles with a missing final | 
 |       linefeed. | 
 |  | 
 |       \command{R CMD build} will correct line endings in all Makefiles, | 
 |       not just those in the \file{src} directory. | 
 |  | 
 |       \item \command{R CMD check} notes uses of \code{library()} and | 
 |       \code{require()} in package code: see the section | 
 |       \sQuote{Suggested packages} of \sQuote{Writing R Extensions} for | 
 |       good practice. | 
 |     } | 
 |   } | 
 |   \subsection{DEPRECATED AND DEFUNCT}{ | 
 |     \itemize{ | 
 |       \item The \command{configure} option | 
 |       \option{--with-valgrind-instrumentation=3} is deprecated and will | 
 |       be removed in \R 3.2.0. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{BUG FIXES}{ | 
 |     \itemize{ | 
 |       \item (Windows.) \command{Rscript.exe} was missing a | 
 |       manifest specifying the modern style for common controls (e.g., | 
 |       the download progress bar). | 
 |  | 
 |       \item If a package had extra documentation files but no vignette, | 
 |       the HTML help system produced an empty index page. | 
 |  | 
 |       \item The parser now gives an error if a null character is included | 
 |       in a string using Unicode escapes. (\PR{16046}) | 
 |  | 
 |       \item \code{qr.Q()} failed on complex arguments due to | 
 |       pre-3.0(!) typo. (\PR{16054}) | 
 |  | 
 |       \item \code{abs()} failed with named arguments when the argument | 
 |       was complex.  (\PR{16047}) | 
 |  | 
 |       \item \code{"noquote"} objects may now be used as columns in | 
 |       data frames.  (\PR{15997}) | 
 |  | 
 |       \item Some values with extremely long names were printed | 
 |       incorrectly.  (\PR{15999}) | 
 |  | 
 |       \item Extremely large exponents on zero expressed in scientific | 
 |       notation (e.g. \code{0.0e50000}) could give \code{NaN}.  (\PR{15976}) | 
 |  | 
 |       \item \code{download.file()} reported downloaded sizes as 0KB if | 
 |       less than 1MB, only for \R 3.1.2 and only on big-endian platforms. | 
 |  | 
 |       \item \code{prompt()} did not escape percent signs in the | 
 |       automatically generated usage section of help files. | 
 |  | 
 |       \item \code{drop.terms()} dropped some of the attributes of the | 
 |       object it was working with.  (\PR{16029}) | 
 |  | 
 |       \item (Windows.) The command completion in \command{Rgui.exe} | 
 |       messed up the console.  (\PR{15791}) | 
 |  | 
 |       \item (Windows.) The \code{choose.files()} command returned a | 
 |       blank string when the user asked for a single file but cancelled | 
 |       the request.  (\PR{16074}) | 
 |  | 
 |       \item \code{Math2} S4 group generics failed to correctly dispatch | 
 |       \code{"structure"}- and \code{"nonStructure"}-derived classes. | 
 |  | 
 |       \item \code{loadNamespace()} imposed undocumented restrictions | 
 |       on the \code{versionCheck} parameter.  (Reported by Geoff Lee.) | 
 |  | 
 |       \item Rare over-runs detected by AddressSanitizer in | 
 |       \code{substr()} and its replacement version have been avoided. | 
 |  | 
 |       \emph{Inter alia} that fix gives the documented behaviour for | 
 |       \code{substr(x, 1, 2) <- ""} (subsequently reported as | 
 |       \PR{16214}). | 
 |  | 
 |       \item Loading packages incorrectly defining an S4 generic followed | 
 |       by a function of the same name caused an erroneous cyclic | 
 |       namespace dependency error. | 
 |  | 
 |       \item Declared vignette encodings are now always passed to the | 
 |       vignette engine. | 
 |  | 
 |       \item Port Tomas Kalibera's fix from R-devel that restores the | 
 |       \code{loadMethod()} fast path, effectively doubling the speed of | 
 |       S4 dispatch. | 
 |  | 
 |       \item \code{power.t.test()} and \code{power.prop.test()} now make | 
 |       use of the \code{extendInt} option of \code{uniroot()} and hence | 
 |       work in more extreme cases.  (\PR{15792}) | 
 |  | 
 |       \item If a package was updated and attached when its namespace was | 
 |       already loaded, it could end up with parts from one version and | 
 |       parts from the other.  (\PR{16120}) | 
 |  | 
 |       \item \code{tools:::.Rdconv()} didn't accept \code{--encoding=} due | 
 |       to a typo.  (\PR{16121}) | 
 |  | 
 |       \item Unix-alike builds without a suitable \command{makeinfo} were | 
 |       documented to link the missing HTML manuals to CRAN, but did not. | 
 |  | 
 |       \item \code{save(*, ascii=TRUE)} and \code{load()} now correctly | 
 |       deal with \code{NaN}'s.  (\PR{16137}) | 
 |  | 
 |       \item \code{split.Date()} retains fractional representations while | 
 |       avoiding incomplete class propagation. | 
 |  | 
 |       \item \file{R_ext/Lapack.h} had not been updated for changes made | 
 |       by LAPACK to the argument lists of its (largely internal) | 
 |       functions \code{dlaed2} and \code{dlaed3}.  (\PR{16157}) | 
 |  | 
 |       \item \code{RShowDoc("NEWS", "txt")} had not been updated for the | 
 |       layout changes of \R 3.1.0. | 
 |  | 
 |       \item The \code{xtfrm()} method for class \code{"Surv"} has been | 
 |       corrected and its description expanded. | 
 |  | 
 |       \item \code{mode(x) <- y} would incorrectly evaluate \code{x} before | 
 |       changing its mode. (\PR{16215}) | 
 |  | 
 |       \item \code{besselJ(1, 2^64)} and \code{besselY(..)} now signal a | 
 |       warning, returning \code{NaN} instead of typically | 
 |       segfaulting. (Issue 3 of \PR{15554}) | 
 |  | 
 |       \item HTML conversion of \samp{\href} markup in \file{.Rd} files | 
 |       did not remove the backslash from \samp{\\\%} and so gave an | 
 |       invalid URL.  In a related change, the \samp{\\} escape is now | 
 |       required in such URLs. | 
 |     } | 
 |   } | 
 | } | 
 |  | 
 | \section{\Rlogo CHANGES IN R 3.1.2}{ | 
 |   \subsection{NEW FEATURES}{ | 
 |     \itemize{ | 
 |       \item \code{embedFonts()} now defaults to | 
 |       \code{format = "ps2write"} for \file{.ps} and \file{.eps} files. | 
 |       This is available in Ghostscript 9.x (since 2010) whereas the | 
 |       previous default, \code{format = "pswrite"}, was removed in | 
 |       Ghostscript 9.10. | 
 |  | 
 |       \item For consistency with \code{[dpqr]norm()}, | 
 |       \code{[dp]lnorm(sdlog = 0)} model a point mass at | 
 |       \code{exp(mulog)} rather than return \code{NaN} (for an error). | 
 |  | 
 |       \item \code{capabilities()} now reports if ICU is compiled in for | 
 |       use for collation (it is only actually used if a suitable locale | 
 |       is set for collation, and never for a \code{C} locale). | 
 |  | 
 |       \item (OS X only.) Package \pkg{tcltk} checks when loaded if it is | 
 |       linked against the CRAN X11-based Tcl/Tk and if so that the Tcl/Tk | 
 |       component and the X11 libraries are installed.  This allows more | 
 |       informative error messages to be given advising the installation | 
 |       of the missing component or of XQuartz. | 
 |  | 
 |       The \code{X11()} device and X11-based versions of the data editor | 
 |       and viewer (invoked by \code{edit()} and \code{View()} for data | 
 |       frames and matrices from command-line \R) check that the X11 | 
 |       libraries are installed and if not advises installing XQuartz. | 
 |  | 
 |       \item \code{icuSetCollate()} allows \code{locale = "default"}, and | 
 |       \code{locale = "none"} to use OS services rather than ICU for | 
 |       collation. | 
 |  | 
 |       Environment variable \env{R_ICU_LOCALE} can be used to set the | 
 |       default ICU locale, in case the one derived from the OS locale is | 
 |       inappropriate (this is currently necessary on Windows). | 
 |  | 
 |       \item New function \code{icuGetCollate()} to report on the ICU | 
 |       collation locale in use (if any). | 
 |  | 
 |       \item \code{utils::URLencode()} was updated to use unreserved and | 
 |       reserved characters from RFC 3986 | 
 |       (\url{http://tools.ietf.org/html/rfc3986}) instead of RFC 1738. | 
 |  | 
 |       \item \code{unique(warnings())} and \code{c(warnings())} are now | 
 |       supported. | 
 |  | 
 |       \item The Bioconductor \sQuote{version} used by | 
 |       \code{setRepositories()} now defaults to \code{3.0}. (It can be | 
 |       set at runtime \emph{via} environment variable | 
 |       \env{R_BIOC_VERSION}.) | 
 |  | 
 |       \item Omegahat is no longer listed as providing Windows binary | 
 |       packages, e.g. by \code{setRepositories()}.  It has no binary | 
 |       packages available for \R 3.1.x and those for earlier versions | 
 |       were 32-bit only. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{INSTALLATION and INCLUDED SOFTWARE}{ | 
 |     \itemize{ | 
 |       \item The \command{configure} script reports on the more important | 
 |       capabilities/options which will not be compiled in. | 
 |  | 
 |       More types of external BLAS are recognized by name in that report. | 
 |  | 
 |       \item When building \R as a shared library, the | 
 |       \option{-L${R_HOME}/lib${R_ARCH}} flag is placed earlier in the | 
 |       link commands used during installation and when packages are | 
 |       installed: this helps ensure that the current build has priority | 
 |       if an \R shared library has already been installed by | 
 |       e.g.\sspace{}\command{install-libR} in a library mentioned in | 
 |       \env{LDFLAGS} (and not in \sQuote{your system's library directory} | 
 |       as documented). (Wish of \PR{15790}.) | 
 |  | 
 |       \item LaTeX package \pkg{upquote} is no longer required for \R's | 
 |       use of \pkg{inconsolata}. | 
 |  | 
 |       \item (Windows only) If both 32- and 64-bit versions of \R are | 
 |       installed, the \file{bin/R.exe} and \file{bin/Rscript.exe} executables | 
 |       now run 64-bit \R.  (To run 32-bit \R, overwrite these files | 
 |       with copies of \file{bin/i386/Rfe.exe}.) | 
 |      } | 
 |   } | 
 |  | 
 |   \subsection{UTILITIES}{ | 
 |     \itemize{ | 
 |       \item Running \command{R CMD check} with | 
 |       \env{_R_CHECK_DEPENDS_ONLY_} true now makes the | 
 |       \samp{VignetteBuilder} packages available even if they are | 
 |       listed in \samp{Suggests}, since they are needed to recognise and | 
 |       process non-Sweave vignettes. | 
 |  | 
 |       \item \command{R CMD check} now reports empty \code{importFrom} | 
 |       declarations in a \file{NAMESPACE} file, as these are common | 
 |       errors (writing \code{importFrom(\var{Pkg})} where | 
 |       \code{import(\var{Pkg})} was intended). | 
 |  | 
 |       \item \command{R CMD check} now by default checks code usage | 
 |       directly on the package namespace without loading and attaching | 
 |       the package and its suggests and enhances.  For good practice with | 
 |       packages in the \samp{Suggests} field, see §1.1.3.1 of | 
 |       \sQuote{Writing R Extensions}.  For use of lazy-data objects in | 
 |       the package's own code, see \code{?data}. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{BUG FIXES}{ | 
 |     \itemize{ | 
 |       \item \code{dmultinom()} did not handle non-finite probabilities | 
 |       correctly. | 
 |  | 
 |       \item \code{prettyNum(x, zero.print=*)} now also works when | 
 |       \code{x} contains \code{NA}s. | 
 |  | 
 |       \item A longstanding bug exhibited by \code{nlminb()} on Windows | 
 |       was traced to a compiler bug in gcc 4.6.3; a workaround has been | 
 |       put in place.  (\PR{15244} and \PR{15914}). | 
 |  | 
 |       \item Rendering of \code{\\command} in HTML versions of help pages | 
 |       has been improved: this is particularly evident on the help page | 
 |       for \code{INSTALL}. | 
 |  | 
 |       \item \code{as.hexmode(x)} and \code{as.octmode(x)} now behave | 
 |       correctly for some numeric \code{x}, e.g., \code{c(NA, 1)} or | 
 |       \code{c(1, pi)}. | 
 |  | 
 |       \item \code{drop1()} failed if the \code{scope} argument had | 
 |       no variables to drop.  (\PR{15935}) | 
 |  | 
 |       \item \code{edit()} (and hence \code{fix()}) failed if | 
 |       an object had a non-character attribute named \code{"source"} | 
 |       (an attribute that had been used in \R prior to version 2.14.0). | 
 |  | 
 |       \item \code{callGeneric()} could fail if the generic had | 
 |       \code{\dots} as a formal argument. (\PR{15937}). | 
 |  | 
 |       \item Forking in package \pkg{parallel} called C entry point | 
 |       \code{exit} in the child.  This was unsafe (\code{_exit} should | 
 |       have been called), and could flush \code{stdin} of the main \R | 
 |       process (seen most often on Solaris). | 
 |  | 
 |       As good practice, \code{stdout} is now flushed before forking a child. | 
 |  | 
 |       \item \R objects such as \code{list(`a\\b` = 1)} now print correctly. | 
 |  | 
 |       \item \code{getAnywhere("C_pbinom")} now returns correctly a | 
 |       single object (rather than unlisting it). | 
 |  | 
 |       \item The \code{confint()} method for \code{nls()} fits failed it | 
 |       these has specified parameter limits despite using an algorithm | 
 |       other than \code{"port"}.  (\PR{15960}) | 
 |  | 
 |       \item Subclassing an S4 class failed if the class required | 
 |       arguments to the generator, through its \code{initialize()} method. | 
 |  | 
 |       \item \code{removeSource()} did not properly handle expressions | 
 |       containing arguments that were supplied as missing, e.g. | 
 |       \code{x[i,]}. (\PR{15957}) | 
 |  | 
 |       \item \code{as.environment(list())} now works, and | 
 |       \code{as.list()} of such an environment is now the same as | 
 |       \code{list()}. (\PR{15926}) | 
 |  | 
 |       \item Several \pkg{tcltk} functions failed when run in unusual | 
 |       environments. (\PR{15970}) | 
 |  | 
 |       \item \code{options(list())} now works (trivially). (\PR{15979}) | 
 |  | 
 |       \item \code{merge(<dendrogram>, ..)} now works correctly for two | 
 |       `independent' dendrograms (\PR{15648}), and still compatibly | 
 |       \emph{via} \code{adjust = "auto"} e.g. for two branches of an | 
 |       existing dendrogram. | 
 |  | 
 |       \item The \code{plot} method for \code{"hclust"} objects gets an | 
 |       optional argument \code{check}; when that is true (the default) it | 
 |       checks more carefully for valid input. | 
 |  | 
 |       \item (Windows only) If a user chose to install 64 bit \R but not | 
 |       32 bit \R, the \file{bin/R} and \file{bin/Rscript} executables | 
 |       failed to run.  (\PR{15981}) | 
 |  | 
 |       \item Various possible buffer overruns have been prevented, | 
 |       and missed memory protection added. (\PR{15990}) | 
 |  | 
 |       \item \command{Rscript} no longer passes \code{--args} to | 
 |       \command{R} when there are no extra (\dQuote{user}) arguments. | 
 |  | 
 |       \item objects like \code{getClass("refClass")@prototype} now | 
 |       \code{print()} and \code{str()} without error. | 
 |  | 
 |       \item \code{identical()} now also looks at the S4 bit. | 
 |  | 
 |       \item \code{hist(x, breaks)} is more robust in adding a small fuzz | 
 |       to few breaks when some are very large. (\PR{15988}) | 
 |  | 
 |       \item \code{sub()} and \code{gsub()} did not handle regular | 
 |       expressions like \code{"\\s{2,}"} properly if the text | 
 |       contained \code{NA} or non-ASCII elements in a UTF-8 | 
 |       locale.  Part of this was due to a bug in the TRE library. | 
 |       (\PR{16009}) | 
 |  | 
 |       \item \code{RShowDoc("NEWS")} now displays the PDF version. | 
 |  | 
 |       \item Matrices and arrays with last dimension zero did not print | 
 |       at all or incompletely.  (\PR{16012}) | 
 |  | 
 |       \item \code{plot.histogram()} and hence \code{hist()} now respect | 
 |       the \code{xaxs}, \code{yaxs} and \code{lab} graphics parameters. | 
 |       (\PR{16021}) | 
 |  | 
 |       \item \code{bw.SJ(x)} and other bw.*() no longer segfault when | 
 |       \code{x} contains non-finite values. (\PR{16024}) | 
 |  | 
 |       \item \command{R CMD Rd2pdf} unintentionally ignored its | 
 |       \option{--os} option. | 
 |  | 
 |       \item The internal method of \code{download.file()} was not | 
 |       reporting file sizes and progress correctly on files larger than | 
 |       2GB (inherited from \code{libxml2}).  This is corrected for 64-bit | 
 |       builds (32-bit platforms may not support such files, but where | 
 |       possible will be supported in future versions of \R). | 
 |  | 
 |       \item Work around a bug in OS X Yosemite where key environment | 
 |       variables may be duplicated causing issues in subprocesses. The | 
 |       duplicates are now removed on \R startup (\emph{via} | 
 |       Rprofile). (\PR{16042}) | 
 |  | 
 |       \item Adjust X11 auto-launch detection in DISPLAY on OS X to | 
 |       recognize latest XQuartz. | 
 |     } | 
 |   } | 
 | } | 
 |  | 
 | \section{\Rlogo CHANGES IN R 3.1.1}{ | 
 |   \subsection{NEW FEATURES}{ | 
 |     \itemize{ | 
 |       \item When \code{attach()} reports conflicts, it does so | 
 |       compatibly with \code{library()} by using \code{message()}. | 
 |  | 
 |       \item \command{R CMD Sweave} no longer cleans any files by | 
 |       default, compatibly with versions of \R prior to 3.1.0.  There are | 
 |       new options \option{--clean}, \option{--clean=default} and | 
 |       \option{--clean=keepOuts}. | 
 |  | 
 |       \item \code{tools::buildVignette()} and \code{tools::buildVignettes()} | 
 |       with \code{clean = FALSE} no longer remove any created files. | 
 |       \code{buildvignette()} gains a \code{keep} argument for more | 
 |       cleaning customization. | 
 |  | 
 |       \item The Bioconductor \sQuote{version} used by | 
 |       \code{setRepositories()} can now be set by environment variable | 
 |       \env{R_BIOC_VERSION} at runtime, not just when \R is installed. | 
 |       (It has been stated that Bioconductor will switch from | 
 |       \sQuote{version} 2.14 to \sQuote{version} 3.0 during the lifetime | 
 |       of the \R 3.1 series.) | 
 |  | 
 |       \item Error messages from bugs in embedded \samp{Sexpr} code | 
 |       in Sweave documents now report the source location. | 
 |  | 
 |       \item \code{type.convert()}, \code{read.table()} and similar | 
 |       \code{read.*()} functions get a new \code{numerals} argument, | 
 |       specifying how numeric input is converted when its conversion to | 
 |       double precision loses accuracy.  The default value, | 
 |       \code{"allow.loss"} allows accuracy loss, as in \R versions before | 
 |       3.1.0. | 
 |  | 
 |       \item For some compilers, integer addition could overflow without | 
 |       a warning.  \R's internal code for both integer addition and | 
 |       subtraction is more robust now.  (\PR{15774}) | 
 |  | 
 |       \item The function determining the default number of knots for | 
 |       \code{smooth.spline()} is now exported, as \code{.nknots.smspl()}. | 
 |  | 
 |       \item \code{dbeta(, a,b)}, \code{pbeta()}, \code{qbeta()} and | 
 |       \code{rbeta()} are now defined also for \eqn{a = 0}, \eqn{b = 0}, | 
 |       or infinite \eqn{a} and \eqn{b} (where they typically returned | 
 |       \code{NaN} before). | 
 |  | 
 |       \item Many package authors report that the RStudio graphics device | 
 |       does not work correctly with their package's use of | 
 |       \code{dev.new()}.  The new option \code{dev.new(noRStudioGD = | 
 |       TRUE)} replaces the RStudio override by the default device as | 
 |       selected by \R itself, still respecting environment variables | 
 |       \env{R_INTERACTIVE_DEVICE} and \env{R_DEFAULT_DEVICE}. | 
 |  | 
 |       \item \code{readRDS()} now returns visibly. | 
 |  | 
 |       \item Modifying internal logical scalar constants now results in | 
 |       an error instead of a warning. | 
 |  | 
 |       \item \code{install.packages(repos = NULL)} now accepts | 
 |       \samp{http://} or \samp{ftp://} URLs of package archives as well | 
 |       as file paths, and will download as required.  In most cases | 
 |       \code{repos = NULL} can be deduced from the extension of the URL. | 
 |  | 
 |       \item The warning when using partial matching with the \code{$} | 
 |       operator on data frames is now only given when | 
 |       \code{options("warnPartialMatchDollar")} is \code{TRUE}. | 
 |  | 
 |       \item Package help requests like \code{package?foo} now | 
 |       try the package \code{foo} whether loaded or not. | 
 |  | 
 |       \item General help requests now default to trying all loaded | 
 |       packages, not just those on the search path. | 
 |  | 
 |       \item Added a new function \code{promptImport()}, to generate a | 
 |       help page for a function that was imported from another package | 
 |       (and presumably re-exported, or help would not be needed). | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{INSTALLATION and INCLUDED SOFTWARE}{ | 
 |     \itemize{ | 
 |       \item \command{configure} option \option{--with-internal-tzcode} | 
 |       can now be used with variable \code{rsharedir}. | 
 |  | 
 |       \item The included version of PCRE has been updated to 8.35. | 
 |  | 
 |       \item There is a new target \command{make uninstall-libR} to | 
 |       remove an installed shared/static \file{libR}. | 
 |  | 
 |       \command{make install-libR} now works if a sub-architecture is | 
 |       used, although the user will need to specify \code{libdir} | 
 |       differently for different sub-architectures. | 
 |  | 
 |       \item There is more extensive advice on which LaTeX packages are | 
 |       required to install \R or to make package manuals (as done by | 
 |       \command{R CMD check}) in the \sQuote{Writing R Extensions} | 
 |       manual. | 
 |  | 
 |       \item Compilers/linkers were handling the visibility control in | 
 |       \file{src/extra/xz} inconsistently (and apparently in some cases | 
 |       incorrectly), so it has been simplified.  (\PR{15327}) | 
 |  | 
 |       \item (Windows)  There is updated support for the use of ICU for | 
 |       collation: see the \sQuote{R Installation and Administration Manual}. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{BUG FIXES}{ | 
 |     \itemize{ | 
 |       \item \code{dbinom(x, n)}, \code{pbinom()}, \code{dpois()}, etc, | 
 |       are slightly less restrictive in checking if \code{n} is | 
 |       integer-valued.  (Wish of \PR{15734}.) | 
 |  | 
 |       \item \code{pchisq(x, df, ncp, log.p = TRUE)} is more accurate and | 
 |       no longer underflows for small \code{x} and \code{ncp < 80}, e.g, | 
 |       for \code{pchisq(1e-5, df = 100, ncp = 1, log = TRUE)}. | 
 |       (Based on \PR{15635} and a suggestion by Roby Joehanes.) | 
 |  | 
 |       \item The \code{s} (\dQuote{step into}) command in the debugger | 
 |       would cause \R to step into expressions evaluated there, | 
 |       not just into functions being debugged.  (\PR{15770}) | 
 |  | 
 |       \item The C code used by \code{strptime()} rejected time-zone | 
 |       offsets of more than \code{+1200} (\code{+1245}, \code{+1300} and | 
 |       \code{+1400} can occur).  (\PR{15768}) | 
 |  | 
 |       \item (Windows only.) | 
 |       \code{png(type = "cairo", antialias = "gray")} | 
 |       was not accepted.  (\PR{15760}) | 
 |  | 
 |       \item Use of \code{save(..., envir=)} with named objects could | 
 |       fail.  (\PR{15758}) | 
 |  | 
 |       \item \code{Sweave()} mis-parsed \samp{Sexpr} expressions that | 
 |       contained backslashes.  (\PR{15779}) | 
 |  | 
 |       \item The return value from \code{options(foo = NULL)} was not | 
 |       the previous value of the option.  (\PR{15781}) | 
 |  | 
 |       \item \code{enc2utf8()} and \code{enc2native()} did not always | 
 |       mark the encoding of the return values when it was known. | 
 |  | 
 |       \item \code{dnbinom(x, size = <large>, mu, log = TRUE)} no longer | 
 |       underflows to -Inf for large \code{mu}, thanks to a suggestion | 
 |       from Alessandro Mammana (MPI MolGen, Berlin). | 
 |  | 
 |       \item \code{pbeta(x, a, b, log = TRUE)} no longer behaves | 
 |       discontinuously (in a small x-region) because of denormalized | 
 |       numbers.  Also, \code{pbeta(1-1e-12, 1e30, 1.001, log=TRUE)} now | 
 |       terminates \dQuote{in real time}. | 
 |  | 
 |       \item The \code{"CRAN"} filter (see \code{available.packages()}) | 
 |       no longer removes duplicates other than of packages on CRAN, and | 
 |       does not fail if there is no CRAN repository in | 
 |       \code{getOption("repos")}. | 
 |  | 
 |       \item The device listing from \code{dev2bitmap()} and | 
 |       \code{bitmap()} was truncated to 1000 characters: modern versions | 
 |       of GhostScript on most platforms have many more devices. | 
 |  | 
 |       \item (Windows.)  Commands such as \code{Sys.which()} and | 
 |       \code{pipe()} which needed to find the full path to a command | 
 |       could segfault if the \sQuote{long} path name was much longer than | 
 |       the \sQuote{short} path name (which \code{Sys.which()} returns), | 
 |       as the behaviour of the Windows API call had changed. | 
 |  | 
 |       \item \command{R CMD build} will fail with an error if one of the | 
 |       packages specified in the \samp{VignetteBuilder} field is not | 
 |       installed.  (Without loading those packages it cannot be | 
 |       ascertained which files are intended to be vignettes. This means | 
 |       that the \samp{VignetteBuilder} packages have to be installed for | 
 |       package checking too.) | 
 |       (Wish of \PR{15775}.) | 
 |  | 
 |       \item Misguided attempts to use \code{chull()} with non-finite | 
 |       points now give an error (related to \PR{15777}). | 
 |  | 
 |       \item For a formula with exactly 32 variables the 32nd variable | 
 |       was aliased to the intercept in some C-level computations of | 
 |       terms, so that for example attempting to remove it would remove | 
 |       the intercept instead (and leave a corrupt internal structure). | 
 |       (\PR{15735}) | 
 |  | 
 |       \item \code{anyDuplicated()} silently returned wrong values when | 
 |       the first duplicate was at an index which was too large to be | 
 |       stored in an integer vector (although a lot of RAM and patience | 
 |       would have been needed to encounter this). | 
 |  | 
 |       \item \code{tools::Rd2ex(commentDontrun = FALSE)} failed if the | 
 |       block had only one line. | 
 |  | 
 |       \item Hexadecimal constants such as \code{0x110p-5L} which were | 
 |       incorrectly qualified by \code{L} were parsed incorrectly since \R | 
 |       3.0.0, with a slightly garbled warning. (\PR{15753}) | 
 |  | 
 |       \item \code{system()} returned success on some platforms even if | 
 |       the system was unable to launch a process. (\PR{15796}) | 
 |  | 
 |       \item (Windows \command{Rgui} console.)  Unbuffered output was | 
 |       sometimes not output immediately if the prompt was not on the last | 
 |       line of the console. | 
 |  | 
 |       \item The built-in help server did not declare the encoding for | 
 |       the \file{DESCRIPTION} or other text files to be the package | 
 |       encoding, so non-ASCII characters could be displayed incorrectly. | 
 |  | 
 |       \item \R{} is now trying harder to not cleanup child processes | 
 |       that were not spawned by \code{mcparallel()} on platforms that | 
 |       provide information about the source process of the \code{SIGCHLD} | 
 |       signal. This allows 3rd party libraries to manage the exit status | 
 |       of children that they spawn without \R{} interfering. | 
 |  | 
 |       \item \code{mcmapply()} was only parallelizing if the number of | 
 |       jobs was bigger than the number of cores. It now parallelizes if | 
 |       the number of jobs is more than one. | 
 |  | 
 |       \item Auto-printing would re-evaluate its argument when trying to | 
 |       dispatch to a print method.  This is now avoided when possible. | 
 |  | 
 |       \item Unserializing (including \code{load()} and \code{readRDS()}) | 
 |       could silently return incorrect numeric values from ASCII saves if | 
 |       there was a read error. | 
 |  | 
 |       \item \code{getParseData()} could return incorrect values for | 
 |       the parents of some elements. (Reported by Andrew Redd.) | 
 |  | 
 |       \item Attempting to use data frames of 2^31 or more rows with | 
 |       \code{merge()} or to create a merged data frame of that size now | 
 |       gives a clearer error message. | 
 |  | 
 |       \item \code{parse()} did not check its \code{file} argument was a | 
 |       connection if it was not a character string, so | 
 |       e.g.\sspace{}\code{parse(FALSE)} attempted to read from \code{stdin}. | 
 |  | 
 |       Nor did \code{dump()} and \code{dput()}. | 
 |  | 
 |       \item The \code{"help.try.all.packages"} option was ignored when | 
 |       the shortcut syntax for help was used, e.g.\sspace{}\code{?foo}. | 
 |  | 
 |       \item A potential segfault in string allocation has been fixed. | 
 |       (Found by Radford Neal.) | 
 |  | 
 |       \item Potential memory protection errors in \code{sort()} and | 
 |       \code{D()} have been fixed. (Found by Radford Neal.) | 
 |  | 
 |       \item Fixed a lack of error checking in graphics event functions. | 
 |       (Found by Radford Neal; a different patch used here than the | 
 |       one in pqR.) | 
 |  | 
 |       \item \code{numericDeriv()} sometimes miscalculated the gradient. | 
 |       (\PR{15849}, reported originally by Radford Neal) | 
 |     } | 
 |   } | 
 | } | 
 |  | 
 | \section{\Rlogo CHANGES IN R 3.1.0}{ | 
 |   \subsection{NEW FEATURES}{ | 
 |     \itemize{ | 
 |       \item \code{type.convert()} (and hence by default | 
 |       \code{read.table()}) returns a character vector or factor when | 
 |       representing a numeric input as a double would lose accuracy. | 
 |       Similarly for complex inputs. | 
 |  | 
 |       If a file contains numeric data with unrepresentable numbers of | 
 |       decimal places that are intended to be read as numeric, specify | 
 |       \code{colClasses} in \code{read.table()} to be \code{"numeric"}. | 
 |  | 
 |       \item \code{tools::Rdiff(useDiff = FALSE)} is closer to the POSIX | 
 |       definition of \command{diff -b} (as distinct from the description | 
 |       in the \command{man} pages of most systems). | 
 |  | 
 |       \item New function \code{anyNA()}, a version of | 
 |       \code{any(is.na(.))} which is fast for atomic vectors, based on a | 
 |       proposal by Tim Hesterberg. (Wish of \PR{15239}.) | 
 |  | 
 |       \item \code{arrayInd(*, useNames = TRUE)} and, analogously, | 
 |       \code{which(*, arr.ind = TRUE)} now make use of | 
 |       \code{names(.dimnames)} when available. | 
 |  | 
 |       \item \code{is.unsorted()} now also works for \code{raw} vectors. | 
 |  | 
 |       \item The \code{"table"} method for \code{as.data.frame()} (also | 
 |       useful as \code{as.data.frame.table()}) now passes \code{sep} and | 
 |       \code{base} arguments to \code{provideDimnames()}. | 
 |  | 
 |       \item \code{uniroot()} gets new optional arguments, notably | 
 |       \code{extendInt}, allowing to auto-extend the search interval when | 
 |       needed.  The return value has an extra component, \code{init.it}. | 
 |  | 
 |       % advertize at all? | 
 |       % \item New \code{.lm.fit()} for benchmark lovers but not Joe | 
 |       % Average. | 
 |  | 
 |       %% TODO: change in ../src/library/compiler/noweb/compiler.nw + ..../R/cmp.R | 
 |       \item \code{switch(f, ...)} now warns when \code{f} is a factor, | 
 |       as this typically happens accidentally where the useR meant to | 
 |       pass a character string, but \code{f} is treated as integer (as | 
 |       always documented). | 
 |  | 
 |       \item The parser has been modified to use less memory. | 
 |  | 
 |       \item The way the unary operators (\code{+ - !}) handle attributes | 
 |       is now more consistent.  If there is no coercion, all attributes | 
 |       (including class) are copied from the input to the result: | 
 |       otherwise only names, dims and dimnames are. | 
 |  | 
 |       \item \code{colorRamp()} and \code{colorRampPalette()} now allow | 
 |       non-opaque colours and a ramp in opacity \emph{via} the new argument | 
 |       \code{alpha = TRUE}.  (Suggested by Alberto Krone-Martins, but | 
 |       optionally as there are existing uses which expect only RGB values.) | 
 |       % https://stat.ethz.ch/pipermail/r-devel/2013-July/067046.html | 
 |  | 
 |       \item \code{grid.show.layout()} and \code{grid.show.viewport()} | 
 |       get an optional \code{vp.ex} argument. | 
 |  | 
 |       \item There is a new function \code{find_gs_cmd()} in the | 
 |       \pkg{tools} package to locate a GhostScript executable.  (This is | 
 |       an enhanced version of a previously internal function there.) | 
 |  | 
 |       \item \code{object.size()} gains a \code{format()} method. | 
 |  | 
 |       \item There is a new family, \code{"ArialMT"}, for the | 
 |       \code{pdf()} and \code{postscript()} devices.  This will only be | 
 |       rendered correctly on viewers which have access to Monotype | 
 |       TrueType fonts (which are sometimes requested by journals). | 
 |  | 
 |       \item The text and PDF news files, including \file{NEWS} and | 
 |       \file{NEWS.2}, have been moved to the \file{doc} directory. | 
 |  | 
 |       \item \code{combn(x, simplify = TRUE)} now gives a factor result | 
 |       for factor input \code{x} (previously user error). | 
 |       (Related to \PR{15442}.) | 
 |  | 
 |       \item Added \code{utils::fileSnapshot()} and | 
 |       \code{utils::changedFiles()} functions to allow snapshots and | 
 |       comparison of directories of files. | 
 |  | 
 |       \item \code{make.names(names, unique=TRUE)} now tries to preserve | 
 |       existing names. (Suggestion of \PR{15452}.) | 
 |  | 
 |       \item New functions \code{cospi(x)}, \code{sinpi(x)}, and | 
 |       \code{tanpi(x)}, for more accurate computation of | 
 |       \code{cos(pi*x)}, etc, both in \R{} and the C API.  Using these | 
 |       gains accuracy in some cases, e.g., inside \code{lgamma()} or | 
 |       \code{besselI()}.  (Suggested by Morten Welinder in \PR{15529}.) | 
 |  | 
 |       \item \code{print.table(x, zero.print = ".")} now also has an | 
 |       effect when \code{x} is not integer-valued. | 
 |  | 
 |       \item There is more support to explore the system's idea of | 
 |       time-zone names.  \code{Sys.timezone()} tries to give the current | 
 |       system setting by name (and succeeds at least on Linux, OS X, | 
 |       Solaris and Windows), and \code{OlsonNames()} lists the names in | 
 |       the system's Olson database. \code{Sys.timezone(location = FALSE)} | 
 |       gives the previous behaviour. | 
 |  | 
 |       \item Platforms with a 64-bit \code{time_t} type are allowed to | 
 |       handle conversions between the \code{"POSIXct"} and | 
 |       \code{"POSIXlt"} classes for date-times outside the 32-bit range | 
 |       (before 1902 or after 2037): the existing workarounds are used on | 
 |       other platforms.  (Note that time-zone information for post-2037 | 
 |       is speculative at best, and the OS services are tested for known | 
 |       errors and so not used on OS X.) | 
 |  | 
 |       Currently \code{time_t} is usually \code{long} and hence 64-bit on | 
 |       Unix-alike 64-bit platforms: however in several cases the | 
 |       time-zone database is 32-bit.  For \R for Windows it is 64-bit | 
 |       (for both architectures as from this version). | 
 |  | 
 |       \item The \code{"save.defaults"} option can include a value for | 
 |       \code{compression_level}.  (Wish of \PR{15579}.) | 
 |  | 
 |       \item \code{colSums()} and friends now have support for arrays and | 
 |       data-frame columns with \eqn{2^{31}}{2^31} or more elements. | 
 |  | 
 |       \item \code{as.factor()} is faster when \code{f} is an unclassed | 
 |       integer vector (for example, when called from \code{tapply()}). | 
 |  | 
 |       \item \code{fft()} now works with longer inputs, from the 12 | 
 |       million previously supported up to 2 billion.  (\PR{15593}) | 
 |  | 
 |       \item Complex \code{svd()} now uses LAPACK subroutine | 
 |       \code{ZGESDD}, the complex analogue of the routine used for the | 
 |       real case. | 
 |  | 
 |       \item Sweave now outputs \file{.tex} files in UTF-8 if the | 
 |       input encoding is declared to be UTF-8, regardless of the | 
 |       local encoding.  The UTF-8 encoding may now be declared using | 
 |       a LaTeX comment containing the string \code{\%\\SweaveUTF8} | 
 |       on a line by itself. | 
 |  | 
 |       \item \code{file.copy()} gains a \code{copy.date} argument. | 
 |  | 
 |       \item Printing of date-times will make use of the time-zone | 
 |       abbreviation in use at the time, if known.  For example, for Paris | 
 |       pre-1940 this could be \samp{LMT}, \samp{PMT}, \samp{WET} or | 
 |       \samp{WEST}.  To enable this, the \code{"POSIXlt"} class has an | 
 |       optional component \code{"zone"} recording the abbreviation for | 
 |       each element. | 
 |  | 
 |       For platforms which support it, there is also a component | 
 |       \code{"gmtoff"} recording the offset from GMT where known. | 
 |  | 
 |       \item (On Windows, by default on OS X and optionally elsewhere.) | 
 |       The system C function \code{strftime} has been replaced by a more | 
 |       comprehensive version with closer conformance to the POSIX 2008 | 
 |       standard. | 
 |  | 
 |       \item \code{dnorm(x, log = FALSE)} is more accurate (but somewhat | 
 |       slower) for |x| > 5; as suggested in \PR{15620}. | 
 |  | 
 |       \item Some versions of the \code{tiff()} device have further | 
 |       compression options. | 
 |  | 
 |       \item \code{read.table()}, \code{readLines()} and \code{scan()} | 
 |       have a new argument to influence the treatment of embedded nuls. | 
 |  | 
 |       \item Avoid duplicating the right hand side values in complex | 
 |       assignments when possible.  This reduces copying of replacement | 
 |       values in expressions such as \code{Z$a <- a0} and | 
 |       \code{ans[[i]] <- tmp}: some package code has relied on there | 
 |       being copies. | 
 |  | 
 |       Also, a number of other changes to reduce copying of objects; all | 
 |       contributed by or based on suggestions by Michael Lawrence. | 
 |  | 
 |       \item The \code{fast} argument of \code{KalmanLike()}, | 
 |       \code{KalmanRun()} and \code{KalmanForecast()} has been replaced | 
 |       by \code{update}, which instead of updating \code{mod} in place, | 
 |       optionally returns the updated model in an attribute \code{"mod"} | 
 |       of the return value. | 
 |  | 
 |       \item \code{arima()} and \code{makeARIMA()} get a new optional | 
 |       argument \code{SSinit}, allowing the choice of a different | 
 |       \bold{s}tate \bold{s}pace initialization which has been observed | 
 |       to be more reliable close to non-stationarity: see \PR{14682}. | 
 |  | 
 |       \item \code{warning()} has a new argument \code{noBreaks.}, to | 
 |       simplify post-processing of output with \code{options(warn = 1)}. | 
 |  | 
 |       \item \code{pushBack()} gains an argument \code{encoding}, to | 
 |       support reading of UTF-8 characters using \code{scan()}, | 
 |       \code{read.table()} and related functions in a non-UTF-8 locale. | 
 |  | 
 |       \item \code{all.equal.list()} gets a new argument \code{use.names} | 
 |       which by default labels differing components by names (if they | 
 |       match) rather than by integer index.  Saved \R output in packages may | 
 |       need to be updated. | 
 |  | 
 |       \item The methods for \code{all.equal()} and | 
 |       \code{attr.all.equal()} now have argument \code{check.attributes} | 
 |       after \code{\dots} so it cannot be partially nor positionally | 
 |       matched (as it has been, unintentionally). | 
 |  | 
 |       A side effect is that some previously undetected errors of passing | 
 |       empty arguments (no object between commas) to \code{all.equal()} | 
 |       are detected and reported. | 
 |  | 
 |       There are explicit checks that \code{check.attributes} is logical, | 
 |       \code{tolerance} is numeric and \code{scale} is \code{NULL} or | 
 |       numeric.  This catches some unintended positional matching. | 
 |  | 
 |       The message for \code{all.equal.numeric()} reports a | 
 |       \code{"scaled difference"} only for \code{scale != 1}. | 
 |  | 
 |       \item \code{all.equal()} now has a \code{"POSIXt"} method | 
 |       replacing the \code{"POSIXct"} method. | 
 |  | 
 |       \item The \code{"Date"} and \code{"POSIXt"} methods of | 
 |       \code{seq()} allows \code{by = "quarter"} for completeness | 
 |       (\code{by = "3 months"} always worked). | 
 |  | 
 |       \item \code{file.path()} removes any trailing separator on | 
 |       Windows, where they are invalid (although sometimes accepted). | 
 |       This is intended to enhance the portability of code written by | 
 |       those using POSIX file systems (where a trailing \code{/} can be | 
 |       used to confine path matching to directories). | 
 |  | 
 |       \item New function \code{agrepl()} which like \code{grepl()} | 
 |       returns a logical vector. | 
 |  | 
 |       \item \code{fifo()} is now supported on Windows. (\PR{15600}) | 
 |  | 
 |       \item \code{sort.list(method = "radix")} now allows negative | 
 |       integers (wish of \PR{15644}). | 
 |  | 
 |       \item Some functionality of \code{print.ts()} is now available in | 
 |       \code{.preformat.ts()} for more modularity.% and format.ts() might follow | 
 |  | 
 |       \item \code{mcparallel()} gains an option \code{detach = TRUE} | 
 |       which allows execution of code independently of the current | 
 |       session.  It is based on a new \code{estranged = TRUE} argument to | 
 |       \code{mcfork()} which forks child processes such that they become | 
 |       independent of the parent process. | 
 |  | 
 |       \item The \code{pdf()} device omits circles and text at extremely | 
 |       small sizes, since some viewers were failing on such files. | 
 |  | 
 |       \item The rightmost break for the \code{"months"}, | 
 |       \code{"quarters"} and \code{"years"} cases of | 
 |       \code{hist.POSIXlt()} has been increased by a day.  (Inter alia, | 
 |       fixes \PR{15717}.) | 
 |  | 
 |       \item The handling of \code{DF[i,] <- a} where \code{i} is of | 
 |       length 0 is improved.  (Inter alia, fixes \PR{15718}.) | 
 |  | 
 |       \item \code{hclust()} gains a new method \code{"ward.D2"} which | 
 |       implements Ward's method correctly.  The previous \code{"ward"} | 
 |       method is \code{"ward.D"} now, with the old name still working. | 
 |       Thanks to research and proposals by Pierre Legendre. | 
 |  | 
 |       \item The \code{sunspot.month} dataset has been amended and | 
 |       updated from the official source, whereas the \code{sunspots} and | 
 |       \code{sunspot.year} datasets will remain immutable. The | 
 |       documentation and source links have been updated correspondingly. | 
 |  | 
 |       \item The \code{summary()} method for \code{"lm"} fits warns if | 
 |       the fit is essentially perfect, as most of the summary may be | 
 |       computed inaccurately (and with platform-dependent values). | 
 |  | 
 |       Programmers who use \code{summary()} in order to extract just | 
 |       a component which will be reliable (e.g., \code{$cov.unscaled}) | 
 |       should wrap their calls in \code{suppressWarnings()}. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{INSTALLATION and INCLUDED SOFTWARE}{ | 
 |     \itemize{ | 
 |       \item The included version of LAPACK has been updated to 3.5.0. | 
 |  | 
 |       \item There is some support for parallel testing of an | 
 |       installation, by setting \env{TEST_MC_CORES} to an integer | 
 |       greater than one to indicate the maximum number of cores to be | 
 |       used in parallel. (It is worth specifying at least 8 cores if | 
 |       available.)  Most of these require a \command{make} program (such | 
 |       as GNU \command{make} and \command{dmake}) which supports the | 
 |       \command{${MAKE} -j nproc} syntax. | 
 |  | 
 |       Except on Windows: the tests of standard package examples in | 
 |       \command{make check} are done in parallel.  This also applies to | 
 |       running \code{tools::testInstalledPackages()}. | 
 |  | 
 |       The more time-consuming regression tests are done in parallel. | 
 |  | 
 |       The package checks in \command{make check-devel} and \command{make | 
 | 	check-recommended} are done in parallel. | 
 |  | 
 |       \item More of \command{make check} will work if recommended packages | 
 |       are not installed: but recommended packages remain needed for | 
 |       thorough checking of an \R build. | 
 |  | 
 |       \item The version of \samp{tzcode} included in | 
 |       \file{src/extra/tzone} has been updated.  (Formerly used only on | 
 |       Windows.) | 
 |  | 
 |       \item The included (64-bit) time-zone conversion code and Olson | 
 |       time-zone database can be used instead of the system version: use | 
 |       \command{configure} option \option{--with-internal-tzcode}.  This | 
 |       is the default on Windows and OS X.  (Note that this does not | 
 |       currently work if a non-default \code{rsharedir} | 
 |       \command{configure} variable is used.) | 
 |  | 
 |       (It might be necessary to set environment variable \env{TZ} on | 
 |       OSes where this is not already set, although the system timezone is | 
 |       deduced correctly on at least Linux, OS X and Windows.) | 
 |  | 
 |       This option also switches to the version of \code{strftime} | 
 |       included in directory \file{src/extra/tzone}. | 
 |  | 
 |       \item \command{configure} now tests for a C++11-compliant compiler | 
 |       by testing some basic features.  This by default tries flags for | 
 |       the compiler specified by \samp{CXX}, but an alternative compiler, | 
 |       options and standard can be specified by variables \samp{CXX1X}, | 
 |       \samp{CXX1XFLAGS} and \samp{CXX1XSTD} (e.g., \samp{-std=gnu++11}). | 
 |  | 
 |       \item \R{} can now optionally be compiled to use reference | 
 |       counting instead of the \code{NAMED} mechanism by defining | 
 |       \code{SWITCH_TO_REFCNT} in \file{Rinternals.h}. This may become | 
 |       the default in the future. | 
 |  | 
 |       \item There is a new option \option{--use-system-tre} to use a | 
 |       suitable system \pkg{tre} library: at present this means a version | 
 |       from their \command{git} repository, after corrections. | 
 |       (Wish of \PR{15660}.) | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{PACKAGE INSTALLATION}{ | 
 |     \itemize{ | 
 |       \item The \code{CRANextra} repository is no longer a default | 
 |       repository on Windows: all the binary versions of packages from | 
 |       CRAN are now on CRAN, although \code{CRANextra} contains packages | 
 |       from Omegahat and elsewhere used by CRAN packages. | 
 |  | 
 |       \item Only vignettes sources in directory \file{vignettes} are | 
 |       considered to be vignettes and hence indexed as such. | 
 |  | 
 |       \item In the \file{DESCRIPTION} file, \preformatted{    License: X11} | 
 |       is no longer recognized as valid.  Use \samp{MIT} or | 
 |       \samp{BSD_2_clause} instead, both of which need \samp{+ file LICENSE}. | 
 |  | 
 |       \item For consistency, entries in \file{.Rinstignore} are now matched | 
 |       case-insensitively on all platforms. | 
 |  | 
 |       \item Help for S4 methods with very long signatures now tries | 
 |       harder to split the description in the \samp{Usage} field to no | 
 |       more than 80 characters per line (some packages had over 120 | 
 |       characters). | 
 |  | 
 |       \item \command{R CMD INSTALL --build} (not Windows) now defaults to | 
 |       the internal \code{tar()} unless \env{R_INSTALL_TAR} is set. | 
 |  | 
 |       \item There is support for compiling C++11 code in packages on | 
 |       suitable platforms: see \sQuote{Writing R Extensions}. | 
 |  | 
 |       \item Fake installs now install the contents of directory | 
 |       \file{inst}: some packages use this to install e.g.\sspace{}C++ headers | 
 |       for use by other packages that are independent of the package | 
 |       itself.  Option \option{--no-inst} can be used to get the previous | 
 |       behaviour. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{DEBUGGING}{ | 
 |     \itemize{ | 
 |       \item The behaviour of the code browser has been made more | 
 |       consistent, in part following the suggestions in \PR{14985}. | 
 |  | 
 |       \item Calls to \code{browser()} are now consistent with calls | 
 |       to the browser triggered by \code{debug()}, in that \kbd{Enter} | 
 |       will default to \code{n} rather than \code{c}. | 
 |  | 
 |       \item A new browser command \code{s} has been added, to | 
 |       \dQuote{step into} function calls. | 
 |  | 
 |       \item A new browser command \code{f} has been added, to | 
 |       \dQuote{finish} the current loop or function. | 
 |  | 
 |       \item Within the browser, the command \code{help} will | 
 |       display a short list of available commands. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{UTILITIES}{ | 
 |     \itemize{ | 
 |       \item Only vignettes sources in directory \file{vignettes} are | 
 |       considered to be vignettes by \command{R CMD check}.  That has | 
 |       been the preferred location since \R 2.14.0 and is now obligatory. | 
 |  | 
 |       \item For consistency, \command{R CMD build} now matches entries | 
 |       in \file{.Rbuildignore}  and \file{vignettes/.install_extras} | 
 |       case-insensitively on all platforms (not just on Windows). | 
 |  | 
 |       \item \code{checkFF()} (called by \command{R CMD check} by | 
 |       default) can optionally check foreign function calls for | 
 |       consistency with the registered type and argument count.  This is | 
 |       the default for \command{R CMD check --as-cran} or can be enabled | 
 |       by setting environment variable \env{_R_CHECK_FF_CALLS_} to | 
 |       \samp{registration} (but is in any case suppressed by | 
 |       \option{--install=no}).   Because this checks calls in which | 
 |       \code{.NAME} is an \R object and not just a literal character | 
 |       string, some other problems are detected for such calls. | 
 |  | 
 |       Functions \code{suppressForeignCheck()} and \code{dontCheck()} | 
 |       have been added to allow package authors to suppress false | 
 |       positive reports. | 
 |  | 
 |       \item \command{R CMD check --as-cran} warns about a false value of | 
 |       the \file{DESCRIPTION} field \samp{BuildVignettes} for Open Source | 
 |       packages, and ignores it.  (An Open Source package needs to have | 
 |       complete sources for its vignettes which should be usable on a | 
 |       suitably well-equipped system). | 
 |  | 
 |       \item \command{R CMD check --no-rebuild-vignettes} is defunct:\cr | 
 |       \command{R CMD check --no-build-vignettes} has been preferred since | 
 |       \R 3.0.0. | 
 |  | 
 |       \item \command{R CMD build --no-vignettes} is defunct:\cr | 
 |       \command{R CMD build --no-build-vignettes} has been preferred since | 
 |       \R 3.0.0. | 
 |  | 
 |       \item \command{R CMD Sweave} and \command{R CMD Stangle} now | 
 |       process both Sweave and non-Sweave vignettes.  The | 
 |       \code{tools::buildVignette()} function has been added to do the | 
 |       same tasks from within \R. | 
 |  | 
 |       \item The flags returned by \command{R CMD config --ldflags} and | 
 |       (where installed) \command{pkg-config --libs libR} are now those | 
 |       needed to link a front-end against the (shared or static) \R | 
 |       library. | 
 |  | 
 |       \item \file{Sweave.sty} has a new option \samp{[inconsolata]}. | 
 |  | 
 |       \item \command{R CMD check} customizations such as | 
 |       \env{_R_CHECK_DEPENDS_ONLY_} make available packages only in | 
 |       \samp{LinkingTo} only for installation, and not for | 
 |       loading/runtime tests. | 
 |  | 
 |       \item \command{tools::checkFF()} reports on \code{.C} and | 
 |       \code{.Fortran} calls with \code{DUP = FALSE} if argument | 
 |       \code{check_DUP} is true.  This is selected by | 
 |       \command{R CMD check} by default. | 
 |  | 
 |       \item \command{R CMD check --use-gct} can be tuned to | 
 |       garbage-collect less frequently using \code{gctorture2()} | 
 |       \emph{via} the setting of environment variable | 
 |       \env{_R_CHECK_GCT_N_}. | 
 |  | 
 |       \item Where supported, \code{tools::texi2dvi()} limits the number | 
 |       of passes tried to 20. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{C-LEVEL FACILITIES}{ | 
 |     \itemize{ | 
 |       \item (Windows only) A function \code{R_WaitEvent()} has been | 
 |       added (with declaration in header\file{R.h}) to block execution | 
 |       until the next event is received by \R. | 
 |  | 
 |       \item Remapping in the \file{Rmath.h} header can be suppressed by | 
 |       defining \samp{R_NO_REMAP_RMATH}. | 
 |  | 
 |       \item The remapping of \code{rround()} in header \file{Rmath.h} | 
 |       has been removed: use \code{fround()} instead. | 
 |  | 
 |       \item \code{ftrunc()} in header \file{Rmath.h} is now a wrapper | 
 |       for the C99 function \code{trunc()}, which might as well be used | 
 |       in C code: \code{ftrunc()} is still needed for portable C++ code. | 
 |  | 
 |       \item The never-documented remapping of \code{prec()} to | 
 |       \code{fprec()} in header \file{Rmath.h} has been removed. | 
 |  | 
 |       \item The included LAPACK subset now contains \code{ZGESDD} and | 
 |       \code{ZGELSD}. | 
 |  | 
 |       \item The function \code{LENGTH()} now checks that it is only | 
 |       applied to vector arguments.  However, in packages \code{length()} | 
 |       should be used. (In \R{} itself \code{LENGTH()} is a macro without | 
 |       the function overhead of \code{length()}.) | 
 |  | 
 |       \item Calls to \code{SET_VECTOR_ELT()} and \code{SET_STRING_ELT()} | 
 |       are now checked for indices which are in-range: several packages | 
 |       were writing one element beyond the allocated length. | 
 |  | 
 |       \item \code{allocVector3} has been added which allows custom | 
 |       allocators to be used for individual vector allocations. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{DEPRECATED AND DEFUNCT}{ | 
 |     \itemize{ | 
 |       \item \code{chol(pivot = TRUE, LINPACK = TRUE)} is defunct. | 
 |  | 
 |       Arguments \code{EISPACK} for \code{eigen()} and \code{LINPACK} for | 
 |       \code{chol()}, \code{chol2inv()}, \code{solve()} and \code{svd()} | 
 |       are ignored: LAPACK is always used. | 
 |  | 
 |       \item \code{.find.package()} and \code{.path.package()} are | 
 |       defunct: only the versions without the initial dot introduced in | 
 |       \R 2.13.0 have ever been in the API. | 
 |  | 
 |       \item Partial matching when using the \code{$} operator \emph{on | 
 | 	data frames} now throws a warning and may become defunct in the | 
 |       future. If partial matching is intended, replace \code{foo$bar} | 
 |       by \code{foo[["bar", exact = FALSE]]}. | 
 |  | 
 |       \item The long-deprecated use of \code{\\synopsis} in the | 
 |       \samp{Usage} section of \file{.Rd} files has been removed: such | 
 |       sections are now ignored (with a warning). | 
 |  | 
 |       \item \code{package.skeleton()}'s deprecated argument | 
 |       \code{namespace} has been removed. | 
 |  | 
 |       \item Many methods are no longer exported by package \pkg{stats}. | 
 |       They are all registered on their generic, which should be called | 
 |       rather than calling a method directly. | 
 |  | 
 |       \item Functions \code{readNEWS()} and \code{checkNEWS()} in | 
 |       package \pkg{tools} are defunct. | 
 |  | 
 |       \item \code{download.file(method = "lynx")} is deprecated. | 
 |  | 
 |       \item \code{.C(DUP = FALSE)} and \code{.Fortran(DUP = FALSE)} are | 
 |       now deprecated, and may be disabled in future versions of \R.  As | 
 |       their help has long said, \code{.Call()} is much preferred. | 
 |  | 
 |       \command{R CMD check} notes such usages (by default). | 
 |  | 
 |       \item The workaround of setting \env{R_OSX_VALGRIND} has been | 
 |       removed: it is not needed in current valgrind. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{BUG FIXES}{ | 
 |     \itemize{ | 
 |       \item Calling \code{lm.wfit()} with no non-zero weights gave an | 
 |       array-overrun in the Fortran code and a not very sensible answer. | 
 |       It is now special-cased with a simpler answer (no \code{qr} | 
 |       component). | 
 |  | 
 |       \item Error messages involving non-syntactic names (e.g., as produced | 
 |       by \code{`\\r`} when that object does not exist) now encode | 
 |       the control characters.  (Reported by Hadley Wickham.) | 
 |  | 
 |       \item \code{getGraphicsEvent()} caused 100\% usage of one CPU in | 
 |       Windows. (\PR{15500}) | 
 |  | 
 |       \item \code{nls()} with no \code{start} argument may now work | 
 |       inside another function (scoping issue). | 
 |  | 
 |       \item \code{pbeta()} and similar work better for very large | 
 |       (billions) \code{ncp}. | 
 |  | 
 |       \item Where time zones have changed abbreviations over the years, | 
 |       the software tries to more consistently use the abbreviation | 
 |       appropriate to the time or if that is unknown, the current | 
 |       abbreviation.  On some platforms where the C function | 
 |       \code{localtime} changed the \code{tzname} variables the reported | 
 |       abbreviation could have been that of the last time converted. | 
 |  | 
 |       \item \code{all.equal(list(1), identity)} now works. | 
 |  | 
 |       \item Bug fix for pushing viewports in \pkg{grid} (reported by | 
 |       JJ Allaire and Kevin Ushey). | 
 |  | 
 |       NOTE for anyone poking around within the graphics engine display | 
 |       list (despite the warnings not to) that this changes what | 
 |       is recorded by \pkg{grid} on the graphics engine display list. | 
 |  | 
 |       \item Extra checks have been added for unit resolution and | 
 |       conversion in \pkg{grid}, to catch instances of division-by-zero. | 
 |       This may introduce error messages in existing code and/or produce | 
 |       a different result in existing code (but only where a non-finite | 
 |       location or dimension may now become zero). | 
 |  | 
 |       \item Some bugs in TRE have been corrected by updating from the | 
 |       \command{git} repository.  This allows \R to be installed on some | 
 |       platforms for which this was a blocker (\PR{15087} suggests Linux | 
 |       on ARM and HP-UX). | 
 |  | 
 |       \item \code{?} applied to a call to an S4 generic failed in | 
 |       several cases. (\PR{15680}) | 
 |  | 
 |       \item The implicit S4 generics for primitives with \code{\dots} in | 
 |       their argument list were incorrect. (\PR{15690}) | 
 |  | 
 |       \item Bug fixes to \code{methods::callGeneric()}. (\PR{15691}) | 
 |  | 
 |       \item The bug fix to \code{aggregrate()} in \PR{15004} introduced | 
 |       a new bug in the case of no grouping variables. (\PR{15699}) | 
 |  | 
 |       \item In rare cases printing deeply nested lists overran a buffer | 
 |       by one byte and on a few platforms segfaulted. (\PR{15679}) | 
 |  | 
 |       \item The dendrogram method of \code{as.dendrogram()} was hidden | 
 |       accidentally, (\PR{15703}), and \code{order.dendrogram(d)} gave | 
 |       too much for a leaf \code{d}. (\PR{15702}) | 
 |  | 
 |       \item \R would try to kill processes on exit that have pids ever | 
 |       used by a child process spawned by \code{mcparallel} even though | 
 |       the current process with that pid was not actually its child. | 
 |  | 
 |       \item \code{cophenetic()} applied to a \code{"dendrogram"} object | 
 |       sometimes incorrectly returned a \code{"Labels"} attribute with | 
 |       dimensions.  (\PR{15706}) | 
 |  | 
 |       \item \code{printCoefmat()} called from quite a few \code{print()} | 
 |       methods now obeys small \code{getOption("width")} settings, | 
 |       line wrapping the \samp{"signif. codes"} legend appropriately. | 
 |       (\PR{15708}) | 
 |  | 
 |       \item \code{model.matrix()} assumed that the stored dimnames for a | 
 |       matrix was \code{NULL} or length 2, but length 1 occurred. | 
 |  | 
 |       \item The clipping region for a device was sometimes used in base | 
 |       graphics before it was set. | 
 |     } | 
 |   } | 
 | } | 
 |  | 
 | \section{\Rlogo CHANGES IN R 3.0.3}{ | 
 |   \subsection{NEW FEATURES}{ | 
 |     \itemize{ | 
 |       \item On Windows there is support for making \file{.texi} manuals | 
 |       using \command{texinfo} 5.0 or later: the setting is in file | 
 |       \file{src/gnuwin32/MkRules.dist}. | 
 |  | 
 |       A packaging of the Perl script and modules for \command{texinfo} | 
 |       5.2 has been made available at | 
 |       \url{http://www.stats.ox.ac.uk/pub/Rtools/}. | 
 |  | 
 |       \item \code{write.table()} now handles matrices of | 
 |       \eqn{2^{31}}{2^31} or more elements, for those with large amounts | 
 |       of patience and disc space. | 
 |  | 
 |       \item There is a new function, \code{La_version()}, to report the | 
 |       version of LAPACK in use. | 
 |  | 
 |       \item The HTML version of \sQuote{An Introduction to R} now has | 
 |       links to PNG versions of the figures. | 
 |  | 
 |       \item There is some support to produce manuals in ebook | 
 |       formats. (See \file{doc/manual/Makefile}.  Suggested by Mauro | 
 |       Cavalcanti.) | 
 |  | 
 |       \item On a Unix-alike \code{Sys.timezone()} returns \code{NA} if | 
 |       the environment variable \env{TZ} is unset, to distinguish it from | 
 |       an empty string which on some OSes means the \samp{UTC} time zone. | 
 |  | 
 |       \item The backtick may now be escaped in strings, to allow names | 
 |       containing them to be constructed, e.g.\sspace{}\code{`\\``}.  (\PR{15621}) | 
 |  | 
 |       \item \code{read.table()}, \code{readLines()} and \code{scan()} | 
 |       now warn when an embedded nul is found in the input.  (Related to | 
 |       \PR{15625} which was puzzled by the behaviour in this unsupported | 
 |       case.) | 
 |  | 
 |       \item (Windows only.)  \code{file.symlink()} works around the | 
 |       undocumented restriction of the Windows system call to | 
 |       backslashes.  (Wish of \PR{15631}.) | 
 |  | 
 |       \item \code{KalmanForecast(fast = FALSE)} is now the default, and | 
 |       the help contains an example of how \code{fast = TRUE} can be used | 
 |       in this version.  (The usage will change in 3.1.0.) | 
 |  | 
 |       \item \code{strptime()} now checks the locale only when | 
 |       locale-specific formats are used and caches the locale in use: | 
 |       this can halve the time taken on OSes with slow system | 
 |       functions (e.g., OS X). | 
 |  | 
 |       \item \code{strptime()} and the \code{format()} methods for | 
 |       classes \code{"POSIXct"}, \code{"POSIXlt"} and \code{"Date"} | 
 |       recognize strings with marked encodings: this allows, for example, | 
 |       UTF-8 French month names to be read on (French) Windows. | 
 |  | 
 |       \item \code{iconv(to = "utf8")} is now accepted on all platforms | 
 |       (some implementations did already, but GNU \pkg{libiconv} did not: | 
 |       however converted strings were not marked as being in UTF-8).  The | 
 |       official name, \code{"UTF-8"} is still preferred. | 
 |  | 
 |       \item \code{available.packages()} is better protected against | 
 |       corrupt metadata files.  (A recurring problem with Debian package | 
 |       \pkg{shogun-r}: \PR{14713}.) | 
 |  | 
 |       \item Finalizers are marked to be run at garbage collection, but | 
 |       run only at a somewhat safer later time (when interrupts are | 
 |       checked).  This circumvents some problems with finalizers running | 
 |       arbitrary code during garbage collection (the known instances being | 
 |       running \code{options()} and (C-level) \code{path.expand()} | 
 |       re-entrantly). | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{INSTALLATION and INCLUDED SOFTWARE}{ | 
 |     \itemize{ | 
 |       \item The included version of PCRE has been updated to 8.34.  This | 
 |       fixes bugs and makes the behaviour closer to Perl 5.18.  In | 
 |       particular, the concept of \sQuote{space} includes \samp{VT} and | 
 |       hence agrees with POSIX's. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{PACKAGE INSTALLATION}{ | 
 |     \itemize{ | 
 |       \item The new field \samp{SysDataCompression} in the | 
 |       \file{DESCRIPTION} file allows user control over the compression | 
 |       used for \file{sysdata.rda} objects in the lazy-load database. | 
 |  | 
 |       \item \code{install.packages(dependencies = value)} for \code{value = | 
 | 	NA} (the default) or \code{value = TRUE} omits packages only in | 
 |       \code{LinkingTo} for binary package installs. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{C-LEVEL FACILITIES}{ | 
 |     \itemize{ | 
 |       \item The long undocumented remapping of \code{rround()} to | 
 |       \code{Rf_fround()} in header \file{Rmath.h} is now formally | 
 |       deprecated: use \code{fround()} directly. | 
 |  | 
 |       \item Remapping of \code{prec()} and \code{trunc()} in the | 
 |       \file{Rmath.h} header has been disabled in C++ code (it has caused | 
 |       breakage with \code{libc++} headers). | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{BUG FIXES}{ | 
 |     \itemize{ | 
 |       \item \code{getParseData()} truncated the imaginary part of | 
 |       complex number constants.  (Reported by Yihui Xie.) | 
 |  | 
 |       \item \code{dbeta(x, a, b)} with \code{a} or \code{b} within a | 
 |       factor of 2 of the largest representable number could | 
 |       infinite-loop.  (Reported by Ioannis Kosmidis.) | 
 |  | 
 |       \item \code{provideDimnames()} failed for arrays with a 0 | 
 |       dimension. (\PR{15465}) | 
 |  | 
 |       \item \code{rbind()} and \code{cbind()} did not handle | 
 |       list objects correctly. (\PR{15468}) | 
 |  | 
 |       \item \code{replayPlot()} now checks if it is replaying a plot | 
 |       from the same session. | 
 |  | 
 |       \item \code{rasterImage()} and \code{grid.raster()} now give | 
 |       error on an empty (zero-length) raster.  (Reported by Ben North.) | 
 |  | 
 |       \item \code{plot.lm()} would sometimes scramble the labels | 
 |       in plot type 5.  (\PR{15458} and \PR{14837}) | 
 |  | 
 |       \item \code{min()} did not handle \code{NA_character_} values | 
 |       properly.  (Reported by Magnus Thor Torfason.) | 
 |  | 
 |       \item (Windows only.)  \code{readRegistry()} would duplicate | 
 |       default values for keys.  (\PR{15455}) | 
 |  | 
 |       \item \code{str(..., strict.width = "cut")} did not handle | 
 |       it properly when more than one line needed to be cut.  (Reported | 
 |       by Gerrit Eichner.) | 
 |  | 
 |       \item Removing subclass back-references when S4 classes were | 
 |       removed or their namespace unloaded had several bugs (e.g., \PR{15481}). | 
 |  | 
 |       \item \code{aggregate()} could fail when there were too many | 
 |       levels present in the \code{by} argument.  (\PR{15004}) | 
 |  | 
 |       \item \code{namespaceImportFrom()} needed to detect primitive | 
 |       functions when checking for duplicated imports (reported by | 
 |       Karl Forner). | 
 |  | 
 |       \item \code{getGraphicsEvent()} did not exit when a user closed | 
 |       the graphics window.  (\PR{15208}) | 
 |  | 
 |       \item Errors in vignettes were not always captured and displayed | 
 |       properly.  (\PR{15495}) | 
 |  | 
 |       \item \code{contour()} could fail when dealing with extremely | 
 |       small z values.  (\PR{15454}) | 
 |  | 
 |       \item Several functions did not handle zero-length vectors properly, | 
 |       including \code{browseEnv()}, \code{format()}, \code{gl()}, | 
 |       \code{relist()} and \code{summary.data.frame()}.  (E.g., \PR{15499}) | 
 |  | 
 |       \item \code{Sweave()} did not restore the \R{} output to the | 
 |       console if it was interrupted by a user in the middle of evaluating | 
 |       a code chunk.  (Reported by Michael Sumner.) | 
 |  | 
 |       \item Fake installs of packages with vignettes work again. | 
 |  | 
 |       \item Illegal characters in the input caused \code{parse()} | 
 |       (and thus \code{source()}) to segfault.  (\PR{15518}) | 
 |  | 
 |       \item The nonsensical use of \code{nmax = 1} in | 
 |       \code{duplicated()} or \code{unique()} is now silently ignored. | 
 |  | 
 |       \item \code{qcauchy(p, *)} is now fully accurate even when p is | 
 |       very close to 1. (\PR{15521}) | 
 |  | 
 |       \item The \code{validmu()} and \code{valideta()} functions in the | 
 |       standard \code{glm()} families now also report non-finite values, | 
 |       rather than failing. | 
 |  | 
 |       \item Saved vignette results (in a \file{.Rout.save} file) were | 
 |       not being compared to the new ones during \command{R CMD check}. | 
 |  | 
 |       \item Double-clicking outside of the list box (e.g., on the scrollbar) | 
 |       of a Tk listbox widget generated by \code{tk_select.list()} no | 
 |       longer causes the window to close. (\PR{15407}) | 
 |  | 
 |       \item Improved handling of edge cases in | 
 |       \code{parallel::splitindices()}. (\PR{15552}) | 
 |  | 
 |       \item HTML display of results from \code{help.search()} and | 
 |       \code{??} sometimes contained badly constructed links. | 
 |  | 
 |       \item \code{c()} and related functions such as \code{unlist()} | 
 |       converted raw vectors to invalid logical vectors. (\PR{15535}) | 
 |  | 
 |       \item (Windows only) When a call to \code{system2()} specified | 
 |       one of \code{stdin}, \code{stdout} or \code{stderr} to be a file, | 
 |       but the command was not found (e.g., it contained its arguments, | 
 |       or the program was not on the \env{PATH}), it left the file open | 
 |       and unusable until \R terminated.  (Reported by Mathew McLean.) | 
 |  | 
 |       \item The \code{bmp()} device was not recording \code{res = NA} | 
 |       correctly: it is now recorded as 72 ppi. | 
 |  | 
 |       \item Several potential problems with compiler-specific behaviour | 
 |       have been identified using the \sQuote{Undefined Behaviour | 
 | 	Sanitizer} in conjunction with the \command{clang} compiler. | 
 |  | 
 |       \item \code{hcl()} now honours \code{NA} inputs (previously they | 
 |       were mapped to black). | 
 |  | 
 |       \item Some translations in base packages were being looked up in | 
 |       the main catalog rather than that for the package. | 
 |  | 
 |       \item As a result of the 3.0.2 change about \sQuote{the last | 
 | 	second before the epoch}, most conversions which should have given | 
 |       \code{NA} returned that time.  (The platforms affected include | 
 |       Linux and OS X, but not Windows nor Solaris.) | 
 |  | 
 |       \item \code{rowsum()} has more support for matrices and data frames | 
 |       with \eqn{2^{31}}{2^31} or more elements. (\PR{15587}) | 
 |  | 
 |       \item \code{predict(<lm object>, interval = "confidence", scale = | 
 | 	<something>)} now works.  (\PR{15564}) | 
 |  | 
 |       \item The bug fix in 3.0.2 for \PR{15411} was too aggressive, | 
 |       and sometimes removed spaces that should not have been removed. | 
 |       (\PR{15583}) | 
 |  | 
 |       \item Running \R code in a \pkg{tcltk} callback failed to set the | 
 |       busy flag, which will be needed to tell OS X not to \sQuote{App Nap}. | 
 |  | 
 |       \item The code for date-times before 1902 assumed that the offset | 
 |       from GMT in 1902 was a whole number of minutes: that was not true | 
 |       of Paris (as recorded on some platforms). | 
 |  | 
 |       \item Using \code{Sys.setlocale} to set \code{LC_NUMERIC} to | 
 |       \code{"C"} (to restore the sane behavior) no longer gives a | 
 |       warning. | 
 |  | 
 |       \item \code{deparse()} now deparses complex vectors in a way that | 
 |       re-parses to the original values.  (\PR{15534}, patch based on code | 
 |       submitted by Alex Bertram.) | 
 |  | 
 |       \item In some extreme cases (more than \eqn{10^{15}}{10^15}) | 
 |       integer inputs to \code{dpqrxxx()} functions might have been | 
 |       rounded up by one (with a warning about being non-integer). | 
 |       (\PR{15624}) | 
 |  | 
 |       \item Plotting symbol \code{pch = 14} had the triangle upside down | 
 |       on some devices (typically screen devices). The triangle is | 
 |       supposed to be point up.  (Reported by Bill Venables.) | 
 |  | 
 |       \item \code{getSrcref()} did not work on method definitions if | 
 |       \code{rematchDefinition()} had been used. | 
 |  | 
 |       \item \code{KalmanForecast(fast = FALSE)} reported a (harmless) | 
 |       stack imbalance. | 
 |  | 
 |       \item The count of observations used by \code{KalmanRun()} did not | 
 |       take missing values into account. | 
 |  | 
 |       \item In locales where the abbreviated name of one month is a | 
 |       partial match for the full name of a later one, the \code{\%B} | 
 |       format in \code{strptime()} could fail.  An example was French on | 
 |       OS X, where \samp{juin} is abbreviated to \samp{jui} and partially | 
 |       matches \code{juillet}.  Similarly for weekday names. | 
 |  | 
 |       \item \code{pbeta(x, a, b, log.p = TRUE)} sometimes underflowed to | 
 |       zero for very small and very differently sized \code{a}, \code{b}. | 
 |       (\PR{15641}) | 
 |  | 
 |       \item \code{approx()} and \code{approxfun()} now handle infinite | 
 |       values with the \code{"constant"} method. (\PR{15655}) | 
 |  | 
 |       \item \code{stripchart()} again respects reversed limits in | 
 |       \code{xlim} and \code{ylim}.  (\PR{15664}) | 
 |     } | 
 |   } | 
 | } | 
 |  | 
 | \section{\Rlogo CHANGES IN R 3.0.2}{ | 
 |   \subsection{NEW FEATURES}{ | 
 |     \itemize{ | 
 |       \item The \file{NEWS} files have been re-organized. | 
 |  | 
 |       This file contains news for \R >= 3.0.0: news for the 0.x.y, 1.x.y | 
 |       and 2.x.y releases is in files \file{NEWS.0}, \file{NEWS.1} and | 
 |       \file{NEWS.2}.  The latter files are now installed when \R is | 
 |       installed.  An HTML version of news from 2.10.0 to 2.15.3 is | 
 |       available as \file{doc/html/NEWS.2.html}. | 
 |  | 
 |       \item \code{sum()} for integer arguments now uses an integer | 
 |       accumulator of at least 64 bits and so will be more accurate in | 
 |       the very rare case that a cumulative sum exceeds | 
 |       \eqn{2^{53}}{2^53} (necessarily summing more than 4 million | 
 |       elements). | 
 |  | 
 |       \item The \code{example()} and \code{tools::Rd2ex()} functions now | 
 |       have parameters to allow them to ignore \code{\\dontrun} markup in | 
 |       examples.  (Suggested by Peter Solymos.) | 
 |  | 
 |       \item \code{str(x)} is considerably faster for very large lists, | 
 |       or factors with 100,000 levels, the latter as in \PR{15337}. | 
 |  | 
 |       \item \code{col2rgb()} now converts factors to character strings | 
 |       not integer codes (suggested by Bryan Hanson). | 
 |  | 
 |       \item \code{tail(warnings())} now works, \emph{via} the new | 
 |       \code{`[`} method. | 
 |  | 
 |       \item There is now support for the LaTeX style file \file{zi4.sty} | 
 |       which has in some distributions replaced \file{inconsolata.sty}. | 
 |  | 
 |       \item \code{unlist(x)} now typically returns all non-list | 
 |       \code{x}s unchanged, not just the \dQuote{vector} ones. | 
 |       Consequently, \code{format(lst)} now also works when the list | 
 |       \code{lst} has non-vector elements. | 
 |  | 
 |       \item The \code{tools::getVignetteInfo()} function has been added | 
 |       to give information about installed vignettes. | 
 |  | 
 |       \item New \code{assertCondition()}, etc. utilities in \pkg{tools}, useful | 
 |       for testing. | 
 |  | 
 |       \item Profiling now records non-inlined calls from byte-compiled | 
 |       code to \code{BUILTIN} functions. | 
 |  | 
 |       \item Various functions in \pkg{stats} and elsewhere that use | 
 |       non-standard evaluation are now more careful to follow the | 
 |       namespace scoping rules.  E.g., \code{stats::lm()} can now find | 
 |       \code{stats::model.frame()} even if \pkg{stats} is not on the | 
 |       search path or if some package defines a function of that name. | 
 |  | 
 |       \item If an invalid/corrupt \code{.Random.seed} object is | 
 |       encountered in the workspace it is ignored with a warning rather | 
 |       than giving an error.  (This allows \R itself to rely on a working | 
 |       RNG, e.g.\sspace{}to choose a random port.) | 
 |  | 
 |       \item \code{seq()} and \code{seq.int()} give more explicit error | 
 |       messages if called with invalid (e.g., \code{NaN}) inputs. | 
 |  | 
 |       \item When \code{parse()} finds a syntax error, it now makes | 
 |       partial parse information available up to the location of the | 
 |       error.  (Request of Reijo Sund.) | 
 |  | 
 |       \item Methods invoked by \code{NextMethod()} had a different | 
 |       dynamic parent to the generic. This was causing trouble where S3 | 
 |       methods invoked \emph{via} lazy evaluation could lose track of | 
 |       their generic.  (\PR{15267}) | 
 |  | 
 |       \item Code for the negative binomial distribution now treats the case | 
 |       \code{size == 0} as a one-point distribution at zero. | 
 |  | 
 |       \item \code{abbreviate()} handles without warning non-ASCII input | 
 |       strings which require no abbreviation. | 
 |  | 
 |       \item \code{read.dcf()} no longer has a limit of 8191 bytes per | 
 |       line. (Wish of \PR{15250}.) | 
 |  | 
 |       \item \code{formatC(x)} no longer copies the class of \code{x} to | 
 |       the result, to avoid misuse creating invalid objects as in | 
 |       \PR{15303}.  A warning is given if a class is discarded. | 
 |  | 
 |       \item Dataset \code{npk} has been copied from \CRANpkg{MASS} to | 
 |       allow more tests to be run without recommended packages being | 
 |       installed. | 
 |  | 
 |       \item The initialization of the regression coefficients for | 
 |       non-degenerate differenced models in \code{arima()} has been | 
 |       changed and in some examples avoids a local maximum.  (\PR{15396}) | 
 |  | 
 |       \item \code{termplot()} now has an argument \code{transform.x} | 
 |       to control the display of individual terms in the plot. | 
 |       (\PR{15329}) | 
 |  | 
 |       \item \code{format()} now supports \code{digits = 0}, to | 
 |       display \code{nsmall} decimal places. | 
 |  | 
 |       \item There is a new read-only \code{par()} parameter called | 
 |       \code{"page"}, which returns a logical value indicating whether | 
 |       the next \code{plot.new()} call will start a new page. | 
 |  | 
 |       \item Processing Sweave and Rd documents to PDF now renders | 
 |       backticks and single quotes better in several instances, including | 
 |       in \samp{\\code} and \samp{\\samp} expressions. | 
 |  | 
 |       \item \code{utils::modifyList()} gets a new argument \code{keep.null} | 
 |       allowing \code{NULL} components in the replacement to be retained, | 
 |       instead of causing corresponding components to be deleted. | 
 |  | 
 |       \item \code{tools::pkgVignettes()} gains argument \code{check}; | 
 |       if set to \code{TRUE}, it will warn when it appears a vignette requests | 
 |       a non-existent vignette engine. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{UTILITIES}{ | 
 |     \itemize{ | 
 |       \item \command{R CMD check --as-cran} checks the line widths in | 
 |       usage and examples sections of the package Rd files. | 
 |  | 
 |       \item \command{R CMD check --as-cran} now implies \option{--timings}. | 
 |  | 
 |       \item \command{R CMD check} looks for command \command{gfile} if a | 
 |       suitable \command{file} is not found.  (Although \command{file} is | 
 |       not from GNU, OpenCSW on Solaris installs it as \command{gfile}.) | 
 |  | 
 |       \item \command{R CMD build} (with the internal \code{tar}) checks | 
 |       the permissions of \file{configure} and \file{cleanup} files and | 
 |       adds execute permission to the recorded permissions for these | 
 |       files if needed, with a warning.  This is useful on OSes and file | 
 |       systems which do not support execute permissions (notably, on | 
 |       Windows). | 
 |  | 
 |       \item \command{R CMD build} now weaves and tangles all vignettes, | 
 |       so suggested packages are not required during package installation | 
 |       if the source tarball was prepared with current | 
 |       \command{R CMD build}. | 
 |  | 
 |       \item \code{checkFF()} (used by \command{R CMD check}) does a | 
 |       better job of detecting calls from other packages, including not | 
 |       reporting those where a function has been copied from another | 
 |       namespace (e.g., as a default method).  It now reports calls where | 
 |       \code{.NAME} is a symbol registered in another package. | 
 |  | 
 |       \item On Unix-alike systems, \command{R CMD INSTALL} now installs packages | 
 |       group writably whenever the library (\code{lib.loc}) is group | 
 |       writable.  Hence, \code{update.packages()} works for other group | 
 |       members (suggested originally and from a patch by Dirk Eddelbuettel). | 
 |  | 
 |       \item \command{R CMD javareconf} now supports the use of symbolic | 
 |       links for \env{JAVA_HOME} on platforms which have | 
 |       \command{realpath}.  So it is now possible to | 
 |       use \preformatted{R CMD javareconf JAVA_HOME=/usr/lib/jvm/java-1.7.0} | 
 |       on a Linux system and record that value rather than the | 
 |       frequently-changing full path such as | 
 |       \file{/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.25.x86_64}. | 
 |  | 
 |       \item (Windows only.) \command{Rscript -e} requires a non-empty | 
 |       argument for consistency with Unix versions of \R.  (Also | 
 |       \command{Rterm -e} and \command{R -e}.) | 
 |  | 
 |       \item \command{R CMD check} does more thorough checking of | 
 |       declared packages and namespaces.  It reports | 
 |       \itemize{ | 
 | 	\item packages declared in more than one of the | 
 | 	\samp{Depends}, \samp{Imports}, \samp{Suggests} and | 
 | 	\samp{Enhances} fields of the \file{DESCRIPTION} file. | 
 |  | 
 | 	\item namespaces declared in \samp{Imports} but not | 
 | 	imported from, neither in the \file{NAMESPACE} file nor using | 
 | 	the \code{::} nor \code{:::} operators. | 
 |  | 
 | 	\item packages which are used in \code{library()} or | 
 | 	\code{requires()} calls in the \R code but were already put on | 
 | 	the search path \emph{via} \samp{Depends}. | 
 |  | 
 | 	\item packages declared in \samp{Depends} not imported | 
 | 	\emph{via} the \file{NAMESPACE} file (except the standard | 
 | 	packages).  Objects used from \samp{Depends} packages should be | 
 | 	imported to avoid conflicts and to allow correct operation when | 
 | 	the namespace is loaded but not attached. | 
 |  | 
 | 	\item objects imported \emph{via} \code{:::} calls where | 
 | 	\code{::} would do. | 
 |  | 
 | 	\item objects imported by \code{::} which are not exported. | 
 |  | 
 | 	\item objects imported by \code{:::} calls which do not exist. | 
 |       } | 
 |       See \sQuote{Writing R Extensions} for good practice. | 
 |  | 
 |       \item \command{R CMD check} optionally checks for non-standard | 
 |       top-level files and directories (which are often mistakes): this | 
 |       is enabled for \option{--as-cran}. | 
 |  | 
 |       \item LaTeX style file \code{upquote.sty} is no longer included | 
 |       (the version was several years old): it is no longer used in \R. | 
 |       A much later version is commonly included in LaTeX distributions | 
 |       but does not play well with the \code{ae} fonts which are the | 
 |       default for Sweave vignettes. | 
 |  | 
 |       \item \command{R CMD build} makes more use of the \file{build} | 
 |       sub-directory of package sources, for example to record | 
 |       information about the vignettes. | 
 |  | 
 |       \item \command{R CMD check} analyses \code{:::} calls. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{INSTALLATION and INCLUDED SOFTWARE}{ | 
 |     \itemize{ | 
 |       \item The macros used for the texinfo manuals have been changed to | 
 |       work better with the incompatible changes made in \command{texinfo | 
 |       5.x}. | 
 |  | 
 |       \item The minimum version for a system \code{xz} library is now | 
 |       5.0.3 (was 4.999).  This is in part to avoid 5.0.2, which can | 
 |       compress in ways other versions cannot decompress. | 
 |  | 
 |       \item The included version of PCRE has been updated to 8.33. | 
 |  | 
 |       \item The included version of \code{zlib} has been updated to | 
 |       1.2.8, a bug-fix release. | 
 |  | 
 |       \item The included version of xz utils's \code{liblzma} has been | 
 |       updated to 5.0.5. | 
 |  | 
 |       \item Since \command{javareconf} (see above) is used when \R is | 
 |       installed, a stable link for \env{JAVA_HOME} can be supplied then. | 
 |  | 
 |       \item Configuring with \option{--disable-byte-compilation} will | 
 |       override the \file{DESCRIPTION} files of recommended packages, | 
 |       which typically require byte-compilation. | 
 |  | 
 |       \item More of the installation and checking process will work even | 
 |       when \env{TMPDIR} is set to a path containing spaces, but this is | 
 |       not recommended and external software (such as | 
 |       \command{texi2dvi}) may fail. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{PACKAGE INSTALLATION}{ | 
 |     \itemize{ | 
 |       \item Installation is aborted immediately if a \code{LinkingTo} | 
 |       package is not installed. | 
 |  | 
 |       \item \command{R CMD INSTALL} has a new option | 
 |       \code{--no-byte-compile} which will override a \samp{ByteCompile} | 
 |       field in the package's \file{DESCRIPTION} file. | 
 |  | 
 |       \item License \samp{BSD} is deprecated: use \samp{BSD_3_clause} | 
 |       or \samp{BSD_2_clause} instead. | 
 |  | 
 |       License \samp{X11} is deprecated: use \samp{MIT} or | 
 |       \samp{BSD_2_clause} instead. | 
 |  | 
 |       \item Version requirements for \code{LinkingTo} packages are now | 
 |       recognized: they are checked at installation.  (Fields with | 
 |       version requirements were previously silently ignored.) | 
 |  | 
 |       \item The limit of 500 \code{S3method} entries in a | 
 |       \code{NAMESPACE} file has been removed. | 
 |  | 
 |       \item The default \sQuote{version} of Bioconductor for its | 
 |       packages has been changed to the upcoming \samp{2.13}, but this | 
 |       can be set by the environment variable \env{R_BIOC_VERSION} when | 
 |       \R is installed. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{C-LEVEL FACILITIES}{ | 
 |     \itemize{ | 
 |       \item \file{Rdefines.h} has been tweaked so it can be included in | 
 |       C++ code after \file{R_ext/Boolean.h} (which is included by | 
 |       \file{R.h}). | 
 |  | 
 |       Note that \file{Rdefines.h} is not kept up-to-date, and | 
 |       \file{Rinternals.h} is preferred for new code. | 
 |  | 
 |       \item \code{eval} and \code{applyClosure} are now protected | 
 |       against package code supplying an invalid \code{rho}. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{DEPRECATED AND DEFUNCT}{ | 
 |     \itemize{ | 
 |       \item The unused \code{namespace} argument to | 
 |       \code{package.skeleton()} is now formally deprecated and will be | 
 |       removed in \R 3.1.0. | 
 |  | 
 |       \item \code{plclust()} is deprecated: use the \code{plot()} method | 
 |       for class \code{"hclust"} instead. | 
 |  | 
 |       \item Functions \code{readNEWS()} and \code{checkNEWS()} in | 
 |       package \pkg{tools} are deprecated (and they have not worked with | 
 |       current \file{NEWS} files for a long time). | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{DOCUMENTATION}{ | 
 |     \itemize{ | 
 |       \item \sQuote{An Introduction to R} has a new chapter on using \R | 
 |       as a scripting language including interacting with the OS. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{BUG FIXES}{ | 
 |     \itemize{ | 
 |       \item \code{help.request()} could not determine the current version | 
 |       of \R on CRAN.  (\PR{15241}) | 
 |  | 
 |       \item On Windows, \code{file.info()} failed on root directories unless | 
 |       the path was terminated with an explicit \code{"."}.  (\PR{15302}) | 
 |  | 
 |       \item The \code{regmatches<-()} replacement function mishandled | 
 |       results coming from \code{regexpr()}.  (\PR{15311}) | 
 |  | 
 |       \item The help for \code{setClass()} and | 
 |       \code{representation()} still suggested the deprecated argument | 
 |       \code{representation=}. (\PR{15312}) | 
 |  | 
 |       \item \command{R CMD config} failed in an installed build of \R | 
 |       3.0.1 (only) when a sub-architecture was used.  (Reported by | 
 |       Berwin Turlach.) | 
 |  | 
 |       \item On Windows, the installer modified the \file{etc/Rconsole} | 
 |       and \file{etc/Rprofile.site} files even when default options were | 
 |       chosen, so the MD5 sums did not refer to the installed versions. | 
 |       (Reported by Tal Galili.) | 
 |  | 
 |       \item \code{plot(hclust(), cex =)} respects \code{cex} again | 
 |       (and possibly others similarly).  (Reported by Peter Langfelder.) | 
 |  | 
 |       \item If multiple packages were checked by \command{R CMD check}, | 
 |       and one was written for a different OS, it would set | 
 |       \command{--no-install} for all following packages as well as | 
 |       itself. | 
 |  | 
 |       \item \code{qr.coef()} and related functions did not properly coerce | 
 |       real vectors to complex when necessary.  (\PR{15332}) | 
 |  | 
 |       \item \code{ftable(a)} now fixes up empty \code{dimnames} such | 
 |       that the result is printable. | 
 |  | 
 |       \item \code{package.skeleton()} was not starting its search for | 
 |       function objects in the correct place if \code{environment} was | 
 |       supplied.  (Reported by Karl Forner.) | 
 |  | 
 |       \item Parsing code was changing the length field of vectors and | 
 |       confusing the memory manager.  (\PR{15345}) | 
 |  | 
 |       \item The Fortran routine \code{ZHER2K} in the reference BLAS | 
 |       had a comment-out bug in two places. | 
 |       This caused trouble with \code{eigen()} for Hermitian matrices. | 
 |       (\PR{15345} and report from Robin Hankin) | 
 |  | 
 |       \item \code{vignette()} and \code{browseVignettes()} did not | 
 |       display non-Sweave vignettes properly. | 
 |  | 
 |       \item Two warning/error messages have been corrected: | 
 |       the (optional) warning produced by a partial name match | 
 |       with a pairlist, the error message from a zero-length argument to | 
 |       the \code{:} operator.  (Found by Radford Neal; \PR{15358}, | 
 |       \PR{15356}) | 
 |  | 
 |       \item \code{svd()} returned \code{NULL} rather than omitting | 
 |       components as documented.  (Found by Radford Neal; \PR{15360}) | 
 |  | 
 |       \item \code{mclapply()} and \code{mcparallel()} with | 
 |       \code{silent = TRUE} could break a process that uses | 
 |       \code{stdout} output | 
 |       unguarded against broken pipes (e.g., \code{zip} will fail | 
 |       silently). To work around such issues, they now replace | 
 |       \code{stdout} with a descriptor pointed to \file{/dev/null} | 
 |       instead. For this purpose, internal \code{closeStdout} and | 
 |       \code{closeStderr} functions have gained the \code{to.null} flag. | 
 |  | 
 |       \item \code{log()}, \code{signif()} and \code{round()} now raise an | 
 |       error if a single named argument is not named \code{x}.  (\PR{15361}) | 
 |  | 
 |       \item \code{deparse()} now deparses raw vectors in a form that | 
 |       is syntactically correct. (\PR{15369}) | 
 |  | 
 |       \item The \code{jpeg} driver in Sweave created a JPEG file, but gave | 
 |       it a \file{.png} extension. (\PR{15370}) | 
 |  | 
 |       \item Deparsing of infix operators with named arguments is | 
 |       improved. (\PR{15350}) | 
 |  | 
 |       \item \code{mget()}, \code{seq.int()} and \code{numericDeriv()} | 
 |       did not duplicate arguments properly. (\PR{15352}, \PR{15353}, | 
 |       \PR{15354}) | 
 |  | 
 |       \item \code{kmeans(algorithm = "Hartigan-Wong")} now always stops | 
 |       iterating in the QTran stage. (\PR{15364}). | 
 |  | 
 |       \item \code{read.dcf()} re-allocated incorrectly and so could | 
 |       segfault when called on a file with lines of more than 100 bytes. | 
 |  | 
 |       \item On systems where \code{mktime()} does not set \code{errno}, | 
 |       the last second before the epoch could not be converted from | 
 |       \code{POSIXlt} to \code{POSIXct}. (Reported by Bill Dunlap.) | 
 |  | 
 |       \item \code{add1.glm()} miscalculated F-statistics when df > 1. (Bill | 
 |       Dunlap, \PR{15386}). | 
 |  | 
 |       \item \code{stem()} now discards infinite inputs rather than | 
 |       hanging.  (\PR{15376}) | 
 |  | 
 |       \item The parser now enforces C99 syntax for floating point | 
 |       hexadecimal constants (e.g., \code{0x1.1p0}), rather than returning | 
 |       unintended values for malformed constants. (\PR{15234}) | 
 |  | 
 |       \item \code{model.matrix()} now works with very long LHS | 
 |       names (more than 500 bytes).  (\PR{15377}) | 
 |  | 
 |       \item \code{integrate()} reverts to the pre-2.12.0 behaviour: from | 
 |       2.12.0 to 3.0.1 it sometimes failed to achieve the requested | 
 |       tolerance and reported error estimates that were exceeded. | 
 |       (\PR{15219}) | 
 |  | 
 |       \item \code{strptime()} now handles \samp{\%W} fields with value | 
 |       0. (\PR{15915}) | 
 |  | 
 |       \item \R is now better protected against people trying to interact | 
 |       with the console in startup code.  (\PR{15325}) | 
 |  | 
 |       \item Subsetting 1D arrays often lost dimnames (\PR{15301}). | 
 |  | 
 |       \item Unary \code{+} on a logical vector did not coerce to | 
 |       integer, although unary \code{-} did. | 
 |  | 
 |       \item \code{na.omit()} and \code{na.exclude()} added a row | 
 |       to a zero-row data frame.  (\PR{15399}) | 
 |  | 
 |       \item All the (where necessary cut-down) vignettes are installed | 
 |       if \R was configured with \option{--without-recommended-packages}. | 
 |  | 
 |       \item \code{source()} did not display filenames when reporting | 
 |       syntax errors. | 
 |  | 
 |       \item Syntax error reports misplaced the caret pointing out the bad | 
 |       token. | 
 |  | 
 |       \item (Windows only) Starting \R with \command{R} (instead of | 
 |       \command{Rterm} or \command{Rgui}) would lose any | 
 |       zero-length strings from the command line arguments. (\PR{15406}) | 
 |  | 
 |       \item Errors in the encoding specified on the command line | 
 |       \emph{via} \command{--encoding=foo} were not handled properly. | 
 |       (\PR{15405}) | 
 |  | 
 |       \item If \code{x} is a symbol, \code{is.vector(x, "name")} now | 
 |       returns \code{TRUE}, since \code{"name"} and \code{"symbol"} | 
 |       should be synonyms.  (Reported by Hervé Pagès.) | 
 |  | 
 |       \item \command{R CMD rtags} works on platforms (such as OS X) | 
 |       with a XSI-conformant shell command \command{echo}. (\PR{15231}) | 
 |  | 
 |       \item \code{is.unsorted(NA)} returns false as documented (rather than | 
 |       \code{NA}). | 
 |  | 
 |       \item \command{R CMD LINK} did not know about sub-architectures. | 
 |  | 
 |       \item \code{system()} and \code{system2()} are better protected | 
 |       against users who misguidedly have spaces in the temporary | 
 |       directory path. | 
 |  | 
 |       \item \code{file.show()} and \code{edit()} are now more likely to | 
 |       work on file paths containing spaces.  (Where external utilities | 
 |       are used, not the norm on Windows nor in \command{R.app} which | 
 |       should previously have worked.) | 
 |  | 
 |       \item Packages using the \pkg{methods} package are more likely to | 
 |       work when they import it but it is not attached.  (Several parts | 
 |       of its C code were looking for its \R functions on the search path | 
 |       rather than in its namespace.) | 
 |  | 
 |       \item \code{lgamma(-x)} is no longer \code{NaN} for very small x. | 
 |  | 
 |       \item (Windows) \code{system2()} now respects specifying | 
 |       \code{stdout} and \code{stderr} as files if called from | 
 |       \command{Rgui}. (\PR{15393}) | 
 |  | 
 |       \item Closing an \code{x11()} device whilst \code{locator()} or | 
 |       \code{identify()} is in progress no longer hangs \R.  (\PR{15253}) | 
 |  | 
 |       \item \code{list.dirs(full.names = FALSE)} was not implemented. | 
 |       (\PR{15170}) | 
 |  | 
 |       \item \code{format()} sometimes added unnecessary spaces. | 
 |       (\PR{15411}) | 
 |  | 
 |       \item \code{all.equal(check.names = FALSE)} would ignore the request | 
 |       to ignore the names and would check them as attributes. | 
 |  | 
 |       \item The symbol set by \code{tools::Rd2txt_options(itemBullet=)} | 
 |       was not respected in some locales. (\PR{15435}) | 
 |  | 
 |       \item \code{mcMap()} was not exported by package | 
 |       \pkg{parallel}. (\PR{15439}) | 
 |  | 
 |       \item \code{plot()} for \code{TukeyHSD} objects did not balance | 
 |       \code{dev.hold()} and \code{dev.flush()} calls on multi-page plots. | 
 |       (\PR{15449}) | 
 |     } | 
 |   } | 
 | } | 
 |  | 
 | \section{\Rlogo CHANGES IN R 3.0.1}{ | 
 |   \subsection{NEW FEATURES}{ | 
 |     \itemize{ | 
 |       \item \code{chooseCRANmirror()} and \code{chooseBioCmirror()} gain | 
 |       an \code{ind} argument (like \code{setRepositories()}). | 
 |  | 
 |       \item \code{mcparallel} has a new argument \code{mc.interactive} | 
 |       which can modify the interactive flag in the child process. The | 
 |       new default is \code{FALSE} which makes child processes | 
 |       non-interactive by default (this prevents lock-ups due to children | 
 |       waiting for interactive input). | 
 |  | 
 |       \item \code{scan()} now warns when end-of-file occurs within | 
 |       a quoted string. | 
 |  | 
 |       \item \code{count.fields()} is now consistent with \code{scan()} | 
 |       in its handling of newlines in quoted strings.  Instead of | 
 |       triggering an error, this results in the current line receiving | 
 |       \code{NA} as the field count, with the next line getting the total | 
 |       count of the two lines. | 
 |  | 
 |       \item The default method of \code{image()} will plot axes of the | 
 |       class of \code{xlim} and \code{ylim} (and hence of \code{x} and | 
 |       \code{y} if there is a suitable \code{range()} method).  Based on | 
 |       a suggestion of Michael Sumner. | 
 |  | 
 |       \item \code{load()} now has a \code{verbose} argument for | 
 |       debugging support, to print the names of objects just before | 
 |       loading them. | 
 |  | 
 |       \item When loading a serialized object encounters a reference to a | 
 |       namespace which cannot be loaded, this is replaced by a reference | 
 |       to the global environment, with a warning. | 
 |  | 
 |       \item \code{pairs()} gains a \code{line.main} option for title placement. | 
 |  | 
 |       \item The remaining instances in which serialization to a raw | 
 |       vector was limited to 2GB have been unlimited on a 64-bit | 
 |       platform, and in most cases serialization to a vector of more than | 
 |       1GB will be substantially faster. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{UTILITIES}{ | 
 |     \itemize{ | 
 |       \item \command{R CMD config} now make use of personal | 
 |       \file{Makevars} files under \file{~/.R} and a site file | 
 |       \file{Makevars.site}, in the same way as \command{R CMD SHLIB} and | 
 |       \command{R CMD INSTALL}.  This makes the utility more useful in | 
 |       package \command{configure} scripts. | 
 |  | 
 |       On Windows finding the personal files may require the environment | 
 |       variable \env{HOME} set. | 
 |  | 
 |       The old behaviour can be obtained with the new options | 
 |       \option{--no-user-files} and \option{--no-site-files}. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{PACKAGE INSTALLATION}{ | 
 |     \itemize{ | 
 |       \item Alternatives to the site and user customization files | 
 |       \file{Makevars.site} and \file{~/.R/Makevars} can be specified | 
 |       \emph{via} the environment variables \env{R_MAKEVARS_SITE} and | 
 |       \env{R_MAKEVARS_USER} respectively.  These can be used to suppress | 
 |       the use of the default files by setting an empty value (where | 
 |       possible) or a non-existent path. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{BUG FIXES}{ | 
 |     \itemize{ | 
 |       \item \code{sys.source()} did not report error locations when | 
 |       \code{keep.source = TRUE}. | 
 |  | 
 |       \item \code{as.POSIXct.numeric} was coercing \code{origin} using | 
 |       the \code{tz} argument and not \code{"GMT"} as documented | 
 |       (\PR{14973}). | 
 |  | 
 |       \item The active binding to assign fields in reference classes | 
 |       has been cleaned up to reduce dependence on the class' package | 
 |       environment, also fixing bug in initializing read-only fields | 
 |       (inspired by a report from Hadley Wickham). | 
 |  | 
 |       \item \code{str(d)} no longer gives an error when \code{names(d)} | 
 |       contain illegal multibyte strings (\PR{15247}). | 
 |  | 
 |       \item Profiling of built-in functions with \code{line.profiling= | 
 |       TRUE} did not record the line from which they were called. | 
 |  | 
 |       \item \code{citation(pkg)} dropped the header and footer specified | 
 |       in the \file{CITATION} file (\PR{15257}). | 
 |  | 
 |       \item Quotes were handled differently when reading the first line | 
 |       and reading the rest, so \code{read.table()} misread some files | 
 |       that contained quote characters (\PR{15245}). | 
 |  | 
 |       \item \code{cat()} with \code{sep} a character vector of length | 
 |       greater than one and more than one argument was using separators | 
 |       inconsistently (\PR{15261}). | 
 |  | 
 |       \item On Windows in \R 3.0.0, \code{savePlot()} failed because of | 
 |       an incorrect check on the argument count. | 
 |  | 
 |       \item \code{unzip(list = TRUE)} returned \code{Names} as a factor | 
 |       and not a character vector (as documented) for the internal method. | 
 |       (Noticed by Sean O'Riordain.) | 
 |  | 
 |       \item \code{contourLines()} now checks more comprehensively for | 
 |       conformance of its \code{x}, \code{y} and \code{z} arguments (it | 
 |       was used incorrectly in package \CRANpkg{R2G2}). | 
 |  | 
 |       \item Saved graphics display lists are \R version-specific. | 
 |       Attempting to load workspaces containing them (or some other | 
 |       version-specific objects) aborted the load in \R 3.0.0 and | 
 |       earlier; now it does a partial load and generates a warning | 
 |       instead. | 
 |  | 
 |       \item In \R 3.0.0, \code{identify()} and \code{locator()} did | 
 |       not record information correctly, so replaying a graph (e.g., by | 
 |       copying it to another device) would fail. (\PR{15271}) | 
 |  | 
 |       \item Calling \code{file.copy()} or \code{dirname()} with the | 
 |       invalid input \code{""} (which was being used in packages, despite | 
 |       not being a file path) could have caused a segfault. | 
 |  | 
 |       \code{dirname("")} is now \code{""} rather than \code{"."} (unless | 
 |       it segfaulted). | 
 |  | 
 |       \item \code{supsmu()} could read/write outside its input vectors | 
 |       for very short inputs (seen in package \CRANpkg{rms} for \code{n = 4}). | 
 |  | 
 |       \item \code{as.dendrogram()}'s \code{hclust} method uses less | 
 |       memory and hence gets considerably faster for large (n ~ 1000) | 
 |       clusterings, thanks to Daniel Müllner. (\PR{15174}) | 
 |  | 
 |       \item The return value when all workers failed from | 
 |       \code{parallel::mclapply(mc.preschedule = TRUE)} was a list of | 
 |       strings and not of error objects.  (Spotted by Karl Forner and | 
 |       Bernd Bischl.) | 
 |  | 
 |       \item In \R 3.0.0, when \code{help()} found multiple pages with | 
 |       the same alias, the HTML display of all the selections was not | 
 |       produced.  (\PR{15282}) | 
 |  | 
 |       \item \code{splinefun(method="monoH.FC")} now produces a | 
 |       function with first argument named \code{x} and allows | 
 |       \code{deriv=3}, as documented. (\PR{15273}) | 
 |  | 
 |       \item \code{summaryRprof()} would only read the first | 
 |       \code{chunksize} lines of an \code{Rprof} file produced with | 
 |       \code{line.profiling=TRUE}. By default, this is the first 100 | 
 |       seconds.  (\PR{15288}) | 
 |  | 
 |       \item \code{lsfit()} produced an incorrect error message when | 
 |       argument \code{x} had more columns than rows or \code{x} had a | 
 |       different number of rows than \code{y}. (Spotted by Renaud Gaujoux.) | 
 |  | 
 |       \item Binary operations on equal length vectors copied the | 
 |       class name from the second operand when the first had no | 
 |       class name, but did not set the object bit. (\PR{15299}) | 
 |  | 
 |       \item The \code{trace()} method for reference generator objects | 
 |       failed after those objects became function definitions. | 
 |  | 
 |       \item \code{write.table()} did not check that factors were | 
 |       constructed correctly, and so caused a segment fault when | 
 |       writing bad ones. (\PR{15300}) | 
 |  | 
 |       \item The internal HTTP server no longer chokes on POST requests | 
 |       without body. It will also pass-through other request types for | 
 |       custom handlers (with the method stored in Request-Method header) | 
 |       instead of failing. | 
 |     } | 
 |   } | 
 | } | 
 |  | 
 | \section{\Rlogo CHANGES IN R 3.0.0}{ | 
 |   \subsection{SIGNIFICANT USER-VISIBLE CHANGES}{ | 
 |     \itemize{ | 
 |       \item Packages need to be (re-)installed under this version | 
 |       (3.0.0) of \R. | 
 |  | 
 |       \item There is a subtle change in behaviour for numeric index | 
 |       values \eqn{2^{31}}{2^31} and larger.  These never used to be | 
 |       legitimate and so were treated as \code{NA}, sometimes with a | 
 |       warning.  They are now legal for long vectors so there is no | 
 |       longer a warning, and \code{x[2^31] <- y} will now extend the | 
 |       vector on a 64-bit platform and give an error on a 32-bit one. | 
 |  | 
 |       \item It is now possible for 64-bit builds to allocate amounts of | 
 |       memory limited only by the OS.  It may be wise to use OS | 
 |       facilities (e.g., \command{ulimit} in a \command{bash} shell, | 
 |       \command{limit} in \command{csh}), to set limits on overall memory | 
 |       consumption of an \R process, particularly in a multi-user | 
 |       environment.  A number of packages need a limit of at least 4GB of | 
 |       virtual memory to load. | 
 |  | 
 |       64-bit Windows builds of \R are by default limited in memory usage | 
 |       to the amount of RAM installed: this limit can be changed by | 
 |       command-line option \option{--max-mem-size} or setting environment | 
 |       variable \env{R_MAX_MEM_SIZE}. | 
 |  | 
 |       \item Negative numbers for colours are consistently an error: | 
 |       previously they were sometimes taken as transparent, sometimes | 
 |       mapped into the current palette and sometimes an error. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{NEW FEATURES}{ | 
 |     \itemize{ | 
 |       \item \code{identical()} has a new argument, | 
 |       \code{ignore.environment}, used when comparing functions (with | 
 |       default \code{FALSE} as before). | 
 |  | 
 |       \item There is a new option, \code{options(CBoundsCheck=)}, which | 
 |       controls how \code{.C()} and \code{.Fortran()} pass arguments to | 
 |       compiled code.  If true (which can be enabled by setting the | 
 |       environment variable \env{R_C_BOUNDS_CHECK} to \samp{yes}), raw, | 
 |       integer, double and complex arguments are always copied, and | 
 |       checked for writing off either end of the array on return from the | 
 |       compiled code (when a second copy is made).  This also checks | 
 |       individual elements of character vectors passed to \code{.C()}. | 
 |  | 
 |       This is not intended for routine use, but can be very helpful in | 
 |       finding segfaults in package code. | 
 |  | 
 |       \item In \code{layout()}, the limits on the grid size have been | 
 |       raised (again). | 
 |  | 
 |       \item New simple \code{provideDimnames()} utility function. | 
 |  | 
 |       \item Where methods for \code{length()} return a double value | 
 |       which is representable as an integer (as often happens for package | 
 |       \CRANpkg{Matrix}), this is converted to an integer. | 
 |  | 
 |       \item Matrix indexing of data frames by two-column numeric indices | 
 |       is now supported for replacement as well as extraction. | 
 |  | 
 |       \item \code{setNames()} now has a default for its \code{object} | 
 |       argument, useful for a character result. | 
 |  | 
 |       \item \code{StructTS()} has a revised additive constant in the | 
 |       \code{loglik} component of the result: the previous definition is | 
 |       returned as the \code{loglik0} component.  However, the help page has | 
 |       always warned of a lack of comparability of log-likelihoods for | 
 |       non-stationary models.  (Suggested by Jouni Helske.) | 
 |  | 
 |       \item The logic in \code{aggregate.formula()} has been revised. | 
 |       It is now possible to use a formula stored in a variable; | 
 |       previously, it had to be given explicitly in the function call. | 
 |  | 
 |       \item \code{install.packages()} has a new argument \code{quiet} to | 
 |       reduce the amount of output shown. | 
 |  | 
 |       \item Setting an element of the graphics argument \code{lwd} to a | 
 |       negative or infinite value is now an error.  Lines corresponding | 
 |       to elements with values \code{NA} or \code{NaN} are silently | 
 |       omitted. | 
 |  | 
 |       Previously the behaviour was device-dependent. | 
 |  | 
 |       \item Setting graphical parameters \code{cex}, \code{col}, | 
 |       \code{lty}, \code{lwd} and \code{pch} in \code{par()} now requires a | 
 |       length-one argument.   Previously some silently took the first | 
 |       element of a longer vector, but not always when documented to do so. | 
 |  | 
 |       \item \code{Sys.which()} when used with inputs which would be | 
 |       unsafe in a shell (e.g., absolute paths containing spaces) now uses | 
 |       appropriate quoting. | 
 |  | 
 |       \item \code{as.tclObj()} has been extended to handle raw vectors. | 
 |       Previously, it only worked in the other direction. | 
 |       (Contributed by Charlie Friedemann, \PR{14939}.) | 
 |  | 
 |       \item New functions \code{cite()} and \code{citeNatbib()} have | 
 |       been added, to allow generation of in-text citations from | 
 |       \code{"bibentry"} objects.  A \code{cite()} function may be added | 
 |       to \code{bibstyle()} environments. | 
 |  | 
 |       \item A \code{sort()} method has been added for \code{"bibentry"} | 
 |       objects. | 
 |  | 
 |       \item The \code{bibstyle()} function now defaults to setting the | 
 |       default bibliography style. The \code{getBibstyle()} function | 
 |       has been added to report the name of the current default style. | 
 |  | 
 |       \item \code{scatter.smooth()} now has an argument \code{lpars} to | 
 |       pass arguments to \code{lines()}. | 
 |  | 
 |       \item \code{pairs()} has a new \code{log} argument, to allow some | 
 |       or all variables to be plotted on logarithmic scale. | 
 |       (In part, wish of \PR{14919}.) | 
 |  | 
 |       \item \code{split()} gains a \code{sep} argument. | 
 |  | 
 |       \item \code{termplot()} does a better job when given a model with | 
 |       interactions (and no longer attempts to plot interaction terms). | 
 |  | 
 |       \item The parser now incorporates code from Romain Francois' | 
 |       \CRANpkg{parser} package, to support more detailed computation on | 
 |       the code, such as syntax highlighting, comment-based | 
 |       documentation, etc.  Functions \code{getParseData()} and | 
 |       \code{getParseText()} access the data. | 
 |  | 
 |       \item There is a new function \code{rep_len()} analogous to | 
 |       \code{rep.int()} for when speed is required (and names are not). | 
 |  | 
 |       \item The undocumented use \code{rep(NULL, length.out = n)} for | 
 |       \code{n > 0} (which returns \code{NULL}) now gives a warning. | 
 |  | 
 |       \item \code{demo()} gains an \code{encoding} argument for those | 
 |       packages with non-ASCII demos: it defaults to the package encoding | 
 |       where there is one. | 
 |  | 
 |       \item \code{strwrap()} converts inputs with a marked encoding to | 
 |       the current locale: previously it made some attempt to pass | 
 |       through as bytes inputs invalid in the current locale. | 
 |  | 
 |       \item Specifying both \code{rate} and \code{scale} to | 
 |       \code{[dpqr]gamma} is a warning (if they are essentially the same | 
 |       value) or an error. | 
 |  | 
 |       \item \code{merge()} works in more cases where the data frames | 
 |       include matrices.  (Wish of \PR{14974}.) | 
 |  | 
 |       \item \code{optimize()} and \code{uniroot()} no longer use a | 
 |       shared parameter object across calls.  (\code{nlm()}, | 
 |       \code{nlminb()} and \code{optim()} with numerical derivatives | 
 |       still do, as documented.) | 
 |  | 
 |       \item The \code{all.equal()} method for date-times is now | 
 |       documented: times are regarded as equal (by default) if they | 
 |       differ by up to 1 msec. | 
 |  | 
 |       \item \code{duplicated()} and \code{unique()} gain a \code{nmax} | 
 |       argument which can be used to make them much more efficient when | 
 |       it is known that there are only a small number of unique entries. | 
 |       This is done automatically for factors. | 
 |  | 
 |       \item Functions \code{rbinom()}, \code{rgeom()}, \code{rhyper()}, | 
 |       \code{rpois()}, \code{rnbinom(),} \code{rsignrank()} and | 
 |       \code{rwilcox()} now return integer (not double) vectors.  This | 
 |       halves the storage requirements for large simulations. | 
 |  | 
 |       \item \code{sort()}, \code{sort.int()} and \code{sort.list()} now | 
 |       use radix sorting for factors of less than 100,000 levels when | 
 |       \code{method} is not supplied.  So does \code{order()} if called | 
 |       with a single factor, unless \code{na.last = NA}. | 
 |  | 
 |       \item \code{diag()} as used to generate a diagonal matrix has been | 
 |       re-written in C for speed and less memory usage.  It now forces | 
 |       the result to be numeric in the case \code{diag(x)} since it is | 
 |       said to have \sQuote{zero off-diagonal entries}. | 
 |  | 
 |       \item \code{backsolve()} (and \code{forwardsolve()}) are now | 
 |       internal functions, for speed and support for large matrices. | 
 |  | 
 |       \item More matrix algebra functions (e.g., \code{chol()} and | 
 |       \code{solve()}) accept logical matrices (and coerce to numeric). | 
 |  | 
 |       \item \code{sample.int()} has some support for  \eqn{n \ge | 
 | 	2^{31}}{n >= 2^31}: see its help for the limitations. | 
 |  | 
 |       A different algorithm is used for \code{(n, size, replace = FALSE, | 
 | 	prob = NULL)} for \code{n > 1e7} and \code{size <= n/2}.  This | 
 |       is much faster and uses less memory, but does give different results. | 
 |  | 
 |       \item \code{approxfun()} and \code{splinefun()} now return a | 
 |       wrapper to an internal function in the \pkg{stats} namespace | 
 |       rather than a \code{.C()} or \code{.Call()} call.  This is more | 
 |       likely to work if the function is saved and used in a different | 
 |       session. | 
 |  | 
 |       \item The functions \code{.C()}, \code{.Call()}, | 
 |       \code{.External()} and \code{.Fortran()} now give an error (rather | 
 |       than a warning) if called with a named first argument. | 
 |  | 
 |       \item \code{Sweave()} by default now reports the locations in | 
 |       the source file(s) of each chunk. | 
 |  | 
 |       \item \code{clearPushBack()} is now a documented interface to a | 
 |       long-existing internal call. | 
 |  | 
 |       \item \code{aspell()} gains filters for \R code, Debian Control | 
 |       Format and message catalog files, and support for \R level | 
 |       dictionaries.  In addition, package \pkg{utils} now provides | 
 |       functions \code{aspell_package_R_files()} and | 
 |       \code{aspell_package_C_files()} for spell checking \R and C level | 
 |       message strings in packages. | 
 |  | 
 |       \item \code{bibentry()} gains some support for \dQuote{incomplete} | 
 |       entries with a \samp{crossref} field. | 
 |  | 
 |       \item \code{gray()} and \code{gray.colors()} finally allow | 
 |       \code{alpha} to be specified. | 
 |  | 
 |       \item \code{monthplot()} gains parameters to control the look of | 
 |       the reference lines.  (Suggestion of Ian McLeod.) | 
 |  | 
 |       \item Added support for new \code{\%~\%} relation | 
 |       (\dQuote{is distributed as}) in plotmath. | 
 |  | 
 |       \item \code{domain = NA} is accepted by \code{gettext()} and | 
 |       \code{ngettext()}, analogously to \code{stop()} etc. | 
 |  | 
 |       \item \code{termplot()} gains a new argument \code{plot = FALSE} | 
 |       which returns information to allow the plots to be modified for | 
 |       use as part of other plots, but does not plot them. | 
 |       (Contributed by Terry Therneau, \PR{15076}.) | 
 |  | 
 |       \item \code{quartz.save()}, formerly an undocumented part of | 
 |       \command{R.app}, is now available to copy a device to a | 
 |       \code{quartz()} device.  \code{dev.copy2pdf()} optionally does | 
 |       this for PDF output: \code{quartz.save()} defaults to PNG. | 
 |  | 
 |       \item The default method of \code{pairs()} now allows | 
 |       \code{text.panel = NULL} and the use of \code{<foo>.panel = NULL} | 
 |       is now documented. | 
 |  | 
 |       \item \code{setRefClass()} and \code{getRefClass()} now return | 
 |       class generator functions, similar to \code{setClass()}, but | 
 |       still with the reference fields and methods as before | 
 |       (suggestion of Romain Francois). | 
 |  | 
 |       \item New functions \code{bitwNot()}, \code{bitwAnd()}, | 
 |       \code{bitwOr()} and \code{bitwXor()}, using the internal | 
 |       interfaces previously used for classes \code{"octmode"} and | 
 |       \code{"hexmode"}. | 
 |  | 
 |       Also \code{bitwShiftL()} and \code{bitwShiftR()} for shifting bits | 
 |       in elements of integer vectors. | 
 |  | 
 |       \item New option \code{"deparse.cutoff"} to control the deparsing | 
 |       of language objects such as calls and formulae when printing. | 
 |       (Suggested by a comment of Sarah Goslee.) | 
 |  | 
 |       \item \code{colors()} gains an argument \code{distinct}. | 
 |  | 
 |       \item New \code{demo(colors)} and \code{demo(hclColors)}, with | 
 |       utility functions. | 
 |  | 
 |       \item \code{list.files()} (aka \code{dir()}) gains a new optional | 
 |       argument \code{no..} which allows to exclude \code{"."} and | 
 |       \code{".."} from listings. | 
 |  | 
 |       \item Multiple time series are also of class \code{"matrix"}; | 
 |       consequently, \code{head()}, e.g., is more useful. | 
 |  | 
 |       \item \code{encodeString()} preserves UTF-8 marked encodings. | 
 |       Thus if factor levels are marked as UTF-8 an attempt is made to | 
 |       print them in UTF-8 in \command{RGui} on Windows. | 
 |  | 
 |       \item \code{readLines()} and \code{scan()} (and hence | 
 |       \code{read.table()}) in a UTF-8 locale now discard a UTF-8 | 
 |       byte-order-mark (BOM).  Such BOMs are allowed but not recommended | 
 |       by the Unicode Standard: however Microsoft applications can | 
 |       produce them and so they are sometimes found on websites. | 
 |  | 
 |       The encoding name \code{"UTF-8-BOM"} for a connection will | 
 |       ensure that a UTF-8 BOM is discarded. | 
 |  | 
 |       \item \code{mapply(FUN, a1, ..)} now also works when \code{a1} (or | 
 |       a further such argument) needs a \code{length()} method (which the | 
 |       documented arguments never do).  (Requested by Hervé Pagès; with a | 
 |       patch.) | 
 |  | 
 |       \item \code{.onDetach()} is supported as an alternative to | 
 |       \code{.Last.lib}.  Unlike \code{.Last.lib}, this does not need to | 
 |       be exported from the package's namespace. | 
 |  | 
 |       \item The \code{srcfile} argument to \code{parse()} may now be a | 
 |       character string, to be used in error messages. | 
 |  | 
 |       \item The \code{format()} method for \code{ftable} objects gains | 
 |       a \code{method} argument, propagated to \code{write.ftable()} and | 
 |       \code{print()}, allowing more compact output, notably for LaTeX | 
 |       formatting, thanks to Marius Hofert. | 
 |  | 
 |       \item The \code{utils::process.events()} function has been added | 
 |       to trigger immediate event handling. | 
 |  | 
 |       \item \code{Sys.which()} now returns \code{NA} (not \code{""}) for | 
 |       \code{NA} inputs (related to \PR{15147}). | 
 |  | 
 |       \item The \code{print()} method for class \code{"htest"} gives | 
 |       fewer trailing spaces (wish of \PR{15124}). | 
 |  | 
 |       Also print output from \code{HoltWinters()}, \code{nls()} and others. | 
 |  | 
 |       \item \code{loadNamespace()} allows a version specification to be | 
 |       given, and this is used to check version specifications given in | 
 |       the \samp{Imports} field when a namespace is loaded. | 
 |  | 
 |       \item \code{setClass()} has a new argument, \code{slots}, clearer | 
 |       and less ambiguous than \code{representation}.  It is recommended | 
 |       for future code, but should be back-compatible.  At the same time, | 
 |       the allowed slot specification is slightly more general.  See the | 
 |       documentation for details. | 
 |  | 
 |       \item \code{mget()} now has a default for \code{envir} (the frame | 
 |       from which it is called), for consistency with \code{get()} and | 
 |       \code{assign()}. | 
 |  | 
 |       \item \code{close()} now returns an integer status where available, | 
 |       invisibly. (Wish of \PR{15088}.) | 
 |  | 
 |       \item The internal method of \code{tar()} can now store paths too | 
 |       long for the \samp{ustar} format, using the (widely supported) GNU | 
 |       extension.  It can also store long link names, but these are much | 
 |       less widely supported.  There is support for larger files, up to | 
 |       the \samp{ustar} limit of 8GB. | 
 |  | 
 |       \item Local reference classes have been added to package | 
 |       \pkg{methods}.  These are a technique for avoiding unneeded | 
 |       copying of large components of objects while retaining standard \R | 
 |       functional behavior.  See \code{?LocalReferenceClasses}. | 
 |  | 
 |       \item \code{untar()} has a new argument \code{restore_times} which | 
 |       if false (not the default) discards the times in the tarball. | 
 |       This is useful if they are incorrect (some tarballs submitted to | 
 |       \acronym{CRAN} have times in a local time zone or many years in the | 
 |       past even though the standard required them to be in UTC). | 
 |  | 
 |       \item \code{replayplot()} cannot (and will not attempt to) replay | 
 |       plots recorded under \R < 3.0.0.  It may crash the \R session if | 
 |       an attempt is made to replay plots created in a different build of | 
 |       \R >= 3.0.0. | 
 |  | 
 |       \item Palette changes get recorded on the display list, so | 
 |       replaying plots (including when resizing screen devices and using | 
 |       \code{dev.copy()}) will work better when the palette is changed | 
 |       during a plot. | 
 |  | 
 |       \item \code{chol(pivot = TRUE)} now defaults to LAPACK, not LINPACK. | 
 |  | 
 |       \item The \code{parse()} function has a new parameter | 
 |       \code{keep.source}, which defaults to \code{options("keep.source")}. | 
 |  | 
 |       \item Profiling \emph{via} \code{Rprof()} now optionally records | 
 |       information at the statement level, not just the function level. | 
 |  | 
 |       \item The \code{Rprof()} function now quotes function names in | 
 |       in its output file on Windows, to be consistent with the quoting | 
 |       in Unix. | 
 |  | 
 |       \item Profiling \emph{via} \code{Rprof()} now optionally records | 
 |       information about time spent in GC. | 
 |  | 
 |       \item The HTML help page for a package now displays non-vignette | 
 |       documentation files in a more accessible format. | 
 |  | 
 |       \item To support \code{options(stringsAsFactors = FALSE)}, | 
 |       \code{model.frame()}, \code{model.matrix()} and | 
 |       \code{replications()} now automatically convert character | 
 |       vectors to factors without a warning. | 
 |  | 
 |       \item The \code{print} method for objects of class \code{"table"} | 
 |       now detects tables with 0-extents and prints the results as, e.g., | 
 |       \samp{< table of extent 0 x 1 x 2 >}. (Wish of \PR{15198}.) | 
 |  | 
 |       \item Deparsing involving calls to anonymous functions has been | 
 |       made closer to reversible by the addition of extra parentheses. | 
 |  | 
 |       \item The function \code{utils::packageName()} has been added as | 
 |       a lightweight version of \code{methods::getPackageName()}. | 
 |  | 
 |       \item \code{find.package(lib.loc = NULL)} now treats loaded | 
 |       namespaces preferentially in the same way as attached packages | 
 |       have been for a long time. | 
 |  | 
 |       \item In Windows, the Change Directory dialog now defaults to | 
 |       the current working directory, rather than to the last directory | 
 |       chosen in that dialog. | 
 |  | 
 |       \item \code{available.packages()} gains a | 
 |       \code{"license/restricts_use"} filter which retains only packages | 
 |       for which installation can proceed solely based on packages which | 
 |       are guaranteed not to restrict use. | 
 |  | 
 |       \item New \code{check_packages_in_dir()} function in package | 
 |       \pkg{tools} for conveniently checking source packages along with | 
 |       their reverse dependencies. | 
 |  | 
 |       \item R's completion mechanism has been improved to handle help | 
 |       requests (starting with a question mark).  In particular, help | 
 |       prefixes are now supported, as well as quoted help topics.  To | 
 |       support this, completion inside quotes are now handled by R by | 
 |       default on all platforms. | 
 |  | 
 |       \item The memory manager now allows the strategy used to balance | 
 |       garbage collection and memory growth to be controlled by setting | 
 |       the environment variable \env{R_GC_MEM_GROW}. See \code{?Memory} | 
 |       for more details. | 
 |  | 
 |       \item (\sQuote{For experts only}, as the introductory manual | 
 |       says.)  The use of environment variables \env{R_NSIZE} and | 
 |       \env{R_VSIZE} to control the initial (= minimum) garbage | 
 |       collection trigger for number of cons cels and size of heap has | 
 |       been restored: they can be overridden by the command-line options | 
 |       \code{--min-nsize} and \code{--min-vsize}; see \code{?Memory}. | 
 |  | 
 |       \item On Windows, the device name for bitmap devices as reported | 
 |       by \code{.Device} and \code{.Devices} no longer includes the file | 
 |       name.   This is for consistency with other platforms and was | 
 |       requested by the \CRANpkg{lattice} maintainer. | 
 |  | 
 |       \code{win.metafile()} still uses the file name: the exact form is | 
 |       used by package \CRANpkg{tkrplot}. | 
 |  | 
 |       \item \code{set.seed(NULL)} re-initializes \code{.Random.seed} as | 
 |       done at the beginning of the session if not already set. | 
 |       (Suggestion of Bill Dunlap.) | 
 |  | 
 |       \item The \code{breaks} argument in \code{hist.default()} can now be | 
 |       a function that returns the breakpoints to be used (previously it | 
 |       could only return the suggested number of breakpoints). | 
 |  | 
 |       \item File \file{share/licenses/licenses.db} has some | 
 |       clarifications, especially as to which variants of \sQuote{BSD} | 
 |       and \sQuote{MIT} is intended and how to apply them to packages. | 
 |       The problematic licence \sQuote{Artistic-1.0} has been removed. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{LONG VECTORS}{ | 
 |     This section applies only to 64-bit platforms. | 
 |     \itemize{ | 
 |       \item There is support for vectors longer than \eqn{2^{31}-1}{2^31 | 
 |       - 1} elements.  This applies to raw, logical, integer, double, | 
 |       complex and character vectors, as well as lists.  (Elements of | 
 |       character vectors remain limited to \eqn{2^{31}-1}{2^31 - 1} | 
 |       bytes.) | 
 |  | 
 |       \item Most operations which can sensibly be done with long vectors | 
 |       work: others may return the error \sQuote{long vectors not | 
 |       supported yet}.  Most of these are because they explicitly work | 
 |       with integer indices (e.g., \code{anyDuplicated()} and | 
 |       \code{match()}) or because other limits (e.g., of character strings | 
 |       or matrix dimensions) would be exceeded or the operations would be | 
 |       extremely slow. | 
 |  | 
 |       \item \code{length()} returns a double for long vectors, and | 
 |       lengths can be set to \eqn{2^{31}}{2^31} or more by the | 
 |       replacement function with a double value. | 
 |  | 
 |       \item Most aspects of indexing are available.  Generally | 
 |       double-valued indices can be used to access elements beyond | 
 |       \eqn{2^{31}-1}{2^31 - 1}. | 
 |  | 
 |       \item There is some support for matrices and arrays with each | 
 |       dimension less than \eqn{2^{31}}{2^31} but total number of | 
 |       elements more than that.  Only some aspects of matrix algebra work | 
 |       for such matrices, often taking a very long time.  In other cases | 
 |       the underlying Fortran code has an unstated restriction (as was | 
 |       found for complex \code{svd()}). | 
 |  | 
 |       \item \code{dist()} can produce dissimilarity objects for more | 
 |       than 65536 rows (but for example \code{hclust()} cannot process | 
 |       such objects). | 
 |  | 
 |       \item \code{serialize()} to a raw vector is unlimited in size | 
 |       (except by resources). | 
 |  | 
 |       \item The C-level function \code{R_alloc} can now allocate | 
 |       \eqn{2^{35}}{2^35} or more bytes. | 
 |  | 
 |       \item \code{agrep()} and \code{grep()} will return double vectors | 
 |       of indices for long vector inputs. | 
 |  | 
 |       \item Many calls to \code{.C()} have been replaced by | 
 |       \code{.Call()} to allow long vectors to be supported (now or in | 
 |       the future).  Regrettably several packages had copied the non-API | 
 |       \code{.C()} calls and so failed. | 
 |  | 
 |       \item \code{.C()} and \code{.Fortran()} do not accept long vector | 
 |       inputs.  This is a precaution as it is very unlikely that existing | 
 |       code will have been written to handle long vectors (and the \R | 
 |       wrappers often assume that \code{length(x)} is an integer). | 
 |  | 
 |       \item Most of the methods for \code{sort()} work for long vectors. | 
 |  | 
 |       \code{rank()}, \code{sort.list()} and \code{order()} support | 
 |       long vectors (slowly except for radix sorting). | 
 |  | 
 |       \item \code{sample()} can do uniform sampling from a long vector. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{PERFORMANCE IMPROVEMENTS}{ | 
 |     \itemize{ | 
 |       \item More use has been made of \R objects representing registered | 
 |       entry points, which is more efficient as the address is provided | 
 |       by the loader once only when the package is loaded. | 
 |  | 
 |       This has been done for packages \code{base}, \code{methods}, | 
 |       \code{splines} and \code{tcltk}: it was already in place for the | 
 |       other standard packages. | 
 |  | 
 |       Since these entry points are always accessed by the \R entry | 
 |       points they do not need to be in the load table which can be | 
 |       substantially smaller and hence searched faster.  This does mean | 
 |       that \code{.C} / \code{.Fortran} / \code{.Call} calls copied from | 
 |       earlier versions of \R may no longer work -- but they were never | 
 |       part of the API. | 
 |  | 
 |       \item Many \code{.Call()} calls in package \pkg{base} have been | 
 |       migrated to \code{.Internal()} calls. | 
 |  | 
 |       \item \code{solve()} makes fewer copies, especially when \code{b} | 
 |       is a vector rather than a matrix. | 
 |  | 
 |       \item \code{eigen()} makes fewer copies if the input has dimnames. | 
 |  | 
 |       \item Most of the linear algebra functions make fewer copies when | 
 |       the input(s) are not double (e.g., integer or logical). | 
 |  | 
 |       \item A foreign function call (\code{.C()} etc) in a package | 
 |       without a \code{PACKAGE} argument will only look in the first DLL | 
 |       specified in the \file{NAMESPACE} file of the package rather than | 
 |       searching all loaded DLLs.  A few packages needed \code{PACKAGE} | 
 |       arguments added. | 
 |  | 
 |       \item The \code{@<-} operator is now implemented as a primitive, | 
 |       which should reduce some copying of objects when used.  Note that | 
 |       the operator object must now be in package \pkg{base}: do not try | 
 |       to import it explicitly from package \pkg{methods}. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{PACKAGE INSTALLATION}{ | 
 |     \itemize{ | 
 |       \item The transitional support for installing packages without | 
 |       namespaces (required since \R 2.14.0) has been removed. | 
 |       \command{R CMD build} will still add a namespace, but a | 
 |       \code{.First.lib()} function will need to be converted. | 
 |  | 
 |       \command{R CMD INSTALL} no longer adds a namespace (so | 
 |       installation will fail), and a \code{.First.lib()} function in a | 
 |       package will be ignored (with an installation warning for now). | 
 |  | 
 |       As an exception, packages without a \file{R} directory and no | 
 |       \file{NAMESPACE} file can still be installed. | 
 |  | 
 |       \item Packages can specify in their \file{DESCRIPTION file} a line | 
 |       like \preformatted{     Biarch: yes | 
 | } | 
 |       to be installed on Windows with \option{--force-biarch}. | 
 |  | 
 |       \item Package vignettes can now be processed by other engines | 
 |       besides \code{Sweave}; see \sQuote{Writing R Extensions} and the | 
 |       \code{tools::vignetteEngine} help topic for details. | 
 |  | 
 |       \item The \file{*.R} tangled source code for vignettes is now | 
 |       included in tarballs when \command{R CMD build} is used to produce | 
 |       them.  In \R 3.0.0, \file{*.R} files not in the sources will be | 
 |       produced at install time, but eventually this will be dropped. | 
 |  | 
 |       \item The package type \code{"mac.binary"} now looks in a path in | 
 |       the repository without any Mac subtype (which used to be | 
 |       \samp{universal} or \samp{leopard}): it looks in | 
 |       \file{bin/macosx/contrib/3.0} rather than | 
 |       \file{bin/macosx/leopard/contrib/2.15}).  This is the type used | 
 |       for the \acronym{CRAN} binary distribution for OS X as from \R | 
 |       3.0.0. | 
 |  | 
 |       \item File \file{etc/Makeconf} makes more use of the macros | 
 |       \code{$(CC)}, \code{$(CXX)}, \code{$(F77)} and \code{$(FC)}, so | 
 |       the compiler in use can be changed by setting just these (and if | 
 |       necessary the corresponding flags and \code{FLIBS}) in file | 
 |       \file{~/.R/Makevars}. | 
 |  | 
 |       This is convenient for those working with binary distributions of | 
 |       \R, e.g.\sspace{}on OS X. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{UTILITIES}{ | 
 |     \itemize{ | 
 |       \item \command{R CMD check} now gives a warning rather than a | 
 |       note if it finds calls to \code{abort}, \code{assert} or | 
 |       \code{exit} in compiled code, and has been able to find the | 
 |       \file{.o} file in which the calls occur. | 
 |  | 
 |       Such calls can terminate the \R process which loads the package. | 
 |  | 
 |       \item The location of the build and check environment files can | 
 |       now be specified by the environment variables | 
 |       \env{R_BUILD_ENVIRON} and \env{R_CHECK_ENVIRON}, respectively. | 
 |  | 
 |       \item \command{R CMD Sweave} gains a \option{--compact} option | 
 |       to control possibly reducing the size of the PDF file it creates | 
 |       when \option{--pdf} is given. | 
 |  | 
 |       \item \command{R CMD build} now omits Eclipse's \file{.metadata} | 
 |       directories, and \command{R CMD check} warns if it finds them. | 
 |  | 
 |       \item \command{R CMD check} now does some checks on functions | 
 |       defined within reference classes, including of \code{.Call()} etc | 
 |       calls. | 
 |  | 
 |       \item \command{R CMD check --as-cran} notes assignments to the | 
 |       global environment, calls to \code{data()} which load into the | 
 |       global environment, and calls to \code{attach()}. | 
 |  | 
 |       \item \command{R CMD build} by default uses the internal method of | 
 |       \code{tar()} to prepare the tarball.  This is more likely to | 
 |       produce a tarball compatible with \command{R CMD INSTALL} and | 
 |       \command{R CMD check}: an external \command{tar} program, | 
 |       including options, can be specified \emph{via} the environment | 
 |       variable \env{R_BUILD_TAR}. | 
 |  | 
 |       \item \code{tools::massageExamples()} is better protected against | 
 |       packages which re-define base functions such as \code{cat()} and | 
 |       \code{get()} and so can cause \command{R CMD check} to fail when | 
 |       checking examples. | 
 |  | 
 |       \item \command{R CMD javareconf} has been enhanced to be more | 
 |       similar to the code used by \command{configure}. | 
 |  | 
 |       There is now a test that a JNI program can be compiled (like | 
 |       \command{configure} did) and only working settings are used. | 
 |  | 
 |       It makes use of custom settings from configuration recorded in | 
 |       \file{etc/javaconf}. | 
 |  | 
 |       \item The \option{--no-vignettes} argument of \command{R CMD | 
 | 	build} has been renamed to the more accurate | 
 |       \option{--no-build-vignettes}: its action has always been to | 
 |       (re)build vignettes and never omitted them. | 
 |  | 
 |       \command{R CMD check} accepts \option{--no-build-vignettes} as a | 
 |       preferred synonym for \option{--no-rebuild-vignettes}. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{DEPRECATED AND DEFUNCT}{ | 
 |     \itemize{ | 
 |       \item The \code{ENCODING} argument to \code{.C()} is defunct. | 
 |       Use \code{iconv()} instead. | 
 |  | 
 |       \item The \code{.Internal(eval.with.vis)} non-API function has | 
 |       been removed. | 
 |  | 
 |       \item Support for the converters for use with \code{.C()} has been | 
 |       removed, including the oft misused non-API header | 
 |       \file{R_ext/RConverters.h}. | 
 |  | 
 |       \item The previously deprecated uses of \code{array()} with a | 
 |       0-length \code{dim} argument and \code{tapply()} with a 0-length | 
 |       \code{INDEX} list are now errors. | 
 |  | 
 |       \item \samp{Translation} packages are defunct. | 
 |  | 
 |       \item Calling \code{rep()} or \code{rep.int()} on a pairlist or | 
 |       other non-vector object is now an error. | 
 |  | 
 |       \item Several non-API entry points have been transferred to | 
 |       packages (e.g., \code{R_zeroin2}) or replaced by different non-API | 
 |       entry points (e.g., \code{R_tabulate}). | 
 |  | 
 |       \item The \sQuote{internal} graphics device invoked by | 
 |       \code{.Call("R_GD_nullDevice", package = "grDevices")} has | 
 |       been removed: use \code{pdf(file = NULL)} instead. | 
 |  | 
 |       \item The \code{.Fortran()} entry point \code{"dqrls"} which has | 
 |       not been used by \R since version 2.15.1 is no longer available. | 
 |  | 
 |       \item Functions \code{traceOn()} and \code{traceOff()} in package | 
 |       \pkg{methods} are now defunct. | 
 |  | 
 |       \item Function \code{CRAN.packages()} is finally defunct. | 
 |  | 
 |       \item Use of \code{col2rgb(0)} is defunct: use \code{par("bg")} or | 
 |       \code{NA} instead. | 
 |  | 
 |       \item The long-defunct functions \code{Rd_parse()}, | 
 |       \code{anovalist.lm()}, \code{categpry()}, \code{clearNames()}, | 
 |       \code{gammaCody()}, \code{glm.fit.null()}, \code{lm.fit.null()}, | 
 |       \code{lm.wfit.null()}, \code{manglePackageNames()}, | 
 |       \code{mauchley.test()}, \code{package.contents()}, | 
 |       \code{print.coefmat()}, \code{reshapeLong()}, | 
 |       \code{reshapeWide()}, \code{tkclose()}, \code{tkcmd()}, | 
 |       \code{tkfile.dir()}, \code{tkfile.tail()}, \code{tkopen()}, | 
 |       \code{tkputs()}, \code{tkread()}, \code{trySilent()} and | 
 |       \code{zip.file.extract()} have been removed entirely (but are | 
 |       still documented in the help system). | 
 |  | 
 |       \item The unused \code{dataPath} argument to | 
 |       \code{attachNamespace()} has been removed. | 
 |  | 
 |       \item \code{grid.prompt()} has been removed: use | 
 |       \code{devAskNewPage()} instead. | 
 |  | 
 |       \item The long-deprecated \code{intensities} component is no | 
 |       longer returned by \code{hist()}. | 
 |  | 
 |       \item \code{mean()} for data frames and \code{sd()} for data | 
 |       frames and matrices are defunct. | 
 |  | 
 |       \item \code{chol(pivot = FALSE, LINPACK = TRUE)}, | 
 |       \code{ch2inv(LINPACK = TRUE)}, \code{eigen(EISPACK = TRUE)}, | 
 |       \code{solve(LINPACK = TRUE)} and \code{svd(LINPACK = TRUE)} are | 
 |       defunct: LAPACK will be used, with a warning. | 
 |  | 
 |       \item The \code{keep.source} argument to \code{library()} and | 
 |       \code{require()} is defunct.  This option needs to be set | 
 |       at install time. | 
 |  | 
 |       \item Documentation for \code{real()}, \code{as.real()} and | 
 |       \code{is.real()} has been moved to \sQuote{defunct} and the | 
 |       functions removed. | 
 |  | 
 |       \item The \code{maxRasters} argument of \code{pdf()} (unused since | 
 |       \R 2.14.0) has been removed. | 
 |  | 
 |       \item The unused \code{fontsmooth} argument has been removed from | 
 |       the \code{quartz()} device. | 
 |  | 
 |       \item All the (non-API) EISPACK entry points in \R have been removed. | 
 |  | 
 |       \item \code{chol(pivot = TRUE, LINPACK = TRUE)} is deprecated. | 
 |  | 
 |       \item The long-deprecated use of \code{\\synopsis} in the | 
 |       \samp{Usage} section of \file{.Rd} files will be removed in \R | 
 |       3.1.0. | 
 |  | 
 |       \item \code{.find.package()} and \code{.path.package()} are | 
 |       deprecated: only the public versions without the dot have ever | 
 |       been in the API. | 
 |  | 
 |       \item In a package's \file{DESCRIPTION} file, \preformatted{    License: X11} | 
 |       is deprecated, since it includes | 
 |       \sQuote{Copyright (C) 1996 X Consortium} which cannot be | 
 |       appropriate for a current \R package.  Use \sQuote{MIT} or | 
 |       \sQuote{BSD_2_clause} instead. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{CODE MIGRATION}{ | 
 |     \itemize{ | 
 |       \item The C code underlying base graphics has been migrated to the | 
 |       \pkg{graphics} package (and hence no longer uses | 
 |       \code{.Internal()} calls). | 
 |  | 
 |       \item Most of the \code{.Internal()} calls used in the \pkg{stats} | 
 |       package have been migrated to C code in that package. | 
 |  | 
 |       This means that a number of \code{.Internal()} calls which have | 
 |       been used by packages no longer exist, including | 
 |       \code{.Internal(cor)} \code{.Internal(cov)}, | 
 |       \code{.Internal(optimhess)} and \code{.Internal(update.formula)}. | 
 |  | 
 |       \item Some \code{.External()} calls to the \code{base} package | 
 |       (really to the \R executable or shared library) have been moved to | 
 |       more appropriate packages.  Packages should not have been using | 
 |       such calls, but some did (mainly those used by \code{integrate()}). | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{PACKAGE parallel}{ | 
 |     \itemize{ | 
 |       \item There is a new function \code{mcaffinity()} which allows | 
 |       getting or setting the CPU affinity mask for the current \R process on | 
 |       systems that supports this (currently only Linux has been tested | 
 |       successfully).  It has no effect on systems which do not support | 
 |       process affinity.  Users are not expected to use this function | 
 |       directly (with the exception of fixing libraries that break | 
 |       affinity settings like OpenBLAS) -- the function is rather | 
 |       intended to support affinity control in high-level parallel | 
 |       functions.  In the future, \R may supplement lack of affinity | 
 |       control in the OS by its own bookkeeping \emph{via} \code{mcaffinity()} | 
 |       related to processes and threads it spawns. | 
 |  | 
 |       \item \code{mcparallel()} has a new argument \code{mc.affinity} | 
 |       which attempts to set the affinity of the child process according | 
 |       to the specification contained therein. | 
 |  | 
 |       \item The port used by socket clusters is chosen randomly: this | 
 |       should help to avoid clashes observed when two users of a | 
 |       multi-user machine try to create a cluster at the same time.  To | 
 |       reproduce the previous behaviour set environment variable | 
 |       \env{R_PARALLEL_PORT} to \code{10187}. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{C-LEVEL FACILITIES}{ | 
 |     \itemize{ | 
 |       \item There has been some minor re-organization of the non-API | 
 |       header files.  In particular, \file{Rinternals.h} no longer | 
 |       includes the non-API header \file{R_exts/PrtUtil.h}, and that no | 
 |       longer includes \file{R_exts/Print.h}. | 
 |  | 
 |       \item Passing \code{NULL} to \code{.C()} is now an error. | 
 |  | 
 |       \item \code{.C()} and \code{.Fortran()} now warn if | 
 |       \code{"single"} arguments are used with \code{DUP = FALSE}, as | 
 |       changes to such arguments are not returned to the caller. | 
 |  | 
 |       \item C entry points \code{R_qsort} and \code{R_qsort_I} now have | 
 |       \code{start} and \code{end} as \code{size_t} to allow them to work | 
 |       with longer vectors on 64-bit platforms.  Code using them should | 
 |       be recompiled. | 
 |  | 
 |       \item A few recently added C entry points were missing the | 
 |       remapping to \code{Rf_}, notably \code{[dpq]nbinom_mu}. | 
 |  | 
 |       \item Some of the interface pointers formerly available only to | 
 |       \command{R.app} are now available to front-ends on all | 
 |       Unix-alikes: one has been added for the interface to | 
 |       \code{View()}. | 
 |  | 
 |       \item \code{PACKAGE = ""} is now an error in \code{.C()} etc calls: | 
 |       it was always contrary to the documentation. | 
 |  | 
 |       \item Entry point \code{rcont2} has been migrated to package | 
 |       \pkg{stats} and so is no longer available. | 
 |  | 
 |       \item \code{R_SVN_REVISION} in \file{Rversion.h} is now an integer | 
 |       (rather than a string) and hence usable as e.g. | 
 |       \code{#if R_SVN_REVISION < 70000}. | 
 |  | 
 |       \item The entry points \code{rgb2hsv} and \code{hsv2rgb} have been | 
 |       migrated to package \pkg{grDevices} and so are no longer available. | 
 |  | 
 |       \item \code{R_GE_version} has been increased to \code{10} and | 
 |       \code{name2col} removed (use \code{R_GE_str2col} instead).  \R | 
 |       internal colour codes are now defined using the typedef | 
 |       \code{rcolor}. | 
 |  | 
 |       \item The \code{REPROTECT} macro now checks that the protect index | 
 |       is valid. | 
 |  | 
 |       \item Several non-API entry points no longer used by \R have been | 
 |       removed, including the Fortran entry points \code{chol}, | 
 |       \code{chol2inv}, \code{cg}, \code{ch} and \code{rg}, and the C | 
 |       entry points \code{Brent_fmin}, \code{fft_factor} and \code{fft_work}. | 
 |  | 
 |       \item If a \code{.External} call is registered with a number of | 
 |       arguments (other than \code{-1}), the number of arguments passed | 
 |       is checked for each call (as for other foreign function calls). | 
 |  | 
 |       \item It is now possible to write custom connection | 
 |       implementations outside core R using \file{R_ext/Connections.h}. | 
 |       Please note that the implementation of connections is still | 
 |       considered internal and may change in the future (see the above | 
 |       file for details). | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{INTERNATIONALIZATION}{ | 
 |     \itemize{ | 
 |       \item The management of translations has been converted to \R | 
 |       code: see \code{?tools::update_pkg_po}. | 
 |  | 
 |       \item The translations for the \R interpreter and | 
 |       \command{RGui.exe} are now part of the \pkg{base} package (rather than | 
 |       having sources in directory \file{po} and being installed to | 
 |       \file{share/locale}).  Thus the \pkg{base} package supports three | 
 |       translation domains, \code{R-base}, \code{R} and \code{RGui}. | 
 |  | 
 |       \item The compiled translations which ship with \R are all | 
 |       installed to the new package \pkg{translations} for easier | 
 |       updating.  The first package of that name found on | 
 |       \code{.libPaths()} at the start of the \R session will be used. | 
 |       (It is possible messages will be used before \code{.libPaths()} is | 
 |       set up in which case the default translations will be used: set | 
 |       environment variable \env{R_TRANSLATIONS} to point to the location | 
 |       of the intended \pkg{translations} package to use this right from | 
 |       the start.) | 
 |  | 
 |       \item The translations form a separate group in the Windows | 
 |       installer, so can be omitted if desired. | 
 |  | 
 |       \item The markup for many messages has been changed to make them | 
 |       easier to translate, incorporating suggestions from Łukasz Daniel. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{INSTALLATION}{ | 
 |     \itemize{ | 
 |       \item There is again support for building without using the C | 
 |       \sQuote{long double} type.  This is required by C99, but system | 
 |       implementations can be slow or flawed.  Use \command{configure} | 
 |       option \option{--disable-long-double}. | 
 |  | 
 |       \item \command{make pdf} and \command{make install-pdf} now make | 
 |       and install the full reference index (including all base and | 
 |       recommended packages). | 
 |  | 
 |       \item The 'reference manual' on the Windows GUI menu and included | 
 |       in the installer is now the full reference index, including all | 
 |       base and recommended packages. | 
 |  | 
 |       \item \R help pages and manuals have no ISBNs because ISBN | 
 |       rules no longer allow constantly changing content to be assigned | 
 |       an ISBN. | 
 |  | 
 |       \item The Windows installer no longer installs a Start Menu | 
 |       link to the static help pages; as most pages are generated | 
 |       dynamically, this led to a lot of broken links. | 
 |  | 
 |       \item Any custom settings for Java configuration are recorded in | 
 |       file \file{etc/javaconf} for subsequent use by \command{R CMD | 
 | 	javareconf}. | 
 |  | 
 |       \item There is now support for \command{makeinfo} version 5.0 | 
 |       (which requires a slightly different \file{.texi} syntax). | 
 |  | 
 |       \item The minimum versions for \option{--use-system-zlib} and | 
 |       \code{--use-system-pcre} are now tested as 1.2.5 and 8.10 | 
 |       respectively. | 
 |  | 
 |       \item On Windows, the stack size is reduced to 16MB on 32-bit | 
 |       systems: misguided users were launching many threads without | 
 |       controlling the stack size. | 
 |  | 
 |       \item \command{configure} no longer looks for file | 
 |       \file{~/.Rconfig}: \file{~/.R/config} has long been preferred. | 
 |     } | 
 |   } | 
 |  | 
 |   \subsection{BUG FIXES}{ | 
 |     \itemize{ | 
 |       \item When \command{R CMD build} is run in an encoding other than | 
 |       the one specified in the package's \file{DESCRIPTION} file it | 
 |       tries harder to expand the \code{authors@R} field in the specified | 
 |       encoding.  (\PR{14958}) | 
 |  | 
 |       \item If \command{R CMD INSTALL} is required to expand the | 
 |       \code{authors@R} field of the \file{DESCRIPTION} file, it tries | 
 |       harder to do so in the encoding specified for the package (rather | 
 |       than using ASCII escapes). | 
 |  | 
 |       \item Fix in package \pkg{grid} for pushing a viewport into a | 
 |       layout cell, where the layout is within a viewport that has zero | 
 |       physical width OR where the layout has zero total relative width | 
 |       (likewise for height).  The layout column widths (or row heights) | 
 |       in this case were being calculated with non-finite values. | 
 |       (Reported by Winston Chang.) | 
 |  | 
 |       \item \code{solve(A, b)} for a vector \code{b} gave the answer | 
 |       names from \code{colnames(A)} for \code{LINPACK = TRUE} but not in | 
 |       the default case. | 
 |  | 
 |       \item \code{La.svd()} accepts logical matrices (as documented, and | 
 |       as \code{svd()} did). | 
 |  | 
 |       \item \code{legend()} now accepts negative \code{pch} values, in | 
 |       the same way \code{points()} long has. | 
 |  | 
 |       \item Parse errors when installing files now correctly display | 
 |       the name of the file containing the bad code. | 
 |  | 
 |       \item In Windows, tcltk windows were not always properly constructed. | 
 |       (\PR{15150}) | 
 |  | 
 |       \item The internal functions implementing \code{parse()}, | 
 |       \code{tools::parseLatex()} and \code{tools::parse_Rd()} were not | 
 |       reentrant, leading to errors in rare circumstances such as a | 
 |       garbage collection triggering a recursive call. | 
 |  | 
 |       \item Field assignments in reference class objects \emph{via} | 
 |       \code{$<-} were not being checked | 
 |       because the magic incantation to turn methods on for that | 
 |       primitive operator had been inadvertently omitted. %$ | 
 |  | 
 |       \item \code{setHook(hookname, value, action="replace")} set the | 
 |       hook to be the value, rather than a list containing the value as | 
 |       documented. (\PR{15167}) | 
 |  | 
 |       \item  If a package used a \file{NEWS.Rd} file, the main HTML | 
 |       package index page did not link to it.  (Reported by Dirk | 
 |       Eddelbuettel.) | 
 |  | 
 |       \item The primitive implementation of \code{@<-} was not | 
 |       checking the class of the replacement.  It now does a check, | 
 |       quicker but less general than \code{slot<-}. See the help. | 
 |  | 
 |       \item \code{split(x, f)} now recycles classed objects \code{x} in | 
 |       the same way as vectors.  (Reported by Martin Morgan.) | 
 |  | 
 |       \item \code{pbeta(.28, 1/2, 2200, lower.tail=FALSE, log.p=TRUE)} | 
 |       is no longer \code{-Inf}; ditto for corresponding \code{pt()} and | 
 |       \code{pf()} calls, such as \code{pt(45, df=5000, lower.tail=FALSE, | 
 | 	log.p=TRUE)}. (\PR{15162}) | 
 |  | 
 |       \item The Windows graphics device would crash \R{} if a user | 
 |       attempted to load the graphics history from a variable that was | 
 |       not a saved history. (\PR{15230}) | 
 |  | 
 |       \item The workspace size for the \code{predict()} | 
 |       method for \code{loess()} could exceed the maximum integer size. | 
 |       (Reported by Hiroyuki Kawakatsu.) | 
 |  | 
 |       \item \code{ftable(x, row.vars, col.vars)} now also works when the | 
 |       \code{*.vars} arguments are (integer or character vectors) of | 
 |       length zero. | 
 |  | 
 |       \item Calling \code{cat()} on a malformed UTF-8 string could cause | 
 |       the Windows GUI to lock up. (\PR{15227}) | 
 |  | 
 |       \item \code{removeClass(cc)} gave "node stack overflow" for some | 
 |       class definitions containing \code{"array"} or \code{"matrix"}. | 
 |     } | 
 |   } | 
 | } | 
 |  | 
 | \section{CHANGES in previous versions}{ | 
 |   \itemize{ | 
 |     \item Older news can be found in text format in files | 
 |     \ifelse{html}{\href{../NEWS.0}{NEWS.0}, \href{../NEWS.1}{NEWS.1} | 
 |       and \href{../NEWS.2}{NEWS.2}}{\file{NEWS.0}, \file{NEWS.1} and | 
 |       \file{NEWS.2}} | 
 |     in the \file{doc} directory.  News in HTML format for | 
 |     \R versions from 2.10.0 to 2.15.3 is in | 
 |     \ifelse{html}{\url{NEWS.2.html}}{\file{doc/html/NEWS.2.html}}. | 
 |   } | 
 | } |