"Fossies" - the Fresh Open Source Software Archive

Member "R-3.6.0/doc/NEWS.2.Rd" (25 Sep 2018, 302894 Bytes) of package /linux/misc/R-3.6.0.tar.gz:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. See also the last Fossies "Diffs" side-by-side code changes report for "NEWS.2.Rd": 3.4.3_vs_3.4.4.

    1 % -*- coding: utf-8 -*-
    2 \newcommand{\Rlogo}{\if{html}{\figure{../../html/Rlogo.svg}{options: class="toplogo" alt="[R logo]"}}\if{latex}{\figure{Rlogo.pdf}{options: width=0.5in}}}
    3 
    4 \name{NEWS}
    5 \title{ R News}
    6 \encoding{UTF-8}
    7 
    8 \section{LATER NEWS}{
    9   News for \R 3.0.0 and later can be found in file \file{NEWS.Rd} in the
   10   \R sources and files \file{NEWS} and \file{doc/html/NEWS.html}
   11   in an \R build.
   12 }
   13 
   14 \section{\Rlogo CHANGES IN R VERSION 2.15.3}{
   15   \subsection{NEW FEATURES}{
   16     \itemize{
   17       \item \code{lgamma(x)} for very small \code{x} (in the
   18       denormalized range) is no longer \code{Inf} with a warning.
   19 
   20       \item \code{image()} now sorts an unsorted \code{breaks} vector,
   21       with a warning.
   22 
   23       \item The internal methods for \code{tar()} and \code{untar()} do
   24       a slightly more general job for \sQuote{ustar}-style handling of
   25       paths of more than 100 bytes.
   26 
   27       \item Packages \pkg{compiler} and \pkg{parallel} have been added
   28       to the reference index (\file{refman.pdf}).
   29 
   30       \item \code{untar(tar = "internal")} has some support for
   31       \code{pax} headers as produced by e.g.\sspace{}\command{gnutar --posix}
   32       (which seems prevalent on OpenSUSE 12.2) or
   33       \command{bsdtar --format pax}, including long path and link names.
   34 
   35       \item \code{sQuote()} and \code{dQuote()} now handle 0-length
   36       inputs.  (Suggestion of Ben Bolker.)
   37 
   38       \item \code{summaryRprof()} returns zero-row data frames rather
   39       than throw an error if no events are recorded, for consistency.
   40 
   41       \item The included version of PCRE has been updated to 8.32.
   42 
   43       \item The \pkg{tcltk} namespace can now be re-loaded after
   44       unloading.
   45 
   46       The Tcl/Tk event loop is inhibited in a forked child from package
   47       \pkg{parallel} (as in e.g.\sspace{}\code{mclapply()}).
   48 
   49       \item \code{parallel::makeCluster()} recognizes the value
   50       \samp{random} for the environment variable \env{R_PARALLEL_PORT}:
   51       this chooses a random value for the port and reduces the chance of
   52       conflicts when multiple users start a cluster at the same time.
   53     }
   54   }
   55 
   56   \subsection{UTILITIES}{
   57     \itemize{
   58       \item The default for \env{TAR} on Windows for \command{R CMD
   59 	build} has been changed to be \samp{internal} if no
   60       \command{tar} command is on the path.
   61 
   62       This enables most packages to be built \sQuote{out of the box}
   63       without \command{Rtools}: the main exceptions are those which need
   64       to be installed to re-build vignettes and need \command{Rtools}
   65       for installation (usually because they contain compiled code).
   66     }
   67   }
   68 
   69   \subsection{C-LEVEL FACILITIES}{
   70     \itemize{
   71       \item On a 64-bit Windows platform with enough RAM, \code{R_alloc}
   72       can now allocate up to just under 32GB like other 64-bit
   73       platforms.
   74     }
   75   }
   76 
   77   \subsection{DEPRECATED AND DEFUNCT}{
   78    \itemize{
   79       \item Use of \code{col2rgb(0)} is deprecated (see the help page
   80       for its limitations).
   81 
   82       \item The deprecated \code{intensities} component returned by
   83       \code{hist()} is no longer recognized by the \code{plot()} method
   84       and will be removed in \R 3.0.0.
   85 
   86       \item \code{real()}, \code{as.real()} and \code{is.real()} are now
   87       formally deprecated and give a warning.
   88 
   89       \item This is formal notice that the non-API EISPACK entry points
   90       in \R will be removed shortly.
   91     }
   92   }
   93 
   94   \subsection{INSTALLATION}{
   95    \itemize{
   96       \item The \command{configure} tests for Objective C and Objective
   97       C++ now work on Mac OS 10.8 with Xcode 4.5.2 (\PR{15107}).
   98 
   99       \item The cairo-based versions of \code{X11()} now work with
  100       current versions of cairographics (e.g., 1.12.10).  (\PR{15168})
  101 
  102       A workaround for earlier versions of \R is to use
  103       \code{X11.options(type = "nbcairo")}.
  104 
  105       \item Configuration and \command{R CMD javareconf} now come up
  106       with a smaller set of library paths for Java on Oracle-format JDK
  107       (including OpenJDK).  This helps avoid conflicts between libraries
  108       (such as \code{libjpeg}) supplied in the JDK and system
  109       libraries.  This can always be overridden if needed: see the
  110       \sQuote{R Installation and Administration} manual.
  111     }
  112   }
  113 
  114   \subsection{BUG FIXES}{
  115     \itemize{
  116       \item \code{beta(a, b)} could overflow to infinity in its
  117       calculations when one of \code{a} and \code{b} was less than one.
  118       (\PR{15075})
  119 
  120       \item \code{lbeta(a, b)} no longer gives \code{NaN} if \code{a} or
  121       \code{b} is very small (in the denormalized range).
  122 
  123       \item \code{bquote()} is now able to substitute default arguments in
  124       single-argument functions.  (\PR{15077})
  125 
  126       \item \code{browseEnv(html = FALSE)} would segfault if called from
  127       \R (not \command{R.app}) on a CRAN-style Mac OS X build of \R.
  128 
  129       \item \samp{[[<-} for lists (generic vectors) needed to increment
  130       \code{NAMED} count when RHS is used more than once. (\PR{15098})
  131 
  132       \item On Windows, warnings about opening a file or pipe with a
  133       non-ASCII description were sometimes output in UTF-8 rather than
  134       in the current locale's character set.
  135 
  136       \item The \code{call()} function did not duplicate its arguments.
  137       (\PR{15115})
  138 
  139       \item \code{TukeyHSD()} could give \code{NA} results with some
  140       \samp{na.action} methods such as \code{na.exclude()}.
  141       (Hinted at on R-help by John Fox.)
  142 
  143       \item The deprecated \code{svd(X, LINPACK = TRUE)} could alter
  144       \code{X} in \R 2.15.[12].  (Reported by Bill Dunlap.)
  145 
  146       \item Under Windows, \code{file.link()} and \code{file.symlink()}
  147       used the link name twice, so would always fail. (Reported
  148       by Rui Barradas/Oliver Soong).
  149 
  150       \item \code{summaryRprof(memory = "both")} mixed up the units of
  151       Vcells and Ncells: it now works in bytes.  (\PR{15138})
  152 
  153       \item \code{tools::Rd2HTML()} would sometimes delete text. (\PR{15134})
  154 
  155       \item \code{plot()} failed for \code{"table"} objects containing
  156       just one entry.  (\PR{15118})
  157 
  158       \item \code{embedFonts()} needed to quote some filepaths.
  159       (\PR{15149})
  160 
  161       \item \code{parallel::mccollect()} handled \code{NULL} returns
  162       incorrectly (removing the element rather than setting it to
  163       \code{NULL}).
  164 
  165       \item The full reference index (\file{fullrefman.pdf}) was missing
  166       packages \pkg{compiler} and \pkg{parallel}.
  167 
  168       \item The report for
  169       \code{optim(method = "L-BFGS-B", control = list(trace = 1))}
  170       reported the last completed and not the current iteration, unlike
  171       other methods and trace levels.  (\PR{15103})
  172 
  173       \item \code{qt(1e-12, 1.2)} no longer gives \code{NaN}.
  174 
  175       \item \code{dt(1e160, 1.2, log=TRUE)} no longer gives \code{-Inf}.
  176 
  177       \item On Windows the \code{untar()} function now quotes the
  178       directory name when using an external \command{tar} utility, so
  179       \code{R CMD check} will handle pathnames containing spaces.
  180 
  181       \item The version for Windows 8 and Windows Server 2012 is now
  182       displayed by \code{win.version()}.  (Reported by Gabor
  183       Grothendieck.)
  184 
  185       \item The custom Windows installer target \code{myR} in the
  186       installer \file{Makefile} did not work in 2.15.2.  (Reported
  187       by Erich Neuwirth.)
  188 
  189       \item \code{aperm(matrix(1:6, 2, dimnames=list(A={}, B={})), "A")}
  190       no longer segfaults.
  191 
  192       \item Expressions involving user defined operators were not
  193       always deparsed faithfully. (\PR{15179})
  194 
  195       \item The \code{enc2utf8()} function converted \code{NA_character_}
  196       to \code{"NA"} in non-UTF-8 locales. (\PR{15201})
  197 
  198       \item The \code{exclude} argument to \code{xtabs()} was ignored
  199       for \code{"factor"} arguments.
  200 
  201       \item On Windows, work around an event-timing problem when
  202       the RGui console was closed from the \sQuote{X} control and the closure
  203       cancelled. (This would on some 64-bit systems crash \R, typically
  204       those with a slow GPU relative to the CPU.)
  205 
  206       \item On unix \code{Rscript} will pass the \code{r_arch} setting
  207       it was compiled with on to the R process so that the architecture
  208       of \code{Rscript} and that of \R will match unless overridden.
  209 
  210       \item On Windows, \code{basename()}, \code{dirname()} and
  211       \code{file.choose()} have more support for long non-ASCII file
  212       names with 260 or more bytes when expressed in UTF-8.
  213     }
  214   }
  215 }
  216 
  217 \section{\Rlogo CHANGES IN R VERSION 2.15.2}{
  218   \subsection{NEW FEATURES}{
  219     \itemize{
  220       \item The \code{X11()} window gains an icon: the
  221       latter may be especially useful on Ubuntu's \sQuote{Unity}
  222       interface.
  223 
  224       The \code{WM_CLASS} should be set in circumstances where the
  225       Window Manager failed to make use of X11 resource settings.
  226 
  227       (Contributed by Philip Johnson.)
  228 
  229       \item The \code{"Date"} and \code{"POSIXt"} methods for
  230       \code{cut()} will accept an unsorted \code{breaks} argument (as
  231       the default method does, although this was undocumented).
  232       (Wish of \PR{14961}.)
  233 
  234       \item Reference class methods (in the \pkg{methods} package) that
  235       use other methods in an indirect way (e.g., by \code{sapply()})
  236       must tell the code analysis to include that method.  They can now
  237       do so by invoking \code{$usingMethods()}. %$
  238 
  239       \item More Polish translations are available: for the
  240       \command{RGui} menus and for several recommended packages.
  241 
  242       \item Multistratum MANOVA works. In fact, it seems to have done so
  243       for years in spite of the help page claiming it did not.
  244 
  245       \item \code{qqline()} has new optional arguments
  246       \code{distribution}, \code{probs} and \code{qtype}, following the
  247       example of \CRANpkg{lattice}'s \code{panel.qqmathline()}.
  248 
  249       \item The handling of single quotes in the \code{en@quot}
  250       pseudo-language has been slightly improved.  Double quotes are no
  251       longer converted.
  252 
  253       \item New functions \code{checkPoFiles()} and \code{checkPoFile()}
  254       have been added to the \pkg{tools} package to check for
  255       consistency of format strings in translation files.
  256 
  257       \item \code{model.matrix(~1, ...)} now also contains the same
  258       rownames that less trivial formulae produce.  (Wish of \PR{14992},
  259       changes the output of several packages.)
  260 
  261       \item Misuse of \code{rep()} on undocumented types of objects
  262       (e.g., calls) is now reported as an error.
  263 
  264       \item The included LAPACK has been updated to 3.4.1, with some
  265       patches from the current SVN sources.  (\emph{Inter alia}, this
  266       resolves \PR{14692}.)
  267 
  268       \item \code{file.copy(recursive = TRUE)} has some additional
  269       checks on user error leading to attempted infinite recursion (and on
  270       some platforms to crashing \R).
  271 
  272       \item PCRE has been updated to version 8.31, a bug-fix release.
  273 
  274       \item The included version of \code{liblzma} has been updated to
  275       version 5.0.4, a minor bug-fix release.
  276 
  277       \item New function \code{.bincode()}, a \sQuote{bare-bones}
  278       version of \code{cut.default(labels = FALSE)} for use in packages
  279       with \code{image()} methods.
  280 
  281       \item The HTML manuals now use directional single quotes.
  282 
  283       \item \code{maintainer()} now converts embedded new lines to
  284       spaces.  It no longer gives a non-obvious error for non-installed
  285       packages.
  286 
  287       \item The \code{X11()} device has some protection against
  288       being used with forked processes \emph{via} package \pkg{parallel}.
  289 
  290       \item Setting the environment variable \env{R_OSX_VALGRIND} (to
  291       any value) allows \R to be run under \command{valgrind} on Mac OS
  292       10.6 and 10.7 (\command{valgrind} currently has very limited
  293       support for 10.8), provided \code{system()} is not used (directly
  294       or indirectly).  This should not be needed for \command{valgrind}
  295       >= 3.8.1.
  296 
  297       \item The \code{model.frame()} method for \code{"lm"} uses
  298       \code{xlevels}: this is safer if \code{data} was supplied or
  299       \code{model = FALSE} was used and the levels of factors used in
  300       the fit had been re-ordered since fitting.
  301 
  302       Similarly, \code{model.frame(fm, data=<data>)} copies across
  303       the variables used for safe prediction from the fit.
  304 
  305       \item Functions such as \code{parLapply()} in package
  306       \pkg{parallel} can make use of a default cluster if one is set.
  307       (Reported by Martin Morgan.)
  308 
  309       \item \code{chol(pivot = TRUE, LINPACK = FALSE)} is now available
  310       using LAPACK 3.2 subroutine \code{DPSTRF}.
  311 
  312       \item The functions \code{.C()}, \code{.Call()},
  313       \code{.External()} and \code{.Fortran()} now check that they are
  314       called with an unnamed first argument: the formal arguments were
  315       changed from \code{name=} to \code{.NAME=} in \R 2.13.0, but some
  316       packages were still using the old name.  This is currently a
  317       warning, but will be an error in future.
  318 
  319       \item \code{step()} no longer tries to improve a model with
  320       AIC of \code{-Inf} (a perfect fit).
  321 
  322       \item \code{spline()} and \code{splinefun()} gain a new method
  323       \code{"hyman"}, an implementation of Hyman's method of
  324       constructing monotonic interpolation splines.  (Based on
  325       contributions of Simon Wood and Rob Hyndman.)
  326 
  327       \item On Windows, the C stack size has been increased to 64MB (it
  328       has been 10MB since the days of 32MB RAM systems).
  329     }
  330   }
  331 
  332   \subsection{PERFORMANCE IMPROVEMENTS}{
  333     \itemize{
  334       \item \code{array()} is now implemented in C code (for speed) when
  335       \code{data} is atomic or an unclassed list (so it is known that
  336       \code{as.vector(data)} will have no class to be used by \code{rep()}).
  337 
  338       \item \code{rep()} is faster and uses less memory,
  339       substantially so in some common cases (e.g., if \code{times} is of
  340       length one or \code{length.out} is given, and \code{each = 1}).
  341 
  342       \item \code{findInterval()}, \code{tabulate()}, \code{cut()},
  343       \code{hist()} and \code{image.default()} all use \code{.Call()}
  344       and are more efficient.
  345 
  346       \item \code{duplicated()}, \code{unique()} and similar now
  347       support vectors of lengths above \eqn{2^{29}}{2^29} on 64-bit
  348       platforms.
  349 
  350       \item Omitting \code{PACKAGE} in \code{.C()} etc calls was
  351       supposed to make use of the DLL from the namespace within which
  352       the enclosing function was defined.  It was less successful in
  353       doing so than it might be, and gave no indication it had failed.
  354 
  355       A new search strategy is very successful and gives a warning
  356       when it fails.  In most cases this is because the entry point is
  357       not actually provided by that package (and so \code{PACKAGE}
  358       should be used to indicate which package is intended) but in some
  359       the namespace does not have a DLL specified by a
  360       \code{useDynLib()} directive so \code{PACKAGE} is required.
  361     }
  362   }
  363 
  364   \subsection{UTILITIES}{
  365     \itemize{
  366       \item \command{R CMD check} now checks if a package can be loaded
  367       by \code{library(pkgname, lib.loc = "somewhere")} without being on
  368       the library search path (unless it is already installed in
  369       \code{.Library}, when it always will be).
  370 
  371       \item \command{R CMD check --as-cran} notes \sQuote{hidden} files
  372       and directories (with names starting with a dot) that are not
  373       needed for the operation of \command{R CMD INSTALL} or \code{R CMD
  374 	build}: such files should be excluded from the published tarball.
  375 
  376       \item \command{R CMD check} (if checking subdirectories) checks
  377       that the \R code in any demos is ASCII and can be parsed, and
  378       warns if not.
  379 
  380       \item When \code{R CMD Rd2pdf} is used with \file{inputenx.sty},
  381       it allows further characters (mainly for Eastern European
  382       languages) by including \file{ix-utf8enc.dfu} (if available).
  383       (Wish of \PR{14989}.)
  384 
  385       \item \command{R CMD build} now omits several types of hidden
  386       files/directories, including \file{inst/doc/.Rinstignore},
  387       \file{vignettes/.Rinstignore}, (\file{.Rinstignore} should be at
  388       top level), \file{.deps} under \file{src}, \file{.Renviron},
  389       \file{.Rprofile}, \file{.Rproj.user}, \file{.backups},
  390       \file{.cvsignore}, \file{.cproject}, \file{.directory},
  391       \file{.dropbox}, \file{.exrc}, \file{.gdb.history},
  392       \file{.gitattributes}, \file{.gitignore}, \file{.gitmodules},
  393       \file{.hgignore}, \file{.hgtags}, \file{.htaccess},
  394       \file{.latex2html-init}, \file{.project}, \file{.seed},
  395       \file{.settings}, \file{.tm_properties} and various leftovers.
  396 
  397       \item \command{R CMD check} now checks for \code{.C()},
  398       \code{.Call()}, \code{.External()} and \code{.Fortran()} calls in
  399       other packages, and gives a warning on those found from \R itself
  400       (which are not part of the API and change without notice: many
  401       will be changed for \R 3.0.0).
  402     }
  403   }
  404 
  405   \subsection{C-LEVEL FACILITIES}{
  406     \itemize{
  407       \item The limit for \code{R_alloc} on 64-bit platforms has been
  408       raised to just under 32GB (from just under 16GB).
  409 
  410       \item The misuse of \code{.C("name", ..., PACKAGE = foo)} where
  411       \code{foo} is an arbitrary \R object is now an error.
  412 
  413       The misuse \code{.C("name",..., PACKAGE = "")} is now warned about
  414       in \command{R CMD check}, and will be an error in future.
  415     }
  416   }
  417 
  418   \subsection{DEPRECATED AND DEFUNCT}{
  419    \itemize{
  420       \item Use of \code{array()} with a 0-length \code{dim} argument is
  421       deprecated with a warning (and was contrary to the documentation).
  422 
  423       \item Use of \code{tapply()} with a 0-length \code{INDEX} list is
  424       deprecated with a warning.
  425 
  426       \item \samp{Translation} packages are deprecated.
  427 
  428       \item Calling \code{rep()} or \code{rep.int()} on a pairlist is
  429       deprecated and will give a warning.  In any case, \code{rep()}
  430       converted a pairlist to a list so you may as well do that
  431       explicitly.
  432 
  433       \item Entry point \code{rcont2} is no longer part of the API, and
  434       will move to package \pkg{stats} in \R 3.0.0.
  435 
  436       \item The \sQuote{internal} graphics device invoked by
  437       \code{.Call("R_GD_nullDevice", package = "grDevices")} is about to
  438       be removed: use \code{pdf(file = NULL)} instead.
  439 
  440       \item \code{eigen(EISPACK = TRUE)},
  441       \code{chol(pivot = FALSE, LINPACK = TRUE)},
  442       \code{chol2inv(LINPACK = TRUE)}, \code{solve(LINPACK = TRUE)} and
  443       \code{svd(LINPACK = TRUE)} are deprecated and give a warning.
  444 
  445       They were provided for compatibility with \R 1.7.0 (Mar 2003)!
  446 
  447       \item The \sQuote{internal function} \code{kappa.tri()} has been
  448       renamed to \code{.kappa_tri()} so it is not inadvertently called
  449       as a method for class \code{"tri"}.
  450 
  451       \item Functions \code{sessionData()} and \code{browseAll()} in
  452       package \pkg{methods} are on a help page describing them as
  453       \sQuote{deprecated} and are now formally deprecated.
  454     }
  455   }
  456 
  457   \subsection{PACKAGE INSTALLATION}{
  458     \itemize{
  459       \item For a Windows or Mac OS X binary package install,
  460       \code{install.packages()} will check if a source package is
  461       available on the same repositories, and report if it is a later
  462       version or there is a source package but no binary package
  463       available.
  464 
  465       This check can be suppressed: see the help page.
  466 
  467       \item \code{install.packages(type = "both")} has been enhanced.
  468       In interactive use it will ask whether to choose the source
  469       version of a package if the binary version is older and contains
  470       compiled code, and also asks if source packages with no binary
  471       version should be installed.
  472     }
  473   }
  474 
  475   \subsection{INSTALLATION}{
  476      \itemize{
  477       \item There is a new \command{configure} option
  478       \option{--with-libtiff} (mainly in case the system installation
  479       needs to be avoided).
  480 
  481       \item LAPACK 3.4.1 does use some Fortran 90 features, so
  482       \command{g77} no longer suffices.
  483 
  484       \item If an external LAPACK is used, it must be version 3.2 or later.
  485     }
  486  }
  487 
  488   \subsection{BUG FIXES}{
  489     \itemize{
  490       \item On Windows, starting \command{Rterm} via \command{R.exe}
  491       caused Ctrl-C to misbehave.  (\PR{14948})
  492 
  493       \item The \code{tools::latexToUtf8()} function missed conversions that
  494       were contained within braces.
  495 
  496       \item Long timezone specifications (such as a file name preceded
  497       by \code{:}) could crash \code{as.POSIXlt}.  (\PR{14945})
  498 
  499       \item \code{R CMD build --resave-data} could fail if there was no
  500       \file{data} directory but there was an \file{R/sysdata.rda} file.
  501       (\PR{14947})
  502 
  503       \item \code{is.na()} misbehaved on a 0-column data frame.
  504       (\PR{14959})
  505 
  506       \item \code{anova.lmlist()} failed if \code{test} was
  507       supplied.  (\PR{14960})
  508 
  509       It was unable to compute Cp tests for object of class \code{"lm"}
  510       (it assumed class \code{"glm"}).
  511 
  512       \item The \code{formula} method for \code{sunflowerplot()} now
  513       allows \code{xlab} and \code{ylab} to be set.  (Reported by Gerrit
  514       Eichner.)
  515 
  516       \item The \code{"POSIXt"} and \code{"Date"} methods for \code{hist()}
  517       could fail on Windows where adjustments to the right-hand boundary
  518       crossed a DST transition time.
  519 
  520       \item On Windows, the code in \code{as.POSIXct()} to handle
  521       incorrectly specified \code{isdst} fields might have resulted in
  522       \code{NA} being returned.
  523 
  524       \item \code{aov()} and \code{manova()} gave spurious warning about
  525       singular error model in the multiresponse case.
  526 
  527       \item In \code{ns()} and \code{bs()}, specifying \code{knots = NULL}
  528       is now equivalent to omitting it, also when \code{df} is
  529       specified.  (\PR{14970})
  530 
  531       \item \code{sprintf()} did not accept numbered arguments ending
  532       in zero.  (\PR{14975})
  533 
  534       \item \code{rWishart()} could overflow the C stack and maybe crash
  535       the \R process for dimensions of several hundreds or more.
  536       (Reported by Michael Braun on R-sig-mac.)
  537 
  538       \item Base package vignettes (e.g., \code{vignette("Sweave")}) were
  539       not fully installed in builds of \R from the tarball.
  540 
  541       \item \code{lchoose()} and \code{choose()} could overflow the C
  542       stack and crash \R.
  543 
  544       \item When given a 0-byte file and asked to keep source
  545       references, \code{parse()} read input from \code{stdin()}
  546       instead.
  547 
  548       \item \code{pdf(compress = TRUE)} did not delete temporary files
  549       it created until the end of the \R session.  (\PR{14991})
  550 
  551       \item \code{logLik()} did not detect the error of applying it
  552       to a multiple-response linear model.  (\PR{15000})
  553 
  554       \item \code{file.copy(recursive = TRUE)} did not always report
  555       \code{FALSE} for a failure two or more directories deep.
  556 
  557       \item \code{qgeom()} could return \code{-1} for extremely small
  558       \code{q}. (\PR{14967})
  559 
  560       \item \code{smooth.spline()} used \code{DUP = FALSE} which allowed
  561       its compiled C code to change the function: this was masked by the
  562       default byte-compilation. (\PR{14965})
  563 
  564       \item In Windows, the GUI preferences for foreground color were
  565       not always respected.  (Reported by Benjamin Wells.)
  566 
  567       \item On OS X, the Quartz versions of the bitmap devices did not
  568       respect \code{antialias = "none"}.  (\PR{15006})
  569 
  570       \item \code{unique()} and similar would infinite-loop if called on
  571       a vector of length > \eqn{2^{29}}{2^29} (but reported that the
  572       vector was too long for \eqn{2^{30}}{2^30} or more).
  573 
  574       \item \code{parallel::stopCluster()} now works with MPI
  575       clusters without \CRANpkg{snow} being on the search path.
  576 
  577       \item \code{terms.formula()} could exhaust the stack, and the
  578       stack check did not always catch this before the segfault.
  579       (\PR{15013})
  580 
  581       \item \code{sort.list(method = "radix")} could give incorrect
  582       results on certain compilers (seen with \command{clang} on Mac OS
  583       10.7 and \command{Xcode 4.4.1}).
  584 
  585       \item \code{backsolve(T, b)} gave incorrect results when
  586       \code{nrows(b) > ncols(T)} and \code{b} had more than one column.
  587 
  588       It could segfault or give nonsense if \code{k} was specified as
  589       more than \code{ncols(T)}.
  590 
  591       \item \code{smooth.spline()} did not check that a specified
  592       numeric \code{spar} was of length 1, and gave corrupt results if
  593       it was of length 0.
  594 
  595       \item Protection added to \code{do_system}. (\PR{15025})
  596 
  597       \item Printing of vectors with names > 1000 characters now works
  598       correctly rather than truncating. (\PR{15028})
  599 
  600       \item \code{qr()} for a complex matrix did not pivot the column names.
  601 
  602       \item \code{--with-blas='-framework vecLib'} now also works on OS X 10.8.
  603 
  604       \item \command{R CMD check} no longer fails with an error if
  605       a \file{DESCRIPTION} file incorrectly contains a blank line.
  606       (Reported by Bill Dunlap.)
  607 
  608       \item \code{install.packages(type = "both")} could call
  609       \code{chooseCRANmirror()} twice.
  610 
  611       \item \code{lm.wfit()} could segfault in \R 2.15.1 if all the
  612       weights were zero. (\PR{15044})
  613 
  614       \item A malformed package name could cause \command{R CMD INSTALL}
  615       to write outside the target library.
  616 
  617       \item Some of the quality control functions
  618       (e.g., \code{tools::checkFF()}) were wrongly identifying the source
  619       of S4 methods in a package and so not checking them.
  620 
  621       \item The default type of display by \code{browseEnv()} when using
  622       \command{R.app} on Mac OS X has been incorrect for a long time.
  623 
  624       \item The implementation of \code{importMethodsFrom} in a
  625       \code{NAMESPACE} file could be confused and fail to find generics
  626       when importing from multiple packages (reported and fixed by
  627       Michael Lawrence).
  628 
  629       \item The detection of the C stack direction is better protected
  630       against compiler optimization. (\PR{15011})
  631 
  632       \item Long custom line types would sometimes segfault on the
  633       cairographics-based devices. (\PR{15055})
  634 
  635       \item \code{tools::checkPoFile()} unprotected too early in its C
  636       code and so segfaulted from time to time.
  637 
  638       \item The Fortran code underlying \code{nlminb()} could
  639       infinite-loop if any of the input functions returned \code{NA} or
  640       \code{NaN}.  This is now an error for the gradient or Hessian, and
  641       a warning for the function (with the value replaced by
  642       \code{Inf}).  (In part, \PR{15052}.)
  643 
  644       \item The code for creating \code{coerce()} methods could
  645       generate false notes about ambiguous selection; the notes have
  646       been suppressed for this function.
  647 
  648       \item \code{arima.sim()} could give too long an output in some
  649       corner cases (in part, \PR{15068}).
  650 
  651       \item \code{anova.glm()} with \code{test = "Rao"} didn't work when
  652       models included an offset. (Reported by Søren Feodor Nielsen.)
  653 
  654       \item \code{as.data.frame.matrix()} could return invalid data
  655       frame with no \code{row.names} attribute for 0-row matrix. (Reported
  656       by Hervé Pagès.)
  657 
  658       \item Compilation with the \code{vecLib} or \code{Accelerate}
  659       frameworks on OS X without using that also for LAPACK is more
  660       likely to be successful.
  661     }
  662   }
  663 }
  664 
  665 \section{\Rlogo CHANGES IN R VERSION 2.15.1}{
  666   \subsection{NEW FEATURES}{
  667     \itemize{
  668       \item \code{source()} now uses \code{withVisible()} rather than
  669       \code{.Internal(eval.with.vis)}.  This sometimes alters tracebacks
  670       slightly.
  671 
  672       \item \code{install.packages("pkg_version.tgz")} on Mac OS X now
  673       has sanity checks that this is actually a binary package (as
  674       people have tried it with incorrectly named source packages).
  675 
  676       \item \code{splineDesign()} and \code{spline.des()} in package
  677       \pkg{splines} have a new option \code{sparse} which can be used
  678       for efficient construction of a sparse B-spline design matrix
  679       (\emph{via} \CRANpkg{Matrix}).
  680 
  681       \item \code{norm()} now allows \code{type = "2"} (the
  682       \sQuote{spectral} or 2-norm) as well, mainly for didactical
  683       completeness.
  684 
  685       \item \code{pmin()} and \code{pmax()} now also work when one of
  686       the inputs is of length zero and others are not, returning a
  687       zero-length vector, analogously to, say, \code{+}.
  688 
  689       \item \code{colorRamp()} (and hence \code{colorRampPalette()}) now
  690       also works for the boundary case of just one color when the ramp is
  691       flat.
  692 
  693       \item \code{.C()} gains some protection against the misuse of
  694       character vector arguments.  (An all too common error is to pass
  695       \code{character(N)}, which initializes the elements to \code{""},
  696       and then attempt to edit the strings in-place, sometimes forgetting
  697       to terminate them.)
  698 
  699       \item Calls to the new function \code{globalVariables()} in
  700       package \pkg{utils} declare that functions and other objects in a
  701       package should be treated as globally defined, so that \code{CMD
  702       check} will not note them.
  703 
  704       \item \code{print(packageDescription(*))} trims the \code{Collate}
  705       field by default.
  706 
  707       \item The included copy of \code{zlib} has been updated to version
  708       1.2.7.
  709 
  710       \item A new option \code{"show.error.locations"} has been added.
  711       When set to \code{TRUE}, error messages will contain the
  712       location of the most recent call containing source reference
  713       information. (Other values are supported as well; see
  714       \code{?options}.)
  715 
  716       \item The NA warning messages from e.g.\sspace{}\code{pchisq()} now report
  717       the call to the closure and not that of the \code{.Internal}.
  718 
  719       \item Added Polish translations by Łukasz Daniel.
  720     }
  721   }
  722 
  723   \subsection{PERFORMANCE IMPROVEMENTS}{
  724     \itemize{
  725       \item In package \pkg{parallel}, \code{makeForkCluster()} and the
  726       multicore-based functions use native byte-order for serialization
  727       (deferred from 2.15.0).
  728 
  729       \item \code{lm.fit()}, \code{lm.wfit()}, \code{glm.fit()} and
  730       \code{lsfit()} do less copying of objects, mainly by using
  731       \code{.Call()} rather than \code{.Fortran()}.
  732 
  733       \item \code{.C()} and \code{.Fortran()} do less copying: arguments
  734       which are raw, logical, integer, real or complex vectors and are
  735       unnamed are not copied before the call, and (named or not) are not
  736       copied after the call.  Lists are no longer copied (they are
  737       supposed to be used read-only in the C code).
  738 
  739       \item \code{tabulate()} makes use of \code{.C(DUP = FALSE)} and
  740       hence does not copy \code{bin}.  (Suggested by Tim Hesterberg.)
  741       It also avoids making a copy of a factor argument \code{bin}.
  742 
  743       \item Other functions (often or always) doing less copying include
  744       \code{cut()}, \code{dist()}, the complex case of \code{eigen()},
  745       \code{hclust()}, \code{image()}, \code{kmeans()}, \code{loess()},
  746       \code{stl()} and \code{svd(LINPACK = TRUE)}.
  747 
  748       \item There is less copying when using primitive replacement
  749       functions such as \code{names()}, \code{attr()} and
  750       \code{attributes()}.
  751     }
  752   }
  753 
  754   \subsection{DEPRECATED AND DEFUNCT}{
  755    \itemize{
  756       \item The converters for use with \code{.C()} (see
  757       \code{?getCConverterDescriptions}) are deprecated: use the
  758       \code{.Call()} interface instead.  There are no known examples
  759       (they were never fully documented).
  760     }
  761   }
  762 
  763   \subsection{UTILITIES}{
  764     \itemize{
  765       \item For \command{R CMD check}, a few people have reported
  766       problems with junctions on Windows (although they were tested on
  767       Windows 7, XP and Server 2008 machines and it is unknown under
  768       what circumstances the problems occur).  Setting the environment
  769       variable \env{R_WIN_NO_JUNCTIONS} to a non-empty value (e.g., in
  770       \file{~/.R/check.Renviron}) will force copies to be used instead.
  771     }
  772   }
  773 
  774   \subsection{INSTALLATION}{
  775     \itemize{
  776       \item \command{R CMD INSTALL} with \env{_R_CHECK_INSTALL_DEPENDS_}
  777         set to a true value (as done by \command{R CMD check --as-cran})
  778         now restricts the packages available when lazy-loading as well
  779 	as when test-loading (since packages such as \CRANpkg{ETLUtils}
  780 	and \CRANpkg{agsemisc} had top-level calls to \code{library()}
  781 	for undeclared packages).
  782 
  783 	This check is now also available on Windows.
  784     }
  785   }
  786 
  787   \subsection{C-LEVEL FACILITIES}{
  788     \itemize{
  789       \item C entry points \code{mkChar} and \code{mkCharCE} now check
  790       that the length of the string they are passed does not exceed
  791       \eqn{2^{31}-1}{2^31-1} bytes: they used to overflow with
  792       unpredictable consequences.
  793 
  794       \item C entry points \code{R_GetCurrentSrcref} and
  795       \code{R_GetSrcFilename} have been added to the API to allow
  796       debuggers access to the source references on the stack.
  797     }
  798   }
  799 
  800   \subsection{WINDOWS-SPECIFIC CHANGES}{
  801     \itemize{
  802       \item Windows-specific changes will now be announced in this file
  803       (\file{NEWS}).  Changes up and including \R 2.15.0 remain in the
  804       \file{CHANGES} file.
  805 
  806       \item There are two new environment variables which
  807       control the defaults for command-line options.
  808 
  809       If \env{R_WIN_INTERNET2} is set to a non-empty value, it is as if
  810       \option{--internet2} was used.
  811 
  812       If \env{R_MAX_MEM_SIZE} is set, it gives the default memory limit
  813       if \option{--max-mem-size} is not specified: invalid values being
  814       ignored.
  815     }
  816   }
  817 
  818   \subsection{BUG FIXES}{
  819     \itemize{
  820       \item \code{lsfit()} lost the names from the residuals.
  821 
  822       \item More cases in which \code{merge()} could create a data frame
  823       with duplicate column names now give warnings.  Cases where
  824       names specified in \code{by} match multiple columns are errors.
  825 
  826       \item Nonsense uses such as \code{seq(1:50, by = 5)} (from package
  827       \CRANpkg{plotrix}) and \code{seq.int(1:50, by = 5)} are now errors.
  828 
  829       \item The residuals in the 5-number summary printed by
  830       \code{summary()} on an \code{"lm"} object are now explicitly
  831       labelled as weighted residuals when non-constant weights are
  832       present.  (Wish of \PR{14840}.)
  833 
  834       \item \code{tracemem()} reported that all objects were copied
  835       by \code{.C()} or \code{.Fortran()} whereas only some object types
  836       were ever copied.
  837 
  838       It also reported and marked as copies \emph{some} transformations
  839       such as \code{rexp(n, x)}: it no longer does so.
  840 
  841       \item The \code{plot()} method for class \code{"stepfun"} only
  842       used the optional \code{xval} argument to compute \code{xlim} and
  843       not the points at which to plot (as documented).  (\PR{14864})
  844 
  845       \item Names containing characters which need to be escaped were
  846       not deparsed properly.  (\PR{14846})
  847 
  848       \item Trying to update (recommended) packages in
  849       \file{R_HOME/library} without write access is now dealt with more
  850       gracefully.  Further, such package updates may be skipped (with a
  851       warning), when a newer installed version is already going to be
  852       used from \code{.libPaths()}.  (\PR{14866})
  853 
  854       \item \code{hclust()} is now fast again (as up to end of 2003),
  855       with a different fix for the "median"/"centroid" problem.  (\PR{4195}).
  856 
  857       \item \code{get_all_vars()} failed when the data came entirely
  858       from vectors in the global environment. (\PR{14847})
  859 
  860       \item \command{R CMD check} with \env{_R_CHECK_NO_RECOMMENDED_}
  861       set to a true value (as done by the \command{--as-cran} option)
  862       could issue false errors if there was an indirect dependency
  863       on a recommended package.
  864 
  865       \item \code{formatC()} uses the C entry point \code{str_signif}
  866       which could write beyond the length allocated for the output string.
  867 
  868       \item Missing default argument added to implicit S4 generic for
  869       \code{backsolve()}. (\PR{14883})
  870 
  871       \item Some bugs have been fixed in handling load actions that
  872       could fail to export assigned items or generate spurious warnings
  873       in \code{CMD check} on loading.
  874 
  875       \item For \code{tiff(type = "windows")}, the numbering of per-page
  876       files except the last was off by one.
  877 
  878       \item On Windows, loading package \pkg{stats} (which is done for
  879       a default session) would switch line endings on \file{stdout}
  880       and \file{stderr} from CRLF to LF.  This affected
  881       \command{Rterm} and \command{R CMD BATCH}.
  882 
  883       \item On Windows, the compatibility function \code{x11()} had
  884       not kept up with changes to \code{windows()}, and issued
  885       warnings about bad parameters. (\PR{14880})
  886 
  887       \item On Windows, the \code{Sys.glob()} function did not handle
  888       UNC paths as it was designed to try to do. (\PR{14884})
  889 
  890       \item In package \pkg{parallel}, \code{clusterApply()} and similar
  891       failed to handle a (pretty pointless) length-1 argument. (\PR{14898})
  892 
  893       \item Quartz Cocoa display reacted asynchronously to
  894       \code{dev.flush()} which means that the redraw could be performed
  895       after the plot has been already modified by subsequent code. The
  896       redraw is now done synchronously in \code{dev.flush()} to allow
  897       animations without sleep cycles.
  898 
  899       \item Source locations reported in \code{traceback()} were
  900       incorrect when byte-compiled code was on the stack.
  901 
  902       \item \code{plogis(x, lower = FALSE, log.p = TRUE)} no longer
  903       underflows early for large x (e.g., 800).
  904 
  905       \item \code{?Arithmetic}'s \dQuote{\code{1 ^ y} and \code{y ^ 0}
  906 	are \code{1}, \emph{always}} now also applies for \code{integer}
  907       vectors \code{y}.
  908 
  909       \item X11-based pixmap devices like \code{png(type = "Xlib")} were
  910       trying to set the cursor style, which triggered some warnings and
  911       hangs.
  912 
  913       \item Code executed by the built-in HTTP server no longer allows
  914       other HTTP clients to re-enter \R until the current worker
  915       evaluation finishes, to prevent cascades.
  916 
  917       \item The \code{plot()} and \code{Axis()} methods for class
  918       \code{"table"} now respect graphical parameters such as
  919       \code{cex.axis}.  (Reported by Martin Becker.)
  920 
  921       \item Under some circumstances \code{package.skeleton()} would
  922       give out progress reports that could not be translated and so were
  923       displayed by question marks.  Now they are always in English.
  924       (This was seen for CJK locales on Windows, but may have occurred
  925       elsewhere.)
  926 
  927       \item The evaluator now keeps track of source references outside
  928       of functions, e.g.\sspace{}when \code{source()} executes a script.
  929 
  930       \item The replacement method for \code{window()} now works
  931       correctly for multiple time series of class \code{"mts"}.
  932       (\PR{14925})
  933 
  934       \item \code{is.unsorted()} gave incorrect results on non-atomic
  935       objects such as data frames.  (Reported by Matthew Dowle.)
  936 
  937       \item The value returned by \code{tools::psnice()} for invalid
  938       \code{pid} values was not always \code{NA} as documented.
  939 
  940       \item Closing an \code{X11()} window while \code{locator()} was
  941       active could abort the \R process.
  942 
  943       \item \code{getMethod(f, sig)} produced an incorrect error message
  944       in some cases when \code{f} was not a string.
  945 
  946       \item Using a string as a \dQuote{call} in an error condition
  947       with \code{options(showErrorCalls=TRUE)} could cause a segfault.
  948       (\PR{14931})
  949 
  950       \item The string \code{"infinity"} allowed by C99 was not accepted
  951       as a numerical string value by e.g.\sspace{}\code{scan()} and
  952       \code{as.numeric()}.  (\PR{14933})
  953 
  954       \item In \code{legend()}, setting some entries of \code{lwd} to
  955       \code{NA} was inconsistent (depending on the graphics device) in
  956       whether it would suppress those lines; now it consistently does
  957       so.  (\PR{14926})
  958 
  959       \item \code{by()} failed for a zero-row data frame.  (Reported by
  960       Weiqiang Qian.)
  961 
  962       \item The Yates' correction in \code{chisq.test()} could be bigger
  963       than the terms it corrected, previously leading to an infinite
  964       test statistic in some corner cases which are now reported as
  965       \code{NaN}.
  966 
  967       \item \code{xgettext()} and related functions sometimes returned
  968       items that were not strings for translation. (\PR{14935})
  969 
  970       \item \code{plot(<lm>, which=5)} now correctly labels the factor
  971       level combinations for the special case where all
  972       \eqn{h_ii}{h[i,i]} are the same. (\PR{14837})
  973 
  974       \item \code{Sys.glob()} caused a segfault if the first element of
  975       \code{path} was \code{NA_character}. (\PR{14990})
  976     }
  977   }
  978 }
  979 
  980 \section{\Rlogo CHANGES IN R VERSION 2.15.0}{
  981   \subsection{SIGNIFICANT USER-VISIBLE CHANGES}{
  982     \itemize{
  983       \item The behaviour of \code{unlink(recursive = TRUE)} for a
  984       symbolic link to a directory has changed: it now removes the link
  985       rather than the directory contents (just as \command{rm -r} does).
  986 
  987       On Windows it no longer follows reparse points (including
  988       junctions and symbolic links).
  989     }
  990   }
  991 
  992   \subsection{NEW FEATURES}{
  993     \itemize{
  994       \item Environment variable \env{RD2DVI_INPUTENC} has been renamed
  995       to \env{RD2PDF_INPUTENC}.
  996 
  997       \item \code{.Deprecated()} becomes a bit more flexible, getting an
  998       \code{old} argument.
  999 
 1000       \item Even data-only packages without \R code need a namespace and
 1001       so may need to be installed under \R 2.14.0 or later.
 1002 
 1003       \item \code{assignInNamespace()} has further restrictions on use
 1004       apart from at top-level, as its help page has warned.
 1005       Expect it to be disabled from programmatic use in the future.
 1006 
 1007       \item \code{system()} and \code{system2()} when capturing output
 1008       report a non-zero status in the new \code{"status"} attribute.
 1009 
 1010       \item \code{kronecker()} now has an S4 generic in package
 1011       \pkg{methods} on which packages can set methods.  It will be
 1012       invoked by \code{X \%x\% Y} if either \code{X} or \code{Y} is an S4
 1013       object.
 1014 
 1015       \item \code{pdf()} accepts forms like \code{file = "|lpr"} in the
 1016       same way as \code{postscript()}.
 1017 
 1018       \item \code{pdf()} accepts \code{file = NULL}.
 1019       This means that the device does NOT create a PDF file
 1020       (but it can still be queried, e.g., for font metric info).
 1021 
 1022       \item \code{format()} (and hence \code{print()}) on
 1023       \code{"bibentry"} objects now uses \code{options("width")} to
 1024       set the output width.
 1025 
 1026       \item \code{legend()} gains a \code{text.font} argument. (Suggested
 1027       by Tim Paine, \PR{14719}.)
 1028 
 1029       \item \code{nchar()} and \code{nzchar()} no longer accept factors
 1030       (as integer vectors).  (Wish of \PR{6899}.)
 1031 
 1032       \item \code{summary()} behaves slightly differently (or more
 1033       precisely, its \code{print()} method does).  For numeric inputs, the
 1034       number of NAs is printed as an integer and not a real.  For dates
 1035       and datetimes, the number of NAs is included in the printed output
 1036       (the latter being the wish of \PR{14720}).
 1037 
 1038       The \code{"data.frame"} method is more consistent with the default
 1039       method: in particular it now applies \code{zapsmall()} to
 1040       numeric/complex summaries.
 1041 
 1042       \item The number of items retained with \code{options(warn = 0)}
 1043       can be set by \code{options(nwarnings=)}.
 1044 
 1045       \item There is a new function \code{assignInMyNamespace()} which
 1046       uses the namespace of the function it is called from.
 1047 
 1048       \item \code{attach()} allows the default name for an attached file
 1049       to be overridden.
 1050 
 1051       \item \code{bxp()}, the work horse of \code{boxplot()}, now uses a
 1052       more sensible default \code{xlim} in the case where \code{at} is
 1053       specified differently from \code{1:n}, see the discussion on R-devel,
 1054       \url{https://stat.ethz.ch/pipermail/r-devel/2011-November/062586.html}.
 1055 
 1056       \item New function \code{paste0()}, an efficient version of
 1057       \code{paste(*, sep="")}, to be used in many places for more
 1058       concise (and slightly more efficient) code.
 1059 
 1060       \item Function \code{setClass()} in package \pkg{methods} now
 1061       returns, invisibly, a generator function for the new class,
 1062       slightly preferred to calling \code{new()}, as explained on the
 1063       \code{setClass} help page.
 1064 
 1065       \item The \code{"dendrogram"} method of \code{str()} now takes
 1066       its default for \code{last.str} from option \code{str.dendrogram.last}.
 1067 
 1068       \item New simple \code{fitted()} method for \code{"kmeans"} objects.
 1069 
 1070       \item The \code{traceback()} function can now be called with
 1071       an integer argument, to display a current stack trace. (Wish of
 1072       \PR{14770}.)
 1073 
 1074       \item \code{setGeneric()} calls can be simplified when creating
 1075       a new generic function by supplying the default method as the
 1076       \code{def} argument.  See \code{?setGeneric}.
 1077 
 1078       \item \code{serialize()} has a new option \code{xdr = FALSE} which
 1079       will use the native byte-order for binary serializations.  In
 1080       scenarios where only little-endian machines are involved (these
 1081       days, close to universal) and (un)serialization takes an
 1082       appreciable amount of time this may speed up noticeably
 1083       transferring data between systems.
 1084 
 1085       \item The internal (un)serialization code is faster for long
 1086       vectors, particularly with XDR on some platforms.  (Based on a
 1087       suggested patch by Michael Spiegel.)
 1088       % https://stat.ethz.ch/pipermail/r-devel/2011-September/062113.html
 1089 
 1090       \item For consistency, circles with zero radius are omitted by
 1091       \code{points()} and \code{grid.circle()}.  Previously this was
 1092       device-dependent, but they were usually invisible.
 1093 
 1094       \item \code{NROW(x)} and \code{NCOL(x)} now work whenever
 1095       \code{dim(x)} looks appropriate, e.g., also for more generalized
 1096       matrices.
 1097 
 1098       \item PCRE has been updated to version 8.30.
 1099 
 1100       \item The internal \code{R_Srcref} variable is now updated
 1101       before the browser stops on entering a function.  (Suggestion of
 1102       \PR{14818}.)
 1103 
 1104       \item There are \sQuote{bare-bones} functions \code{.colSums()},
 1105       \code{.rowSums()}, \code{.colMeans()} and \code{.rowMeans()} for
 1106       use in programming where ultimate speed is required.
 1107 
 1108       \item The formerly internal function
 1109       \code{.package_dependencies()} from package \pkg{tools} for
 1110       calculating (recursive) (reverse) dependencies on package databases
 1111       has been renamed to \code{package_dependencies()} and is now
 1112       exported.
 1113 
 1114       \item There is a new function \code{optimHess()} to compute the
 1115       (approximate) Hessian for an \code{optim()} solution if
 1116       \code{hessian = TRUE} was forgotten.
 1117 
 1118       \item \code{.filled.contour()} is a \sQuote{bare-bones} function to
 1119       add a filled-contour rectangular plot to an already prepared plot
 1120       region.
 1121 
 1122       \item The stepping in debugging and single-step browsing modes has
 1123       changed slightly: now left braces at the start of the body are
 1124       stepped over for \code{if} statements as well as for \code{for} and
 1125       \code{while} statements.  (Wish of \PR{14814}.)
 1126 
 1127       \item \code{library()} no longer warns about a conflict with a
 1128       function from \code{package:base} if the function has the same
 1129       code as the base one but with a different environment.  (An
 1130       example is \code{Matrix::det()}.)
 1131 
 1132       \item When deparsing very large language objects,
 1133       \code{as.character()} now inserts newlines after each line of
 1134       approximately 500 bytes, rather than truncating to the first
 1135       line.
 1136 
 1137       \item New function \code{rWishart()} generates Wishart-distributed
 1138       random matrices.
 1139 
 1140       \item Packages may now specify actions to be taken when the
 1141       package is loaded (\code{setLoadActions()}).
 1142 
 1143       \item \code{options(max.print = Inf)} and similar now give an
 1144       error (instead of warnings later).
 1145 
 1146       \item The \code{"difftime"} replacement method of \code{units}
 1147       tries harder to preserve other attributes of the argument.  (Wish
 1148       of \PR{14839}.)
 1149 
 1150       \item \code{poly(raw = TRUE)} no longer requires more unique
 1151       points than the degree.  (Requested by John Fox.)
 1152     }
 1153   }
 1154 
 1155   \subsection{PACKAGE parallel}{
 1156     \itemize{
 1157       \item There is a new function \code{mcmapply()}, a parallel version
 1158       of \code{mapply()}, and a wrapper \code{mcMap()}, a parallel
 1159       version of \code{Map()}.
 1160 
 1161       \item A default cluster can be registered by the new function
 1162       \code{setDefaultCluster()}: this will be used by default in
 1163       functions such as \code{parLapply()}.
 1164 
 1165       \item \code{clusterMap()} has a new argument \code{.scheduling} to
 1166       allow the use of load-balancing.
 1167 
 1168       \item There are new load-balancing functions \code{parLapplyLB()}
 1169       and \code{parSapplyLB()}.
 1170 
 1171       \item \code{makePSOCKCluster()} has a new option \code{useXDR =
 1172 	FALSE} which can be used to avoid byte-shuffling for
 1173       serialization when all the nodes are known to be little-endian (or
 1174       all big-endian).
 1175     }
 1176   }
 1177 
 1178   \subsection{PACKAGE INSTALLATION}{
 1179     \itemize{
 1180       \item Non-ASCII vignettes without a declared encoding are no
 1181       longer accepted.
 1182 
 1183       \item C/C++ code in packages is now compiled with \code{-NDEBUG}
 1184       to mitigate against the C/C++ function \code{assert} being called
 1185       in production use.  Developers can turn this off during package
 1186       development with \code{PKG_CPPFLAGS = -UNDEBUG}.
 1187 
 1188       \item \command{R CMD INSTALL} has a new option \option{--dsym}
 1189       which on Mac OS X (Darwin) dumps the symbols alongside the
 1190       \file{.so} file: this is helpful when debugging with
 1191       \command{valgrind} (and especially when installing packages into
 1192       \file{R.framework}).  [This can also be enabled by setting the
 1193       undocumented environment variable \env{PKG_MAKE_DSYM}, since \R
 1194       2.12.0.]
 1195 
 1196       \item \command{R CMD INSTALL} will test loading under all installed
 1197       sub-architectures even for packages without compiled code, unless
 1198       the flag \option{--no-multiarch} is used.  (Pure \R packages can
 1199       do things which are architecture-dependent: in the case which
 1200       prompted this, looking for an icon in a Windows \R executable.)
 1201 
 1202       \item There is a new option \code{install.packages(type = "both")}
 1203       which tries source packages if binary packages are not available,
 1204       on those platforms where the latter is the default.
 1205 
 1206       \item The meaning of \code{install.packages(dependencies = TRUE)}
 1207       has changed: it now means to install the essential dependencies of
 1208       the named packages plus the \samp{Suggests}, but only the
 1209       essential dependencies of dependencies.  To get the previous
 1210       behaviour, specify \code{dependencies} as a character vector.
 1211 
 1212       \item \command{R CMD INSTALL --merge-multiarch} is now supported
 1213       on OS X and other Unix-alikes using multiple sub-architectures.
 1214 
 1215       \item \command{R CMD INSTALL --libs-only} now by default does a
 1216       test load on Unix-alikes as well as on Windows: suppress with
 1217       \option{--no-test-load}.
 1218     }
 1219   }
 1220 
 1221   \subsection{UTILITIES}{
 1222     \itemize{
 1223        \item \command{R CMD check} now gives a warning rather than a
 1224        note if it finds inefficiently compressed datasets.  With
 1225        \command{bzip2} and \command{xz} compression having been
 1226        available since \R 2.10.0, it only exceptionally makes sense to
 1227        not use them.
 1228 
 1229        The environment variable \env{_R_CHECK_COMPACT_DATA2_} is
 1230        no longer consulted: the check is always done if
 1231        \env{_R_CHECK_COMPACT_DATA_} has a true value (its default).
 1232 
 1233        \item Where multiple sub-architectures are to be tested,
 1234        \command{R CMD check} now runs the examples and tests for all the
 1235        sub-architectures even if one fails.
 1236 
 1237        \item \command{R CMD check} can optionally report timings on
 1238        various parts of the check: this is controlled by environment
 1239        variable \env{_R_CHECK_TIMINGS_} documented in \sQuote{Writing R
 1240 	 Extensions}.  Timings (in the style of \command{R CMD BATCH}) are
 1241        given at the foot of the output files from running each test and
 1242        the \R code in each vignette.
 1243 
 1244        \item There are new options for more rigorous testing by
 1245        \command{R CMD check} selected by environment variables -- see
 1246        the \sQuote{Writing R Extensions} manual.
 1247 
 1248        \item \command{R CMD check} now warns (rather than notes) on
 1249        undeclared use of other packages in examples and tests:
 1250        increasingly people are using the metadata in the
 1251        \file{DESCRIPTION} file to compute information about packages,
 1252        for example reverse dependencies.
 1253 
 1254        \item The defaults for some of the options in \command{R CMD
 1255 	 check} (described in the \sQuote{R Internals} manual) have
 1256        changed: checks for unsafe and \code{.Internal()} calls and
 1257        for partial matching of arguments in \R function calls are now
 1258        done by default.
 1259 
 1260        \item \command{R CMD check} has more comprehensive facilities for
 1261        checking compiled code and so gives fewer reports on entry points
 1262        linked into \file{.so}/\file{.dll} files from libraries
 1263        (including C++ and Fortran runtimes).
 1264 
 1265        Checking compiled code is now done on FreeBSD (as well as the
 1266        existing supported platforms of Linux, Mac OS X, Solaris and
 1267        Windows).
 1268 
 1269        \item \command{R CMD build} has more options for
 1270        \option{--compact-vignettes}: see \command{R CMD build --help}.
 1271 
 1272        \item \command{R CMD build} has a new option \option{--md5} to
 1273        add an \file{MD5} file (as done by CRAN): this is used by \code{R
 1274 	 CMD INSTALL} to check the integrity of the distribution.
 1275 
 1276        If this option is not specified, any existing (and probably
 1277        stale) \file{MD5} file is removed.
 1278      }
 1279    }
 1280 
 1281   \subsection{DEPRECATED AND DEFUNCT}{
 1282    \itemize{
 1283       \item \command{R CMD Rd2dvi} is now defunct: use \command{R CMD Rd2pdf}.
 1284 
 1285       \item Options such \option{--max-nsize}, \option{--max-vsize} and
 1286       the function \code{mem.limits()} are now defunct.  (Options
 1287       \option{--min-nsize} and \option{--min-vsize} remain available.)
 1288 
 1289       \item Use of \code{library.dynam()} without specifying all the
 1290       first three arguments is now disallowed.
 1291 
 1292       Use of an argument \code{chname} in \code{library.dynam()}
 1293       including the extension \file{.so} or \file{.dll} (which was never
 1294       allowed according to the help page) is defunct.  This also applies
 1295       to \code{library.dynam.unload()} and to \code{useDynLib}
 1296       directives in \file{NAMESPACE} files.
 1297 
 1298       \item The internal functions \code{.readRDS()} and
 1299       \code{.saveRDS()} are now defunct.
 1300 
 1301       \item The off-line \code{help()} types \samp{"postscript"} and
 1302       \samp{"ps"} are defunct.
 1303 
 1304       \item \code{Sys.putenv()}, replaced and deprecated in \R 2.5.0, is
 1305       finally removed.
 1306 
 1307       \item Some functions/objects which have been defunct for five or
 1308       more years have been removed completely.  These include
 1309       \code{.Alias()}, \code{La.chol()}, \code{La.chol2inv()},
 1310       \code{La.eigen()}, \code{Machine()}, \code{Platform()},
 1311       \code{Version}, \code{codes()}, \code{delay()},
 1312       \code{format.char()}, \code{getenv()}, \code{httpclient()},
 1313       \code{loadURL()}, \code{machine()}, \code{parse.dcf()},
 1314       \code{printNoClass()}, \code{provide()}, \code{read.table.url()},
 1315       \code{restart()}, \code{scan.url()}, \code{symbol.C()},
 1316       \code{symbol.For()} and \code{unix()}.
 1317 
 1318       \item The \code{ENCODING} argument to \code{.C()} is deprecated.
 1319       It was intended to smooth the transition to multi-byte character
 1320       strings, but can be replaced by the use of \code{iconv()} in the
 1321       rare cases where it is still needed.
 1322     }
 1323   }
 1324 
 1325   \subsection{INSTALLATION}{
 1326     \itemize{
 1327       \item Building with a positive value of
 1328       \option{--with-valgrind-instrumentation} now also instruments logical,
 1329       complex and raw vectors.
 1330     }
 1331   }
 1332 
 1333   \subsection{C-LEVEL FACILITIES}{
 1334     \itemize{
 1335       \item Passing \R objects other than atomic vectors, functions,
 1336       lists and environments to \code{.C()} is now deprecated and will
 1337       give a warning.  Most cases (especially \code{NULL}) are actually
 1338       coding errors.  \code{NULL} will be disallowed in future.
 1339 
 1340       \code{.C()} now passes a pairlist as a \code{SEXP} to the compiled
 1341       code.  This is as was documented, but pairlists were in reality
 1342       handled differently as a legacy from the early days of \R.
 1343 
 1344       \item \code{call_R} and \code{call_S} are deprecated.  They still
 1345       exist in the headers and as entry points, but are no longer
 1346       documented and should not be used for new code.
 1347     }
 1348   }
 1349 
 1350   \subsection{BUG FIXES}{
 1351     \itemize{
 1352       \item \code{str(x, width)} now obeys its \code{width}
 1353       argument also for function headers and other objects \code{x}
 1354       where \code{deparse()} is applied.
 1355 
 1356       \item The convention for \code{x \%/\% 0L} for integer-mode \code{x}
 1357       has been changed from \code{0L} to \code{NA_integer_}.
 1358       (\PR{14754})
 1359 
 1360       \item The \code{exportMethods} directive in a \file{NAMESPACE}
 1361       file now exports S4 generics as necessary, as the extensions
 1362       manual said it does.  The manual has also been updated to be a
 1363       little more informative on this point.
 1364 
 1365       It is now required that there is an S4 generic (imported or
 1366       created in the package) when methods are to be exported.
 1367 
 1368       \item Reference methods cannot safely use non-exported entries
 1369       in the namespace.  We now do not do so, and warn in the documentation.
 1370 
 1371       \item The namespace import code was warning when identical
 1372       S4 generic functions were imported more than once, but should
 1373       not (reported by Brian Ripley, then Martin Morgan).
 1374 
 1375       \item \code{merge()} is no longer allowed (in some ways) to create
 1376       a data frame with duplicate column names (which confused
 1377       \PR{14786}).
 1378 
 1379       \item Fixes for rendering raster images on X11 and Windows devices
 1380       when the x-axis or y-axis scale is reversed.
 1381 
 1382       \item \code{getAnywhere()} found S3 methods as seen from the
 1383       \pkg{utils} namespace and not from the environment from which it
 1384       was called.
 1385 
 1386       \item \code{selectMethod(f, sig)} would not return inherited group
 1387       methods when caching was off (as it is by default).
 1388 
 1389       \item \code{dev.copy2pdf(out.type = "cairo")} gave an error.
 1390       (\PR{14827})
 1391 
 1392       \item Virtual classes (e.g., class unions) had a \code{NULL}
 1393       prototype even if that was not a legal subclass.  See
 1394       \code{?setClassUnion}.
 1395 
 1396       \item The C prototypes for \code{zdotc} and \code{zdotu} in
 1397       \file{R_ext/BLAS.h} have been changed to the more modern style
 1398       rather than that used by \command{f2c}.  (Patch by Berwin Turlach.)
 1399 
 1400       \item \code{isGeneric()} produced an error for primitives that
 1401       can not have methods.
 1402 
 1403       \item \code{.C()} or \code{.Fortran()} had a lack-of-protection
 1404       error if the registration information resulted in an argument
 1405       being coerced to another type.
 1406 
 1407       \item \code{boxplot(x=x, at=at)} with non finite elements in \code{x}
 1408       and non integer \code{at} could not generate a warning but failed.
 1409 
 1410       \item \code{heatmap(x, symm=TRUE, RowSideColors=*)} no longer
 1411       draws the colors in reversed order.
 1412 
 1413       \item \code{predict(<ar>)} was incorrect in the multivariate case,
 1414       for p >= 2.
 1415 
 1416       \item \code{print(x, max=m)} is now consistent when \code{x} is a
 1417       \code{"Date"}; also the \dQuote{reached ... max.print ..} messages
 1418       are now consistently using single brackets.
 1419 
 1420       \item Closed the \samp{<li>} tag in pages generated by \code{
 1421       Rd2HTML()}. (\PR{14841})
 1422 
 1423       \item Axis tick marks could go out of range when a log scale was
 1424       used.  (\PR{14833})
 1425 
 1426       \item Signature objects in methods were not allocated as S4
 1427       objects (caused a problem with \code{trace()} reported by Martin Morgan).
 1428     }
 1429   }
 1430 }
 1431 
 1432 \section{\Rlogo CHANGES IN R VERSION 2.14.2}{
 1433   \subsection{NEW FEATURES}{
 1434     \itemize{
 1435       \item The internal \code{untar()} (as used by default by
 1436       \command{R CMD INSTALL}) now knows about some \command{pax}
 1437       headers which \command{bsdtar} (e.g., the default \command{tar} for
 1438       Mac OS >= 10.6) can incorrectly include in \command{tar} files,
 1439       and will skip them with a warning.
 1440 
 1441       \item PCRE has been upgraded to version 8.21: as well as bug fixes
 1442       and greater Perl compatibility, this adds a JIT pattern compiler,
 1443       about which PCRE's news says
 1444       \sQuote{large performance benefits can be had in many situations}.
 1445       This is supported on most but not all \R platforms.
 1446 
 1447       \item Function \code{compactPDF()} in package \pkg{tools} now
 1448       takes the default for argument \code{gs_quality} from environment
 1449       variable \env{GS_QUALITY}: there is a new value \code{"none"}, the
 1450       ultimate default, which prevents GhostScript being used in
 1451       preference to \command{qpdf} just because environment variable
 1452       \env{R_GSCMD} is set.  If \env{R_GSCMD} is unset or set to
 1453       \code{""}, the function will try to find a suitable GhostScript
 1454       executable.
 1455 
 1456       \item The included version of zlib has been updated to 1.2.6.
 1457 
 1458       \item For consistency with the \code{logLik()} method,
 1459       \code{nobs()} for \code{"nls"} files now excludes observations
 1460       with zero weight.  (Reported by Berwin Turlach.)
 1461     }
 1462   }
 1463 
 1464   \subsection{UTILITIES}{
 1465     \itemize{
 1466       \item \command{R CMD check} now reports by default on licenses not
 1467       according to the description in \sQuote{Writing R Extensions}.
 1468 
 1469       \item \command{R CMD check} has a new option \option{--as-cran} to
 1470       turn on most of the customizations that CRAN uses for its incoming
 1471       checks.
 1472     }
 1473   }
 1474 
 1475   \subsection{PACKAGE INSTALLATION}{
 1476     \itemize{
 1477       \item \command{R CMD INSTALL} will now no longer install certain
 1478       file types from \file{inst/doc}: these are almost certainly
 1479       mistakes and for some packages are wasting a lot of space.  These
 1480       are \file{Makefile}, files generated by running LaTeX, and unless
 1481       the package uses a \file{vignettes} directory, PostScript and
 1482       image bitmap files.
 1483 
 1484       Note that only PDF vignettes have ever been supported: some of
 1485       these files come from DVI/PS output from the Sweave defaults prior
 1486       to \R 2.13.0.
 1487     }
 1488   }
 1489 
 1490   \subsection{BUG FIXES}{
 1491     \itemize{
 1492       \item R configured with \option{--disable-openmp} would mistakenly
 1493       set \code{HAVE_OPENMP} (internal) and \code{SUPPORT_OPENMP} (in
 1494       \file{Rconfig.h}) even though no OpenMP flags were populated.
 1495 
 1496       \item The \code{getS3method()} implementation had an old
 1497       computation to find an S4 default method.
 1498 
 1499       \item \code{readLines()} could overflow a buffer if the last line
 1500       of the file was not terminated.  (\PR{14766})
 1501 
 1502       \item \command{R CMD check} could miss undocumented S4 objects in
 1503       packages which used S4 classes but did not \samp{Depends: methods}
 1504       in their \file{DESCRIPTION} file.
 1505 
 1506       \item The HTML Help Search page had malformed links.
 1507       (\PR{14769})
 1508 
 1509       \item A couple of instances of lack of protection of \code{SEXP}s
 1510       have been squashed. (\PR{14772}, \PR{14773})
 1511 
 1512       \item \code{image(x, useRaster=TRUE)} misbehaved on single-column
 1513       \code{x}. (\PR{14774})
 1514 
 1515       \item Negative values for \code{options("max.print")} or the \code{max}
 1516       argument to \code{print.default()} caused crashes.  Now the former
 1517       are ignored and the latter trigger an error.  (\PR{14779})
 1518 
 1519       \item The text of a function body containing more than 4096
 1520       bytes was not properly saved by the parser when entered
 1521       at the console.
 1522 
 1523       \item Forgetting the \code{#endif} tag in an Rd file could cause
 1524       the parser to go into a loop.  (Reported by Hans-Jorg Bibiko.)
 1525 
 1526       \item \code{str(*, ....., strict.width="cut")} now also obeys
 1527       \code{list.len = n}.  (Reported by Sören Vogel.)
 1528 
 1529       \item Printing of arrays did not have enough protection (C level),
 1530       e.g., in the context of \code{capture.output()}.  (Reported by
 1531       Hervé Pagès and Martin Morgan.)
 1532 
 1533       \item \code{pdf(file = NULL)} would produce a spurious file named
 1534       \file{NA}.  (\PR{14808})
 1535 
 1536       \item \code{list2env()} did not check the type of its \code{envir}
 1537       argument. (\PR{14807})
 1538 
 1539       \item \code{svg()} could segfault if called with a non-existent
 1540       file path.  (\PR{14790})
 1541 
 1542       \item \command{make install} can install to a path containing
 1543       \samp{+} characters. (\PR{14798})
 1544 
 1545       \item The \code{edit()} function did not respect the
 1546       \code{options("keep.source")} setting. (Reported by Cleridy
 1547       Lennert.)
 1548 
 1549       \item \code{predict.lm(*, type="terms", terms=*, se.fit=TRUE)} did
 1550       not work.  (\PR{14817})
 1551 
 1552       \item There is a partial workaround for errors in the TRE
 1553       regular-expressions engine with named classes and repeat counts of
 1554       at least 2 in a MBCS locale (\PR{14408}): these are avoided when
 1555       TRE is in 8-bit mode (e.g., for \code{useBytes = TRUE} and when all
 1556       the data are ASCII).
 1557 
 1558       \item The C function \code{R_ReplDLLdo1()} did not call top-level
 1559       handlers.
 1560 
 1561       \item The Quartz device was unable to detect window sessions on
 1562       Mac OS X 10.7 (Lion) and higher and thus it was not used as the
 1563       default device on the console.  Since Lion any application can use
 1564       window sessions, so Quartz will now be the default device if the
 1565       user's window session is active and \R is not run via
 1566       \command{ssh} which is at least close to the behavior in prior OS
 1567       X versions.
 1568 
 1569       \item \code{mclapply()} would fail in code assembling the translated
 1570       error message if some (but not all) cores encountered an error.
 1571 
 1572       \item \code{format.POSIXlt(x)} raised an arithmetic exception when
 1573       \code{x} was an invalid object of class \code{"POSIXlt"} and parts
 1574       were empty.
 1575 
 1576       \item \code{installed.packages()} has some more protection against
 1577       package installs going on in parallel.
 1578 
 1579       \item \code{.Primitive()} could be mis-used to call
 1580       \code{.Internal()} entry points.
 1581     }
 1582   }
 1583 }
 1584 
 1585 \section{\Rlogo CHANGES IN R VERSION 2.14.1}{
 1586   \subsection{NEW FEATURES}{
 1587     \itemize{
 1588       \item \code{parallel::detectCores()} is now able to find the
 1589       number of physical cores (rather than CPUs) on Sparc Solaris.
 1590 
 1591       It can also do so on most versions of Windows; however the default
 1592       remains \code{detectCores(logical = TRUE)} on that platform.
 1593 
 1594       \item Reference classes now keep a record of which fields are
 1595       locked.  \code{$lock()} with no arguments returns the names % $
 1596       of the locked fields.
 1597 
 1598       \item \code{HoltWinters()} reports a warning rather than an error
 1599       for some optimization failures (where the answer might be a
 1600       reasonable one).
 1601 
 1602       \item \code{tools::dependsOnPkg()} now accepts the shorthand
 1603       \code{dependencies = "all"}.
 1604 
 1605       \item \code{parallel::clusterExport()} now allows specification of
 1606       an environment from which to export.
 1607 
 1608       \item The \code{quartz()} device now does tilde expansion on its
 1609       \code{file} argument.
 1610 
 1611       \item \code{tempfile()} on a Unix-alike now takes the process ID
 1612       into account.  This is needed with \CRANpkg{multicore} (and as part of
 1613       \pkg{parallel}) because the parent and all the children share a
 1614       session temporary directory, and they can share the C random
 1615       number stream used to produce the unique part.  Further, two
 1616       children can call \code{tempfile()} simultaneously.
 1617 
 1618       \item Option \code{print} in Sweave's \code{RweaveLatex()} driver
 1619       now emulates auto-printing rather than printing (which can differ
 1620       for an S4 object by calling \code{show()} rather than
 1621       \code{print()}).
 1622 
 1623       \item \code{filled.contour()} now accepts infinite values:
 1624       previously it might have generated invalid graphics files
 1625       (e.g., containing NaN values).
 1626     }
 1627   }
 1628 
 1629   \subsection{INSTALLATION}{
 1630     \itemize{
 1631       \item On 64-bit Linux systems, \command{configure} now only sets
 1632       \samp{LIBnn} to \code{lib64} if \file{/usr/lib64} exists.  This
 1633       may obviate setting \samp{LIBnn} explicitly on Debian-derived
 1634       systems.
 1635 
 1636       It is still necessary to set \samp{LIBnn = lib} (or
 1637       \samp{lib32}) for 32-bit builds of \R on a 64-bit OS on those Linux
 1638       distributions capable for supporting that concept.
 1639 
 1640       \item \command{configure} looks for \file{inconsolata.sty}, and if
 1641       not found adjusts the default \env{R_RD4PDF} to not use it (with a
 1642       warning, since it is needed for high-quality rendering of manuals).
 1643     }
 1644   }
 1645 
 1646   \subsection{PACKAGE INSTALLATION}{
 1647     \itemize{
 1648       \item \command{R CMD INSTALL} will now do a test load for all
 1649       sub-architectures for which code was compiled (rather than just
 1650       the primary sub-architecture).
 1651     }
 1652   }
 1653 
 1654   \subsection{UTILITIES}{
 1655     \itemize{
 1656       \item When checking examples under more than one sub-architecture,
 1657       \command{R CMD check} now uses a separate directory
 1658       \file{examples_arch} for each sub-architecture, and leaves the
 1659       output in file \file{pkgname-Ex_arch.Rout}.  Some packages
 1660       expect their examples to be run in a clean directory \dots{}.
 1661      }
 1662    }
 1663 
 1664    \subsection{BUG FIXES}{
 1665     \itemize{
 1666       \item \code{stack()} now gives an error if no vector column is
 1667       selected, rather than returning a 1-column data frame (contrary to
 1668       its documentation).
 1669 
 1670       \item \code{summary.mlm()} did not handle objects where the
 1671       formula had been specified by an expression.  (Reported by
 1672       Helios de Rosario Martinez).
 1673 
 1674       \item \code{tools::deparseLatex(dropBraces=TRUE)} could drop
 1675       text as well as braces.
 1676 
 1677       \item \code{colormodel = "grey"} (new in \R 2.14.0)
 1678       did not always work in \code{postscript()} and \code{pdf()}.
 1679 
 1680       \item \code{file.append()} could return \code{TRUE} for failures.
 1681       (\PR{14727})
 1682 
 1683       \item \code{gzcon()} connections are no longer subject to garbage
 1684       collection: it was possible for this to happen when unintended
 1685       (e.g., when calling \code{load()}).
 1686 
 1687       \item \code{nobs()} does not count zero-weight observations for
 1688       \code{glm()} fits, for consistency with \code{lm()}.  This affects
 1689       the \code{BIC()} values reported for such \code{glm()} fits.
 1690       (Spotted by Bill Dunlap.)
 1691 
 1692       \item \code{options(warn = 0)} failed to end a (C-level) context
 1693       with more than 50 accumulated warnings.  (Spotted by Jeffrey
 1694       Horner.)
 1695 
 1696       \item The internal \code{plot.default()} code did not do sanity
 1697       checks on a \code{cex} argument, so invalid input could cause
 1698       problems.  (Reported by Ben Bolker.)
 1699 
 1700       \item \code{anyDuplicated(<array>, MARGIN=0)} no longer fails.
 1701       (Reported by Hervé Pagès.)
 1702 
 1703       \item \code{read.dcf()} removes trailing blanks: unfortunately
 1704       on some platforms this included \code{\\xa0} (non-breaking space)
 1705       which is the trailing byte of a UTF-8 character.  It now only
 1706       considers ASCII space and tab to be \sQuote{blank}.
 1707 
 1708       \item There was a sign error in part of the calculations for the
 1709       variance returned by \code{KalmanSmooth()}.  (\PR{14738})
 1710 
 1711       \item \code{pbinom(10, 1e6, 0.01, log.p = TRUE)} was \code{NaN}
 1712       thanks to the buggy fix to \PR{14320} in \R 2.11.0.  (\PR{14739})
 1713 
 1714       \item \code{RweaveLatex()} now emulates auto-printing rather than
 1715       printing, by calling \code{methods::show()} when auto-printing
 1716       would.
 1717 
 1718       \item \code{duplicated()} ignored \code{fromLast} for a
 1719       one-column data frame.  (\PR{14742})
 1720 
 1721       \item \code{source()} and related functions did not put the correct
 1722       timestamp on the source references; \code{srcfilecopy()} has gained
 1723       a new argument \code{timestamp} to support this fix. (\PR{14750})
 1724 
 1725       \item \code{srcfilecopy()} has gained a new argument \code{isFile}
 1726       and now records the working directory, to allow debuggers to find
 1727       the original source file.  (\PR{14826})
 1728 
 1729       \item LaTeX conversion of Rd files did not correctly handle
 1730       preformatted backslashes.  (\PR{14751})
 1731 
 1732       \item HTML conversion of Rd files did not handle markup within
 1733       tabular cells properly.  (\PR{14708})
 1734 
 1735       \item \code{source()} on an empty file with \code{keep.source =
 1736 	TRUE} tried to read from \code{stdin()}, in \R 2.14.0 only.
 1737       (\PR{14753})
 1738 
 1739       \item The code to check Rd files in packages would abort if
 1740       duplicate description sections were present.
 1741     }
 1742   }
 1743 }
 1744 
 1745 \section{\Rlogo CHANGES IN R VERSION 2.14.0}{
 1746   \subsection{SIGNIFICANT USER-VISIBLE CHANGES}{
 1747     \itemize{
 1748       \item All packages must have a namespace, and one is created on
 1749       installation if not supplied in the sources.  This means that any
 1750       package without a namespace must be re-installed under this
 1751       version of \R (but previously-installed data-only packages without
 1752       \R code can still be used).
 1753 
 1754       \item The \code{yLineBias} of the \code{X11()} and
 1755       \code{windows()} families of devices has been changed from 0.1 to
 1756       0.2: this changes slightly the vertical positioning of text in the
 1757       margins (including axis annotations).  This is mainly for
 1758       consistency with other devices such as \code{quartz()} and
 1759       \code{pdf()}.  (Wish of \PR{14538}.)
 1760 
 1761       There is a new graphics parameter \code{"ylbias"} which
 1762       allows the y-line bias of the graphics device to be tweaked,
 1763       including to reproduce output from earlier versions of \R.
 1764 
 1765       \item Labeling of the p-values in various anova tables has been
 1766       rationalized to be either \code{"Pr(>F)"} or \code{"Pr(>Chi)"}
 1767       (i.e., the \code{"Pr(F)"}, \code{"Pr(Chi)"} and \code{"P(>|Chi|)"}
 1768       variants have been eliminated).  Code which extracts the p value
 1769       \emph{via} indexing by name may need adjustment.
 1770 
 1771       \item \code{::} can now be used for datasets made available for
 1772       lazy-loading in packages with namespaces (which makes it consistent
 1773       with its use for data-only packages without namespaces in earlier
 1774       versions of \R).
 1775 
 1776       \item There is a new package \pkg{parallel}.
 1777 
 1778       It incorporates (slightly revised) copies of packages
 1779       \CRANpkg{multicore} and \CRANpkg{snow} (excluding MPI, PVM and NWS
 1780       clusters).  Code written to use the higher-level API functions in
 1781       those packages should work unchanged (apart from changing any
 1782       references to their namespaces to a reference to \pkg{parallel},
 1783       and links explicitly to \CRANpkg{multicore} or \CRANpkg{snow} on help
 1784       pages).
 1785 
 1786       It also contains support for multiple RNG streams following
 1787       L'Ecuyer \emph{et al} (2002), with support for both
 1788       \code{mclapply} and \CRANpkg{snow} clusters.  This replaces functions
 1789       like \code{clusterSetupRNG()} from \CRANpkg{snow} (which are not in
 1790       \pkg{parallel}).
 1791 
 1792       The version released for \R 2.14.0 contains base functionality:
 1793       higher-level convenience functions are planned (and some are
 1794       already available in the \sQuote{R-devel} version of \R).
 1795 
 1796       \item Building PDF manuals (for \R itself or packages,
 1797       e.g.\sspace{}\emph{via} \command{R CMD check}) by default requires the
 1798       LaTeX package \samp{inconsolata}: see the section on
 1799       \sQuote{Making the manuals} in the \sQuote{R Installation and
 1800 	Administration Manual}.
 1801 
 1802       \item \code{axTicks(*, log=TRUE)} has changed in some cases to
 1803       satisfy the documented behavior and be consistent.
 1804     }
 1805   }
 1806 
 1807   \subsection{NEW FEATURES}{
 1808     \itemize{
 1809       \item \code{txtProgressBar()} can write to an open connection
 1810       instead of the console.
 1811 
 1812       \item Non-portable package names ending in \file{.} are no longer
 1813       allowed.  Nor are single-character package names (\pkg{R} was
 1814       already disallowed).
 1815 
 1816       \item \code{regexpr()} and \code{gregexpr()} with \code{perl =
 1817 	TRUE} allows Python-style named captures.  (Wish and
 1818       contribution of \PR{14518}.)
 1819 
 1820       \item The placement of \sQuote{plotmath} text in the margins of
 1821       plots done by base graphics now makes the same vertical adjustment
 1822       as ordinary text, so using ordinary and plotmath text on the same
 1823       margin line will seem better aligned (but not exactly aligned,
 1824       since ordinary text has descenders below the baseline and plotmath
 1825       places them on the baseline).  (Related to \PR{14537}.)
 1826 
 1827       \item \code{sunflowerplot()} now has a formula interface.
 1828       (Wish of \PR{14541}.)
 1829 
 1830       \item \code{iconv()} has a new argument \code{toRaw} to handle
 1831       encodings such as \code{UTF-16} with embedded nuls (as was
 1832       possible before the \code{CHARSXP} cache was introduced).
 1833 
 1834       It will also accept as input the type of list generated with
 1835       \code{toRaw = TRUE}.
 1836 
 1837       \item Garbage-collecting an unused input text connection no longer
 1838       gives a warning (since it \sQuote{connects} to nothing outside
 1839       \R).
 1840 
 1841       \item \code{read.table()} and \code{scan()} have gained a
 1842       \code{text} argument, to allow reading data from a (possibly
 1843       literal) character string.
 1844 
 1845       \item \code{optim(*, method = .)} now allows \code{method = "Brent"}
 1846       as an interface to \code{optimize()}, for use in cases such as
 1847       \code{mle()} where \code{optim()} is used internally.
 1848 
 1849       \item \code{mosaicplot()} gains a \code{border} argument.
 1850       (Wish of \PR{14550}.)
 1851 
 1852       \item \code{smooth.spline()} gains a \code{tol} argument which
 1853       controls how different \code{x} values need to be to be treated as
 1854       distinct.  The default has been changed to be more reliable for
 1855       inputs whose range is small compared to their maximum absolute
 1856       value.  (Wish of \PR{14452}.)
 1857 
 1858       \item \code{gl()} runs faster by avoiding calling \code{factor()}.
 1859 
 1860       \item The \code{print()} method for \code{object.size()} accepts
 1861       \samp{B} as well as \samp{b} as an abbreviation for \sQuote{bytes}.
 1862 
 1863       \item \code{unlink()} gains a \code{force} argument to work like
 1864       \command{rm -f} and if possible override restrictive permissions.
 1865 
 1866       \item \code{pbirthday()} and \code{qbirthday()} now use exact
 1867       calculations for \code{coincident = 2}.
 1868 
 1869       \item \code{unzip()} and \code{unz()} connections have been
 1870       updated with support for more recent Zip64 features (including
 1871       large file sizes and \command{bzip2} compression, but not UTF-8
 1872       file names).
 1873 
 1874       \code{unzip()} has a new option to restore file times from those
 1875       recorded (in an unknown timezone) in the zip file.
 1876 
 1877       \item \code{update.packages()} now accepts a character vector of
 1878       package names for the \code{oldPkgs} argument.  (Suggestion of
 1879       Tal Galili.)
 1880 
 1881       \item The special reference class fields \code{.self} and
 1882       \code{.refClassDef} are now read-only to prevent corrupting
 1883       the object.
 1884 
 1885       \item \code{decompose()} now returns the original series as part
 1886       of its value, so it can be used (rather than reconstructed) when
 1887       plotting.  (Suggestion of Rob Hyndman.)
 1888 
 1889       \item Rao's efficient score test has been implemented for
 1890       \code{glm} objects.  Specifically, the \code{add1}, \code{drop1},
 1891       and \code{anova} methods now allow \code{test = "Rao"}.
 1892 
 1893       \item If a saved workspace (e.g., \file{.RData}) contains objects
 1894       that cannot be loaded, \R will now start with an warning message
 1895       and an empty workspace, rather than failing to start.
 1896 
 1897       \item \code{strptime()} now accepts times such as \samp{24:00} for
 1898       midnight at the end of the day, for although these are disallowed by
 1899       POSIX 1003.1-2008, ISO 8601:2004 allows them.
 1900 
 1901       \item Assignment of \code{names()} to S4 objects now checks for
 1902       a corresponding \code{"names"} slot, and generates a warning or
 1903       an error if that slot is not defined.  See the section on slots
 1904       in \code{?Classes}.
 1905 
 1906       \item The default methods for \code{is.finite()}, \code{is.infinite()}
 1907       and \code{is.nan()} now signal an error if their argument is not
 1908       an atomic vector.
 1909 
 1910       \item The formula method for \code{plot()} no longer places
 1911       package \pkg{stats} on the search path (it loads the namespace
 1912       instead).
 1913 
 1914       \item There now is a genuine \code{"function"} method for
 1915       \code{plot()} rather than the generic dispatching internally to
 1916       \code{graphics::plot.function()}.  It is now exported, so can be
 1917       called directly as \code{plot.function()}.
 1918 
 1919       \item The one-sided \code{ks.test()} allows \code{exact = TRUE} to
 1920       be specified in the presence of ties (but the approximate
 1921       calculation remains the default: the \sQuote{exact} computation
 1922       makes assumptions known to be invalid in the presence of ties).
 1923 
 1924       \item The behaviour of \code{curve(add = FALSE)} has changed: it
 1925       now no longer takes the default x limits from the previous plot
 1926       (if any): rather they default to \code{c(0, 1)} just as the
 1927       \code{"function"} method for \code{plot()}.  To get the previous
 1928       behaviour use \code{curve(add = NA)}, which also takes the default for
 1929       log-scaling of the x-axis from the previous plot.
 1930 
 1931       \item Both \code{curve()} and the \code{plot()} method for
 1932       functions have a new argument \code{xname} to facilitate plots
 1933       such as \code{sin(t)} \emph{vs} \code{t}.
 1934 
 1935       \item The \code{local} argument to \code{source()} can specify an
 1936       environment as well as \code{TRUE} (\code{parent.env()}) and
 1937       \code{FALSE} (\code{.GlobalEnv}).  It gives better error messages
 1938       for other values, such as \code{NA}.
 1939 
 1940       \item \code{vcov()} gains methods for classes \code{"summary.lm"} and
 1941       \code{"summary.glm"}.
 1942 
 1943       \item The \code{plot()} method for class \code{"profile.nls"}
 1944       gains \code{ylab} and \code{lty} arguments, and passes
 1945       \code{\dots} on to \code{plot.default}.
 1946 
 1947       \item Character-string arguments such as the \code{mode} argument
 1948       of \code{vector()}, \code{as.vector()} and \code{is.vector()} and
 1949       the \code{description} argument of \code{file()} are required to
 1950       be of length exactly one, rather than any further elements being
 1951       silently discarded.  This helps catch incorrect usage in
 1952       programming.
 1953 
 1954       \item The \code{length} argument of \code{vector()} and its
 1955       wrappers such as \code{numeric()} is required to be of length
 1956       exactly one (other values are now an error rather than giving a
 1957       warning as previously).
 1958 
 1959       \item \code{vector(len)} and \code{length(x) <- len} no longer
 1960       accept \code{TRUE}/\code{FALSE} for \code{len} (not that they
 1961       were ever documented to, but there was special-casing in the C
 1962       code).
 1963 
 1964       \item There is a new function \code{Sys.setFileTime()} to set the
 1965       time of a file (including a directory).  See its help for exactly
 1966       which times it sets on various OSes.
 1967 
 1968       \item The file times reported by \code{file.info()} are reported
 1969       to sub-second resolution on systems which support it.  (Currently
 1970       the POSIX 2008 and FreeBSD/Darwin/NetBSD methods are detected.)
 1971 
 1972       \item New function \code{getCall(m)} as an abstraction for
 1973       \code{m$call}, enabling \code{update()}'s default method to apply % $
 1974       more universally.  (NB: this can be masked by existing functions
 1975       in packages.)
 1976 
 1977       \item \code{Sys.info()} gains a \code{euser} component to report
 1978       the \sQuote{effective} user on OSes which have that concept.
 1979 
 1980       \item The result returned by \code{try()} now contains the
 1981       original error condition object as the \code{"condition"}
 1982       attribute.
 1983 
 1984       \item All packages with \R code are lazy-loaded irrespective of
 1985       the \samp{LazyLoad} field in the \file{DESCRIPTION} file.  A
 1986       warning is given if the \samp{LazyLoad} field is overridden.
 1987 
 1988       \item \code{Rd} markup has a new \samp{\figure} tag so that
 1989       figures can be included in help pages when converted to HTML or
 1990       LaTeX.  There are examples on the help pages for \code{par()} and
 1991       \code{points()}.
 1992 
 1993       \item The built-in httpd server now allows access to files
 1994       in the session temporary directory \code{tempdir()},
 1995       addressed as the \file{/session} directory on the httpd
 1996       server.
 1997 
 1998       \item Development versions of \R are no longer referred to by the
 1999       number under which they might be released, e.g., in the startup
 2000       banner, \command{R --version} and \code{sessionUtils()}.  The
 2001       correct way to refer to a development version of R is
 2002       \sQuote{R-devel}, preferably with the date and SVN version number.\cr
 2003       E.g., \samp{R-devel (2011-07-04 r56266)}
 2004 
 2005       \item There is a new function \code{texi2pdf()} in package
 2006       \pkg{tools}, currently a convenience wrapper for
 2007       \code{texi2dvi(pdf = TRUE)}.
 2008 
 2009       \item There are two new options for typesetting PDF manuals from
 2010       Rd files.  These are \samp{beramono} and \samp{inconsolata}, and
 2011       used the named font for monospaced output. They are intended to
 2012       be used in combination with \samp{times}, and
 2013       \samp{times,inconsolata,hyper} is now the default for the
 2014       reference manual and package manuals.  If you do not have that
 2015       font installed, you can set \env{R_RD4PF} to one of the other
 2016       options: see the \sQuote{R Installation and Administration Manual}.
 2017 
 2018       \item Automatic printing for reference classes is now done by
 2019       the \code{$show()} method.  A method is defined for class % $
 2020       \samp{envRefClass} and may be overridden for user classes (see
 2021       the \code{?ReferenceClasses} example).  S4 \code{show()} methods
 2022       should no longer be needed for reference classes.
 2023 
 2024       \item \code{tools::Rdiff} (by default) and \code{R CMD Rdiff}
 2025       now ignore differences in pointer values when comparing printed
 2026       environments, compiled byte code, etc.
 2027 
 2028       \item The \code{"source"} attribute on functions created with
 2029       \code{keep.source=TRUE} has been replaced with a \code{"srcref"}
 2030       attribute.  The \code{"srcref"} attribute references an in-memory
 2031       copy of the source file using the \code{"srcfilecopy"} class or
 2032       the new \code{"srcfilealias"} class.
 2033 
 2034       \strong{NB:} This means that functions sourced with
 2035       \code{keep.source = TRUE} and saved (e.g., by \code{save()} or
 2036       \code{readRDS()}) in earlier versions of \R will no longer show
 2037       the original sources (including comments).
 2038 
 2039       \item New items \samp{User Manuals} and
 2040       \href{http://developer.r-project.org/TechDocs}{Technical Papers}
 2041       have been added to the HTML help main page.  These link to
 2042       vignettes in the base and recommended packages and to a
 2043       collection of papers about R issues, respectively.
 2044 
 2045       \item Documentation and messages have been standardized to
 2046       use \dQuote{namespace} rather than \dQuote{name space}.
 2047 
 2048       \item \code{setGeneric()} now looks in the default packages for
 2049       a non-generic version of a function if called from a package with a
 2050       namespace.  (It always did for packages without a namespace.)
 2051 
 2052       \item Setting the environment variable
 2053       \env{_R_WARN_ON_LOCKED_BINDINGS_} will give a warning if an
 2054       attempt is made to change a locked binding.
 2055 
 2056       \item \code{\\SweaveInput} is now supported when generating
 2057       concordances in \code{Sweave()}.
 2058 
 2059       \item \code{findLineNum()} and \code{setBreakpoint()} now allow
 2060       the environment to be specified indirectly; the latter gains
 2061       a \code{clear} argument to allow it to call \code{untrace()}.
 2062 
 2063       \item The body of a closure can be one of further types of \R
 2064       objects, including environments and external pointers.
 2065 
 2066       \item The \code{Rd2HTML()} function in package \pkg{tools} now has
 2067       a \code{stylesheet} argument, allowing pages to be displayed in
 2068       alternate formats.
 2069 
 2070       \item New function \code{requireNamespace()} analogous to
 2071       \code{require()}, returning a logical value after attempting to
 2072       load a namespace.
 2073 
 2074       \item There is a new type of RNG, \code{"L'Ecuyer-CMRG"},
 2075       implementing L'Ecuyer (1999)'s \sQuote{combined multiple-recursive
 2076       generator} \samp{MRG32k3a}.  See the comments on \code{?RNG}.
 2077 
 2078       \item \code{help.search()} and \code{??} can now display
 2079       vignettes and demos as well as help pages.  The new option
 2080       \code{"help.search.types"} controls the types of documentation
 2081       and the order of their display.
 2082 
 2083       This also applies to HTML searches, which now give results in all
 2084       of help pages, vignettes and demos.
 2085 
 2086       \item \code{socketConnection()} now has a \code{timeout} argument.
 2087       It is now documented that large values (package \CRANpkg{snow} used a
 2088       year) do not work on some OSes.
 2089 
 2090       \item The initialization of the random-number generator now uses
 2091       the process ID as well as the current time, just in case two \R
 2092       processes are launched very rapidly on a machine with
 2093       low-resolution wall clock (some have a resolution of a second;
 2094       modern systems have microsecond-level resolution).
 2095 
 2096       \item New function \code{pskill()} in the \pkg{tools} package to
 2097       send a terminate signal to one or more processes, plus constants
 2098       such as \code{SIGTERM} to provide a portable way to refer to
 2099       signals (since the numeric values are OS-dependent).
 2100 
 2101       \item New function \code{psnice()} in the \pkg{tools} package to
 2102       return or change the \sQuote{niceness} of a process.  (Refers to
 2103       the \sQuote{priority class} on Windows.)
 2104 
 2105       \item \code{list.dirs()} gains a \code{recursive} argument.
 2106 
 2107       \item An \samp{Authors@R} field in a package \file{DESCRIPTION}
 2108       file can now be used to generate \samp{Author} and
 2109       \samp{Maintainer} fields if needed, and to auto-generate package
 2110       citations.
 2111 
 2112       \item New utility \code{getElement()} for accessing either a list
 2113       component or a slot in an S4 object.
 2114 
 2115       \item \code{stars()} gains a \code{col.lines} argument, thanks to
 2116       Dustin Sallings. (Wish of \PR{14657}.)
 2117 
 2118       \item New function \code{regmatches()} for extracting or replacing
 2119       matched or non-matched substrings from match data obtained by
 2120       \code{regexpr()}, \code{gregexpr()} and \code{regexec()}.
 2121 
 2122       \item \code{help(package = "pkg_name", help_type = "HTML")} now
 2123       gives HTML help on the package rather than text help.  (This gives
 2124       direct access to the HTML version of the package manual shown
 2125       \emph{via} \code{help.start()}'s \sQuote{Packages} menu.)
 2126 
 2127       \item \code{agrep()} gains a \code{fixed} argument to optionally
 2128       allow approximate regular expression matching, and a \code{costs}
 2129       argument to specify possibly different integer match costs for
 2130       insertions, deletions and substitutions.
 2131 
 2132       \item \code{read.dcf()} and \code{write.dcf()} gain a
 2133       \code{keep.white} argument to indicate fields where whitespace
 2134       should be kept as is.
 2135 
 2136       \item \code{available.packages()} now works around servers that
 2137       fail to return an error code when \file{PACKAGES.gz} does not
 2138       exist.  (Patch submitted by Seth Schommer.)
 2139 
 2140       \item \code{readBin()} can now read more than
 2141       \eqn{2^{31}-1}{2^31 - 1} bytes in a single call (the previously
 2142       documented limitation).
 2143 
 2144       \item New function \code{regexec()} for finding the positions of
 2145       matches as well as all substrings corresponding to parenthesized
 2146       subexpressions of the given regular expression.
 2147 
 2148       \item New function \code{adist()} in package \pkg{utils} for
 2149       computing \sQuote{edit} (generalized Levenshtein) distances between
 2150       strings.
 2151 
 2152       \item Class \code{"raster"} gains an \code{is.na} method to avoid
 2153       confusion from the misuse of the matrix method (such as \PR{14618}).
 2154 
 2155       \item The \code{identical()} function gains an
 2156       \code{ignore.bytecode} argument to control comparison of
 2157       compiled functions.
 2158 
 2159       \item \code{pmin} and \code{pmax} now warn if an argument is
 2160       partially recycled (wish of \PR{14638}).
 2161 
 2162       \item The default for \code{image(useRaster=)} is now taken from
 2163       option \code{"preferRaster"}: for the small print see \code{?image}.
 2164 
 2165       \item \code{str()} now displays reference class objects and their
 2166       fields, rather than treating them as classical S4 classes.
 2167 
 2168       \item New function \code{aregexec()} in package \pkg{utils} for
 2169       finding the positions of approximate string matches as well as all
 2170       substrings corresponding to parenthesized subexpressions of the
 2171       given regular expression.
 2172 
 2173       \item \code{download.file()} has an \code{extra} argument to pass
 2174       additional command-line options to the non-default methods using
 2175       command-line utilities.
 2176 
 2177       \code{cacheOK = FALSE} is now supported for \code{method = "curl"}.
 2178 
 2179       \item \code{interaction.plot(*, type = .)} now also allows type
 2180       \code{"o"} or \code{"c"}.
 2181 
 2182       \item \code{axTicks(*, log=TRUE)} did sometimes give more values
 2183       than the ticks in the corresponding \code{graphics::axis()}.  By
 2184       default, it now makes use of the new (\pkg{graphics}-package
 2185       independent) \code{axisTicks()} which can make use of a new
 2186       utility \code{.axisPars()}.  Further, it now returns a decreasing
 2187       sequence (as for \code{log=FALSE}) when \code{usr} is decreasing.
 2188 
 2189       \item Using \code{fix()} or \code{edit()} on a \R{} object (except
 2190       perhaps a matrix or data frame) writes its temporary file with
 2191       extension \file{.R} so editors which select their mode based on
 2192       the extension will select a suitable mode.
 2193     }
 2194   }
 2195 
 2196   \subsection{GRAPHICS DEVICES}{
 2197     \itemize{
 2198       \item The \code{pdf()} device makes use of Flate compression: this
 2199       is controlled by the new logical argument \code{compress}, and is
 2200       enabled by default.
 2201 
 2202       \item Devices \code{svg()}, \code{cairo_pdf()} and
 2203       \code{cairo_ps()} gain a \code{family} argument.
 2204 
 2205       On a Unix-alike \code{X11()} gains a \code{family} argument.  This
 2206       is one of the \code{x11.options()} and so can be passed as an
 2207       argument to the \code{bmp()}, \code{jpeg()}, \code{png()} and
 2208       \code{tiff()} devices.
 2209 
 2210       Analogous changes have been made on Windows, so all built-in \R
 2211       graphics devices now have a \code{family} argument except
 2212       \code{pictex()} (which has no means to change fonts).
 2213 
 2214       \item The \code{bmp()}, \code{jpeg()}, \code{png()} and \code{tiff()}
 2215       devices now make use of the \code{antialias} argument for
 2216       \code{type = "quartz"}.
 2217 
 2218       \item There are several new built-in font mappings for
 2219       \code{X11(type = "Xlib")}: see the help on \code{X11Fonts()}.
 2220 
 2221       \item There is a new type \code{X11(type = "dbcairo")} which
 2222       updates the screen less frequently: see its help page.
 2223 
 2224       \item The \code{X11()} device now makes use of cursors to
 2225       distinguish its states.  The normal cursor is an arrow (rather
 2226       than a crosshair); the crosshair is used when the locator is in
 2227       use, and a watch cursor is shown when plotting computations are
 2228       being done.  (These are the standard names for X11 cursors: how
 2229       they are actually displayed depends on the window manager.)
 2230 
 2231       \item New functions \code{dev.hold()} and \code{dev.flush()} for
 2232       use with graphics devices with buffering.  These are used for most
 2233       of the high-level graphics functions such as \code{boxplot()}, so
 2234       that the plot is only displayed when the page is complete.
 2235 
 2236       Currently implemented for \code{windows(buffered = TRUE)},
 2237       \code{quartz()} and the cairographics-based \code{X11()} types
 2238       with buffering (which are the default on-screen devices).
 2239 
 2240       \item New function \code{dev.capture()} for capture of bitmap
 2241       snapshots of image-based devices (a superset of the functionality
 2242       provided by \code{grid.cap()} in \code{grid}).
 2243 
 2244       \item The default \code{colormodel} for \code{pdf()} and
 2245       \code{postscript()} is now called \code{"srgb"} to more accurately
 2246       describe it.  (Instead of \code{"rgb"}, and in the case of
 2247       \code{postscript()} it no longer switches to and from the gray
 2248       colorspace, by default.)
 2249 
 2250       The \code{colormodel} for \code{postscript()} which does use both
 2251       gray and sRGB colorspaces is now called \code{"srgb+gray"}.
 2252 
 2253       Plots which are known to use only black/white/transparent can
 2254       advantageously use \code{colormodel = "gray"} (just as before, but
 2255       there is now slightly more advantage in doing so).
 2256 
 2257       \item \code{postscript()} with values \code{colormodel = "rgb"} and
 2258       \code{colormodel = "rgb-nogray"} give the behaviour prior to \R
 2259       2.13.0 of uncalibrated RGB, which under some circumstances can be
 2260       rendered much faster by a viewer.
 2261 
 2262       \code{pdf(colormodel = "rgb")} gives the behaviour prior to \R
 2263       2.13.0 of uncalibrated RGB, which under some circumstances can be
 2264       rendered faster by a viewer, and the files will be smaller (by
 2265       about 9KB if compression is not used).
 2266 
 2267       \item The \code{postscript()} device only includes the definition
 2268       of the sRGB colorspace in the output file for the colormodels
 2269       which use it.
 2270 
 2271       \item The \code{postscript()} and \code{pdf()} devices now output
 2272       greyscale raster images (and not RGB) when \code{colormodel = "gray"}.
 2273 
 2274       \item \code{postscript(colormodel = "gray")} now accepts non-grey
 2275       colours and uses their luminance (as \code{pdf()} long has).
 2276 
 2277       \item \code{colormodel = "grey"} is allowed as an alternative name
 2278       for \code{postscript()} and \code{pdf()}.
 2279 
 2280       \item \code{pdf()} in the default sRGB colorspace outputs many
 2281       fewer changes of colorspace, which may speed up rendering in some
 2282       viewing applications.
 2283 
 2284       \item There is a new function \code{dev.capabilities()} to query
 2285       the capabilities of the current device.  The initial set of
 2286       capabilities are support for semi-transparent colours, rendering
 2287       and capturing raster images, the locator and for interactive
 2288       events.
 2289 
 2290       \item For \code{pdf()}, \code{maxRasters} is increased as needed
 2291       so the argument is no longer used.
 2292     }
 2293   }
 2294 
 2295   \subsection{SWEAVE & VIGNETTES}{
 2296     \itemize{
 2297       \item Options \code{keep.source = TRUE, figs.only = FALSE}
 2298       are now the default.
 2299 
 2300       \item The way the type of user-defined options is determined has
 2301       changed.  Previously they were all regarded as logical: now the
 2302       type is determined by the value given at first use.
 2303 
 2304       \item The allowed values of logical options are now precisely
 2305       those allowed for character inputs to \code{as.logical()}: this
 2306       means that \samp{t} and \samp{f} are no longer allowed (although
 2307       \code{T} and \code{F} still are).
 2308 
 2309       \item The preferred location for vignette sources is now the
 2310       directory \file{vignettes} and not \file{inst/doc}: \command{R CMD
 2311       build} will now re-build vignettes in directory \file{vignettes}
 2312       and copy the \file{.Rnw} (etc) files and the corresponding PDFs to
 2313       \file{inst/doc}.  Further files to be copied to \file{inst/doc}
 2314       can be specified \emph{via} the file
 2315       \file{vignettes/.install_extras}.
 2316 
 2317       \item \command{R CMD Sweave} now supports a \option{--driver}
 2318       option to select the Sweave driver: the default is equivalent to
 2319       \option{--driver=RweaveLatex}.
 2320 
 2321       \item \command{R CMD Sweave} and \command{R CMD Stangle} support
 2322       options \option{--encoding} and \option{--options}.
 2323 
 2324       \item The \code{Rtangle()} driver allows \code{output = "stdout"}
 2325       or \code{output = "stderr"} to select the output or message
 2326       connection.  This is convenient for scripting using something like
 2327 \preformatted{    R CMD Stangle --options='output="stdout"' foo.Rnw > foo2.R}
 2328 
 2329       \item There is a new option \code{pdf.compress} controlling
 2330       whether PDF figures are generated using Flate compression (they
 2331       are by default).
 2332 
 2333       \item \command{R CMD Sweave} now has a \option{--pdf} option to
 2334       produce a PDF version of the processed Sweave document.
 2335 
 2336       \item It is no longer allowed to have two vignettes with the
 2337       same vignette basename (e.g., \file{vig.Rnw} and \file{vig.Snw}).
 2338       (Previously one vignette hid the other in the \code{vignette()}
 2339       function.)
 2340     }
 2341   }
 2342 
 2343   \subsection{C-LEVEL FACILITIES}{
 2344     \itemize{
 2345       \item Function \code{R_tmpnam2} has been added to the API to allow
 2346       a temporary filename to include a specified extension.
 2347     }
 2348   }
 2349 
 2350   \subsection{PACKAGE INSTALLATION}{
 2351     \itemize{
 2352       \item Package \file{DESCRIPTION} file field \samp{KeepSource}
 2353       forces the package to be installed with \code{keep.source =
 2354 	TRUE} (or \code{FALSE}).  (Suggestion of Greg Snow.  Note that
 2355       as all packages are lazy-loaded, this is now only relevant at
 2356       installation.)
 2357 
 2358       There are corresponding options \option{--with-keep.source} and
 2359       \option{--without-keep.source} for \command{R CMD INSTALL}.
 2360 
 2361       \item \command{R CMD INSTALL} has a new option
 2362       \option{--byte-compile} to byte-compile the packages during
 2363       installation (since all packages are now lazy-loaded).  This can
 2364       be controlled on a per-package basis by the optional field
 2365       \samp{ByteCompile} in the \file{DESCRIPTION} file.
 2366 
 2367       \item A package \R code but without a \file{NAMESPACE} file will
 2368       have a default one created at \command{R CMD build} or \command{R
 2369       CMD INSTALL} time, so all packages will be installed with
 2370       namespaces.  A consequence of this is that \code{.First.lib()}
 2371       functions need to be copied to \code{.onLoad()} (usually) or
 2372       \code{.onAttach()}.  For the time being, if there is an
 2373       auto-generated \file{NAMESPACE} file and no \code{.onLoad()} nor
 2374       \code{.onAttach()} function is found but \code{.First.lib()} is,
 2375       it will be run as the attach hook (unless the package is one of a
 2376       list of known exceptions, when it will be run as the load hook).
 2377 
 2378       \item A warning is given if test-loading a package changes a
 2379       locked binding in a package other than itself.  It is likely that
 2380       this will be disallowed in future releases.  (There are \emph{pro
 2381 	tem} some exceptions to the warning.)
 2382 
 2383       \item A dependency on SVN revision is allowed for \code{R},
 2384       e.g.\sspace{}\code{R (>= r56550)}.  This should be used in conjunction with a
 2385       version number, e.g.\sspace{}\code{R (>= 2.14.0), R (>= r56550)} to
 2386       distinguish between R-patched and R-devel versions with the same
 2387       SVN revision.
 2388 
 2389       \item \code{installed.packages()} now hashes the names of its
 2390       cache files to avoid very rare problems with excessively long path
 2391       names.  (\PR{14669})
 2392 
 2393       \item A top-level \file{COPYING} file in a package is no longer
 2394       installed (file names \file{LICENSE} or \file{LICENCE} having long
 2395       been preferred).
 2396     }
 2397   }
 2398 
 2399   \subsection{UTILITIES}{
 2400     \itemize{
 2401       \item \command{R CMD check} now gives an error if the \R code in a
 2402       vignette fails to run, unless this is caused by a missing package.
 2403 
 2404       \item \command{R CMD check} now unpacks tarballs in the same way
 2405 	as \command{R CMD INSTALL}, including making use of the
 2406 	environment variable \env{R_INSTALL_TAR} to override the default
 2407 	behaviour.
 2408 
 2409       \item \command{R CMD check} performs additional code analysis of
 2410       package startup functions, and notifies about incorrect argument
 2411       lists and (incorrect) calls to functions which modify the search
 2412       path or inappropriately generate messages.
 2413 
 2414       \item \command{R CMD check} now also checks compiled code for
 2415       symbols corresponding to functions which might terminate \R or
 2416       write to \file{stdout}/\file{stderr} instead of the console.
 2417 
 2418       \item \command{R CMD check} now uses a \code{pdf()} device when
 2419       checking examples (rather than \code{postscript()}).
 2420 
 2421       \item \command{R CMD check} now checks line-endings of makefiles
 2422       and C/C++/Fortran sources in subdirectories of \file{src} as well
 2423       as in \file{src} itself.
 2424 
 2425       \item \command{R CMD check} now reports as a NOTE what look like
 2426       methods documented with their full names even if there is a
 2427       namespace and they are exported.  In almost all cases they are
 2428       intended to be used only as methods and should use the
 2429       \samp{\\method} markup.  In the other rare cases the recommended
 2430       form is to use a function such as \code{coefHclust} which would
 2431       not get confused with a method, document that and register it in
 2432       the \file{NAMESPACE} file by \code{s3method(coef, hclust,
 2433       coefHclust)}.
 2434 
 2435       \item The default for the environment variable
 2436       \env{_R_CHECK_COMPACT_DATA2_} is now true: thus if using the newer
 2437       forms of compression introduced in \R 2.10.0 would be beneficial
 2438       is now checked (by default).
 2439 
 2440       \item Reference output for a vignette can be supplied when
 2441       checking a package by \command{R CMD check}: see \sQuote{Writing R
 2442 	Extensions}.
 2443 
 2444       \item \command{R CMD Rd2dvi} allows the use of LaTeX package
 2445       \samp{inputenx} rather than \samp{inputenc}: the value of the
 2446       environment variable \env{RD2DVI_INPUTENC} is used.  (LaTeX package
 2447       \samp{inputenx} is an optional install which provides greater
 2448       coverage of the UTF-8 encoding.)
 2449 
 2450       \item \command{Rscript} on a Unix-alike now accepts file names
 2451       containing spaces (provided these are escaped or quoted in the
 2452       shell).
 2453 
 2454       \item \command{R CMD build} on a Unix-alike (only) now tries to
 2455       preserve dates on files it copies from its input directory.  (This
 2456       was the undocumented behaviour prior to \R 2.13.0.)
 2457      }
 2458    }
 2459 
 2460   \subsection{DEPRECATED AND DEFUNCT}{
 2461    \itemize{
 2462       \item \code{require()} no longer has a \code{save} argument.
 2463 
 2464       \item The \code{gamma} argument to \code{hsv()},
 2465       \code{rainbow()}, and \code{rgb2hsv()} has been removed.
 2466 
 2467       \item The \option{--no-docs} option for
 2468       \command{R CMD build --binary} is defunct: use
 2469       \option{--install-args} instead.
 2470 
 2471       \item The option \option{--unsafe} to \command{R CMD INSTALL} is
 2472       defunct: use the identical option \option{--no-lock} instead.
 2473 
 2474       \item The entry point \code{pythag} formerly in \file{Rmath.h} is
 2475       defunct: use instead the C99 function \code{hypot}.
 2476 
 2477       \item \command{R CMD build --binary} is formally defunct:
 2478       \command{R CMD INSTALL --build} has long been the preferred
 2479       alternative.
 2480 
 2481       \item \command{zip.file.extract()} is now defunct: use
 2482       \code{unzip()} or \code{unz()} instead.
 2483 
 2484       \item \command{R CMD Rd2dvi} without the \option{--pdf} option is
 2485       now deprecated: only PDF output will be supported in future
 2486       releases (since this allows the use of fonts only supported for
 2487       PDF), and only \command{R CMD Rd2pdf} will be available.
 2488 
 2489       \item Options such as \option{--max-nsize} and the function
 2490       \code{mem.limits()} are now deprecated: these limits are nowadays
 2491       almost never used, and are reported by \code{gc()} when they are
 2492       in use.
 2493 
 2494       \item Forms like \code{binomial(link = "link")} for GLM families
 2495       deprecated since \R 2.4.0 are now defunct.
 2496 
 2497       \item The \code{declarativeOnly} argument to
 2498       \code{loadNamespace()} (not relevant since \R 2.13.0) has been
 2499       removed.
 2500 
 2501       \item Use of \code{library.dynam()} without specifying all the
 2502       first three arguments is deprecated.  (It is often called from a
 2503       namespace, and the defaults are only appropriate to a package.)
 2504 
 2505       Use of \code{chname} in \code{library.dynam()} with the extension
 2506       \file{.so} or \code{.dll} (which is clearly not allowed according
 2507       to the help page) is deprecated.  This also applies to
 2508       \code{library.dynam.unload()} and \code{useDynLib} directives in
 2509       \file{NAMESPACE} files.
 2510 
 2511       \item It is deprecated to use \code{mean(x)} and \code{sd(x)}
 2512       directly on data frames (or also matrices, for \code{sd})
 2513       \code{x}, instead of simply using \code{sapply}.
 2514 
 2515       In the same spirit, \code{median(x)} now gives an error for a data
 2516       frame \code{x} (it often gave nonsensical results).
 2517 
 2518       \item The \code{keep.source} argument to \code{library()} and
 2519       \code{require()} is deprecated: it was only used for packages
 2520       installed without lazy-loading, and now all packages are
 2521       lazy-loaded.
 2522 
 2523       \item Using a false value for the \file{DESCRIPTION} field
 2524       \samp{LazyLoad} is deprecated.
 2525     }
 2526   }
 2527 
 2528   \subsection{INSTALLATION}{
 2529     \itemize{
 2530       \item The base and recommended packages are now byte-compiled
 2531       (equivalent to \command{make bytecode} in \R 2.13.x).
 2532 
 2533       \item Configure option \option{--with-system-zlib} now only makes
 2534       use of the basic interface of \code{zlib} and not the
 2535       C function \samp{gzseek} which has shown erroneous behaviour in
 2536       \code{zlib} 1.2.4 and 1.2.5.
 2537 
 2538       \item The \code{zlib} in the R sources is now version 1.2.5.
 2539       (This is safe even on 32-bit Linux systems because only the basic
 2540       interface is now used.)
 2541 
 2542       \item The \file{.afm} files in package \pkg{grDevices} are now
 2543       installed as compressed files (as long done on Windows), saving ca
 2544       2MB on the installed size.
 2545 
 2546       \item The non-screen cairo-based devices are no longer in the X11
 2547       module and so can be installed without X11.  (We have never seen a
 2548       Unix-alike system with cairographics installed but not X11, but a
 2549       user might select \option{--without-x}.)
 2550 
 2551       \item Configure will try to use \option{-fobjc-exceptions} for the
 2552       Objective-C compiler (if present) to ensure that even compilers
 2553       that do not enable exceptions by default (such as vanilla gcc) can
 2554       be used.  (Objective-C is currently only used on Mac OS X.)
 2555 
 2556       \item The system call \code{times} is required.
 2557 
 2558       \item The C99 functions \code{acosh}, \code{asinh}, \code{atanh},
 2559       \code{snprintf} and \code{vsnprintf} are now required.
 2560 
 2561       \item There is no longer support for making DVI manuals \emph{via}
 2562       \command{make dvi}, \command{make install-dvi} and similar.  Only
 2563       PDF manuals are supported (to allow the use of fonts which are
 2564       only available for PDF.)
 2565 
 2566       \item The \file{configure} arguments used during configuration of
 2567       \R are included as a comment in \file{Makeconf} for informative
 2568       purposes on Unix-alikes in a form suitable for shell execution.
 2569       Note that those are merely command-line arguments, they do not
 2570       include environment variables (one more reason to use configure
 2571       variables instead) or site configuration settings.
 2572 
 2573       \item Framework installation now supports \code{DESTDIR}
 2574       (Mac OS X only).
 2575 
 2576       \item Java detection (\code{R CMD javareconf}) works around bogus
 2577       \code{java.library.path} property in recent Oracle Java binaries.
 2578     }
 2579   }
 2580 
 2581   \subsection{BUG FIXES}{
 2582     \itemize{
 2583       \item The locale category \samp{LC_MONETARY} was only being set on
 2584       startup on Windows: that is now done on Unix-alikes where
 2585       supported.
 2586 
 2587       \item Reference class utilities will detect an attempt to modify
 2588       methods or fields in a locked class definition (e.g., in a
 2589       namespace) and generate an error.
 2590 
 2591       \item The formula methods for \code{lines()}, \code{points()} and
 2592       \code{text()} now work even if package \pkg{stats} is not on the
 2593       search path.
 2594 
 2595       \item In principle, S4 classes from different packages could
 2596       have the same name.  This has not previously worked.  Changes
 2597       have now been installed that should allow such classes and
 2598       permit methods to use them.  New functions \code{className()}
 2599       and \code{multipleClasses()} are related tools for programming.
 2600 
 2601       \item Work around an issue in Linux (a system \code{select} call
 2602       resetting \code{tv}) which prevented internet operations from
 2603       timing out properly.
 2604 
 2605       \item Several stack trampling and overflow issues have been fixed
 2606       in TRE, triggered by \code{agrep} and friends with long patterns.
 2607       (\PR{14627})
 2608 
 2609       \item (\dQuote{design infelicity}) Field assignments in reference
 2610       classes are now consistent with slots in S4 classes:  the
 2611       assigned value must come from the declared class (if any) for the field
 2612       or from a subclass.
 2613 
 2614       \item The methods objects constructed for \code{"coerce"} and
 2615       \code{"coerce<-"} were lacking some essential information in the
 2616       \code{generic}, \code{defined} and \code{target} slots;
 2617       \code{as()} did not handle duplicate class definitions correctly.
 2618 
 2619       \item The parser no longer accepts the digit \code{8} in an octal
 2620       character code in a string, nor does it accept unterminated
 2621       strings in a file.  (Reported by Bill Dunlap.)
 2622 
 2623       \item The \code{print()} method for class \code{"summary.aov"} did
 2624       not pass on argument \code{digits} when \code{summary()} was
 2625       called on a single object, and hence used more digits than
 2626       documented.
 2627 
 2628       \item The \code{X11()} device's cairo back-end produced incorrect
 2629       capture snapshot images on big-endian machines.
 2630 
 2631       \item \code{loglin()} gave a spurious error when argument
 2632       \code{margin} consisted of a single element of length one.
 2633       (\PR{14690})
 2634 
 2635       \item \code{loess()} is better protected against misuse,
 2636       e.g.\sspace{}zero-length \code{span}.  (\PR{14691})
 2637 
 2638       \item \code{HoltWinters()} checks that the optimization
 2639       succeeded. (\PR{14694})
 2640 
 2641       \item The (undocumented) inclusion of superclass objects in
 2642       default initializing of reference classes overwrote explicit
 2643       field arguments. The bug is fixed, the feature documented and a
 2644       test added.
 2645 
 2646       \item \code{round(x, -Inf)} now does something sensible (return
 2647       zero rather than \code{NA}).
 2648 
 2649       \item \code{signif(x, -Inf)} now behaves as documented
 2650       (\code{signif(x, 1)}) rather than giving zero.
 2651 
 2652       \item The \code{"table"} method for \code{Axis()} hardcoded
 2653       \code{side = 1}, hence calls to \code{plot(<vector>, <table>)}
 2654       labelled the wrong axis. (\PR{14699})
 2655 
 2656       \item Creating a connection might fail under \code{gctorture(TRUE)}.
 2657 
 2658       \item \code{stack()} and \code{unstack()} converted character
 2659       columns to factors.
 2660 
 2661       \code{unstack()} sometimes produced incorrect results (a list or a
 2662       vector) if the factor on which to un-split had only one level.
 2663 
 2664       \item On some systems \code{help(".C", help_type = "pdf")} and
 2665       similar generated file names that TeX was unable to handle.
 2666 
 2667       \item Non-blocking listening socket connections continued to
 2668       report \code{isIncomplete()} as true even when the peer had closed
 2669       down and all available input had been read.
 2670 
 2671       \item The revised HTML search system now generates better
 2672       hyperlinks to help topics found: previously it gave problems with
 2673       help pages with names containing e.g.\sspace{}spaces and slashes.
 2674 
 2675       \item A late change in \R 2.13.2 broke \samp{\Sexpr} expressions
 2676       in Rd files.
 2677 
 2678       \item The creation of ticks on log axes (including by
 2679       \code{axTicks()}) sometimes incorrectly omitted a tick at one end
 2680       of the range by rounding error in a platform-dependent way.  This
 2681       could be seen in the examples for \code{axTicks()}, where with
 2682       axis limits \code{c(0.2, 88)} the tick for \code{0.2} was
 2683       sometimes omitted.
 2684 
 2685       \item \code{qgamma()} for small \code{shape} underflows to
 2686       \code{0} rather than sometimes giving \code{NaN}.
 2687       (\PR{8528}, \PR{14710})
 2688 
 2689       \item \code{mapply()} now gives an explicit error message (rather
 2690       than an obscure one) if inputs of zero and positive length are
 2691       mixed.
 2692 
 2693       \item Setting a Hershey font family followed by string height
 2694       query would crash R.
 2695 
 2696       \item \code{R CMD javareconf -e} would fail for some shells due to
 2697       a shift error. Also the resulting paths will no longer contain
 2698       \code{$(JAVA_HOME)} as that can result in an unintended
 2699       substitution based on \file{Makeconf} instead of the shell
 2700       setting.
 2701     }
 2702   }
 2703 }
 2704 
 2705 \section{\Rlogo CHANGES IN R VERSION 2.13.2}{
 2706   \subsection{NEW FEATURES}{
 2707     \itemize{
 2708       \item \code{mem.limits()} now reports values larger than the
 2709       maximum integer (previously documented to be reported as
 2710       \code{NA}), and allows larger values to be set, including
 2711       \code{Inf} to remove the limit.
 2712 
 2713       \item The \code{print()} methods for classes \code{"Date"},
 2714       \code{"POSIXct"} and \code{"POSIXlt"} respect the option
 2715       \code{"max.print"} and so are much faster for very long datetime
 2716       vectors.  (Suggestion of Yohan Chalabi.)
 2717 
 2718       \item \code{untar2()} now works around errors generated with
 2719       \code{tar} files that use more than the standard 6 digits for the
 2720       checksum. (\PR{14654})
 2721 
 2722       \item \code{install.packages()} with \code{Ncpus > 1} guards
 2723       against simultaneous installation of indirect dependencies as well
 2724       as direct ones.
 2725 
 2726       \item Sweave now knows about a few more Windows' encodings
 2727       (including \code{cp1250} and \code{cp1257}) and some
 2728       \code{inputenx} encodings such as \code{koi8-r}.
 2729 
 2730       \item \code{postscript(colormodel = "rgb-nogray")} no longer sets
 2731       the sRGB colorspace for each colour and so some viewers may render
 2732       its files much faster than the default \code{colormodel ="rgb"}.
 2733 
 2734       \item The default for \code{pdf(maxRasters=)} has been increased
 2735 	from 64 to 1000.
 2736 
 2737       \item \code{readBin()} now warns if \code{signed = FALSE} is used
 2738       inappropriately (rather than being silently ignored).
 2739 
 2740       It enforces the documented limit of \eqn{2^{31}-1}{2^31-1} bytes
 2741       in a single call.
 2742 
 2743       \item PCRE has been updated to version 8.13, a bug-fix release
 2744       with updated Unicode tables (version 6.0.0).  An additional patch
 2745       (r611 from PCRE 8.20-to-be) has been added to fix a collation
 2746       symbol recognition issue.
 2747     }
 2748   }
 2749 
 2750   \subsection{INSTALLATION}{
 2751     \itemize{
 2752       \item It is possible to build in \file{src/extra/xdr} on more
 2753       platforms.  (Needed since glibc 2.14 hides its RPC implementation.)
 2754 
 2755       \item \command{configure} will find the Sun TI-RPC implementation
 2756       of xdr (in \file{libtirpc}) provided its header files are in the
 2757       search path: see the \sQuote{R Installation and Administration
 2758 	Manual}.
 2759     }
 2760   }
 2761 
 2762   \subsection{PACKAGE INSTALLATION}{
 2763     \itemize{
 2764       \item Using a broad \code{exportPattern} directive in a
 2765       \file{NAMESPACE} file is no longer allowed to export internal
 2766       objects such as \code{.onLoad} and \code{.__S3MethodsTable__.} .
 2767 
 2768       These are also excluded from imports, along with \code{.First.lib}.
 2769     }
 2770   }
 2771 
 2772   \subsection{BUG FIXES}{
 2773     \itemize{
 2774      \item \code{fisher.test()} had a buglet: If arguments were factors
 2775       with unused levels, levels were dropped and you would get an error
 2776       saying that there should be at least two levels, inconsistently
 2777       with pre-tabulated data.  (Reported by Michael Fay).
 2778 
 2779       \item \code{package.skeleton()} will no longer dump S4 objects
 2780       supplied directly rather than in a code file.  These cannot be
 2781       restored correctly from the dumped version.
 2782 
 2783       \item Build-time expressions in help files did not have access
 2784       to functions in the package being built (with \command{R CMD build}).
 2785 
 2786       \item Because \code{quote()} did not mark its result as being in
 2787       use, modification of the result could in some circumstances
 2788       modify the original call.
 2789 
 2790       \item Plotting \code{pch = '.'} now guarantees at least a one-pixel
 2791       dot if \code{cex > 0}.
 2792 
 2793       \item The very-rarely-used command-line option
 2794       \option{--max-vsize} was incorrectly interpreted as a number of
 2795       Vcells and not in bytes as documented.  (Spotted by Christophe
 2796       Rhodes.)
 2797 
 2798       \item The HTML generated by \code{Rd2HTML()} comes closer to
 2799       being standards compliant.
 2800 
 2801       \item \code{filter(x, recursive = TRUE)} gave incorrect results on a
 2802       series containing \code{NA}s.  (Spotted by Bill Dunlap.)
 2803 
 2804       \item Profiling \code{stats::mle()} fits with a \code{fixed}
 2805       parameter was not supported.  (\PR{14646})
 2806 
 2807       \item \code{retracemem()} was still using positional matching.
 2808       (\PR{14650})
 2809 
 2810       \item The \code{quantile} method for \code{"ecdf"} objects now
 2811       works and is documented.
 2812 
 2813       \item \code{xtabs(~ .., ..., sparse=TRUE)} now also works together
 2814       with an \code{exclude = ..} specification.
 2815 
 2816       \item \code{decompose()} computed an incorrect seasonal component for
 2817       time series with odd frequencies.
 2818 
 2819       \item The \code{pdf()} device only includes the definition of the
 2820       sRGB colorspace in the output file for the \code{"rgb"} colormodel
 2821       (and not for \code{"gray"} nor \code{"cmyk"}): this saves ca
 2822       9KB in the output file.
 2823 
 2824       \item \code{.hasSlot()} wrongly gave \code{FALSE} in some cases.
 2825 
 2826       \item \code{Sweave()} with \code{keep.source=TRUE} could generate
 2827       spurious \code{NA} lines when a chunk reference appeared last in
 2828       a code chunk.
 2829 
 2830       \item \samp{\Sexpr[results=rd]} in an \file{.Rd} file now first tries
 2831       \code{parse_Rd(fragment=FALSE)} to allow Rd section-level macros
 2832       to be inserted.
 2833 
 2834       \item The \code{print()} method for class \code{"summary.aov"} did
 2835       not pass on arguments such as \code{signif.stars} when
 2836       \code{summary()} was called on a single object.  (\PR{14684})
 2837 
 2838       \item In rare cases \code{ks.test()} could return a p-value
 2839       very slightly less than 0 by rounding error.  (\PR{14671})
 2840 
 2841       \item If \code{trunc()} was called on a \code{"POSIXlt"} vector
 2842       and the result was subsetted, all but the first element was
 2843       converted to \code{NA}.  (\PR{14679})
 2844 
 2845       \item \code{cbind()} and \code{rbind()} could cause memory
 2846       corruption when used on a combination of raw and logical/integer
 2847       vectors.
 2848     }
 2849   }
 2850 }
 2851 
 2852 \section{\Rlogo CHANGES IN R VERSION 2.13.1}{
 2853   \subsection{NEW FEATURES}{
 2854     \itemize{
 2855       \item \code{iconv()} no longer translates \code{NA} strings as
 2856       \code{"NA"}.
 2857 
 2858       \item \code{persp(box = TRUE)} now warns if the surface extends
 2859       outside the box (since occlusion for the box and axes is computed
 2860       assuming the box is a bounding box). (\PR{202})
 2861 
 2862       \item \code{RShowDoc()} can now display the licences shipped with
 2863       \R, e.g.\sspace{}\code{RShowDoc("GPL-3")}.
 2864 
 2865       \item New wrapper function \code{showNonASCIIfile()} in package
 2866       \pkg{tools}.
 2867 
 2868       \item \code{nobs()} now has a \code{"mle"} method in package
 2869       \pkg{stats4}.
 2870 
 2871       \item \code{trace()} now deals correctly with S4 reference classes
 2872       and corresponding reference methods (e.g., \code{$trace()})%$
 2873       have been added.
 2874 
 2875       \item \command{xz} has been updated to 5.0.3 (very minor bugfix
 2876       release).
 2877 
 2878       \item \code{tools::compactPDF()} gets more compression (usually a
 2879       little, sometimes a lot) by using the compressed object streams of
 2880       PDF 1.5.
 2881 
 2882       \item \code{cairo_ps(onefile = TRUE)} generates encapsulated EPS
 2883       on platforms with cairo >= 1.6.
 2884 
 2885       \item Binary reads (e.g., by \code{readChar()} and \code{readBin()})
 2886       are now supported on clipboard connections.  (Wish of \PR{14593}.)
 2887 
 2888       \item \code{as.POSIXlt.factor()} now passes \code{...} to the
 2889       character method (suggestion of Joshua Ulrich).  [Intended for \R
 2890       2.13.0 but accidentally removed before release.]
 2891 
 2892       \item \code{vector()} and its wrappers such as \code{integer()}
 2893       and \code{double()} now warn if called with a \code{length}
 2894       argument of more than one element.  This helps track down user
 2895       errors such as calling \code{double(x)} instead of
 2896       \code{as.double(x)}.
 2897     }
 2898   }
 2899 
 2900   \subsection{INSTALLATION}{
 2901     \itemize{
 2902       \item Building the vignette PDFs in packages \pkg{grid} and
 2903       \pkg{utils} is now part of running \command{make} from an SVN
 2904       checkout on a Unix-alike: a separate \command{make vignettes} step
 2905       is no longer required.
 2906 
 2907       These vignettes are now made with \code{keep.source = TRUE} and
 2908       hence will be laid out differently.
 2909 
 2910       \item \command{make install-strip} failed under some configuration
 2911       options.
 2912 
 2913       \item Packages can customize non-standard installation of compiled
 2914       code via a \code{src/install.libs.R} script. This allows packages that
 2915       have architecture-specific binaries (beyond the package's shared
 2916       objects/DLLs) to be installed in a multi-architecture setting.
 2917     }
 2918   }
 2919 
 2920   \subsection{SWEAVE & VIGNETTES}{
 2921     \itemize{
 2922       \item \code{Sweave()} and \code{Stangle()} gain an \code{encoding}
 2923       argument to specify the encoding of the vignette sources if the
 2924       latter do not contain a \samp{\\usepackage[]{inputenc}} statement
 2925       specifying a single input encoding.
 2926 
 2927       \item There is a new Sweave option \code{figs.only = TRUE} to run
 2928       each figure chunk only for each selected graphics device, and not
 2929       first using the default graphics device.   This will become the
 2930       default in \R 2.14.0.
 2931 
 2932       \item Sweave custom graphics devices can have a custom function
 2933       \code{foo.off()} to shut them down.
 2934 
 2935       \item Warnings are issued when non-portable filenames are found
 2936       for graphics files (and chunks if \code{split = TRUE}).  Portable
 2937       names are regarded as alphanumeric plus hyphen, underscore, plus
 2938       and hash (periods cause problems with recognizing file
 2939       extensions).
 2940 
 2941       \item The \code{Rtangle()} driver has a new option
 2942       \code{show.line.nos} which is by default false; if true it
 2943       annotates code chunks with a comment giving the line number of the
 2944       first line in the sources (the behaviour of \R >= 2.12.0).
 2945 
 2946       \item Package installation tangles the vignette sources: this step
 2947       now converts the vignette sources from the vignette/package
 2948       encoding to the current encoding, and records the encoding (if not
 2949       ASCII) in a comment line at the top of the installed \file{.R}
 2950       file.
 2951     }
 2952   }
 2953 
 2954   \subsection{LICENCE}{
 2955     \itemize{
 2956       \item No parts of \R are now licensed solely under GPL-2.  The
 2957       licences for packages \CRANpkg{rpart} and \CRANpkg{survival} have been
 2958       changed, which means that the licence terms for \R as distributed
 2959       are GPL-2 | GPL-3.
 2960     }
 2961   }
 2962 
 2963   \subsection{DEPRECATED AND DEFUNCT}{
 2964    \itemize{
 2965      \item The internal functions \code{.readRDS()} and
 2966       \code{.saveRDS()} are now deprecated in favour of the public
 2967       functions \code{readRDS()} and \code{saveRDS()} introduced in \R
 2968       2.13.0.
 2969 
 2970       \item Switching off lazy-loading of code \emph{via} the
 2971       \samp{LazyLoad} field of the \file{DESCRIPTION} file is now
 2972       deprecated.  In future all packages will be lazy-loaded.
 2973 
 2974       \item The off-line \code{help()} types \samp{"postscript"} and
 2975       \samp{"ps"} are deprecated.
 2976     }
 2977   }
 2978 
 2979   \subsection{UTILITIES}{
 2980     \itemize{
 2981       \item \command{R CMD check} on a multi-architecture installation now
 2982       skips the user's \file{.Renviron} file for the
 2983       architecture-specific tests (which do read the
 2984       architecture-specific \file{Renviron.site} files).  This is
 2985       consistent with single-architecture checks, which use
 2986       \option{--no-environ}.
 2987 
 2988       \item \command{R CMD build} now looks for \file{DESCRIPTION}
 2989       fields \samp{BuildResaveData} and \samp{BuildKeepEmpty} for
 2990       per-package overrides.  See \sQuote{Writing R Extensions}.
 2991     }
 2992   }
 2993 
 2994   \subsection{BUG FIXES}{
 2995     \itemize{
 2996       \item \code{plot.lm(which = 5)} was intended to order factor
 2997       levels in increasing order of mean standardized residual.   It
 2998       ordered the factor labels correctly, but could plot the wrong
 2999       group of residuals against the label.  (\PR{14545})
 3000 
 3001       \item \code{mosaicplot()} could clip the factor labels, and could
 3002       overlap them with the cells if a non-default value of
 3003       \code{cex.axis} was used.  (Related to \PR{14550}.)
 3004 
 3005       \item \code{dataframe[[row,col]]} now dispatches on \code{[[}
 3006       methods for the selected column.  (Spotted by Bill Dunlap).
 3007 
 3008       \item \code{sort.int()} would strip the class of an object, but
 3009       leave its object bit set.  (Reported by Bill Dunlap.)
 3010 
 3011       \item \code{pbirthday()} and \code{qbirthday()} did not implement
 3012       the algorithm exactly as given in their reference and so were
 3013       unnecessarily inaccurate.
 3014 
 3015       \code{pbirthday()} now solves the approximate formula analytically
 3016       rather than using \code{uniroot()} on a discontinuous function.
 3017 
 3018       The description of the problem was inaccurate: the probability is
 3019       a tail probability (\sQuote{2 \emph{or more} people share a birthday})
 3020 
 3021       \item Complex arithmetic sometimes warned incorrectly about
 3022       producing NAs when there were NaNs in the input.
 3023 
 3024       \item \code{seek(origin = "current")} incorrectly reported it was
 3025       not implemented for a \code{gzfile()} connection.
 3026 
 3027       \item \code{c()}, \code{unlist()}, \code{cbind()} and
 3028       \code{rbind()} could silently overflow the maximum vector length
 3029       and cause a segfault.  (\PR{14571})
 3030 
 3031       \item The \code{fonts} argument to \code{X11(type = "Xlib")} was
 3032       being ignored.
 3033 
 3034       \item Reading (e.g., with \code{readBin()}) from a raw connection
 3035       was not advancing the pointer, so successive reads would read the
 3036       same value.  (Spotted by Bill Dunlap.)
 3037 
 3038       \item Parsed text containing embedded newlines was printed
 3039       incorrectly by \code{as.character.srcref()}.  (Reported by Hadley
 3040       Wickham.)
 3041 
 3042       \item \code{decompose()} used with a series of a non-integer
 3043       number of periods returned a seasonal component shorter than the
 3044       original series.  (Reported by Rob Hyndman.)
 3045 
 3046       \item \code{fields = list()} failed for \code{setRefClass()}.
 3047       (Reported by Michael Lawrence.)
 3048 
 3049       \item Reference classes could not redefine an inherited field
 3050       which had class \code{"ANY"}. (Reported by Janko Thyson.)
 3051 
 3052       \item Methods that override previously loaded versions will now
 3053       be installed and called.  (Reported by Iago Mosqueira.)
 3054 
 3055       \item \code{addmargins()} called \code{numeric(apos)} rather than
 3056       \code{numeric(length(apos))}.
 3057 
 3058       \item The HTML help search sometimes produced bad links.
 3059       (\PR{14608})
 3060 
 3061       \item Command completion will no longer be broken if
 3062       \code{tail.default()} is redefined by the user. (Problem reported
 3063       by Henrik Bengtsson.)
 3064 
 3065       \item LaTeX rendering of markup in titles of help pages has been
 3066       improved; in particular, \code{\\eqn{}} may be used there.
 3067 
 3068       \item \code{isClass()} used its own namespace as the default of
 3069       the \code{where} argument inadvertently.
 3070 
 3071       \item Rd conversion to latex mishandled multi-line titles
 3072       (including cases where there was a blank line in the \samp{\title}
 3073       section).  (It seems this happened only in 2.13.0 patched.)
 3074 
 3075       \item \code{postscript()} with an sRGB colormodel now uses sRGB
 3076       for raster images (in \R 2.13.[01] it used uncalibrated RGB).
 3077 
 3078       There is no longer an undocumented 21845-pixel limit on raster images.
 3079     }
 3080   }
 3081 }
 3082 
 3083 \section{\Rlogo CHANGES IN R VERSION 2.13.0}{
 3084   \subsection{SIGNIFICANT USER-VISIBLE CHANGES}{
 3085     \itemize{
 3086       \item \code{replicate()} (by default) and \code{vapply()} (always)
 3087       now return a higher-dimensional array instead of a matrix in the case
 3088       where the inner function value is an array of dimension >= 2.
 3089 
 3090       \item Printing and formatting of floating point numbers is now
 3091       using the correct number of digits, where it previously rarely
 3092       differed by a few digits. (See \dQuote{scientific} entry below.)
 3093       This affects \emph{many} \file{*.Rout.save} checks in packages.
 3094     }
 3095   }
 3096   \subsection{NEW FEATURES}{
 3097     \itemize{
 3098       \item \code{normalizePath()} has been moved to the \pkg{base}
 3099       package (from \pkg{utils}): this is so it can be used by
 3100       \code{library()} and friends.
 3101 
 3102       It now does tilde expansion.
 3103 
 3104       It gains new arguments \code{winslash} (to select the separator on
 3105       Windows) and \code{mustWork} to control the action if a canonical
 3106       path cannot be found.
 3107 
 3108       \item The previously barely documented limit of 256 bytes on a
 3109       symbol name has been raised to 10,000 bytes (a sanity check).
 3110       Long symbol names can sometimes occur when deparsing expressions
 3111       (for example, in \code{model.frame}).
 3112 
 3113       \item \code{reformulate()} gains a \code{intercept} argument.
 3114 
 3115       \item \code{cmdscale(add = FALSE)} now uses the more common
 3116       definition that there is a representation in \code{n-1} or less
 3117       dimensions, and only dimensions corresponding to positive
 3118       eigenvalues are used.  (Avoids confusion such as \PR{14397}.)
 3119 
 3120       \item Names used by \code{c()}, \code{unlist()}, \code{cbind()}
 3121       and \code{rbind()} are marked with an encoding when this can be
 3122       ascertained.
 3123 
 3124       \item R colours are now defined to refer to the sRGB color space.
 3125 
 3126       The PDF, PostScript, and Quartz graphics devices record this fact.
 3127       X11 (and cairo) and Windows just assume that your screen conforms.
 3128 
 3129       \item \code{system.file()} gains a \code{mustWork} argument
 3130       (suggestion of Bill Dunlap).
 3131 
 3132       \item \code{new.env(hash = TRUE)} is now the default.
 3133 
 3134       \item \code{list2env(envir = NULL)} defaults to hashing (with a
 3135       suitably sized environment) for lists of more than 100 elements.
 3136 
 3137       \item \code{text()} gains a formula method.
 3138 
 3139       \item \code{IQR()} now has a \code{type} argument which is passed
 3140       to \code{quantile()}.
 3141 
 3142       \item \code{as.vector()}, \code{as.double()} etc duplicate less
 3143       when they leave the mode unchanged but remove attributes.
 3144 
 3145       \code{as.vector(mode = "any")} no longer duplicates when it does
 3146       not remove attributes.  This helps memory usage in \code{matrix()}
 3147       and \code{array()}.
 3148 
 3149       \code{matrix()} duplicates less if \code{data} is an atomic vector
 3150       with attributes such as names (but no class).
 3151 
 3152       \code{dim(x) <- NULL} duplicates less if \code{x} has neither
 3153       dimensions nor names (since this operation removes names and
 3154       dimnames).
 3155 
 3156       \item \code{setRepositories()} gains an \code{addURLs} argument.
 3157 
 3158       \item \code{chisq.test()} now also returns a \code{stdres}
 3159       component, for standardized residuals (which have unit variance,
 3160       unlike the Pearson residuals).
 3161 
 3162       \item \code{write.table()} and friends gain a \code{fileEncoding}
 3163       argument, to simplify writing files for use on other OSes (e.g., a
 3164       spreadsheet intended for Windows or Mac OS X Excel).
 3165 
 3166       \item Assignment expressions of the form \code{foo::bar(x) <- y}
 3167       and \code{foo:::bar(x) <- y} now work; the replacement functions
 3168       used are \code{foo::`bar<-`} and \code{foo:::`bar<-`}.
 3169 
 3170       \item \code{Sys.getenv()} gains a \code{names} argument so
 3171       \code{Sys.getenv(x, names = FALSE)} can replace the common idiom
 3172       of \code{as.vector(Sys.getenv())}.  The default has been changed
 3173       to not name a length-one result.
 3174 
 3175       \item Lazy loading of environments now preserves attributes and
 3176       locked status. (The locked status of bindings and active bindings
 3177       are still not preserved; this may be addressed in the future).
 3178 
 3179       \item \code{options("install.lock")} may be set to \code{FALSE}
 3180       so that \code{install.packages()} defaults to \option{--no-lock}
 3181       installs, or (on Windows) to \code{TRUE} so that binary installs
 3182       implement locking.
 3183 
 3184       \item \code{sort(partial = p)} for large \code{p} now tries
 3185       Shellsort if quicksort is not appropriate and so works for
 3186       non-numeric atomic vectors.
 3187 
 3188       \item \code{sapply()} gets a new option \code{simplify = "array"}
 3189       which returns a \dQuote{higher rank} array instead of just a matrix
 3190       when \code{FUN()} returns a \code{dim()} length of two or more.
 3191 
 3192       \code{replicate()} has this option set by default, and
 3193       \code{vapply()} now behaves that way internally.
 3194 
 3195       \item \code{aperm()} becomes S3 generic and gets a \code{table}
 3196       method which preserves the class.
 3197 
 3198       \item \code{merge()} and \code{as.hclust()} methods for objects of
 3199       class \code{"dendrogram"} are now provided.
 3200 
 3201       \item The character method of \code{as.POSIXlt()} now tries to
 3202       find a format that works for all non-\code{NA} inputs, not just
 3203       the first one.
 3204 
 3205       \item \code{str()} now has a method for class \code{"Date"}
 3206       analogous to that for class \code{"POSIXt"}.
 3207 
 3208       \item New function \code{file.link()} to create hard links on
 3209       those file systems (POSIX, NTFS but not FAT) that support them.
 3210 
 3211       \item New \code{Summary()} group method for class \code{"ordered"}
 3212       implements \code{min()}, \code{max()} and \code{range()} for
 3213       ordered factors.
 3214 
 3215       \item \code{mostattributes<-()} now consults the \code{"dim"}
 3216       attribute and not the \code{dim()} function, making it more useful
 3217       for objects (such as data frames) from classes with methods for
 3218       \code{dim()}.  It also uses \code{attr<-()} in preference to the
 3219       generics \code{name<-()}, \code{dim<-()} and \code{dimnames<-()}.
 3220       (Related to \PR{14469}.)
 3221 
 3222       \item There is a new option \code{"browserNLdisabled"} to disable
 3223       the use of an empty (e.g., via the \sQuote{Return} key) as a synonym
 3224       for \code{c} in \code{browser()} or \code{n} under \code{debug()}.
 3225       (Wish of \PR{14472}.)
 3226 
 3227       \item \code{example()} gains optional new arguments
 3228       \code{character.only} and \code{give.lines} enabling programmatic
 3229       exploration.
 3230 
 3231       \item \code{serialize()} and \code{unserialize()} are no longer
 3232       described as \sQuote{experimental}.  The interface is now regarded
 3233       as stable, although the serialization format may well change in
 3234       future releases.  (\code{serialize()} has a new argument
 3235       \code{version} which would allow the current format to be written
 3236       if that happens.)
 3237 
 3238       New functions \code{saveRDS()} and \code{readRDS()} are public
 3239       versions of the \sQuote{internal} functions \code{.saveRDS()} and
 3240       \code{.readRDS()} made available for general use.  The dot-name
 3241       versions remain available as several package authors have made use
 3242       of them, despite the documentation.  \code{readRDS()} no longer
 3243       wraps non-file connections in a call to \code{gzcon()}, for
 3244       efficiency (see its documentation).
 3245 
 3246       \code{saveRDS()} supports \code{compress = "xz"}.
 3247 
 3248       \item Many functions when called with a not-open connection will
 3249       now ensure that the connection is left not-open in the event of
 3250       error.  These include \code{read.dcf()}, \code{dput()},
 3251       \code{dump()}, \code{load()}, \code{parse()}, \code{readBin()},
 3252       \code{readChar()}, \code{readLines()}, \code{save()},
 3253       \code{writeBin()}, \code{writeChar()}, \code{writeLines()},
 3254       \code{.readRDS()}, \code{.saveRDS()} and \code{tools::parse_Rd()},
 3255       as well as functions calling these.
 3256 
 3257       \item Public functions \code{find.package()} and \code{path.package()}
 3258       replace the internal dot-name versions.
 3259 
 3260       \item The default method for \code{terms()} now looks for a
 3261       \code{"terms"} attribute if it does not find a \code{"terms"}
 3262       component, and so works for model frames.
 3263 
 3264       \item \code{httpd()} handlers receive an additional argument
 3265       containing the full request headers as a raw vector (this can be
 3266       used to parse cookies, multi-part forms etc.). The recommended
 3267       full signature for handlers is therefore \code{function(url,
 3268 	query, body, headers, ...)}.
 3269 
 3270       \item \code{file.edit()} gains a \code{fileEncoding} argument to
 3271       specify the encoding of the file(s).
 3272 
 3273       \item The format of the HTML package listings has changed.  If
 3274       there is more than one library tree , a table of links to
 3275       libraries is provided at the top and bottom of the page.  Where a
 3276       library contains more than 100 packages, an alphabetic index is
 3277       given at the top of the section for that library.  (As a
 3278       consequence, package names are now sorted case-insensitively
 3279       whatever the locale.)
 3280 
 3281       \item \code{isSeekable()} now returns \code{FALSE} on connections
 3282       which have non-default \code{encoding}.  Although documented to
 3283       record if \sQuote{in principle} the connection supports seeking,
 3284       it seems safer to report \code{FALSE} when it may not work.
 3285 
 3286       \item \command{R CMD REMOVE} and \code{remove.packages()} now
 3287       remove file \code{R.css} when removing all remaining packages in a
 3288       library tree.  (Related to the wish of \PR{14475}: note that this
 3289       file is no longer installed.)
 3290 
 3291       \item \code{unzip()} now has a \code{unzip} argument like
 3292       \code{zip.file.extract()}.  This allows an external
 3293       \command{unzip} program to be used, which can be useful to access
 3294       features supported by Info-ZIP's \command{unzip} version 6 which
 3295       is now becoming more widely available.
 3296 
 3297       \item There is a simple \code{zip()} function, as wrapper for an
 3298       external \command{zip} command.
 3299 
 3300       \item \code{bzfile()} connections can now read from concatenated
 3301       \command{bzip2} files (including files written with
 3302       \code{bzfile(open = "a")}) and files created by some other
 3303       compressors (such as the example of \PR{14479}).
 3304 
 3305       \item The primitive function \code{c()} is now of type BUILTIN.
 3306 
 3307       \item \code{plot(<dendrogram>, .., nodePar=*)} now obeys an optional
 3308       \code{xpd} specification (allowing clipping to be turned off
 3309       completely).
 3310 
 3311       \item \code{nls(algorithm="port")} now shares more code with
 3312       \code{nlminb()}, and is more consistent with the other
 3313       \code{nls()} algorithms in its return value.
 3314 
 3315       \item \command{xz} has been updated to 5.0.1 (very minor bugfix
 3316       release).
 3317 
 3318       \item \code{image()} has gained a logical \code{useRaster}
 3319       argument allowing it to use a bitmap raster for plotting a
 3320       regular grid instead of polygons. This can be more efficient, but
 3321       may not be supported by all devices. The default is \code{FALSE}.
 3322 
 3323       \item \code{list.files()}/\code{dir()} gains a new argument
 3324       \code{include.dirs()} to include directories in the listing when
 3325       \code{recursive = TRUE}.
 3326 
 3327       \item New function \code{list.dirs()} lists all directories,
 3328       (even empty ones).
 3329 
 3330       \item \code{file.copy()} now (by default) copies
 3331       read/write/execute permissions on files, moderated by the current
 3332       setting of \code{Sys.umask()}.
 3333 
 3334       \item \code{Sys.umask()} now accepts \code{mode = NA} and returns
 3335       the current \code{umask} value (visibly) without changing it.
 3336 
 3337       \item There is a \code{!} method for classes \code{"octmode"} and
 3338       \code{"hexmode"}: this allows \code{xor(a, b)} to work if both
 3339       \code{a} and \code{b} are from one of those classes.
 3340 
 3341       \item \code{as.raster()} no longer fails for vectors or matrices
 3342       containing \code{NA}s.
 3343 
 3344       \item New hook \code{"before.new.plot"} allows functions to be run
 3345       just before advancing the frame in \code{plot.new}, which is
 3346       potentially useful for custom figure layout implementations.
 3347 
 3348       \item Package \pkg{tools} has a new function \code{compactPDF()}
 3349       to try to reduce the size of PDF files \emph{via} \command{qpdf}
 3350       or \command{gs}.
 3351 
 3352       \item \code{tar()} has a new argument \code{extra_flags}.
 3353 
 3354       \item \code{dotchart()} accepts more general objects \code{x} such
 3355       as 1D tables which can be coerced by \code{as.numeric()} to a
 3356       numeric vector, with a warning since that might not be
 3357       appropriate.
 3358 
 3359       \item The previously internal function \code{create.post()} is now
 3360       exported from \pkg{utils}, and the documentation for
 3361       \code{bug.report()} and \code{help.request()} now refer to that
 3362       for \code{create.post()}.
 3363 
 3364       It has a new \code{method = "mailto"} on Unix-alikes similar to
 3365       that on Windows: it invokes a default mailer via \command{open}
 3366       (Mac OS X) or \code{xdg-open} or the default browser (elsewhere).
 3367 
 3368       The default for \code{ccaddress} is now
 3369       \code{getOption("ccaddress")} which is by default unset: using the
 3370       username as a mailing address nowadays rarely works as expected.
 3371 
 3372       \item The default for \code{options("mailer")} is now
 3373       \code{"mailto"} on all platforms.
 3374 
 3375       \item \code{unlink()} now does tilde-expansion (like most other
 3376       file functions).
 3377 
 3378       \item \code{file.rename()} now allows vector arguments (of the
 3379       same length).
 3380 
 3381       \item The \code{"glm"} method for \code{logLik()} now returns an
 3382       \code{"nobs"} attribute (which \code{stats4::BIC()} assumed it
 3383       did).
 3384 
 3385       The \code{"nls"} method for \code{logLik()} gave incorrect results
 3386       for zero weights.
 3387 
 3388       \item There is a new generic function \code{nobs()} in package
 3389       \pkg{stats}, to extract from model objects a suitable value for
 3390       use in BIC calculations.  An S4 generic derived from it is defined
 3391       in package \pkg{stats4}.
 3392 
 3393       \item Code for S4 reference-class methods is now examined for
 3394       possible errors in non-local assignments.
 3395 
 3396       \item \code{findClasses}, \code{getGeneric}, \code{findMethods}
 3397       and \code{hasMethods} are revised to deal consistently with
 3398       the \code{package=} argument and be consistent with soft namespace
 3399       policy for finding objects.
 3400 
 3401       \item \code{tools::Rdiff()} now has the option to return not only
 3402       the status but a character vector of observed differences (which
 3403       are still by default sent to \file{stdout}).
 3404 
 3405       \item The startup environment variables \env{R_ENVIRON_USER},
 3406       \env{R_ENVIRON}, \env{R_PROFILE_USER} and \env{R_PROFILE} are now
 3407       treated more consistently.  In all cases an empty value is
 3408       considered to be set and will stop the default being used, and for
 3409       the last two tilde expansion is performed on the file name.  (Note
 3410       that setting an empty value is probably impossible on Windows.)
 3411 
 3412       \item Using \command{R --no-environ CMD}, \command{R
 3413 	--no-site-file CMD} or \command{R --no-init-file CMD} sets
 3414       environment variables so these settings are passed on to child \R
 3415       processes, notably those run by \code{INSTALL}, \code{check} and
 3416       \code{build}. \command{R --vanilla CMD} sets these three options
 3417       (but not \option{--no-restore}).
 3418 
 3419       \item \code{smooth.spline()} is somewhat faster.  With
 3420       \code{cv=NA} it allows some leverage computations to be skipped,
 3421 
 3422       \item The internal (C) function \samp{scientific()}, at the heart
 3423       of \R's \code{format.info(x)}, \code{format(x)}, \code{print(x)},
 3424       etc, for numeric \code{x}, has been re-written in order to provide
 3425       slightly more correct results, fixing \PR{14491}, notably in
 3426       border cases including when \code{digits >= 16}, thanks to
 3427       substantial contributions (code and experiments) from Petr
 3428       Savicky.  This affects a noticeable amount of numeric output from
 3429       \R.
 3430 
 3431       \item A new function \code{grepRaw()} has been introduced for
 3432       finding subsets of raw vectors. It supports both literal searches
 3433       and regular expressions.
 3434 
 3435       \item Package \pkg{compiler} is now provided as a standard
 3436       package.  See \code{?compiler::compile} for information on how to
 3437       use the compiler.  This package implements a byte code compiler
 3438       for \R: by default the compiler is not used in this release.  See
 3439       the \sQuote{R Installation and Administration Manual} for how to
 3440       compile the base and recommended packages.
 3441 
 3442       \item Providing an \code{exportPattern} directive in a NAMESPACE
 3443       file now causes classes to be exported according to the same
 3444       pattern, for example the default from \code{package.skeleton()}
 3445       to specify all names starting with a letter.  An explicit
 3446       directive to \code{exportClassPattern} will still over-ride.
 3447 
 3448       \item There is an additional marked encoding \code{"bytes"} for
 3449       character strings.  This is intended to be used for non-ASCII
 3450       strings which should be treated as a set of bytes, and never
 3451       re-encoded as if they were in the encoding of the current locale:
 3452       \code{useBytes = TRUE} is automatically selected in functions such
 3453       as \code{writeBin()}, \code{writeLines()}, \code{grep()} and
 3454       \code{strsplit()}.
 3455 
 3456       Only a few character operations are supported (such as \code{substr()}).
 3457 
 3458       Printing, \code{format()} and \code{cat()} will represent non-ASCII
 3459       bytes in such strings by a \samp{\xab} escape.
 3460 
 3461       \item The new function \code{removeSource()} removes the internally
 3462       stored source from a function.
 3463 
 3464       \item \code{"srcref"} attributes now include two additional
 3465       line number values, recording the line numbers in the order they
 3466       were parsed.
 3467 
 3468       \item New functions have been added for source reference access:
 3469       \code{getSrcFilename()}, \code{getSrcDirectory()},
 3470       \code{getSrcLocation()} and \code{getSrcref()}.
 3471 
 3472       \item \code{Sys.chmod()} has an extra argument \code{use_umask}
 3473       which defaults to true and restricts the file mode by the current
 3474       setting of \code{umask}.  This means that all the \R functions
 3475       which manipulate file/directory permissions by default respect
 3476       \code{umask}, notably \command{R CMD INSTALL}.
 3477 
 3478       \item \code{tempfile()} has an extra argument \code{fileext} to
 3479       create a temporary filename with a specified extension.
 3480       (Suggestion and initial implementation by Dirk Eddelbuettel.)
 3481 
 3482       There are improvements in the way \code{Sweave()} and
 3483       \code{Stangle()} handle non-ASCII vignette sources, especially in
 3484       a UTF-8 locale: see \sQuote{Writing R Extensions} which now has a
 3485       subsection on this topic.
 3486 
 3487       \item \code{factanal()} now returns the rotation matrix if a
 3488       rotation such as \code{"promax"} is used, and hence factor
 3489       correlations are displayed.  (Wish of \PR{12754}.)
 3490 
 3491       \item The \code{gctorture2()} function provides a more refined
 3492       interface to the GC torture process.  Environment variables
 3493       \env{R_GCTORTURE}, \env{R_GCTORTURE_WAIT}, and
 3494       \env{R_GCTORTURE_INHIBIT_RELEASE} can also be used to control the
 3495       GC torture process.
 3496 
 3497       \item \code{file.copy(from, to)} no longer regards it as an error
 3498       to supply a zero-length \code{from}: it now simply does nothing.
 3499 
 3500       \item \code{rstandard.glm()} gains a \code{type} argument which can
 3501       be used to request standardized Pearson residuals.
 3502 
 3503       \item A start on a Turkish translation, thanks to Murat Alkan.
 3504 
 3505       \item \code{.libPaths()} calls \code{normalizePath(winslash = "/")}
 3506       on the paths: this helps (usually) to present them in a
 3507       user-friendly form and should detect duplicate paths accessed via
 3508       different symbolic links.
 3509 
 3510       \item \code{download.file()} can be now used with external methods
 3511       even if there are spaces in the URL or the target filename.
 3512 
 3513       \item The first formal argument of \code{.C()}, \code{.Fortran()},
 3514       \code{.Call()} and \code{.External()} is now referred to a
 3515       \code{.NAME} rather than \code{name}: however actual calls should
 3516       have an unnamed first argument.
 3517     }
 3518   }
 3519 
 3520   \subsection{SWEAVE CHANGES}{
 3521     \itemize{
 3522       \item \code{Sweave()} has options to produce PNG and JPEG figures,
 3523       and to use a custom function to open a graphics device (see
 3524       \code{?RweaveLatex}).\cr
 3525       (Based in part on the contribution of \PR{14418}.)
 3526 
 3527       \item The default for \code{Sweave()} is to produce only PDF
 3528       figures (rather than both EPS and PDF).
 3529 
 3530       \item Environment variable \env{SWEAVE_OPTIONS} can be used to
 3531       supply defaults for existing or new options to be applied after
 3532       the Sweave driver setup has been run.
 3533 
 3534       \item The Sweave manual is now included as a vignette in the
 3535       \pkg{utils} package.
 3536 
 3537       \item \code{Sweave()} handles \code{keep.source=TRUE} much better:
 3538       it could duplicate some lines and omit comments. (Reported by John
 3539       Maindonald and others.)
 3540     }
 3541   }
 3542 
 3543   \subsection{C-LEVEL FACILITIES}{
 3544     \itemize{
 3545       \item Because they use a C99 interface which a C++ compiler is not
 3546       required to support, \code{Rvprintf} and \code{REvprintf} are only
 3547       defined by \file{R_ext/Print.h} in C++ code if the macro
 3548       \code{R_USE_C99_IN_CXX} is defined when it is included.
 3549 
 3550       \item \code{pythag} duplicated the C99 function \code{hypot}.  It
 3551       is no longer provided, but is used as a substitute for \code{hypot}
 3552       in the very unlikely event that the latter is not available.
 3553 
 3554       \item \code{R_inspect(obj)} and \code{R_inspect3(obj, deep, pvec)}
 3555       are (hidden) C-level entry points to the internal \code{inspect}
 3556       function and can be used for C-level debugging (e.g., in conjunction
 3557       with the \code{p} command in \code{gdb}).
 3558 
 3559       \item Compiling R with \option{--enable-strict-barrier} now also
 3560       enables additional checking for use of unprotected objects. In
 3561       combination with \code{gctorture()} or \code{gctorture2()} and a
 3562       C-level debugger this can be useful for tracking down memory
 3563       protection issues.
 3564     }
 3565   }
 3566 
 3567   \subsection{UTILITIES}{
 3568     \itemize{
 3569       \item \command{R CMD Rdiff} is now implemented in \R on
 3570       Unix-alikes (as it has been on Windows since \R 2.12.0).
 3571 
 3572       \item \command{R CMD build} no longer does any cleaning in the
 3573       supplied package directory: all the cleaning is done in the copy.
 3574 
 3575       It has a new option \option{--install-args} to pass arguments to
 3576       \command{R CMD INSTALL} for \option{--build} (but not when
 3577       installing to rebuild vignettes).
 3578 
 3579       There is new option, \option{--resave-data}, to call
 3580       \code{tools::resaveRdaFiles()} on the \file{data} directory, to
 3581       compress tabular files (\file{.tab}, \file{.csv} etc) and to
 3582       convert \file{.R} files to \file{.rda} files.  The default,
 3583       \option{--resave-data=gzip}, is to do so in a way compatible even
 3584       with years-old versions of \R, but better compression is given by
 3585       \option{--resave-data=best}, requiring \R >= 2.10.0.
 3586 
 3587       It now adds a \file{datalist} file for \file{data} directories of
 3588       more than 1Mb.
 3589 
 3590       Patterns in \file{.Rbuildignore} are now also matched against all
 3591       directory names (including those of empty directories).
 3592 
 3593       There is a new option, \option{--compact-vignettes}, to try
 3594       reducing the size of PDF files in the \file{inst/doc} directory.
 3595       Currently this tries \command{qpdf}: other options may be used in
 3596       future.
 3597 
 3598       When re-building vignettes and a \file{inst/doc/Makefile} file is
 3599       found, \code{make clean} is run if the makefile has a
 3600       \code{clean:} target.
 3601 
 3602       After re-building vignettes the default clean-up operation will
 3603       remove any directories (and not just files) created during the
 3604       process: e.g., one package created a \file{.R_cache} directory.
 3605 
 3606       Empty directories are now removed unless the option
 3607       \option{--keep-empty-dirs} is given (and a few packages do
 3608       deliberately include empty directories).
 3609 
 3610       If there is a field \code{BuildVignettes} in the package
 3611       \file{DESCRIPTION} file with a false value, re-building the
 3612       vignettes is skipped.
 3613 
 3614       \item \command{R CMD check} now also checks for filenames that are
 3615       case-insensitive matches to Windows' reserved file names with
 3616       extensions, such as \file{nul.Rd}, as these have caused problems
 3617       on some Windows systems.
 3618 
 3619       It checks for inefficiently saved \file{data/*.rda} and
 3620       \file{data/*.RData} files, and reports on those large than 100Kb.
 3621       A more complete check (including of the type of compression, but
 3622       potentially much slower) can be switched on by setting environment
 3623       variable \env{_R_CHECK_COMPACT_DATA2_} to \samp{TRUE}.
 3624 
 3625       The types of files in the \file{data} directory are now checked,
 3626       as packages are \emph{still} misusing it for non-\R data files.
 3627 
 3628       It now extracts and runs the \R code for each vignette in a
 3629       separate directory and \R process: this is done in the package's
 3630       declared encoding.  Rather than call
 3631       \code{tools::checkVignettes()}, it calls
 3632       \code{tools::buildVignettes()} to see if the vignettes can be
 3633       re-built as they would be by \command{R CMD build}.  Option
 3634       \option{--use-valgrind} now applies only to these runs, and not
 3635       when running code to rebuild the vignettes.  This version does a
 3636       much better job of suppressing output from successful vignette
 3637       tests.
 3638 
 3639       The \file{00check.log} file is a more complete record of what is
 3640       output to \file{stdout}: in particular contains more details of
 3641       the tests.
 3642 
 3643       It now checks all syntactically valid Rd usage entries, and warns
 3644       about assignments (unless these give the usage of replacement
 3645       functions).
 3646 
 3647       \file{.tar.xz} compressed tarballs are now allowed, if
 3648       \command{tar} supports them (and setting environment variable
 3649       \env{TAR} to \samp{internal} ensures so on all platforms).
 3650 
 3651       \item \command{R CMD check} now warns if it finds
 3652       \file{inst/doc/makefile}, and \command{R CMD build} renames such a
 3653       file to \file{inst/doc/Makefile}.
 3654    }
 3655   }
 3656 
 3657   \subsection{INSTALLATION}{
 3658     \itemize{
 3659       \item Installing \R no longer tries to find \command{perl}, and
 3660       \command{R CMD} no longer tries to substitute a full path for
 3661       \command{awk} nor \command{perl} -- this was a legacy from the
 3662       days when they were used by \R itself.  Because a couple of
 3663       packages do use \command{awk}, it is set as the \command{make}
 3664       (rather than environment) variable \env{AWK}.
 3665 
 3666       \item \command{make check} will now fail if there are differences
 3667       from the reference output when testing package examples and if
 3668       environment variable \env{R_STRICT_PACKAGE_CHECK} is set to a true
 3669       value.
 3670 
 3671       \item The C99 double complex type is now required.
 3672 
 3673       The C99 complex trigonometric functions (such as \samp{csin}) are
 3674       not currently required (FreeBSD lacks most of them): substitutes
 3675       are used if they are missing.
 3676 
 3677       \item The C99 system call \samp{va_copy} is now required.
 3678 
 3679       \item If environment variable \env{R_LD_LIBRARY_PATH} is set
 3680       during configuration (for example in \file{config.site}) it is
 3681       used unchanged in file \file{etc/ldpaths} rather than being
 3682       appended to.
 3683 
 3684       \item \command{configure} looks for support for OpenMP and if
 3685       found compiles \R with appropriate flags and also makes them
 3686       available for use in packages: see \sQuote{Writing R Extensions}.
 3687 
 3688       This is currently experimental, and is only used in \R with a
 3689       single thread for \code{colSums()} and \code{colMeans()}.  Expect
 3690       it to be more widely used in later versions of \R.
 3691 
 3692       This can be disabled by the \option{--disable-openmp} flag.
 3693     }
 3694   }
 3695 
 3696   \subsection{PACKAGE INSTALLATION}{
 3697     \itemize{
 3698       \item \command{R CMD INSTALL --clean} now removes copies of a
 3699       \file{src} directory which are created when multiple
 3700       sub-architectures are in use.  (Following a comment from
 3701       Berwin Turlach.)
 3702 
 3703       \item File \file{R.css} is now installed on a per-package basis
 3704       (in the package's \file{html} directory) rather than in each
 3705       library tree, and this is used for all the HTML pages in the
 3706       package.  This helps when installing packages with static HTML
 3707       pages for use on a webserver.  It will also allow future versions
 3708       of \R to use different stylesheets for the packages they install.
 3709 
 3710       \item A top-level file \file{.Rinstignore} in the package sources
 3711       can list (in the same way as \file{.Rbuildignore}) files under
 3712       \code{inst} that should not be installed.  (Why should there be any
 3713       such files?  Because all the files needed to re-build vignettes
 3714       need to be under \code{inst/doc}, but they may not need to be
 3715       installed.)
 3716 
 3717       \item \command{R CMD INSTALL} has a new option
 3718       \option{--compact-docs} to compact any PDFs under the
 3719       \file{inst/doc} directory.  Currently this uses \command{qpdf},
 3720       which must be installed (see \sQuote{Writing R Extensions}).
 3721 
 3722       \item There is a new option \option{--lock} which can be used to
 3723       cancel the effect of \option{--no-lock} or \option{--pkglock} earlier
 3724       on the command line.
 3725 
 3726       \item Option \option{--pkglock} can now be used with more than one
 3727       package, and is now the default if only one package is specified.
 3728 
 3729       \item Argument \code{lock} of \code{install.packages()} can now be
 3730       use for Mac binary installs as well as for Windows ones.  The
 3731       value \code{"pkglock"} is now accepted, as well as \code{TRUE} and
 3732       \code{FALSE} (the default).
 3733 
 3734       \item There is a new option \option{--no-clean-on-error} for
 3735       \command{R CMD INSTALL} to retain a partially installed package for
 3736       forensic analysis.
 3737 
 3738       \item Packages with names ending in \file{.} are not portable
 3739       since Windows does not work correctly with such directory names.
 3740       This is now warned about in \command{R CMD check}, and will not be
 3741       allowed in \R 2.14.x.
 3742 
 3743       \item The vignette indices are more comprehensive (in the style of
 3744       \code{browseVignetttes()}).
 3745     }
 3746   }
 3747 
 3748   \subsection{DEPRECATED & DEFUNCT}{
 3749     \itemize{
 3750       \item \code{require(save = TRUE)} is defunct, and use of the
 3751       \code{save} argument is deprecated.
 3752 
 3753       \item \command{R CMD check --no-latex} is defunct: use
 3754       \option{--no-manual} instead.
 3755 
 3756       \item \command{R CMD Sd2Rd} is defunct.
 3757 
 3758       \item The \code{gamma} argument to \code{hsv()},
 3759       \code{rainbow()}, and \code{rgb2hsv()} is deprecated
 3760       and no longer has any effect.
 3761 
 3762       \item The previous options for \command{R CMD build --binary}
 3763       (\option{--auto-zip}, \option{--use-zip-data} and
 3764       \option{--no-docs}) are deprecated (or defunct):
 3765       use the new option \option{--install-args} instead.
 3766 
 3767       \item When a character value is used for the \code{EXPR}
 3768       argument in \code{switch()}, only a single unnamed alternative
 3769       value is now allowed.
 3770 
 3771       \item The wrapper \code{utils::link.html.help()} is no longer
 3772       available.
 3773 
 3774       \item Zip-ing data sets in packages (and hence \command{R CMD
 3775 	INSTALL} options \option{--use-zip-data} and \option{--auto-zip}, as
 3776       well as the \samp{ZipData: yes} field in a \code{DESCRIPTION} file)
 3777       is defunct.
 3778 
 3779       Installed packages with zip-ed data sets can still be used, but a
 3780       warning that they should be re-installed will be given.
 3781 
 3782       \item The \sQuote{experimental} alternative specification of a
 3783       namespace via \code{.Export()} etc is now defunct.
 3784 
 3785       \item The option \option{--unsafe} to \command{R CMD INSTALL} is
 3786       deprecated: use the identical option \option{--no-lock} instead.
 3787 
 3788       \item The entry point \code{pythag} in \file{Rmath.h} is deprecated
 3789       in favour of the C99 function \code{hypot}.  A wrapper for
 3790       \code{hypot} is provided for \R 2.13.x only.
 3791 
 3792       \item Direct access to the \code{"source"} attribute of functions
 3793       is deprecated; use \code{deparse(fn, control="useSource")} to access
 3794       it, and \code{removeSource(fn)} to remove it.
 3795 
 3796       \item \command{R CMD build --binary} is now formally deprecated:
 3797       \command{R CMD INSTALL --build} has long been the preferred
 3798       alternative.
 3799 
 3800       \item Single-character package names are deprecated (and \pkg{R}
 3801       is already disallowed to avoid confusion in \samp{Depends:}
 3802       fields).
 3803     }
 3804   }
 3805 
 3806   \subsection{BUG FIXES}{
 3807     \itemize{
 3808       \item \code{drop.terms} and the \code{[} method for class
 3809       \code{"terms"} no longer add back an intercept.  (Reported by
 3810       Niels Hansen.)
 3811 
 3812       \item \code{aggregate} preserves the class of a column (e.g., a
 3813       date) under some circumstances where it discarded the class
 3814       previously.
 3815 
 3816       \item \code{p.adjust()} now always returns a vector result, as
 3817       documented.  In previous versions it copied attributes (such as
 3818       dimensions) from the \code{p} argument: now it only copies names.
 3819 
 3820       \item On PDF and PostScript devices, a line width of zero was
 3821       recorded verbatim and this caused problems for some viewers
 3822       (a very thin line combined with a non-solid line dash pattern
 3823       could also cause a problem).  On these devices, the line width is
 3824       now limited at 0.01 and for very thin lines with complex dash
 3825       patterns the device may force the line dash pattern to be solid.
 3826       (Reported by Jari Oksanen.)
 3827 
 3828       \item The \code{str()} method for class \code{"POSIXt"} now gives
 3829       sensible output for 0-length input.
 3830 
 3831       \item The one- and two-argument complex maths functions failed to
 3832       warn if NAs were generated (as their numeric analogues do).
 3833 
 3834       \item Added \code{.requireCachedGenerics} to the \code{dont.mind}
 3835       list for \code{library()} to avoid warnings about duplicates.
 3836 
 3837       \item \code{$<-.data.frame} messed with the class attribute,
 3838       breaking any S4 subclass.  The S4 \code{data.frame} class now has its own
 3839       \code{$<-} method, and turns dispatch on for this primitive.
 3840 
 3841       \item \code{Map()} did not look up a character argument \code{f}
 3842       in the correct frame, thanks to lazy evaluation.  (\PR{14495})
 3843 
 3844       \item \code{file.copy()} did not tilde-expand \code{from} and \code{to}
 3845       when \code{to} was a directory.  (\PR{14507})
 3846 
 3847       \item It was possible (but very rare) for the loading test in
 3848       \command{R CMD INSTALL} to crash a child \R process and so leave
 3849       around a lock directory and a partially installed package.  That
 3850       test is now done in a separate process.
 3851 
 3852       \item \code{plot(<formula>, data=<matrix>,..)} now works in more
 3853       cases; similarly for \code{points()}, \code{lines()} and
 3854       \code{text()}.
 3855 
 3856       \item \code{edit.default()} contained a manual dispatch for matrices
 3857       (the \code{"matrix"} class didn't really exist when it was written).
 3858       This caused an infinite recursion in the no-GUI case and has now
 3859       been removed.
 3860 
 3861       \item \code{data.frame(check.rows = TRUE)} sometimes worked when
 3862       it should have detected an error.  (\PR{14530})
 3863 
 3864       \item \code{scan(sep= , strip.white=TRUE)} sometimes stripped
 3865       trailing spaces from within quoted strings.  (The real bug in
 3866       \PR{14522}.)
 3867 
 3868       \item The rank-correlation methods for \code{cor()} and
 3869       \code{cov()} with \code{use = "complete.obs"} computed the ranks
 3870       before removing missing values, whereas the documentation implied
 3871       incomplete cases were removed first.  (\PR{14488})
 3872 
 3873       They also failed for 1-row matrices.
 3874 
 3875       \item The perpendicular adjustment used in placing text and
 3876       expressions in the margins of plots was not scaled by
 3877       \code{par("mex")}. (Part of \PR{14532}.)
 3878 
 3879       \item Quartz Cocoa device now catches any Cocoa exceptions that
 3880       occur during the creation of the device window to prevent crashes.
 3881       It also imposes a limit of 144 ft^2 on the area used by a window
 3882       to catch user errors (unit misinterpretation) early.
 3883 
 3884       \item The browser (invoked by \code{debug()}, \code{browser()}
 3885       or otherwise) would display attributes such as \code{"wholeSrcref"}
 3886       that were intended for internal use only.
 3887 
 3888       \item R's internal filename completion now properly handles
 3889       filenames with spaces in them even when the readline library is
 3890       used.  This resolves \PR{14452} provided the internal filename
 3891       completion is used (e.g., by setting \code{rc.settings(files =
 3892 	TRUE)}).
 3893 
 3894       \item Inside \code{uniroot(f, ...)}, \code{-Inf} function values
 3895       are now replaced by a maximally \bold{negative} value.
 3896 
 3897       \item \code{rowsum()} could silently over/underflow on integer
 3898       inputs (reported by Bill Dunlap).
 3899 
 3900       \item \code{as.matrix()} did not handle \code{"dist"} objects with
 3901       zero rows.
 3902     }
 3903   }
 3904 }
 3905 
 3906 \section{\Rlogo CHANGES IN R VERSION 2.12.2 patched}{
 3907   \subsection{NEW FEATURES}{
 3908     \itemize{
 3909       \item \code{max()} and \code{min()} work harder to ensure that
 3910       \code{NA} has precedence over \code{NaN},
 3911       so e.g.\sspace{}\code{min(NaN, NA)} is \code{NA}.
 3912       (This was not previously documented except
 3913       for within a single numeric vector, where compiler optimizations
 3914       often defeated the code.)
 3915     }
 3916   }
 3917 
 3918   \subsection{BUG FIXES}{
 3919     \itemize{
 3920       \item A change to the C function \samp{R_tryEval} had broken error
 3921       messages in S4 method selection; the error message is now printed.
 3922 
 3923       \item PDF output with a non-RGB color model used RGB for the line
 3924       stroke color.  (\PR{14511})
 3925 
 3926       \item \code{stats4::BIC()} assumed without checking that an object
 3927       of class \code{"logLik"} has an \code{"nobs"} attribute:
 3928       \code{glm()} fits did not and so \code{BIC()} failed for them.
 3929 
 3930       \item In some circumstances a one-sided \code{mantelhaen.test()}
 3931       reported the p-value for the wrong tail.  (\PR{14514})
 3932 
 3933       \item Passing the invalid value \code{lty = NULL} to \code{axis()}
 3934       sent an invalid value to the graphics device, and might cause the
 3935       device to segfault.
 3936 
 3937       \item \code{Sweave()} with \code{concordance=TRUE} could lead to
 3938       invalid PDF files; \file{Sweave.sty} has been updated to avoid
 3939       this.
 3940 
 3941       \item Non-ASCII characters in the titles of help pages were
 3942       not rendered properly in some locales, and could cause errors
 3943       or warnings.
 3944 
 3945       \item \code{checkRd()} gave a spurious error if the \code{\\href}
 3946       macro was used.
 3947     }
 3948   }
 3949 }
 3950 
 3951 \section{\Rlogo CHANGES IN R VERSION 2.12.2}{
 3952   \subsection{SIGNIFICANT USER-VISIBLE CHANGES}{
 3953     \itemize{
 3954       \item Complex arithmetic (notably \code{z^n} for complex \code{z}
 3955       and integer \code{n}) gave incorrect results since \R 2.10.0 on
 3956       platforms without C99 complex support.  This and some
 3957       lesser issues in trigonometric functions have been corrected.
 3958 
 3959       Such platforms were rare (we know of Cygwin and FreeBSD).
 3960       However, because of new compiler optimizations in the way complex
 3961       arguments are handled, the same code was selected on x86_64 Linux
 3962       with \command{gcc 4.5.x} at the default \code{-O2} optimization
 3963       (but not at \code{-O}).
 3964 
 3965       \item There is a workaround for crashes seen with several packages
 3966       on systems using \samp{zlib 1.2.5}: see the INSTALLATION section.
 3967     }
 3968   }
 3969 
 3970   \subsection{NEW FEATURES}{
 3971     \itemize{
 3972       \item PCRE has been updated to 8.12 (two bug-fix releases since 8.10).
 3973 
 3974       \item \code{rep()}, \code{seq()}, \code{seq.int()} and
 3975       \code{seq_len()} report more often when the first element is taken
 3976       of an argument of incorrect length.
 3977 
 3978       \item The Cocoa back-end for the \code{quartz()} graphics device
 3979       on Mac OS X provides a way to disable event loop processing
 3980       temporarily (useful, e.g., for forked instances of \R).
 3981 
 3982       \item \code{kernel()}'s default for \code{m} was not appropriate
 3983       if \code{coef} was a set of coefficients.  (Reported by Pierre
 3984       Chausse.)
 3985 
 3986       \item \code{bug.report()} has been updated for the current \R bug
 3987       tracker, which does not accept emailed submissions.
 3988 
 3989       \item \command{R CMD check} now checks for the correct use of
 3990       \samp{$(LAPACK_LIBS)} (as well as \samp{$(BLAS_LIBS)}), since
 3991       several CRAN recent submissions have ignored \sQuote{Writing R
 3992 	Extensions}.
 3993     }
 3994   }
 3995 
 3996   \subsection{INSTALLATION}{
 3997     \itemize{
 3998       \item The \samp{zlib} sources in the distribution are now built
 3999       with all symbols remapped: this is intended to avoid problems seen
 4000       with packages such as \CRANpkg{XML} and \CRANpkg{rggobi} which link to
 4001       \file{zlib.so.1} on systems using \samp{zlib 1.2.5}.
 4002 
 4003       \item The default for \env{FFLAGS} and \env{FCFLAGS} with
 4004       \command{gfortran} on x86_64 Linux has been changed back to \samp{-g
 4005 	-O2}:  however, setting \samp{-g -O} may still be needed for
 4006       \command{gfortran 4.3.x}.
 4007     }
 4008   }
 4009 
 4010   \subsection{PACKAGE INSTALLATION}{
 4011     \itemize{
 4012       \item A \samp{LazyDataCompression} field in the \file{DESCRIPTION}
 4013       file will be used to set the value for the
 4014       \option{--data-compress} option of \command{R CMD INSTALL}.
 4015 
 4016       \item Files \file{R/sysdata.rda} of more than 1Mb are now stored
 4017       in the lazyload database using \command{xz} compression: this for
 4018       example halves the installed size of package \CRANpkg{Imap}.
 4019 
 4020       \item \command{R CMD INSTALL} now ensures that directories
 4021       installed from \file{inst} have search permission for everyone.
 4022 
 4023       It no longer installs files \file{inst/doc/Rplots.ps} and
 4024       \file{inst/doc/Rplots.pdf}.  These are almost certainly left-overs
 4025       from \code{Sweave} runs, and are often large.
 4026     }
 4027   }
 4028 
 4029   \subsection{DEPRECATED & DEFUNCT}{
 4030     \itemize{
 4031       \item The \sQuote{experimental} alternative specification of a
 4032       namespace via \code{.Export()} etc is now deprecated.
 4033 
 4034       \item \code{zip.file.extract()} is now deprecated.
 4035 
 4036       \item Zip-ing data sets in packages (and hence \command{R CMD
 4037 	INSTALL --use-zip-data} and the \samp{ZipData: yes} field in a
 4038 	\code{DESCRIPTION} file) is deprecated: using efficiently
 4039 	compressed \file{.rda} images and lazy-loading of data has
 4040 	superseded it.
 4041     }
 4042   }
 4043 
 4044   \subsection{BUG FIXES}{
 4045     \itemize{
 4046       \item \code{identical()} could in rare cases generate a warning
 4047       about non-pairlist attributes on CHARSXPs.  As these are used for
 4048       internal purposes, the attribute check should be skipped.
 4049       (Reported by Niels Richard Hansen).
 4050 
 4051       \item If the filename extension (usually \file{.Rnw}) was not
 4052       included in a call to \code{Sweave()}, source references would not
 4053       work properly and the \code{keep.source} option failed.  (\PR{14459})
 4054 
 4055       \item \code{format.data.frame()} now keeps zero character column names.
 4056 
 4057       \item \code{pretty(x)} no longer raises an error when \code{x}
 4058       contains solely non-finite values. (\PR{14468})
 4059 
 4060       \item The \code{plot.TukeyHSD()} function now uses a line width of
 4061       0.5 for its reference lines rather than \samp{lwd = 0} (which
 4062       caused problems for some PDF and PostScript viewers).
 4063 
 4064       \item The \code{big.mark} argument to \code{prettyNum()},
 4065       \code{format()}, etc. was inserted reversed if it was more than
 4066       one character long.
 4067 
 4068       \item \command{R CMD check} failed to check the filenames under
 4069       \file{man} for Windows' reserved names.
 4070 
 4071       \item The \code{"Date"} and \code{"POSIXt"} methods for
 4072       \code{seq()} could overshoot when \code{to} was supplied and
 4073       \code{by} was specified in months or years.
 4074 
 4075       \item The internal method of \code{untar()} now restores hard
 4076       links as file copies rather than symbolic links (which did not
 4077       work for cross-directory links).
 4078 
 4079       \item \code{unzip()} did not handle zip files which contained
 4080       filepaths with two or more leading directories which were not in
 4081       the zipfile and did not already exist.  (It is unclear if such
 4082       zipfiles are valid and the third-party C code used did not support
 4083       them, but \PR{14462} created one.)
 4084 
 4085       \item \code{combn(n, m)} now behaves more regularly for the border
 4086       case \eqn{m = 0}. (\PR{14473})
 4087 
 4088       \item The rendering of numbers in plotmath expressions (e.g.,
 4089       \code{expression(10^2)}) used the current settings for conversion
 4090       to strings rather than setting the defaults, and so could be
 4091       affected by what has been done before.  (\PR{14477})
 4092 
 4093       \item The methods of \code{napredict()} and \code{naresid()} for
 4094       \code{na.action = na.exclude} fits did not work correctly in the
 4095       very rare event that every case had been omitted in the fit.
 4096       (Reported by Simon Wood.)
 4097 
 4098       \item \code{weighted.residuals(drop0=TRUE)} returned a vector when
 4099       the residuals were a matrix (e.g., those of class \code{"mlm"}).
 4100       (Reported by Bill Dunlap.)
 4101 
 4102       \item Package HTML index files \file{<pkg>/html/00Index.html} were
 4103       generated with a stylesheet reference that was not correct for
 4104       static browsing in libraries.
 4105 
 4106       \item \code{ccf(na.action = na.pass)} was not implemented.
 4107 
 4108       \item The parser accepted some incorrect numeric constants,
 4109       e.g.\sspace{}\code{20x2}.  (Reported by Olaf Mersmann.)
 4110 
 4111       \item \code{format(*, zero.print)} did not always replace the full
 4112       zero parts.
 4113 
 4114       \item Fixes for subsetting or subassignment of \code{"raster"}
 4115       objects when not both \code{i} and \code{j} are specified.
 4116 
 4117       \item \command{R CMD INSTALL} was not always respecting the
 4118       \samp{ZipData: yes} field of a \file{DESCRIPTION} file (although
 4119       this is frequently incorrectly specified for packages with no data
 4120       or which specify lazy-loading of data).
 4121 
 4122       \command{R CMD INSTALL --use-zip-data} was incorrectly implemented
 4123       as \option{--use-zipdata} since \R 2.9.0.
 4124 
 4125       \item \command{source(file, echo=TRUE)} could fail if the file
 4126       contained \samp{#line} directives.  It now recovers more gracefully, but
 4127       may still display the wrong line if the directive gives incorrect
 4128       information.
 4129 
 4130       \item \code{atan(1i)} returned \code{NaN+Infi} (rather than
 4131       \code{0+Infi}) on platforms without C99 complex support.
 4132 
 4133       \item \code{library()} failed to cache S4 metadata (unlike
 4134       \code{loadNamespace()}) causing failures in S4-using packages
 4135       without a namespace (e.g., those using reference classes).
 4136 
 4137       \item The function \code{qlogis(lp, log.p=TRUE)} no longer
 4138       prematurely overflows to \code{Inf} when exp(lp) is close to 1.
 4139 
 4140       \item Updating S4 methods for a group generic function requires
 4141       resetting the methods tables for the members of the group (patch
 4142       contributed by Martin Morgan).
 4143 
 4144       \item In some circumstances (including for package \CRANpkg{XML}),
 4145       \command{R CMD INSTALL} installed version-control directories from
 4146       source packages.
 4147 
 4148       \item Added \code{PROTECT} calls to some constructed expressions
 4149       used in C level \code{eval} calls.
 4150 
 4151       \item \code{utils:::create.post()} (used by \code{bug.report()}
 4152       and \code{help.request()}) failed to quote arguments to the
 4153       mailer, and so often failed.
 4154 
 4155       \item \code{bug.report()} was naive about how to extract
 4156       maintainer email addresses from package descriptions, so would
 4157       often try mailing to incorrect addresses.
 4158 
 4159       \item \code{debugger()} could fail to read the environment of a
 4160       call to a function with a \code{\dots} argument.  (Reported by
 4161       Charlie Roosen.)
 4162 
 4163       \item \code{prettyNum(c(1i, NA), drop0=TRUE)} or
 4164       \code{str(NA_complex_)} now work correctly.
 4165     }
 4166   }
 4167 }
 4168 
 4169 \section{\Rlogo CHANGES IN R VERSION 2.12.1}{
 4170   \subsection{NEW FEATURES}{
 4171     \itemize{
 4172       \item The DVI/PDF reference manual now includes the help pages for
 4173       all the standard packages: \pkg{splines}, \pkg{stats4} and
 4174       \pkg{tcltk} were previously omitted (intentionally).
 4175 
 4176       \item \url{http://www.rforge.net} has been added to the default
 4177       set of repositories known to \code{setRepositories()}.
 4178 
 4179       \item xz-utils has been updated to version 5.0.0.
 4180 
 4181       \item \code{reshape()} now makes use of \code{sep} when forming
 4182       names during reshaping to wide format.  (\PR{14435})
 4183 
 4184       \item \code{legend()} allows the length of lines to be set by the
 4185       end user \emph{via} the new argument \code{seg.len}.
 4186 
 4187       \item New S4 reference class utility methods \code{copy()},
 4188       \code{field()}, \code{getRefClass()} and \code{getClass()} have
 4189       been added to package \pkg{methods}.
 4190 
 4191       \item When a character value is used for the \code{EXPR}
 4192       argument in \code{switch()}, a warning is given if more than
 4193       one unnamed alternative value is given.  This will become an
 4194       error in \R 2.13.0.
 4195 
 4196       \item \code{StructTS(type = "BSM")} now allows series with just
 4197       two seasons.  (Reported by Birgit Erni.)
 4198     }
 4199   }
 4200 
 4201   \subsection{INSTALLATION}{
 4202     \itemize{
 4203       \item The PDF reference manual is now built as PDF version 1.5
 4204       with object compression, which on platforms for which this is not
 4205       the default (notably MiKTeX) halves its size.
 4206 
 4207       \item Variable \env{FCLIBS} can be set during configuration, for
 4208       any additional library flags needed when linking a shared object
 4209       with the Fortran 9x compiler.  (Needed with Solaris Studio 12.2.)
 4210     }
 4211   }
 4212 
 4213   \subsection{BUG FIXES}{
 4214     \itemize{
 4215       \item \code{seq.int()} no longer sometimes evaluates arguments
 4216       twice.  (\PR{14388})
 4217 
 4218       \item The \code{data.frame} method of \code{format()} failed if a
 4219       column name was longer than 256 bytes (the maximum length allowed
 4220       for an \R name).
 4221 
 4222       \item \code{predict(<lm object>, type ="terms", ...)} failed if
 4223       both \code{terms} and \code{interval} were specified.  (Reported
 4224       by Bill Dunlap.)
 4225 
 4226       Also, if \code{se.fit = TRUE} the standard errors were reported
 4227       for all terms, not just those selected by a non-null \code{terms}.
 4228 
 4229       \item The TRE regular expressions engine could terminate \R rather
 4230       than give an error when given certain invalid regular expressions.
 4231       (\PR{14398})
 4232 
 4233       \item \code{cmdscale(eig = TRUE)} was documented to return \eqn{n-1}
 4234       eigenvalues but in fact only returned \code{k}.  It now returns
 4235       all \eqn{n} eigenvalues.
 4236 
 4237       \code{cmdscale(add = TRUE)} failed to centre the return
 4238       configuration and sometimes lost the labels on the points.  Its
 4239       return value was described wrongly (it is always a list and
 4240       contains component \code{ac}).
 4241 
 4242       \item \code{promptClass()} in package \pkg{methods} now works for
 4243       reference classes and gives a suitably specialized skeleton of
 4244       documentation.
 4245 
 4246       Also, \code{callSuper()} now works via the \code{methods()}
 4247       invocation as well as for initially specified methods.
 4248 
 4249       \item \code{download.file()} could leave the destination file open
 4250       if the URL was not able to be opened.  (\PR{14414})
 4251 
 4252       \item Assignment of an environment to functions or as an attribute
 4253       to other objects now works for S4 subclasses of \code{"environment"}.
 4254 
 4255       \item Use of \samp{[[<-} for S4 subclasses of
 4256       \code{"environment"} generated an infinite recursion from the
 4257       method.  The method has been replaced by internal code.
 4258 
 4259       \item In a reference class S4 method, \code{callSuper()} now works in
 4260       \code{initialize()} methods when there is no explicit superclass
 4261       method.
 4262 
 4263       \item \samp{!} dropped attributes such as names and dimensions from a
 4264       length-zero argument.  (\PR{14424})
 4265 
 4266       \item When \code{list2env()} created an environment it was missing
 4267       a \code{PROTECT} call and so was vulnerable to garbage collection.
 4268 
 4269       \item \code{Sweave()} with \code{keep.source=TRUE} dropped
 4270       comments at the start and end of code chunks.  It could also
 4271       fail when \samp{\SweaveInput} was combined with named chunks.
 4272 
 4273       \item The Fortran code used by \code{nls(algorithm = "port")}
 4274       could infinite-loop when compiled with high optimization on a
 4275       modern version of \code{gcc}, and \code{SAFE_FFLAGS} is now used
 4276       to make this less likely.  (\PR{14427}, seen with 32-bit Windows
 4277       using \code{gcc 4.5.0} used from \R 2.12.0.)
 4278 
 4279       \item \code{sapply()} with default \code{simplify = TRUE} and
 4280       \code{mapply()} with default \code{SIMPLIFY = TRUE} wrongly
 4281       simplified language-like results, as, e.g., in
 4282       \code{mapply(1:2, c(3,7), FUN = function(i,j) call(':',i,j))}.
 4283 
 4284       \item Backreferences to undefined patterns in
 4285       \code{[g]sub(pcre = TRUE)} could cause a segfault.  (\PR{14431})
 4286 
 4287       \item The \code{format()} (and hence the \code{print()}) method
 4288       for class \code{"Date"} rounded fractional dates towards zero: it
 4289       now always rounds them down.
 4290 
 4291       \item Reference S4 class creation could generate ambiguous
 4292       inheritance patterns under very special circumstances.
 4293 
 4294       \item \samp{[[<-} turned S4 subclasses of \code{"environment"} into
 4295       plain environments.
 4296 
 4297       \item Long titles for help pages were truncated in package indices
 4298       and a few other places.
 4299 
 4300       \item Additional utilities now work correctly with S4 subclasses of
 4301       \code{"environment"} (\code{rm}, locking tools and active
 4302       bindings).
 4303 
 4304       \item \code{spec.ar()} now also work for the \code{"ols"} method.
 4305       (Reported by Hans-Ruedi Kuensch.)
 4306 
 4307       \item The initialization of objects from S4 subclasses of
 4308       \code{"environment"} now allocates a new environment object.
 4309 
 4310       \item \command{R CMD check} has more protection against (probably
 4311       erroneous) example or test output which is invalid in the current
 4312       locale.
 4313 
 4314       \item \code{qr.X()} with column names and pivoting now also pivots
 4315       the column names.  (\PR{14438})
 4316 
 4317       \item \code{unit.pmax()} and \code{unit.pmin()} in package
 4318       \pkg{grid} gave incorrect results when all inputs were of length 1.
 4319       (\PR{14443})
 4320 
 4321       \item The parser for \file{NAMESPACE} files ignored misspelled
 4322       directives, rather than signalling an error.  For 2.12.x a warning
 4323       will be issued, but this will be correctly reported as an error
 4324       in later releases. (Reported by Charles Berry.)
 4325 
 4326       \item Fix for subsetting of \code{"raster"} objects when only one
 4327       of \code{i} or \code{j} is specified.
 4328 
 4329       \item \code{grid.raster()} in package \pkg{grid} did not accept
 4330       \code{"nativeRaster"} objects (like \code{rasterImage()} does).
 4331 
 4332       \item Rendering raster images in PDF output was resetting the
 4333       clipping region.
 4334 
 4335       \item Rendering of raster images on cairo X11 device was wrong,
 4336       particularly when a small image was being scaled up using
 4337       interpolation.
 4338 
 4339       With cairo < 1.6, will be better than before, though still a
 4340       little clunky.  With cairo >= 1.6, should be sweet as.
 4341 
 4342       \item Several bugs fixed in \code{read.DIF()}:  single column
 4343       inputs caused errors, cells marked as \code{"character"} could
 4344       be converted to other types, and (in Windows) copying from the
 4345       clipboard failed.
 4346     }
 4347   }
 4348 }
 4349 
 4350 \section{\Rlogo CHANGES IN R VERSION 2.12.0}{
 4351   \subsection{NEW FEATURES}{
 4352     \itemize{
 4353       \item Reading a package's \file{CITATION} file now defaults to
 4354        ASCII rather than Latin-1: a package with a non-ASCII
 4355        \file{CITATION} file should declare an encoding in its
 4356        \file{DESCRIPTION} file and use that encoding for the
 4357        \file{CITATION} file.
 4358 
 4359       \item \code{difftime()} now defaults to the \code{"tzone"}
 4360        attribute of \code{"POSIXlt"} objects rather than to the current
 4361        timezone as set by the default for the \code{tz} argument.  (Wish
 4362        of \PR{14182}.)
 4363 
 4364       \item \code{pretty()} is now generic, with new methods for
 4365        \code{"Date"} and \code{"POSIXt"} classes (based on code
 4366        contributed by Felix Andrews).
 4367 
 4368       \item \code{unique()} and \code{match()} are now faster on
 4369        character vectors where all elements are in the global \code{CHARSXP}
 4370        cache and have unmarked encoding (ASCII).  Thanks to Matthew
 4371        Dowle for suggesting improvements to the way the hash code is
 4372        generated in \file{unique.c}.
 4373 
 4374       \item The \code{enquote()} utility, in use internally, is exported now.
 4375 
 4376       \item \code{.C()} and \code{.Fortran()} now map non-zero return
 4377        values (other than \code{NA_LOGICAL}) for logical vectors to
 4378        \code{TRUE}: it has been an implicit assumption that they are
 4379        treated as true.
 4380 
 4381       \item The \code{print()} methods for \code{"glm"} and \code{"lm"}
 4382        objects now insert linebreaks in long calls in the same way that
 4383        the \code{print()} methods for \code{"summary.[g]lm"} objects
 4384        have long done.  This does change the layout of the examples for
 4385        a number of packages, e.g.\sspace{}\CRANpkg{MASS}.  (\PR{14250})
 4386 
 4387       \item \code{constrOptim()} can now be used with method
 4388       \code{"SANN"}.  (\PR{14245})
 4389 
 4390        It gains an argument \code{hessian} to be passed to
 4391        \code{optim()}, which allows all the \code{...} arguments to be
 4392        intended for \code{f()} and \code{grad()}.  (\PR{14071})
 4393 
 4394       \item \code{curve()} now allows \code{expr} to be an object of
 4395        mode \code{"expression"} as well as \code{"call"} and
 4396        \code{"function"}.
 4397 
 4398       \item The \code{"POSIX[cl]t"} methods for \code{Axis()} have been
 4399        replaced by a single method for \code{"POSIXt"}.
 4400 
 4401        There are no longer separate \code{plot()} methods for
 4402        \code{"POSIX[cl]t"} and \code{"Date"}: the default method has
 4403        been able to handle those classes for a long time.  This
 4404        \emph{inter alia} allows a single date-time object to be
 4405        supplied, the wish of \PR{14016}.
 4406 
 4407        The methods had a different default (\code{""}) for \code{xlab}.
 4408 
 4409       \item Classes \code{"POSIXct"}, \code{"POSIXlt"} and
 4410        \code{"difftime"} have generators \code{.POSIXct()},
 4411        \code{.POSIXlt()} and \code{.difftime()}.  Package authors are
 4412        advised to make use of them (they are available from \R 2.11.0) to
 4413        proof against planned future changes to the classes.
 4414 
 4415        The ordering of the classes has been changed, so \code{"POSIXt"}
 4416        is now the second class.  See the document \sQuote{Updating
 4417        packages for changes in R 2.12.x} on
 4418        \url{http://developer.r-project.org} for the consequences for a
 4419        handful of CRAN packages.
 4420 
 4421       \item The \code{"POSIXct"} method of \code{as.Date()} allows a
 4422        timezone to be specified (but still defaults to UTC).
 4423 
 4424       \item New \code{list2env()} utility function as an inverse of
 4425        \code{as.list(<environment>)} and for fast multi-\code{assign()}
 4426        to existing environment.  \code{as.environment()} is now generic
 4427        and uses \code{list2env()} as list method.
 4428 
 4429       \item There are several small changes to output which \sQuote{zap}
 4430        small numbers, e.g.\sspace{}in printing quantiles of residuals in
 4431        summaries from \code{"lm"} and \code{"glm"} fits, and in test
 4432        statistics in \code{print.anova()}.
 4433 
 4434       \item Special names such as \code{"dim"}, \code{"names"}, etc, are
 4435        now allowed as slot names of S4 classes, with \code{"class"} the
 4436        only remaining exception.
 4437 
 4438       \item File \file{.Renviron} can have architecture-specific versions
 4439        such as \file{.Renviron.i386} on systems with sub-architectures.
 4440 
 4441       \item \code{installed.packages()} has a new argument
 4442        \code{subarch} to filter on sub-architecture.
 4443 
 4444       \item The \code{summary()} method for \code{packageStatus()} now
 4445        has a separate \code{print()} method.
 4446 
 4447       \item The default \code{summary()} method returns an object
 4448        inheriting from class \code{"summaryDefault"} which has a
 4449        separate \code{print()} method that calls \code{zapsmall()} for
 4450        numeric/complex values.
 4451 
 4452       \item The startup message now includes the platform and if used,
 4453        sub-architecture: this is useful where different
 4454        (sub-)architectures run on the same OS.
 4455 
 4456       \item The \code{getGraphicsEvent()} mechanism now allows multiple windows
 4457        to return graphics events, through the new functions
 4458        \code{setGraphicsEventHandlers()}, \code{setGraphicsEventEnv()}, and
 4459        \code{getGraphicsEventEnv()}.  (Currently implemented in the
 4460        \code{windows()} and \code{X11()} devices.)
 4461 
 4462       \item \code{tools::texi2dvi()} gains an \code{index} argument,
 4463        mainly for use by \command{R CMD Rd2pdf}.
 4464 
 4465        It avoids the use of \command{texindy} by \command{texinfo}'s
 4466        \command{texi2dvi >= 1.157}, since that does not emulate
 4467        'makeindex' well enough to avoid problems with special characters
 4468        (such as \samp{(}, \samp{\{}, \samp{!}) in indices. % )
 4469 
 4470       \item The ability of \code{readLines()} and \code{scan()} to
 4471        re-encode inputs to marked UTF-8 strings on Windows since \R 2.7.0
 4472        is extended to non-UTF-8 locales on other OSes.
 4473 
 4474       \item \code{scan()} gains a \code{fileEncoding} argument to
 4475       match \code{read.table()}.
 4476 
 4477       \item \code{points()} and \code{lines()} gain \code{"table"}
 4478        methods to match \code{plot()}.  (Wish of \PR{10472}.)
 4479 
 4480       \item \code{Sys.chmod()} allows argument \code{mode} to be a
 4481       vector, recycled along \code{paths}.
 4482 
 4483       \item There are \code{|}, \code{&} and \code{xor()} methods for
 4484        classes \code{"octmode"} and \code{"hexmode"}, which work
 4485        bitwise.
 4486 
 4487       \item Environment variables \env{R_DVIPSCMD}, \env{R_LATEXCMD},
 4488        \env{R_MAKEINDEXCMD}, \env{R_PDFLATEXCMD} are no longer used
 4489        nor set in an \R session.  (With the move to
 4490        \code{tools::texi2dvi()}, the conventional environment variables
 4491        \env{LATEX}, \env{MAKEINDEX} and \env{PDFLATEX} will be used.
 4492        \code{options("dvipscmd")} defaults to the value of \env{DVIPS},
 4493        then to \code{"dvips"}.)
 4494 
 4495       \item New function \code{isatty()} to see if terminal connections are
 4496        redirected.
 4497 
 4498       \item \code{summaryRprof()} returns the sampling interval in
 4499        component \code{sample.interval} and only returns in
 4500        \code{by.self} data for functions with non-zero self times.
 4501 
 4502       \item \code{print(x)} and \code{str(x)} now indicate if an empty
 4503       list \code{x} is named.
 4504 
 4505       \item \code{install.packages()} and \code{remove.packages()} with
 4506        \code{lib} unspecified and multiple libraries in
 4507        \code{.libPaths()} inform the user of the library location used
 4508        with a message rather than a warning.
 4509 
 4510       \item There is limited support for multiple compressed streams on a
 4511        file: all of \code{[bgx]zfile()} allow streams to be appended to an
 4512        existing file, but \code{bzfile()} reads only the first stream.
 4513 
 4514       \item Function \code{person()} in package \pkg{utils} now uses
 4515         a given/family scheme in preference to first/middle/last, is
 4516         vectorized to handle an arbitrary number of persons, and gains a
 4517         \code{role} argument to specify person roles using a controlled
 4518         vocabulary (the MARC relator terms).
 4519 
 4520       \item Package \pkg{utils} adds a new \code{"bibentry"} class
 4521         for representing and manipulating bibliographic information in
 4522         enhanced BibTeX style, unifying and enhancing the previously
 4523         existing mechanisms.
 4524 
 4525       \item A \code{bibstyle()} function has been added to the
 4526        \pkg{tools} package with default JSS style for rendering
 4527        \code{"bibentry"} objects, and a mechanism for registering other
 4528        rendering styles.
 4529 
 4530       \item Several aspects of the display of text help are now
 4531        customizable using the new \code{Rd2txt_options()} function.
 4532        options(\code{"help_text_width"}) is no longer used.
 4533 
 4534       \item Added \samp{\href} tag to the Rd format, to allow
 4535        hyperlinks to URLs without displaying the full URL.
 4536 
 4537       \item Added \samp{\newcommand} and \samp{\renewcommand} tags
 4538        to the Rd format, to allow user-defined macros.
 4539 
 4540       \item New \code{toRd()} generic in the \pkg{tools} package to
 4541        convert objects to fragments of Rd code, and added
 4542        \code{"fragment"} argument to \code{Rd2txt()}, \code{Rd2HTML()},
 4543        and \code{Rd2latex()} to support it.
 4544 
 4545       \item Directory \file{R_HOME/share/texmf} now follows the TDS
 4546        conventions, so can be set as a \code{texmf} tree (\sQuote{root
 4547        directory} in MiKTeX parlance).
 4548 
 4549       \item S3 generic functions now use correct S4 inheritance when
 4550       dispatching on an S4 object.  See \code{?Methods}, section on
 4551       \dQuote{Methods for S3 Generic Functions} for recommendations
 4552       and details.
 4553 
 4554       \item \code{format.pval()} gains a \code{...} argument to pass
 4555        arguments such as \code{nsmall} to \code{format()}.  (Wish of
 4556        \PR{9574})
 4557 
 4558       \item \code{legend()} supports \code{title.adj}.  (Wish of
 4559       \PR{13415})
 4560 
 4561       \item Added support for subsetting \code{"raster"} objects, plus
 4562       assigning to a subset, conversion to a matrix (of colour
 4563       strings), and comparisons (\samp{==} and \samp{!=}).
 4564 
 4565       \item Added a new \code{parseLatex()} function (and related
 4566       functions \code{deparseLatex()} and \code{latexToUtf8()}) to
 4567       support conversion of bibliographic entries for display in R.
 4568 
 4569       \item Text rendering of \samp{\itemize} in help uses a Unicode
 4570       bullet in UTF-8 and most single-byte Windows locales.
 4571 
 4572       \item Added support for polygons with holes to the graphics
 4573       engine.  This is implemented for the \code{pdf()},
 4574       \code{postscript()}, \code{x11(type="cairo")}, \code{windows()},
 4575       and \code{quartz()} devices (and associated raster formats),
 4576       but not for \code{x11(type="Xlib")} or \code{xfig()} or
 4577       \code{pictex()}.  The user-level interface is the
 4578       \code{polypath()} function in \pkg{graphics} and
 4579       \code{grid.path()} in \pkg{grid}.
 4580 
 4581       \item File \file{NEWS} is now generated at installation with a
 4582       slightly different format: it will be in UTF-8 on platforms using
 4583       UTF-8, and otherwise in ASCII.  There is also a PDF version,
 4584       \file{NEWS.pdf}, installed at the top-level of the R distribution.
 4585 
 4586       \item \code{kmeans(x, 1)} now works.  Further, \code{kmeans} now
 4587       returns between and total sum of squares.
 4588 
 4589       \item \code{arrayInd()} and \code{which()} gain an argument
 4590       \code{useNames}.  For \code{arrayInd}, the default is now false,
 4591       for speed reasons.
 4592 
 4593       \item As is done for closures, the default \code{print} method for
 4594       the formula class now displays the associated environment if it is
 4595       not the global environment.
 4596 
 4597       \item A new facility has been added for inserting code into a
 4598       package without re-installing it, to facilitate testing
 4599       changes which can be selectively added and backed out.  See
 4600       \code{?insertSource}.
 4601 
 4602       \item New function \code{readRenviron} to (re-)read files in the
 4603       format of \file{~/.Renviron} and \file{Renviron.site}.
 4604 
 4605       \item \code{require()} will now return \code{FALSE} (and not fail)
 4606       if loading the package or one of its dependencies fails.
 4607 
 4608       \item \code{aperm()} now allows argument \code{perm} to be a
 4609       character vector when the array has named dimnames (as the results
 4610       of \code{table()} calls do).  Similarly, \code{array()} allows
 4611       \code{MARGIN} to be a character vector.  (Based on suggestions of
 4612       Michael Lachmann.)
 4613 
 4614       \item Package \pkg{utils} now exports and documents functions
 4615       \code{aspell_package_Rd_files()} and
 4616       \code{aspell_package_vignettes()} for spell checking package Rd
 4617       files and vignettes using Aspell, Ispell or Hunspell.
 4618 
 4619       \item Package news can now be given in Rd format, and
 4620       \code{news()} prefers these \file{inst/NEWS.Rd} files to old-style
 4621       plain text \file{NEWS} or \file{inst/NEWS} files.
 4622 
 4623       \item New simple function \code{packageVersion()}.
 4624 
 4625       \item The PCRE library has been updated to version 8.10.
 4626 
 4627       \item The standard Unix-alike terminal interface declares its name
 4628       to readline as 'R', so that can be used for conditional sections
 4629       in \file{~/.inputrc} files.
 4630 
 4631       \item \sQuote{Writing R Extensions} now stresses that the standard
 4632       sections in \file{.Rd} files (other than \samp{\alias},
 4633       \samp{\keyword} and \samp{\note}) are intended to be unique, and
 4634       the conversion tools now drop duplicates with a warning.
 4635 
 4636       The \file{.Rd} conversion tools also warn about an unrecognized type
 4637       in a \samp{\docType} section.
 4638 
 4639       \item \code{ecdf()} objects now have a \code{quantile()} method.
 4640 
 4641       \item \code{format()} methods for date-time objects now attempt to make
 4642       use of a \code{"tzone"} attribute with \code{"\%Z"} and
 4643       \code{"\%z"} formats, but it is not always possible.  (Wish of
 4644       \PR{14358}.)
 4645 
 4646       \item \code{tools::texi2dvi(file, clean = TRUE)} now works in more
 4647       cases (e.g., where emulation is used and when \file{file} is not in
 4648       the current directory).
 4649 
 4650       \item New function \code{droplevels()} to remove unused factor levels.
 4651 
 4652       \item \code{system(command, intern = TRUE)} now gives an error on
 4653       a Unix-alike (as well as on Windows) if \code{command} cannot be
 4654       run.  It reports a non-success exit status from running
 4655       \code{command} as a warning.
 4656 
 4657       On a Unix-alike an attempt is made to return the actual exit
 4658       status of the command in \code{system(intern = FALSE)}: previously
 4659       this had been system-dependent but on POSIX-compliant systems the
 4660       value return was 256 times the status.
 4661 
 4662       \item \code{system()} has a new argument \code{ignore.stdout}
 4663       which can be used to (portably) ignore standard output.
 4664 
 4665       \item \code{system(intern = TRUE)} and \code{pipe()} connections
 4666       are guaranteed to be available on all builds of \R.
 4667 
 4668       \item \code{Sys.which()} has been altered to return \code{""} if
 4669       the command is not found (even on Solaris).
 4670 
 4671       \item A facility for defining reference-based S4 classes (in the
 4672       OOP style of Java, C++, etc.) has been added experimentally to
 4673       package \pkg{methods}; see \code{?ReferenceClasses}.
 4674 
 4675       \item The \code{predict} method for \code{"loess"} fits gains an
 4676       \code{na.action} argument which defaults to \code{na.pass} rather
 4677       than the previous default of \code{na.omit}.
 4678 
 4679       Predictions from \code{"loess"} fits are now named from the row
 4680       names of \code{newdata}.
 4681 
 4682       \item Parsing errors detected during \code{Sweave()} processing
 4683       will now be reported referencing their original location in the
 4684       source file.
 4685 
 4686       \item New \code{adjustcolor()} utility, e.g., for simple
 4687       translucent color schemes.
 4688 
 4689       \item \code{qr()} now has a trivial \code{lm} method with a
 4690       simple (fast) validity check.
 4691 
 4692       \item An experimental new programming model has been added to
 4693       package \pkg{methods} for reference (OOP-style) classes and
 4694       methods.  See \code{?ReferenceClasses}.
 4695 
 4696       \item bzip2 has been updated to version 1.0.6 (bug-fix release).
 4697       \option{--with-system-bzlib} now requires at least version 1.0.6.
 4698 
 4699       \item R now provides \file{jss.cls} and \file{jss.bst} (the class
 4700       and bib style file for the Journal of Statistical Software) as
 4701       well as \file{RJournal.bib} and \file{Rnews.bib}, and
 4702       \command{R CMD} ensures that the \file{.bst} and \file{.bib} files
 4703       are found by BibTeX.
 4704 
 4705       \item Functions using the \env{TAR} environment variable no longer
 4706       quote the value when making \code{system} calls.  This allows
 4707       values such as \samp{tar --force-local}, but does require
 4708       additional quotes in, e.g., \code{TAR = "'/path with spaces/mytar'"}.
 4709     }
 4710   }
 4711 
 4712   \subsection{DEPRECATED & DEFUNCT}{
 4713     \itemize{
 4714       \item Supplying the parser with a character string containing both
 4715        octal/hex and Unicode escapes is now an error.
 4716 
 4717       \item File extension \file{.C} for C++ code files in packages is
 4718       now defunct.
 4719 
 4720       \item \command{R CMD check} no longer supports configuration
 4721       files containing Perl configuration variables: use the environment
 4722       variables documented in \sQuote{R Internals} instead.
 4723 
 4724       \item The \code{save} argument of \code{require()} now defaults to
 4725       \code{FALSE} and \code{save = TRUE} is now deprecated.  (This
 4726       facility is very rarely actually used, and was superseded by the
 4727       \samp{Depends} field of the \file{DESCRIPTION} file long ago.)
 4728 
 4729       \item \command{R CMD check --no-latex} is deprecated in favour of
 4730       \option{--no-manual}.
 4731 
 4732       \item \command{R CMD Sd2Rd} is formally deprecated and will be
 4733       removed in \R 2.13.0.
 4734     }
 4735   }
 4736   \subsection{PACKAGE INSTALLATION}{
 4737     \itemize{
 4738       \item \code{install.packages()} has a new argument
 4739        \code{libs_only} to optionally pass \option{--libs-only} to
 4740        \command{R CMD INSTALL} and works analogously for Windows binary
 4741        installs (to add support for 64- or 32-bit Windows).
 4742 
 4743       \item When sub-architectures are in use, the installed
 4744        architectures are recorded in the \code{Archs} field of the
 4745        \file{DESCRIPTION} file.  There is a new default filter,
 4746        \code{"subarch"}, in \code{available.packages()} to make use of
 4747        this.
 4748 
 4749        Code is compiled in a copy of the \file{src} directory when a
 4750        package is installed for more than one sub-architecture: this
 4751        avoid problems with cleaning the sources between building
 4752        sub-architectures.
 4753 
 4754       \item \command{R CMD INSTALL --libs-only} no longer overrides the
 4755        setting of locking, so a previous version of the package will be
 4756        restored unless \option{--no-lock} is specified.
 4757     }
 4758   }
 4759   \subsection{UTILITIES}{
 4760     \itemize{
 4761       \item \command{R CMD Rprof|build|check} are now based on \R rather
 4762        than Perl scripts.  The only remaining Perl scripts are the
 4763        deprecated \command{R CMD Sd2Rd} and \code{install-info.pl} (used
 4764        only if \code{install-info} is not found) as well as some
 4765        maintainer-mode-only scripts.
 4766 
 4767        \strong{NB:} because these have been completely rewritten, users
 4768        should not expect undocumented details of previous
 4769        implementations to have been duplicated.
 4770 
 4771        \command{R CMD} no longer manipulates the environment variables
 4772        \env{PERL5LIB} and \env{PERLLIB}.
 4773 
 4774       \item \command{R CMD check} has a new argument \option{--extra-arch}
 4775        to confine tests to those needed to check an additional
 4776        sub-architecture.
 4777 
 4778        Its check for \dQuote{Subdirectory 'inst' contains no files} is
 4779        more thorough: it looks for files, and warns if there are only
 4780        empty directories.
 4781 
 4782        Environment variables such as \env{R_LIBS} and those used for
 4783        customization can be set for the duration of checking \emph{via} a file
 4784        \file{~/.R/check.Renviron} (in the format used by
 4785        \file{.Renviron}, and with sub-architecture specific versions
 4786        such as \file{~/.R/check.Renviron.i386} taking precedence).
 4787 
 4788        There are new options \option{--multiarch} to check the package
 4789        under all of the installed sub-architectures and
 4790        \option{--no-multiarch} to confine checking to the
 4791        sub-architecture under which \command{check} is invoked.  If
 4792        neither option is supplied, a test is done of installed
 4793        sub-architectures and all those which can be run on the current
 4794        OS are used.
 4795 
 4796        Unless multiple sub-architectures are selected, the install done
 4797        by \code{check} for testing purposes is only of the current
 4798        sub-architecture (\emph{via} \command{R CMD INSTALL --no-multiarch}).
 4799 
 4800        It will skip the check for non-ascii characters in code or data
 4801        if the environment variables \env{_R_CHECK_ASCII_CODE_} or
 4802        \env{_R_CHECK_ASCII_DATA_} are respectively set to \env{FALSE}.
 4803        (Suggestion of Vince Carey.)
 4804 
 4805       \item \command{R CMD build} no longer creates an \file{INDEX} file
 4806        (\command{R CMD INSTALL} does so), and \option{--force} removes
 4807        (rather than overwrites) an existing \file{INDEX} file.
 4808 
 4809        It supports a file \file{~/.R/build.Renviron} analogously to
 4810        \command{check}.
 4811 
 4812        It now runs build-time \samp{\Sexpr} expressions in help files.
 4813 
 4814       \item \command{R CMD Rd2dvi} makes use of \code{tools::texi2dvi()}
 4815        to process the package manual.  It is now implemented entirely in
 4816        \R (rather than partially as a shell script).
 4817 
 4818       \item \command{R CMD Rprof} now uses \code{utils::summaryRprof()}
 4819        rather than Perl.  It has new arguments to select one of the
 4820        tables and to limit the number of entries printed.
 4821 
 4822       \item \command{R CMD Sweave} now runs \R with \option{--vanilla} so
 4823        the environment setting of \env{R_LIBS} will always be used.
 4824     }
 4825   }
 4826   \subsection{C-LEVEL FACILITIES}{
 4827     \itemize{
 4828       \item \code{lang5()} and \code{lang6()} (in addition to
 4829        pre-existing \code{lang[1-4]()}) convenience functions for easier
 4830        construction of \code{eval()} calls.  If you have your own
 4831        definition, do wrap it inside \code{#ifndef lang5 .... #endif}
 4832        to keep it working with old and new \R.
 4833 
 4834       \item Header \file{R.h} now includes only the C headers it itself needs,
 4835        hence no longer includes \code{errno.h}.  (This helps avoid problems
 4836        when it is included from C++ source files.)
 4837 
 4838       \item Headers \file{Rinternals.h} and \file{R_ext/Print.h} include
 4839        the C++ versions of \file{stdio.h} and \file{stdarg.h}
 4840        respectively if included from a C++ source file.
 4841     }
 4842   }
 4843 
 4844   \subsection{INSTALLATION}{
 4845     \itemize{
 4846       \item A C99 compiler is now required, and more C99 language features
 4847        will be used in the \R sources.
 4848 
 4849       \item Tcl/Tk >= 8.4 is now required (increased from 8.3).
 4850 
 4851       \item System functions \code{access}, \code{chdir} and
 4852        \code{getcwd} are now essential to configure \R.  (In practice
 4853        they have been required for some time.)
 4854 
 4855       \item \command{make check} compares the output of the examples
 4856        from several of the base packages to reference output rather than
 4857        the previous output (if any).  Expect some differences due to
 4858        differences in floating-point computations between platforms.
 4859 
 4860       \item File \file{NEWS} is no longer in the sources, but generated as
 4861       part of the installation.  The primary source for changes is now
 4862       \file{doc/NEWS.Rd}.
 4863 
 4864       \item The \code{popen} system call is now required to build \R.
 4865       This ensures the availability of \code{system(intern = TRUE)},
 4866       \code{pipe()} connections and printing from \code{postscript()}.
 4867 
 4868       \item The \command{pkg-config} file \file{libR.pc} now also works
 4869       when \R is installed using a sub-architecture.
 4870 
 4871       \item \R has always required a BLAS that conforms to IE60559
 4872       arithmetic, but after discovery of more real-world problems caused
 4873       by a BLAS that did not, this is tested more thoroughly in this
 4874       version.
 4875     }
 4876   }
 4877 
 4878   \subsection{BUG FIXES}{
 4879     \itemize{
 4880       \item Calls to \code{selectMethod()} by default no longer cache
 4881        inherited methods.  This could previously corrupt methods used by
 4882        \code{as()}.
 4883 
 4884       \item The densities of non-central chi-squared are now more accurate
 4885        in some cases in the extreme tails,
 4886        e.g.\sspace{}\code{dchisq(2000, 2, 1000)},
 4887        as a series expansion was truncated too early.
 4888        (\PR{14105})
 4889 
 4890       \item \code{pt()} is more accurate in the left tail for \code{ncp}
 4891        large, e.g.\sspace{}\code{pt(-1000, 3, 200)}.  (\PR{14069})
 4892 
 4893       \item The default C function (\code{R_binary}) for binary ops now
 4894        sets the S4 bit in the result if either argument is an S4 object.
 4895        (\PR{13209})
 4896 
 4897       \item \code{source(echo=TRUE)} failed to echo comments that
 4898        followed the last statement in a file.
 4899 
 4900       \item S4 classes that contained one of \code{"matrix"},
 4901        \code{"array"} or \code{"ts"} and also another class now accept
 4902        superclass objects in \code{new()}.  Also fixes failure to call
 4903        \code{validObject()} for these classes.
 4904 
 4905       \item Conditional inheritance defined by argument \code{test} in
 4906        \code{methods::setIs()} will no longer be used in S4 method
 4907        selection (caching these methods could give incorrect results).
 4908        See \code{?setIs}.
 4909 
 4910       \item The signature of an implicit generic is now used by
 4911        \code{setGeneric()} when that does not use a definition nor
 4912        explicitly set a signature.
 4913 
 4914       \item A bug in \code{callNextMethod()} for some examples with
 4915        \code{"..."} in the arguments has been fixed.  See file
 4916        \file{src/library/methods/tests/nextWithDots.R} in the sources.
 4917 
 4918       \item \code{match(x, table)} (and hence \code{\%in\%}) now treat
 4919       \code{"POSIXlt"} consistently with, e.g., \code{"POSIXct"}.
 4920 
 4921       \item Built-in code dealing with environments (\code{get()},
 4922       \code{assign()}, \code{parent.env()}, \code{is.environment()} and
 4923       others) now behave consistently to recognize S4 subclasses;
 4924       \code{is.name()} also recognizes subclasses.
 4925 
 4926       \item The \code{abs.tol} control parameter to \code{nlminb()}
 4927       now defaults to \code{0.0} to avoid false declarations of
 4928       convergence in objective functions that may go negative.
 4929 
 4930       \item The standard Unix-alike termination dialog to ask whether to
 4931       save the workspace takes a EOF response as \code{n} to avoid
 4932       problems with a damaged terminal connection.  (\PR{14332})
 4933 
 4934       \item Added \code{warn.unused} argument to \code{hist.default()}
 4935       to allow suppression of spurious warnings about graphical
 4936       parameters used with \code{plot=FALSE}.  (\PR{14341})
 4937 
 4938       \item \code{predict.lm()}, \code{summary.lm()}, and indeed
 4939       \code{lm()} itself had issues with residual DF in zero-weighted
 4940       cases (the latter two only in connection with empty
 4941       models). (Thanks to Bill Dunlap for spotting the
 4942       \code{predict()} case.)
 4943 
 4944       \item \code{aperm()} treated \code{resize = NA} as \code{resize =
 4945       TRUE}.
 4946 
 4947       \item \code{constrOptim()} now has an improved convergence
 4948       criterion, notably for cases where the minimum was (very close to)
 4949       zero; further, other tweaks inspired from code proposals by Ravi
 4950       Varadhan.
 4951 
 4952       \item Rendering of S3 and S4 methods in man pages has been
 4953       corrected and made consistent across output formats.
 4954 
 4955       \item Simple markup is now allowed in \samp{\title} sections
 4956       in \file{.Rd} files.
 4957 
 4958       \item The behaviour of \code{as.logical()} on factors (to use the
 4959       levels) was lost in \R 2.6.0 and has been restored.
 4960 
 4961       \item \code{prompt()} did not backquote some default arguments in
 4962       the \samp{\usage} section.  (Reported by Claudia Beleites.)
 4963 
 4964       \item \code{writeBin()} disallows attempts to write 2GB or
 4965       more in a single call. (\PR{14362})
 4966 
 4967       \item \code{new()} and \code{getClass()} will now work if Class
 4968       is a subclass of \code{"classRepresentation"} and should also be
 4969       faster in typical calls.
 4970 
 4971       \item The \code{summary()} method for data frames makes a better
 4972       job of names containing characters invalid in the current locale.
 4973 
 4974       \item \code{[[} sub-assignment for factors could create an invalid
 4975       factor (reported by Bill Dunlap).
 4976 
 4977       \item \code{Negate(f)} would not evaluate argument \code{f}
 4978       until first use of returned function (reported by Olaf Mersmann).
 4979 
 4980       \item \code{quietly=FALSE} is now also an optional argument of
 4981       \code{library()}, and consequently, \code{quietly} is now
 4982       propagated also for loading dependent packages, e.g., in
 4983       \code{require(*, quietly=TRUE)}.
 4984 
 4985       \item If the loop variable in a \code{for} loop was deleted, it
 4986       would be recreated as a global variable.  (Reported by Radford
 4987       Neal; the fix includes his optimizations as well.)
 4988 
 4989       \item Task callbacks could report the wrong expression when
 4990       the task involved parsing new code. (\PR{14368})
 4991 
 4992       \item \code{getNamespaceVersion()} failed; this was an
 4993       accidental change in 2.11.0. (\PR{14374})
 4994 
 4995       \item \code{identical()} returned \code{FALSE} for external
 4996       pointer objects even when the pointer addresses were the same.
 4997 
 4998       \item \code{L$a@x[] <- val} did not duplicate in a case it should have.
 4999 
 5000       \item \code{tempfile()} now always gives a random file name (even
 5001       if the directory is specified) when called directly after
 5002       startup and before the \R RNG had been used.  (\PR{14381})
 5003 
 5004       \item \code{quantile(type=6)} behaved inconsistently.  (\PR{14383})
 5005 
 5006       \item \code{backSpline(.)} behaved incorrectly when the knot
 5007       sequence was decreasing.  (\PR{14386})
 5008 
 5009       \item The reference BLAS included in \R was assuming that
 5010       \code{0*x} and \code{x*0} were always zero (whereas they could be
 5011       \code{NA} or \code{NaN} in IEC 60559 arithmetic).  This was seen
 5012       in results from \code{tcrossprod}, and for example that
 5013       \code{log(0) \%*\% 0} gave \code{0}.
 5014 
 5015       \item The calculation of whether text was completely outside
 5016       the device region (in which case, you draw nothing)
 5017       was wrong for screen devices (which have [0, 0] at top-left).
 5018       The symptom was (long) text disappearing when
 5019       resizing a screen window (to make it smaller).  (\PR{14391})
 5020 
 5021       \item \code{model.frame(drop.unused.levels = TRUE)} did not
 5022       take into account \code{NA} values of factors when deciding to
 5023       drop levels. (\PR{14393})
 5024 
 5025       \item \code{library.dynam.unload} required an absolute path for
 5026       \code{libpath}.  (\PR{14385})
 5027 
 5028       Both \code{library()} and \code{loadNamespace()} now record
 5029       absolute paths for use by \code{searchpaths()} and
 5030       \code{getNamespaceInfo(ns, "path")}.
 5031 
 5032       \item The self-starting model \code{NLSstClosestX} failed if some
 5033       deviation was exactly zero.  (\PR{14384})
 5034 
 5035       \item \code{X11(type = "cairo")} (and other devices such as
 5036       \code{png} using cairographics) and which use Pango font selection
 5037       now work around a bug in Pango when very small fonts (those with
 5038       sizes between 0 and 1 in Pango's internal units) are requested.
 5039       (\PR{14369})
 5040 
 5041       \item Added workaround for the font problem with \code{X11(type =
 5042       "cairo")} and similar on Mac OS X whereby italic and bold styles
 5043       were interchanged.  (\PR{13463} amongst many other reports.)
 5044 
 5045       \item \code{source(chdir = TRUE)} failed to reset the working
 5046       directory if it could not be determined -- that is now an error.
 5047 
 5048       \item Fix for crash of \code{example(rasterImage)} on
 5049       \code{x11(type="Xlib")}.
 5050 
 5051       \item Force Quartz to bring the on-screen display up-to-date
 5052       immediately before the snapshot is taken by \code{grid.cap()}
 5053       in the Cocoa implementation. (\PR{14260})
 5054 
 5055       \item \code{model.frame} had an unstated 500 byte limit on
 5056       variable names.  (Example reported by Terry Therneau.)
 5057 
 5058       \item The 256-byte limit on names is now documented.
 5059 
 5060       \item Subassignment by \code{[}, \code{[[} or \code{$} on an
 5061       expression object with value \code{NULL} coerced the object to a
 5062       list.
 5063     }
 5064   }
 5065 }
 5066 
 5067 
 5068 \section{\Rlogo CHANGES IN R VERSION 2.11.1 patched}{
 5069   \subsection{NEW FEATURES}{
 5070     \itemize{
 5071       \item \code{install.packages()} has a new optional argument
 5072       \code{INSTALL_opts} which can be used to pass options to
 5073       \command{R CMD INSTALL} for source-package installs.
 5074 
 5075       \item \command{R CMD check} now runs the package-specific tests
 5076       with \env{LANGUAGE=en} to facilitate comparison to
 5077       \file{.Rout.save} files.
 5078 
 5079       \item \code{sessionInfo()} gives more detailed platform
 5080       information, including 32/64-bit and the sub-architecture if one
 5081       is used.
 5082     }
 5083   }
 5084 
 5085   \subsection{DEPRECATED & DEFUNCT}{
 5086     \itemize{
 5087       \item The use of Perl configuration variables for \command{R CMD
 5088 	check} (as previously documented in \sQuote{Writing R
 5089 	Extensions}) is deprecated and will be removed in \R 2.12.0.  Use
 5090       the environment variables documented in \sQuote{R Internals}
 5091       instead.
 5092     }
 5093   }
 5094 
 5095   \subsection{BUG FIXES}{
 5096     \itemize{
 5097       \item \command{R CMD Rd2dvi} failed if run from a path containing
 5098        space(s).  This also affected \command{R CMD check}, which calls
 5099        \command{Rd2dvi}.
 5100 
 5101       \item \code{stripchart()} could fail with an empty factor
 5102       level.  (\PR{14317})
 5103 
 5104       \item Text help rendering of \samp{\tabular\{\}} has been
 5105       improved: under some circumstances leading blank columns were
 5106       not rendered.
 5107 
 5108       \item \code{strsplit(x, fixed=TRUE)} marked UTF-8 strings with the
 5109       local encoding when no splits were found.
 5110 
 5111       \item \code{weighted.mean(NA, na.rm=TRUE)} and similar now returns
 5112       \code{NaN} again, as it did prior to \R 2.10.0.
 5113 
 5114       \item \command{R CMD} had a typo in its detection of whether the
 5115       environment variable \env{TEXINPUTS} was set (reported by Martin
 5116       Morgan).
 5117 
 5118       \item The command-line parser could mistake
 5119       \option{--file=size...} for one of the options for setting limits
 5120       for Ncells or Vcells.
 5121 
 5122       \item The internal \code{strptime()} could corrupt its copy of the
 5123       timezone which would then lead to spurious warnings. (\PR{14338})
 5124 
 5125       \item \code{dir.create(recursive = TRUE)} could fail if one of the
 5126       components existed but was a directory on a read-only file system.
 5127       (Seen on Solaris, where the error code returned is not even listed
 5128       as possible on the man page.)
 5129 
 5130       \item The \code{postscript()} and \code{pdf()} devices will now
 5131       allow \code{lwd} values less than 1 (they used to force such
 5132       values to be 1).
 5133 
 5134       \item Fixed font face for CID fonts in \code{pdf()} graphics output.
 5135       (\PR{14326})
 5136 
 5137       \item \code{GERaster()} now checks for width or height of zero and
 5138       does nothing in those cases; previously the behaviour was
 5139       undefined, probably device-specific, and possibly dangerous.
 5140 
 5141       \item \code{wilcox.test(x, y, conf.int = TRUE)} failed with an unhelpful
 5142       message if \code{x} and \code{y} were constant vectors, and
 5143       similarly in the one-sample case.  (\PR{14329})
 5144 
 5145       \item Improperly calling \code{Recall()} from outside a function
 5146       could cause a segfault.  (Reported by Robert McGehee.)
 5147 
 5148       \item \samp{\Sexpr[result=rd]} in an Rd file added a
 5149       spurious newline, which was displayed as extra whitespace when
 5150       rendered.
 5151 
 5152       \item \code{require(save = TRUE)} recorded the names of packages
 5153       it failed to load.
 5154 
 5155       \item \code{packageStatus()} could return a data frame with
 5156       duplicate row names which could then not be printed.
 5157 
 5158       \item \code{txtProgressBar(style = 2)} did not work correctly.
 5159 
 5160       \code{txtProgressBar(style = 3)} did not display until a
 5161       non-minimum value was set.
 5162 
 5163       \item \code{contour()} did not display dashed line types
 5164       properly when contour lines were labelled. (Reported by
 5165       David B. Thompson.)
 5166 
 5167       \item \code{tools::undoc()} again detects undocumented data
 5168       objects.  Of course, this also affects \command{R CMD check}.
 5169 
 5170       \item \code{ksmooth(x,NULL)} no longer segfaults.
 5171 
 5172       \item \code{approxfun()}, \code{approx()}, \code{splinefun()}
 5173       and \code{spline()} could be confused by \code{x} values that
 5174       were different but so close as to print identically.
 5175       (\PR{14377})
 5176     }
 5177   }
 5178 }
 5179 
 5180 
 5181 \section{\Rlogo CHANGES IN R VERSION 2.11.1}{
 5182   \subsection{NEW FEATURES}{
 5183     \itemize{
 5184       \item \command{R CMD INSTALL} checks if dependent packages are
 5185        available early on in the installation of source packages,
 5186        thereby giving clearer error messages.
 5187 
 5188       \item \command{R CMD INSTALL --build} now names the file in the
 5189        format used for Mac OS X binary files on that platform.
 5190 
 5191        \item \code{BIC()} in package \pkg{stats4} now also works with
 5192        multiple fitted models, analogously to \code{AIC()}.
 5193     }
 5194   }
 5195   \subsection{DEPRECATED & DEFUNCT}{
 5196     \itemize{
 5197       \item Use of file extension \file{.C} for C++ code in packages is now
 5198        deprecated: it has caused problems for some \command{make}s on
 5199        case-insensitive file systems (although it currently works
 5200        with the recommended toolkits).
 5201     }
 5202   }
 5203   \subsection{INSTALLATION}{
 5204     \itemize{
 5205       \item Command \command{gnutar} is preferred to \command{tar}
 5206        when configure sets \env{TAR}.  This is needed on Mac OS 10.6,
 5207        where the default \code{tar}, \code{bsdtar 2.6.2}, has been
 5208        reported to produce archives with illegal extensions to tar
 5209        (according to the POSIX standard).
 5210     }
 5211   }
 5212   \subsection{BUG FIXES}{
 5213     \itemize{
 5214       \item The C function \code{mkCharLenCE} now no longer reads past
 5215        \code{len} bytes (unlikely to be a problem except in user
 5216        code).  (\PR{14246})
 5217 
 5218       \item On systems without any default \env{LD_LIBRARY_PATH} (not
 5219        even \file{/usr/local/lib}), \env{[DY]LIB_LIBRARY_PATH} is now
 5220        set without a trailing colon.  (\PR{13637})
 5221 
 5222       \item More efficient implementation of \code{utf8ToInt()} on long
 5223        multi-byte strings with many multi-byte characters.  (\PR{14262})
 5224 
 5225       \item \code{aggregate.ts()} gave platform-dependent results due to
 5226        rounding error for \code{ndeltat != 1}.
 5227 
 5228       \item \code{package.skeleton()} sometimes failed to fix filenames
 5229         for \file{.R} or \file{.Rd} files to start with an alphanumeric.
 5230         (\PR{14253})
 5231 
 5232 	It also failed when only an S4 class without any methods was
 5233         defined.  (\PR{14280})
 5234 
 5235       \item \code{splinefun(method = "monoH.FC")} was not
 5236       quite monotone in rare cases.  (\PR{14215})
 5237 
 5238       \item \code{Rhttpd} no longer crashes due to \code{SIGPIPE} when
 5239        the client closes the connection prematurely.  (\PR{14266})
 5240 
 5241       \item \code{format.POSIXlt()} could cause a stack overflow and
 5242         crash when used on very long vectors.  (\PR{14267})
 5243 
 5244       \item \code{Rd2latex()} incorrectly escaped special characters in
 5245       \samp{\usage} sections.
 5246 
 5247       \item \code{mcnemar.test()} could alter the levels (dropping
 5248        unused levels) if passed \code{x} and \code{y} as factors
 5249        (reported by Greg Snow).
 5250 
 5251       \item \command{Rd2pdf} sometimes needed a further
 5252        \command{pdflatex} pass to get hyperlinked pages correct.
 5253 
 5254       \item \code{interaction()} produced malformed results when levels were
 5255         duplicated, causing segfaults in \code{split()}.
 5256 
 5257       \item \code{cut(d, breaks = <n>)} now also works for \code{"Date"}
 5258         or \code{"POSIXt"} argument \code{d}.
 5259         (\PR{14288})
 5260 
 5261       \item \code{memDecompress()} could decompress incompletely rare
 5262        \code{xz}-compressed input due to incorrect documentation of
 5263        \command{xz utils}.  (Report and patch from Olaf Mersmann.)
 5264 
 5265       \item The S4 \code{initialize()} methods for \code{"matrix"},
 5266         \code{"array"}, and \code{"ts"} have been fixed to call
 5267         \code{validObject()}.  (\PR{14284})
 5268 
 5269       \item \command{R CMD INSTALL} now behaves the same way with or
 5270        without \option{--no-multiarch} on platforms with only one
 5271        installed architecture.  (It used to clean the \file{src}
 5272        directory without \option{--no-multiarch}.)
 5273 
 5274       \item \code{[<-.data.frame} was not quite careful enough in
 5275         assigning (and potentially deleting) columns
 5276         right-to-left.  (\PR{14263})
 5277 
 5278       \item \code{rbeta(n, a, b)} no longer occasionally returns
 5279        \code{NaN} for \code{a >> 1 > b}.  (\PR{14291})
 5280 
 5281       \item \code{pnorm(x, log.p = TRUE)} could return \code{NaN} not
 5282        \code{-Inf} for \code{x} near (minus for \code{lower.tail=TRUE})
 5283        the largest representable number.
 5284 
 5285       \item Compressed data files \file{*.(txt|tab|csv).(gz|bz2|xz)}
 5286        were not recognized for the list of data topics and hence for
 5287        packages using \code{LazyData}.  (\PR{14273})
 5288 
 5289       \item \code{textConnection()} did an unnecessary translation on
 5290        strings in a foreign encoding (e.g., UTF-8 strings on Windows) and
 5291        so was slower than it could have been on very long input strings.
 5292        (\PR{14286})
 5293 
 5294       \item \code{tools::Rd2txt()} did not render poorly written Rd
 5295        files consistently with other renderers.
 5296 
 5297        It computed widths of strings that would be \code{print()}ed with
 5298        escapes incorrectly, for example in the computation of column
 5299        width for \samp{\tabular}.
 5300 
 5301       \item \code{na.action()} did not extract the \code{na.action}
 5302       component as documented.
 5303 
 5304       \item \code{do.call()}ing \code{NextMethod} in erroneous ways no
 5305       longer segfaults. (\PR{13487})
 5306     }
 5307   }
 5308 }
 5309 
 5310 
 5311 \section{\Rlogo CHANGES IN R VERSION 2.11.0}{
 5312   \subsection{SIGNIFICANT USER-VISIBLE CHANGES}{
 5313     \itemize{
 5314       \item Packages must have been installed under \R >= 2.10.0, as the
 5315        current help system is the only one now supported.
 5316 
 5317       \item A port to 64-bit Windows is now available as well as binary
 5318        package repositories: see the \sQuote{R Administration and
 5319        Installation Manual}.
 5320 
 5321       \item Argument matching for primitive functions is now done in the
 5322        same way as for interpreted functions except for the deliberate
 5323        exceptions
 5324        \preformatted{
 5325 	 call switch .C .Fortran .Call .External
 5326        }
 5327        all of which use positional matching for their first argument,
 5328        and also some internal-use-only primitives.
 5329 
 5330       \item The default device for command-line \R at the console on Mac OS X
 5331        is now \code{quartz()} and not \code{X11()}.
 5332     }
 5333   }
 5334   \subsection{NEW FEATURES}{
 5335     \itemize{
 5336       \item The \code{open} modes for connections are now interpreted
 5337        more consistently.  \code{open = "r"} is now equivalent to
 5338        \code{open = "rt"} for all connections.  The default \code{open =
 5339        ""} now means \code{"rt"} for all connections except the
 5340        compressed-file connections \code{gzfile()}, \code{bzfile()} and
 5341        \code{xzfile()} for which it means \code{"rb"}.
 5342 
 5343       \item \command{R CMD INSTALL} now uses the internal \code{untar()}
 5344        function in package \pkg{utils}: this ensures that all platforms
 5345        can install \command{bzip2}- and \command{xz}-compressed
 5346        tarballs.  In case this causes problems (as it has on some
 5347        Windows file systems when run from Cygwin tools) it can be
 5348        overridden by the environment variable \env{R_INSTALL_TAR}:
 5349        setting this to a modern external tar program will speed up
 5350        unpacking of large (tens of Mb or more) tarballs.
 5351 
 5352       \item \code{help(try.all.packages = TRUE)} is much faster
 5353        (although the time taken by the OS to find all the packages the
 5354        first time it is used can dominate the time).
 5355 
 5356       \item \command{R CMD check} has a new option \option{--timings}
 5357        to record per-example timings in file
 5358        \file{<pkg>.Rcheck/<pkg>-Ex.timings}.
 5359 
 5360       \item The TRE library has been updated to version 0.8.0 (minor bugfixes).
 5361 
 5362       \item \code{grep[l]}, \code{[g]sub} and \code{[g]regexpr} now work
 5363        in bytes in an 8-bit locales if there is no marked UTF-8 input
 5364        string: this will be somewhat faster, and for \code{[g]sub()}
 5365        give the result in the native encoding rather than in UTF-8
 5366        (which returns to the behaviour prior to \R 2.10.0).
 5367 
 5368       \item A new argument \code{skipCalls} has been added to
 5369        \code{browser()} so that it can report the original context when
 5370        called by other debugging functions.
 5371 
 5372       \item More validity checking of UTF-8 and MBCS strings is done by
 5373        \code{agrep()} and the regular-expression matching functions.
 5374 
 5375       \item The undocumented restriction on \code{gregexpr()} to
 5376        \code{length(text) > 0} has been removed.
 5377 
 5378       \item Package \pkg{tcltk} now sends strings to Tcl in UTF-8: this
 5379        means that strings with a marked UTF-8 encoding are supported in
 5380        non-UTF-8 locales.
 5381 
 5382       \item The graphics engine now supports rendering of raster (bitmap)
 5383        images, though not all graphics devices can provide (full)
 5384        support.  Packages providing graphics devices (e.g., \code{Cairo},
 5385        \code{RSvgDevice}, \code{cairoDevice}) will need to be reinstalled.
 5386 
 5387        There is also support in the graphics engine for capturing
 5388        raster images from graphics devices (again not supported
 5389        on all graphics devices).
 5390 
 5391       \item \command{R CMD check} now also checks if the package and
 5392        namespace can be unloaded: this provides a check of the
 5393        \code{.Last.lib()} and \code{.onUnload()} hook functions (unless
 5394        \option{--install=fake}).
 5395 
 5396       \item \code{prop.table(x)} now accepts a one-dimensional table for
 5397       \code{x}.
 5398 
 5399       \item A new function \code{vapply()} has been added, based on a
 5400        suggestion from Bill Dunlap.  It requires that a template for the
 5401        function value be specified, and uses it to determine the output
 5402        type and to check for consistency in the function values.
 5403 
 5404       \item The main HTML help page now links to a reformatted copy of
 5405        this \file{NEWS} file.  (Suggested by Henrik Bengtsson.)  Package
 5406        index files link to the package \file{DESCRIPTION} and
 5407        \file{NEWS} files and a list of demos when using dynamic help.
 5408 
 5409       \item The \code{[} method for class \code{"AsIs"} allows the next
 5410        method to change the underlying class.  (Wish of Jens
 5411        Oehlschlägel.)
 5412 
 5413       \item \code{write.csv[2]} no longer allow argument \code{append}
 5414        to be changed: as ever, direct calls to \code{write.table()} give
 5415        more flexibility as well as more room for error.
 5416 
 5417       \item The index page for HTML help for a package now collapses
 5418        multiple signatures for S4 methods into a single entry.
 5419 
 5420       \item The use of \code{.required} by \code{require()} and
 5421        \code{detach()} has been replaced by \code{.Depends} which is set
 5422        from the \code{Depends} field of a package (even in packages with
 5423        namespaces).  By default \code{detach()} prevents such
 5424        dependencies from being detached: this can be overridden by the
 5425        argument \code{force}.
 5426 
 5427       \item \code{bquote()} has been extended to work on function
 5428        definitions.  (Wish of
 5429        \PR{14031}).
 5430 
 5431       \item \code{detach()} when applied to an object other than a
 5432        package returns the environment that has been detached, to
 5433        parallel \code{attach()}.
 5434 
 5435       \item \code{readline()} in non-interactive use returns \code{""}
 5436        and does not attempt to read from the \sQuote{terminal}.
 5437 
 5438       \item New function \code{file_ext()} in package \pkg{tools}.
 5439 
 5440       \item \code{xtfrm()} is now primitive and internally generic, as
 5441        this allows S4 methods to be set on it without name-space scoping
 5442        issues.
 5443 
 5444        There are now \code{"AsIs"} and \code{"difftime"} methods, and
 5445        the default method uses \code{unclass(x)} if \code{is.numeric(x)}
 5446        is true (which will be faster but relies on \code{is.numeric()}
 5447        having been set correctly for the class).
 5448 
 5449       \item \code{is.numeric(x)} is now false for a \code{"difftime"}
 5450        object (multiplication and division make no sense for such
 5451        objects).
 5452 
 5453       \item The default method of \code{weighted.mean(x, w)} coerces
 5454        \code{w} to be numeric (aka double); previously only integer
 5455        weights were coerced.  Zero weights are handled specially so an
 5456        infinite value with zero weight does not force an \code{NaN}
 5457        result.
 5458 
 5459        There is now a \code{"difftime"} method.
 5460 
 5461       \item \code{bug.report()} now has arguments \code{package} and
 5462        \code{lib.loc} to generate bug reports about packages.  When
 5463        this is used, it looks for a \code{BugReports} field in the
 5464        package \file{DESCRIPTION} file, which will be assumed to be a
 5465        URL at which to submit the report, and otherwise generates an
 5466        email to the package maintainer.  (Suggested by Barry
 5467        Rowlingson.)
 5468 
 5469       \item \code{quantile()} now has a method for the date-time class
 5470        \code{"POSIXt"}, and types 1 and 3 (which never interpolate) work
 5471        for Dates and ordered factors.
 5472 
 5473       \item \code{length(<POSIXlt>)} now returns the length of the
 5474        corresponding abstract timedate-vector rather than always 9 (the
 5475        length of the underlying list structure).  (Wish of \PR{14073}
 5476        and \PR{10507}.)
 5477 
 5478       \item The \code{readline} completion backend no longer sorts
 5479        possible completions alphabetically (e.g., function argument
 5480        names) if \R was built with \code{readline >= 6}.
 5481 
 5482       \item \code{select.list()} gains a \code{graphics} argument to
 5483        allow Windows/Mac users to choose the text interface.  This
 5484        changes the behaviour of \code{new.packages(ask=TRUE)} to be like
 5485        \code{update.packages(ask=TRUE)} on those platforms in using a
 5486        text menu: use ask=\code{"graphics"} for a graphical menu.
 5487 
 5488       \item New function \code{chooseBioCmirror()} to set the
 5489       \code{"BioC_mirror"} option.
 5490 
 5491       \item The \R grammar now prevents using the argument \code{name}
 5492        in signatures of S4 methods for \code{$} and \code{$<-}, since
 5493        they will always be called with a character string value for
 5494        \code{name}.  The implicit S4 generic functions have been
 5495        changed to reflect this: packages which included \code{name} in
 5496        the signature of their methods need to be updated and
 5497        re-installed.
 5498 
 5499       \item The handling of the \code{method} argument of \code{glm()}
 5500        has been refined following suggestions by Ioannis Kosmidis and
 5501        Heather Turner.
 5502 
 5503       \item \code{str()} gains a new argument \code{list.len} with
 5504        default 99, limiting the number of \code{list()} items (per
 5505        level), thanks to suggestions from David Winsenius.
 5506 
 5507       \item Having formal arguments of an S4 method in a different order
 5508        from the generic is now an error (the warning having been
 5509        ignored by some package maintainers for a long time).
 5510 
 5511       \item New functions \code{enc2native()} and \code{enc2utf8()}
 5512        convert character vectors with possibly marked encodings to the
 5513        current locale and UTF-8 respectively.
 5514 
 5515       \item Unrecognized escapes and embedded nuls in character strings are
 5516        now an error, not just a warning.  Thus option \code{"warnEscapes"}
 5517        is no longer needed.  \code{rawToChar()} now removes trailing nuls
 5518        silently, but other embedded nuls become errors.
 5519 
 5520       \item Informational messages about masked objects displayed when a
 5521        package is attached are now more compact, using \code{strwrap()}
 5522        instead of one object per line.
 5523 
 5524       \item \code{print.rle()} gains argument \code{prefix}.
 5525 
 5526       \item \code{download.file()} gains a \code{"curl"} method, mainly
 5527        for use on platforms which have \command{curl} but not
 5528        \command{wget}, but also for some hard-to-access URLs.
 5529 
 5530       \item In \code{Rd}, \samp{\eqn} and \samp{\deqn} will render in
 5531        HTML (and convert to text) upper- and lower-case Greek letters
 5532        (entered as \samp{\alpha} \dots), \samp{\ldots}, \samp{\dots},
 5533        \samp{\ge} and \samp{\le}.
 5534 
 5535       \item \code{utf8ToInt()} and \code{intToUtf8()} now map \code{NA} inputs
 5536       to \code{NA} outputs.
 5537 
 5538       \item \code{file()} has a new argument \code{raw} which may help
 5539        if it is used with something other than a regular file, e.g.\sspace{}a
 5540        character device.
 5541 
 5542       \item New function \code{strtoi()}, a wrapper for the C function
 5543       \code{strtol}.
 5544 
 5545       \item \code{as.octmode()} and \code{as.hexmode()} now allow inputs
 5546        of length other than one.
 5547 
 5548        The \code{format()} and \code{print()} methods for
 5549        \code{"octmode"} now preserve names and dimensions (as those for
 5550        \code{"hexmode"} did).
 5551 
 5552        The \code{format()} methods for classes \code{"octmode"} and
 5553        \code{"hexmode"} gain a \code{width} argument.
 5554 
 5555       \item \code{seq.int()} returns an integer result in some further cases
 5556        where \code{seq()} does, e.g.\sspace{}\code{seq.int(1L, 9L, by = 2L)}.
 5557 
 5558       \item Added \samp{\subsection\{\}\{\}} macro to Rd syntax, for
 5559        subsections within sections.
 5560 
 5561       \item n-dimensional arrays with dimension names can now be indexed
 5562        by an n-column character matrix.  The indices are matched against
 5563        the dimension names.  \code{NA} indices are propagated to the
 5564        result.  Unmatched values and \code{""} are not allowed and
 5565        result in an error.
 5566 
 5567       \item \code{interaction(drop=TRUE)} uses less memory (related to
 5568       \PR{14121}).
 5569 
 5570       \item \code{summary()} methods have been added to the
 5571        \code{"srcref"} and \code{"srcfile"} classes, and various
 5572        encoding issues have been cleaned up.
 5573 
 5574       \item If option \code{"checkPackageLicense"} is set to \code{TRUE} (not
 5575        currently the default), users will be asked to agree to
 5576        non-known-to-be-FOSS package licences at first use.
 5577 
 5578       \item Checking \code{setAs(a, b)} methods only gives a message
 5579        instead of a warning, when one of \code{a} or \code{b} is
 5580        unknown.
 5581 
 5582       \item New function \code{norm()} to compute a matrix norm.
 5583        \code{norm()} and also \code{backsolve()} and \code{sample()}
 5584        have implicit S4 generics.
 5585 
 5586       \item Files \file{Renviron.site} and \file{Rprofile.site} can have
 5587        architecture-specific versions on systems with sub-architectures.
 5588 
 5589       \item \command{R CMD check} now (by default) also checks Rd files
 5590        for auto-generated content in need of editing, and missing
 5591        argument descriptions.
 5592 
 5593       \item \code{aggregate()} gains a formula method thanks to a
 5594        contribution by Arni Magnusson.  The data frame method now allows
 5595        summary functions to return arbitrarily many values.
 5596 
 5597       \item \code{path.expand()} now propagates \code{NA} values rather
 5598        than converting them to \code{"NA"}.
 5599 
 5600       \item \code{file.show()} now disallows \code{NA} values for file names,
 5601        headers, and pager.
 5602 
 5603       \item The \sQuote{fuzz} used by \code{seq()} and \code{seq.int()} has
 5604        been reduced from \code{1e-7} to \code{1e-10}, which should be
 5605        ample for the double-precision calculations used in \R.  It
 5606        ensures that the fuzz never comes into play with sequences of
 5607        integers (wish of \PR{14169}).
 5608 
 5609       \item The default value of \code{RSiteSearch(restrict=)} has been
 5610        changed to include vignettes but to exclude R-help.  The R-help
 5611        archives available have been split, with a new option of
 5612        \code{"Rhelp10"} for those from 2010.
 5613 
 5614       \item New function \code{rasterImage()} in the \code{graphics}
 5615        package for drawing raster images.
 5616 
 5617       \item \code{stats:::extractAIC.coxph()} now omits aliased terms
 5618        when computing the degrees of freedom (suggestion of Terry
 5619        Therneau).
 5620 
 5621       \item \code{cor()} and \code{cov()} now test for misuse with
 5622        non-numeric arguments, such as the non-bug report \PR{14207}.
 5623 
 5624       \item \code{pchisq(ncp =, log.p = TRUE)} is more accurate for
 5625        probabilities near one.  E.g., \code{pchisq(80, 4, ncp=1,
 5626        log.p=TRUE)}.  (Maybe what was meant in \PR{14216}.)
 5627 
 5628       \item \code{maintainer()} has been added, to give convenient
 5629        access to the name of the maintainer of a package (contributed by
 5630        David Scott).
 5631 
 5632       \item \code{sample()} and \code{sample.int()} allow zero items to
 5633        be sampled from a zero-length input.  \code{sample.int()} gains a
 5634        default value \code{size=n} to be more similar to
 5635        \code{sample()}.
 5636 
 5637       \item \code{switch()} returned \code{NULL} on error (not
 5638        previously documented on the help page): it now does so
 5639        invisibly, analogously to if-without-else.
 5640 
 5641        It is now primitive: this means that argument \code{EXPR} is
 5642        always matched to the first argument and there is no danger of
 5643        partial matching to later named arguments.
 5644 
 5645       \item Primitive functions \code{UseMethod()}, \code{attr()},
 5646        \code{attr<-()}, \code{on.exit()}, \code{retracemem()} and
 5647        \code{substitute()} now use standard argument matching (rather
 5648        than positional matching).  This means that all multi-argument
 5649        primitives which are not internal now use standard argument
 5650        matching except where positional matching is desirable (as for
 5651        \code{switch()}, \code{call()}, \code{.C()} ...).
 5652 
 5653       \item All the one-argument primitives now check that any name
 5654        supplied for their first argument is a partial match to the
 5655        argument name as documented on the help page: this also
 5656        applies to replacement functions of two arguments.
 5657 
 5658       \item \code{base::which()} uses a new \code{.Internal} function
 5659        when \code{arr.ind} is \code{FALSE} resulting in a 10x speedup.
 5660        Thanks to Patrick Aboyoun for implementation suggestions.
 5661 
 5662       \item Help conversion to text now uses the first part of
 5663        \samp{\enc\{\}\{\}} markup if it is representable in the current
 5664        output encoding.  On the other hand, conversion to LaTeX with the
 5665        default \code{outputEncoding = "ASCII"} uses the second part.
 5666 
 5667       \item A new class \code{"listOfMethods"} has been introduced to
 5668        represent the methods in a methods table, to replace the
 5669        deprecated class \code{"MethodsList"}.
 5670 
 5671       \item \code{any()} and \code{all()} return early if possible.
 5672        This may speed up operations on long vectors.
 5673 
 5674       \item \code{strptime()} now accepts \code{"\%z"} (for the offset
 5675        from UTC in the RFC822 format of \code{+/-hhmm}).
 5676 
 5677       \item The PCRE library has been updated to version 8.02, a bug-fix
 5678        release which also updates tables to Unicode 5.02.
 5679 
 5680       \item Functions which may use a graphical \code{select.list()}
 5681        (including \code{menu()} and \code{install.packages()}) now check
 5682        on a Unix-alike that Tk can be started (and not just
 5683        \code{capabilities("tcltk") && capabilities("X11")}).
 5684 
 5685       \item The parser no longer marks strings containing octal or hex
 5686        escapes as being in UTF-8 when entered in a UTF-8 locale.
 5687 
 5688       \item On platforms with cairo but not Pango (notably Mac OS X) the
 5689        initial default \code{X11()} type is set to \code{"Xlib"}: this avoids
 5690        several problems with font selection when done by cairo rather
 5691        than Pango (at least on Mac OS X).
 5692 
 5693       \item New function \code{arrayInd()} such that \code{which(x,
 5694        arr.ind = TRUE)} for an array 'x' is now equivalent to
 5695        \code{arrayInd(which(x), dim(x), dimnames(x))}.
 5696     }
 5697   }
 5698   \subsection{DEPRECATED & DEFUNCT}{
 5699     \itemize{
 5700       \item Bundles of packages are defunct.
 5701 
 5702       \item \code{stats::clearNames()} is defunct: use \code{unname()}.
 5703 
 5704       \item Basic regular expressions are defunct, and
 5705        \code{strsplit()}, \code{grep()}, \code{grepl()}, \code{sub()},
 5706        \code{gsub()}, \code{regexpr()} and \code{gregexpr()} no longer
 5707        have an \code{extended} argument.
 5708 
 5709       \item \code{methods::trySilent()} is defunct.
 5710 
 5711       \item \code{index.search()} (which was deprecated in 2.10.0) is no
 5712        longer exported and has a different argument list.
 5713 
 5714       \item Use of multiple arguments to \code{return()} is now defunct.
 5715 
 5716       \item The use of \code{UseMethod()} with more than two arguments
 5717       is now defunct.
 5718 
 5719       \item In the \pkg{methods} package, the \code{"MethodsList"}
 5720        metadata objects which had been superseded by hash tables
 5721        (environments) since \R 2.8.0 are being phased out.  Objects of
 5722        this class are no longer assigned or used as metadata by the
 5723        package.
 5724 
 5725        \code{getMethods()} is now deprecated, with its internal use replaced
 5726        by \code{findMethods()} and other changes.  Creating objects from the
 5727        \code{"MethodsList"} class is also deprecated.
 5728 
 5729       \item Parsing strings containing both octal/hex and Unicode escapes
 5730        now gives a warning and will become an error in \R 2.12.0.
 5731     }
 5732   }
 5733   \subsection{INSTALLATION}{
 5734     \itemize{
 5735       \item UTF-8 is now used for the reference manual and package
 5736        manuals.  This requires LaTeX \sQuote{2005/12/01} or later.
 5737 
 5738       \item \command{configure} looks for a POSIX compliant
 5739        \command{tr}, Solaris's \command{/usr/ucb/tr} having been found
 5740        to cause \command{Rdiff} to malfunction.
 5741 
 5742       \item \command{configure} is now generated with \command{autoconf
 5743        2.65}, which works better on recent systems and on Mac OS X.
 5744     }
 5745   }
 5746   \subsection{PACKAGE INSTALLATION}{
 5747     \itemize{
 5748       \item Characters in \R source which are not translatable to the
 5749        current locale are now handled more tolerantly:  these will be
 5750        converted to hex codes with a warning.  Such characters are
 5751        only really portable if they appear in comments.
 5752 
 5753       \item \command{R CMD INSTALL} now tests that the installed package
 5754        can be loaded (and backs out the installation if it cannot): this
 5755        can be suppressed by \option{--no-test-load}.  This avoids
 5756        installing/updating a package that cannot be used: common causes
 5757        of failures to load are missing/incompatible external software
 5758        and missing/broken dependent packages.
 5759 
 5760       \item Package installation on Windows for a package with a
 5761        \file{src} directory now checks if a DLL is created unless there
 5762        is a \file{src/Makefile.win} file: this helps catch broken
 5763        installations where the toolchain has not reported problems in
 5764        building the DLL.  (Note: this can be any DLL, not just one named
 5765        \file{<pkg-name>.dll}.)
 5766      }
 5767   }
 5768   \subsection{BUG FIXES}{
 5769     \itemize{
 5770 
 5771       \item Using \code{with()}, \code{eval()} etc with a list with some
 5772       unnamed elements now works.
 5773       (\PR{14035})
 5774 
 5775       \item The \code{"quick"} dispatch of S4 methods for primitive
 5776        functions was not happening, forcing a search each time.
 5777        (Dispatch for closures was not affected.)  A side effect is that
 5778        default values for arguments in a method that do not have
 5779        defaults in the generic will now be ignored.
 5780 
 5781       \item Trying to dispatch S4 methods for primitives during the search
 5782        for inherited methods slows that search down and potentially
 5783        could cause an infinite recursion.  An internal switch was
 5784        added to turn off all such methods from
 5785        \code{findInheritedMethods()}.
 5786 
 5787       \item \R framework installation (on Mac OS X) would not work
 5788        properly if a rogue \code{Resources} directory was present at the
 5789        top level.  Such a non-symlink will now be renamed to
 5790        \code{Resources.old} (and anything previously named
 5791        \code{Resources.old} removed) as part of the framework
 5792        installation process.
 5793 
 5794       \item The checks for conforming S4 method arguments could fail
 5795        when the signature of the generic function omitted some of the
 5796        formal arguments (in addition to \code{...}).  Arguments omitted
 5797        from the method definition but conforming (per the documentation)
 5798        should now be ignored (treated as \code{"ANY"}) in dispatching.
 5799 
 5800       \item The computations for S4 method evaluation when \code{...}
 5801        was in the signature could fail, treating \code{...} as an
 5802        ordinary symbol.  This has been fixed, for the known cases.
 5803 
 5804       \item Various \code{ar()} fitting methods have more protection for
 5805        singular fits.
 5806 
 5807       \item \code{callNextMethod} now works again with the \code{drop=}
 5808       argument in \samp{[}
 5809 
 5810       \item \code{parse()} and \code{parse_Rd()} miscounted columns when
 5811        multibyte UTF-8 characters were present.
 5812 
 5813       \item Formatting of help pages has had minor improvements: extra
 5814        blank lines have been removed from the text format, and empty
 5815        package labels removed from HTML.
 5816 
 5817       \item \code{cor(A, B)} where \code{A} is \eqn{n \times 1}{n x 1}
 5818        and \code{B} a 1-dimensional array segfaulted or gave an internal
 5819        error.  (The case \code{cor(B, A)} was
 5820        \PR{7116}.)
 5821 
 5822       \item \code{cut.POSIXt()} applied to a start value after the DST
 5823        transition on a DST-change day could give the wrong time for
 5824        argument \code{breaks} in units of days or longer.  (\PR{14208})
 5825 
 5826       \item \code{do_par()} \code{UNPROTECT}ed too early  (\PR{14214})
 5827 
 5828       \item Subassignment \code{x[[....]] <- y} didn't check for a
 5829        zero-length right hand side, and inserted a rubbish
 5830        value.  (\PR{14217})
 5831 
 5832       \item \code{fisher.test()} no longer gives a P-value \strong{very}
 5833        slightly > 1, in some borderline cases.
 5834 
 5835       \item Internal function \code{matchArgs()} no longer modifies the
 5836        general purpose bits of the \code{SEXP}s that make up the formals
 5837        list of \R functions.  This fixes an invalid error message that
 5838        would occur when a garbage collection triggered a second call to
 5839        \code{matchArgs} for the same function \emph{via} a finalizer.
 5840 
 5841       \item \code{gsub()} in 2.10.x could fail from stack overflow for
 5842        extremely long strings due to temporary data being allocated on
 5843        the stack.  Also, \code{gsub()} with \code{fixed=TRUE} is in some
 5844        circumstances considerably faster.
 5845 
 5846       \item Several primitives, including \code{attributes()},
 5847        \code{attr<-()} \code{interactive()}, \code{nargs()} and
 5848        \code{proc.time()}, did not check that they were called with the
 5849        correct number of arguments.
 5850 
 5851       \item A potential race condition in \code{list.files()} when other
 5852        processes are operating on the directory has been fixed; the code
 5853        now dynamically allocates memory for file listings in a single
 5854        pass instead of making an initial count pass.
 5855 
 5856       \item \code{mean(x, trim=, na.rm = FALSE)} failed to return \code{NA} if
 5857        \code{x} contained missing values.  (Reported by Bill Dunlap.)
 5858 
 5859       \item Extreme tail behavior of, \code{pbeta()} \{and hence
 5860        \code{pf()}\}, e.g., \code{pbeta(x, 3, 2200, lower.tail=FALSE,
 5861        log.p=TRUE)} now returns finite values instead of jumping to
 5862        \code{-Inf} too early.  (\PR{14230}).
 5863 
 5864       \item \code{parse(text=x)} misbehaved for objects \code{x} that
 5865        were not coerced internally to character, notably symbols.
 5866        (Reported to R-devel by Bill Dunlap.)
 5867 
 5868       \item The internal C function \code{coerceSymbol} now handles
 5869        coercion to character, and warns if coercion fails (rather than
 5870        silently returning \code{NULL}).  This allows a name to be given
 5871        where a character vector is required in functions which coerce
 5872        internally.
 5873 
 5874       \item The interpretation by \code{strptime()} of \code{"\%c"} was
 5875        non-standard (not that it is ever advisable to use locale- and
 5876        system-specific input formats).
 5877 
 5878       \item capabilities(\code{"X11"}) now works the same way on Mac OS X as on
 5879        other platforms (and as documented: it was always true for R
 5880        built with \option{--with-aqua}, as the CRAN builds are).
 5881 
 5882       \item The \code{X11()} device with cairo but not Pango (notably Mac OS X)
 5883        now checks validity of text strings in UTF-8 locales (since
 5884        Pango does but cairo it seems does not).
 5885 
 5886       \item \code{read.fwf()} misread multi-line records when n was specified.
 5887        (\PR{14241})
 5888 
 5889       \item \code{all.equal(tolerance = e)} passes the numeric
 5890        tolerance also to the comparison of the attributes.
 5891 
 5892       \item \code{pgamma(0, 0)}, a boundary case, now returns 0, its
 5893        limit from the left, rather than the limit from the right.
 5894 
 5895       \item Issuing \code{POST} requests to the internal web server could stall
 5896        the request under certain circumstances.
 5897 
 5898       \item \code{gzcon( <textConnection> )}, an error, no longer
 5899        damages the connection (in a way to have it
 5900        segfault).  (\PR{14237})
 5901 
 5902       \item All the results from \code{hist()} now use the nominal
 5903        \code{breaks} not those adjusted by the numeric \sQuote{fuzz}:
 5904        in recent versions the nominal \code{breaks} were reported but
 5905        the 'density' referred to the intervals used in the calculation
 5906        -- which mattered very slightly for one of the extreme bins.
 5907        (Based on a report by Martin Becker.)
 5908 
 5909       \item If \code{xy[z].coords} (used internally by many graphics
 5910        functions) are given a list as \code{x}, they now check that
 5911        the list has suitable names and give a more informative error
 5912        message.  (\PR{13936})
 5913     }
 5914   }
 5915 }
 5916 
 5917 
 5918 \section{\Rlogo CHANGES IN R VERSION 2.10.1 patched}{
 5919   \subsection{NEW FEATURES}{
 5920     \itemize{
 5921       \item The handling of line textures in the \code{postscript()} and
 5922        \code{pdf()} devices was set up for round end caps (the only type
 5923        which existed at the time): it has now been adjusted for butt
 5924        endcaps.
 5925 
 5926       \item \code{lchoose(a, k)} is now defined as
 5927        \code{log(abs(choose(a,k)))}, analogously to \code{lfactorial()}.
 5928 
 5929       \item Although \code{\\eqn\{\}} in Rd files is defined as a
 5930        \sQuote{verbatim} macro, many packages expected \code{\\dots} and
 5931        \code{\\ldots} to be interpreted there (as was the case in \R <
 5932        2.10.0), so this is now done (using an ellipsis in HTML
 5933        rendering).
 5934 
 5935       \item Escaping of braces in quoted strings in \R-code sections of
 5936        Rd files is allowed again.  This had been changed for the new Rd
 5937        format in \R 2.10.0 but was only documented on the developer site
 5938        and was handled inconsistently by the converters: text and
 5939        example conversion removed the escapes but HTML conversion did
 5940        not.
 5941 
 5942       \item The PCRE library has been updated to version 8.01, a bug-fix
 5943        release.
 5944 
 5945       \item \code{tools::readNEWS()} now accepts a digit as the first
 5946        character of a news section.
 5947     }
 5948   }
 5949   \subsection{BUG FIXES}{
 5950     \itemize{
 5951       \item Using \code{read.table(header=TRUE)} on a header with an
 5952        embedded new line would copy part of the header into the data.
 5953        (\PR{14103})
 5954 
 5955       \item \code{qpois(p = 1, lambda = 0)} now gives 0 as for all other
 5956       \code{p}.  (\PR{14135})
 5957 
 5958       \item Functions related to string comparison
 5959        (e.g., \code{unique()}, \code{match()}) could cause crashes when
 5960        used with strings not in the native encoding, e.g., UTF-8 strings
 5961        on Windows.  (\PR{14114} and \PR{14125})
 5962 
 5963       \item \code{x[ , drop=TRUE]} dropped an \code{NA} level even if it
 5964       was in use.
 5965 
 5966       \item The dynamic HTML help system reported the wrong MIME type
 5967        for the style sheet.
 5968 
 5969       \item \code{tools::codoc()} (used by \command{R CMD check}) was
 5970        missing cases where the function had no arguments but was
 5971        documented to have some.
 5972 
 5973       \item Help links containing special characters (e.g., \code{"?"})
 5974        were not generated correctly when rendered in
 5975        HTML.  (\PR{14155})
 5976 
 5977       \item \code{lchoose(a, k)} no longer wrongly gives \code{NaN} for
 5978       negative \code{a}.
 5979 
 5980       \item \code{ks.test()} could give a p-value that was off by one
 5981        observation due to rounding error.  (\PR{14145})
 5982 
 5983       \item \code{readBin()}/\code{readChar()} when reading millions of
 5984        character strings in a single call used excessive amounts of
 5985        memory (which also slowed them down).
 5986 
 5987       \item \command{R CMD SHLIB} could fail if used with paths that
 5988        were not alphanumeric, e.g.\sspace{}contained \code{+}.  (\PR{14168})
 5989 
 5990       \item \code{sprintf()} was not re-entrant, which potentially
 5991        caused problems if an \code{as.character()} method called it.
 5992 
 5993       \item The \code{quartz()} device did not restore the clipping
 5994        region when filling the background for a new page.  This could be
 5995        observed in multi-page bitmap output as stale outer regions of
 5996        the plot.
 5997 
 5998       \item \code{p.adjust(method, n)} now works correctly for the
 5999        rare case \code{n > length(p)}, also when method differs from
 6000        \code{"bonferroni"} or \code{"none"}, thanks to a patch from
 6001        Gordon Smyth.
 6002 
 6003       \item \code{tools::showNonASCII()} failed to detect non-ASCII characters
 6004        if \code{iconv()} (incorrectly) converted them to different ASCII
 6005        characters.  (Seen on Windows only.)
 6006 
 6007       \item \code{tcrossprod()} wrongly failed in some cases when one of the
 6008        arguments was a vector and the other a matrix.
 6009 
 6010       \item \code{[cr]bind(..., deparse.level=2)} was not always giving
 6011        names when documented to do so.  (Discovered whilst investigating
 6012        \PR{14189}.)
 6013 
 6014       \item \code{match(incomparables=<non-NULL>)} could in rare cases
 6015        infinite-loop.
 6016 
 6017       \item \code{poisson.test()} needed to pass argument
 6018        \code{conf.level} to \code{binom.test()}.  (\PR{14195})
 6019 
 6020       \item The \code{"nls"} method for \code{df.residual()} gave
 6021        incorrect results for models fitted with \code{na.action =
 6022        na.exclude}.  (\PR{14194})
 6023 
 6024       \item A change to \code{options(scipen=)} was only implemented
 6025        when printing next occurred, even though it should have affected
 6026        intervening calls to \code{axis()}, \code{contour()} and
 6027        \code{filledcontour()}.
 6028 
 6029       \item \code{prettyNum(drop0trailing=TRUE)} did not handle signs of
 6030        imaginary parts of complex numbers correctly (and this was used
 6031        by \code{str()}: \PR{14201}).
 6032 
 6033       \item \code{system.time()} had the \code{sys.child} component
 6034        wrong (copied \code{user.child} instead) on systems with
 6035        \code{HAVE_GETRUSAGE}.
 6036        (\PR{14210})
 6037 
 6038       \item Changing both line texture and line cap (end) resulted in the
 6039        latter to be omitted form the PDF code.  In addition, line cap
 6040        (end) and join are now set explicitly in PDF output to ensure
 6041        correct defaults.
 6042 
 6043       \item The suppression of auto-rotation in \code{bitmap()} and
 6044        \code{dev2bitmap()} with the \code{"pdfwrite"} device was not
 6045        working correctly.
 6046 
 6047       \item \code{plot(ecdf(), log="x")} no longer gives an incorrect
 6048       warning.
 6049 
 6050       \item \code{read.fwf()} works again when argument \code{file} is
 6051       a connection.
 6052 
 6053       \item Startup files will now be found if their paths exceed 255
 6054        bytes.  (\PR{14228})
 6055 
 6056       \item \code{contrasts<-} (in the \pkg{stats} package) no longer has an
 6057        undeclared dependence on \pkg{methods} (introduced in 2.10.0).
 6058     }
 6059   }
 6060 }
 6061 
 6062 
 6063 \section{\Rlogo CHANGES IN R VERSION 2.10.1}{
 6064   \subsection{NEW FEATURES}{
 6065     \itemize{
 6066       \item The PCRE library has been updated to version 8.00.
 6067 
 6068       \item \command{R CMD INSTALL} has new options \option{--no-R},
 6069       \option{--no-libs}, \option{--no-data}, \option{--no-help},
 6070       \option{--no-demo}, \option{--no-exec}, and \option{--no-inst} to
 6071       suppress installation of the specified part of the package.
 6072       These are intended for special purposes (e.g., building a database
 6073       of help pages without fully installing all packages).
 6074 
 6075       \item The documented line-length limit of 4095 bytes when reading
 6076       from the console now also applies also to \code{parse(file="")}
 6077       (which previously had a limit of around 1024 bytes).
 6078 
 6079       \item A Bioconductor mirror can be set for use by
 6080       \code{setRepositories()} \emph{via} the option \code{"BioC_mirror"},
 6081       e.g.\sspace{}the European mirror can be selected by
 6082       \code{options(BioC_mirror="http://bioconductor.statistik.tu-dortmund.de")}.
 6083 
 6084       \item Double-clicking in a \code{tk_select.list()} list box now
 6085       selects the item and closes the list box (as happens on the
 6086       Windows \code{select.list()} widget).
 6087     }
 6088   }
 6089   \subsection{INSTALLATION}{
 6090     \itemize{
 6091       \item \command{configure} will be able to find a usable
 6092       \code{libtiff} in some rare circumstances where it did not
 6093       previously (where \code{libtiff} needed to be linked explicitly against
 6094       \code{-ljpeg}).
 6095 
 6096       \item Making \code{refman.pdf} works around a problem with the indexing
 6097       with \code{hyperref 6.79d} and later.
 6098     }
 6099   }
 6100   \subsection{DEPRECATED & DEFUNCT}{
 6101     \itemize{
 6102       \item The \code{extended} argument is deprecated in
 6103       \code{strsplit()}, \code{grep()}, \code{grepl()}, \code{sub()},
 6104       \code{gsub()}, \code{regexpr()} and \code{gregexpr()} (not just
 6105       the value \code{extended = FALSE}) and will be removed in \R
 6106       2.11.0.
 6107     }
 6108   }
 6109   \subsection{BUG FIXES}{
 6110     \itemize{
 6111       \item \code{trigamma(x)} and other \code{psigamma(x, n)} calls
 6112       are now accurate for very large \code{abs(x)}.  (\PR{14020})
 6113 
 6114       \item \code{[g]sub(perl=FALSE, fixed=FALSE)} could use excessive
 6115       stack space when used with a very long vector containing some
 6116       non-ASCII strings.
 6117 
 6118       \item The default method of \code{weighted.mean(na.rm = TRUE)}
 6119       did not omit weights for \code{NA} observations in 2.10.0.
 6120       (\PR{14032})
 6121 
 6122       \item \code{[g]regexpr(pattern, fixed = TRUE)} returned match
 6123       positions in bytes (not characters) in an MBCS locale if
 6124       \code{pattern} was a single byte.
 6125 
 6126       \code{[g]sub(fixed = TRUE)} with a single-byte pattern could
 6127       conceivably have matched part of a multibyte character in a
 6128       non-UTF-8 MBCS.
 6129 
 6130       \item \code{findLineNum()} and \code{setBreakpoint()} would
 6131       sometimes fail if the specified file was not in the current
 6132       directory.
 6133 
 6134       \item Package \pkg{tcltk}'s \code{demo(tkdensity)} was broken in
 6135       2.9.0 when \code{demo()} was changed to set \code{par(ask = TRUE)}.
 6136 
 6137       \item \code{gsub()} with backrefs could fail on extremely long strings
 6138       (hundreds of thousands of characters) due to integer overflow
 6139       in a length calculation.
 6140 
 6141       \item \code{abline(untf=TRUE)} now uses a better x-grid in
 6142       log-scale, e.g., for \code{plot(c(1,300), c(1,300), log="xy");
 6143 	abline(4,1, untf=TRUE)}.
 6144 
 6145       \item \code{detach()}/\code{unloadNamespace()} arrange to flush
 6146       the package's lazyload cache of \R objects once the
 6147       package/namespace is no longer needed.
 6148 
 6149       \item There have been small fixes to the rendering of help,
 6150       e.g.\sspace{}\code{\\command} is now rendered verbatim
 6151       (so e.g.\sspace{}\code{--} is not interpreted, \PR{14045}).
 6152 
 6153       Also, there are many small changes to help files where the new
 6154       converters were not rendering them in the same way as before.
 6155 
 6156       \item \code{available.packages()} would fail when run on a
 6157       repository with no packages meeting the filtering conditions.
 6158       (\PR{14042})
 6159 
 6160       \item \code{rep(x, times, each = 2)} gave invalid results when the
 6161       \code{times} argument was a vector longer than \code{x}.
 6162       Reported by Bill Dunlap.
 6163 
 6164       \item An error when \code{unloadNamespace()} attempted to run the
 6165       \code{.onUnload()} function gave an error in the reporting
 6166       function and so was not reported properly.
 6167 
 6168       \item Text help rendering did not handle very long input lines
 6169       properly.
 6170 
 6171       \item \code{promptMethods()} generated signature documentation
 6172       improperly.
 6173 
 6174       \item \code{pgamma(x, a, lower.tail=FALSE)} and
 6175       \code{qgamma(\dots)} are now considerably more accurate in some
 6176       regions for very small \code{a}.  \code{qgamma()} now correctly
 6177       returns \code{0} instead of \code{NaN} in similar extreme cases,
 6178       and \code{qgamma()} no longer warns in the case of small
 6179       \code{a}, see (\PR{12324}).
 6180 
 6181       \item \code{unname()} now also removes names from a zero length vector.
 6182 
 6183       \item Printing results from \code{ls.str()} no longer evaluates
 6184       unevaluated calls.
 6185 
 6186       \item \code{complete.cases()} failed on a 0-column data frame
 6187       argument.  (Underlies \PR{14066}.)
 6188 
 6189       It could return nonsensical results if no input determined the
 6190       number of cases (seen in the no-segfault tests).
 6191 
 6192       \item An error in \code{nls()} with a long formula could cause a
 6193       segfault.  (\PR{14059})
 6194 
 6195       \item \code{qchisq(p, df, ncp, lower.tail = FALSE)} with
 6196       \code{ncp >= 80} was inaccurate for small \code{p} (as the help page
 6197       said): it is now less inaccurate.  (In part,
 6198       \PR{13999}.)
 6199 
 6200       For \code{ncp} less than but close to 80, \code{pchisq()} and
 6201       \code{qchisq()} are more accurate for probabilities very close
 6202       to 1 (a series expansion was truncated slightly too early).
 6203 
 6204       \code{pchisq(x, df, ncp)} can no longer return values just larger
 6205       than one for large values of \code{ncp}.
 6206 
 6207       \item \code{intToUtf8()} could fail when asked to produce 10Mb or more
 6208       strings, something it was never intended to do: unfortunately
 6209       Windows crashed \R (other OSes reported a lack of resources).
 6210       (\PR{14068})
 6211 
 6212       \item \code{chisq.test()} could fail when given argument
 6213       \code{x} or \code{y} which deparsed to more than one line.
 6214       (Reported by Laurent Gauthier.)
 6215 
 6216       \item S4 methods are uncached whenever the namespace containing
 6217       them is unloaded (by \code{unloadNamespace()} as well as by
 6218       \code{detach(unload = TRUE))}.
 6219 
 6220       \item The internal record-keeping by
 6221       \code{dyn.load}/\code{dyn.unload} was incomplete, which could
 6222       crash \R if a DLL that registered \code{.External} routines had
 6223       earlier been unloaded.
 6224 
 6225       \item \code{bessel[JY](x, nu)} with \code{nu} a negative integer (a
 6226       singular case) is now correct, analogously to \code{besselI()},
 6227       see \PR{13556}.
 6228 
 6229       \item \code{tools::file_path_as_absolute()} doubled the file
 6230       separator when applied to a file such as \file{"/vmunix"} or (on
 6231       Windows) \file{"d:/afile"} in a directory for which
 6232       \code{getwd()} would return a path with a trailing separator
 6233       (largely cosmetic, as reasonable file systems handle such a path
 6234       correctly).  (Perhaps what was meant by \PR{14078}.)
 6235 
 6236       \item \code{unsplit(drop = TRUE)} applied to a data frame failed
 6237       to pass \code{drop} to the computation of row names.  (\PR{14084})
 6238 
 6239       \item The \code{"difftime"} method of \code{mean()} ignored its
 6240       \code{na.rm} argument.
 6241 
 6242       \item \code{tcltk::tk_select.list()} is now more likely to remove the
 6243       widget immediately after selection is complete.
 6244 
 6245       \item Adding/subtracting a \code{"difftime"} object to/from a
 6246       \code{"POSIXt"} or \code{"Date"} object works again (it was
 6247       broken by the addition of \code{Ops.difftime}).
 6248 
 6249       \item Conversion to latex of an Rd file with no aliases failed.
 6250 
 6251       \item \code{wilcox.test(conf.int=TRUE)} has achieved.level
 6252       corrected and, for \code{exact=FALSE}, now returns a
 6253       \code{estimate} component which does not depend on the
 6254       alternative used.
 6255 
 6256       \item \code{help.search()} failed when the package argument was
 6257       specified.  (\PR{14113})
 6258 
 6259       \item \code{switch(EXPR = "A")} now returns \code{NULL}, as does
 6260       \code{switch(1)} (which used to signal an error).
 6261     }
 6262   }
 6263 }
 6264 
 6265 
 6266 \section{\Rlogo CHANGES IN R VERSION 2.10.0}{
 6267   \subsection{SIGNIFICANT USER-VISIBLE CHANGES}{
 6268     \itemize{
 6269       \item Package help is now converted from \code{Rd} by the \R-based
 6270        converters that were first introduced in 2.9.0.  This means
 6271 
 6272        \itemize{
 6273 	 \item Packages that were installed by R-devel after 2009-08-09
 6274          should not be used with earlier versions of \R, and most
 6275          aspects of package help (including the runnable examples)
 6276          will be missing if they are so used.
 6277 
 6278 	 \item Text, HTML and latex help and examples for packages
 6279          installed under the new system are converted on-demand from
 6280          stored parsed Rd files.  (Conversions stored in packages
 6281          installed under \R < 2.10.0 are used if no parsed Rd files
 6282          are found.  It is recommended that such packages be
 6283          re-installed.)
 6284        }
 6285 
 6286       \item HTML help is now generated dynamically using an HTTP server
 6287        running in the \R process and listening on the loopback
 6288        interface.
 6289 
 6290        \itemize{
 6291 	 \item Those worried about security implications of such
 6292 	 a server can disable it by setting the environment variable
 6293 	 \env{R_DISABLE_HTTPD} to a non-empty value.  This disables
 6294 	 \code{help.start()} and HTML help (so text help is shown
 6295 	 instead).
 6296 
 6297 	 \item The Java/Javascript search engine has been replaced by an
 6298          HTML interface to \code{help.search()}.  \code{help.start()} no
 6299          longer has an argument \code{searchEngine} as it is no longer
 6300          needed.
 6301 
 6302 	 \item The HTML help can now locate cross-references of the form
 6303          \code{\\link[pkg]\{foo\}} and \code{\\link[pkg:foo]\{bar\}}
 6304          where \code{foo} is an alias in the package, rather than the
 6305          documented (basename of a) filename (since the documentation
 6306          has been much ignored).
 6307        }
 6308     }
 6309   }
 6310   \subsection{NEW FEATURES}{
 6311     \itemize{
 6312       \item \code{polygon()}, \code{pdf()} and \code{postscript()} now
 6313        have an argument \code{fillOddEven} (default \code{FALSE}),
 6314        which controls the mode used for polygon fills of
 6315        self-intersecting shapes.
 6316 
 6317       \item New \code{debugonce()} function; further,
 6318        \code{getOption("deparse.max.lines")} is now observed when
 6319        debugging, from a code suggestion by John Brzustowski.
 6320        (\PR{13647}/8)
 6321 
 6322       \item \code{plot()} methods for \code{"stepfun"} and hence
 6323        \code{"ecdf"} no longer plot points by default for \code{n >= 1000}.
 6324 
 6325       \item \code{[g]sub(perl=TRUE)} now also supports \code{"\\E"}
 6326       in order to \strong{end} \code{"\\U"} and \code{"\\L"} case changes,
 6327       thanks to a patch from Bill Dunlap.
 6328 
 6329       \item \code{factor()}, \code{levels()<-}, etc, now ensure that
 6330        the resulting factor levels are unique (as was always the implied
 6331        intention).  Factors with duplicated levels are still
 6332        constructible by low-level means, but are now declared illegal.
 6333 
 6334       \item New \code{print()} (S3) method for class \code{"function"},
 6335        also used for auto-printing.  Further, \code{.Primitive}
 6336        functions now print and auto-print identically.  The new method
 6337        is based on code suggestions by Romain François.
 6338 
 6339       \item The \code{print()} and \code{toLatex()} methods for class
 6340        \code{"sessionInfo"} now show the locale in a nicer format and
 6341        have arguments to suppress locale information.
 6342 
 6343       \item In addition to previously only \code{round()}, there are
 6344        other \code{Math} group (S3) methods for \code{"difftime"},
 6345        such as \code{floor()}, \code{signif()}, \code{abs()}, etc.
 6346 
 6347       \item For completeness, \code{old.packages()} and
 6348        \code{available.packages()} allow arguments \code{type} to be
 6349        specified (you could always specify arguments \code{available}
 6350        or \code{contriburl}).
 6351 
 6352       \item \code{available.packages()} by default only returns
 6353        information on the latest versions of packages whose version
 6354        requirements are satisfied by the currently running \R.
 6355 
 6356       \item \code{tools::write_PACKAGES()} has a new argument
 6357        \code{latestOnly}, which defaults to \code{TRUE} when only the
 6358        latest versions in the repository will be listed in the index.
 6359 
 6360       \item \code{getOption()} has a new argument \code{default} that
 6361        is returned if the specified option is not set.  This simplifies
 6362        querying a value and checking whether it is \code{NULL} or not.
 6363 
 6364       \item \code{parse()} now warns if the requested encoding is not supported.
 6365 
 6366       \item The \code{"table"} method of \code{as.data.frame()} gains a
 6367        \code{stringsAsFactors} argument to allow the classifying
 6368        factors to be returned as character vectors rather than the
 6369        default factor type.
 6370 
 6371       \item If \code{model.frame.default()} encounters a character
 6372        variable where \code{xlev} indicates a factor, it now converts
 6373        the variable to a factor (with a warning).
 6374 
 6375       \item \code{curve()} now returns a list containing the points that
 6376       w§ere drawn.
 6377 
 6378       \item \code{spineplot()} now accepts \code{axes = FALSE}, for
 6379        consistency with other functions called by \code{plot.factor()}.
 6380 
 6381       \item The Kendall and Spearman methods of \code{cor.test()} can
 6382        optionally use continuity correction when not computing exact
 6383        p-values.  (The Kendall case is the wish of \PR{13691}.)
 6384 
 6385       \item \R now keeps track of line numbers during execution for code
 6386        sourced with \code{options(keep.source = TRUE)}.  The source
 6387        reference is displayed by debugging functions such as
 6388        \code{traceback()}, \code{browser()}, \code{recover()}, and
 6389        \code{dump.frames()}, and is stored as an attribute on each
 6390        element returned by \code{sys.calls()}.
 6391 
 6392       \item More functions now have an implicit (S4) generic definition.
 6393 
 6394       \item \code{quantile.default()} now disallows factors (wish of
 6395        \PR{13631}) and its help
 6396        documents what numeric-like properties its input need to have to
 6397        work correctly.
 6398 
 6399       \item \code{weighted.mean()} is now generic and has \code{"Date"},
 6400        \code{"POSIXct"} and \code{"POSIXlt"} methods.
 6401 
 6402       \item Naming subscripts (e.g., \code{x[i=1, j=2]}) in
 6403        \code{data.frame} methods for \code{[} and \code{[[} now gives a
 6404        warning.  (Names are ignored in the default method, but could
 6405        have odd semantics for other methods, and do for the data.frame
 6406        ones.)
 6407 
 6408       \item \code{as.data.frame()} has an \code{"aovproj"} method.
 6409       (Wish of \PR{13505})
 6410 
 6411       \item \code{as.character(x)} for numeric \code{x} no longer
 6412        produces strings such as \code{"0.30"}, i.e., with trailing
 6413        zeros.  This change also renders levels construction in
 6414        \code{factor()} more consistent.
 6415 
 6416       \item \code{codocClasses()}, which checks consistency of the
 6417        documentation of S4 class slots, now does so in considerably more
 6418        cases.  The documentation of inherited slots (from superclasses)
 6419        is now optional.  This affects \command{R CMD check <pkg>} when
 6420        the package defines S4 classes.
 6421 
 6422       \item \code{codoc()} now also checks S4 methods for code/documentation
 6423        mismatches.
 6424 
 6425       \item \code{for()}, \code{while()}, and \code{repeat()} loops now
 6426        always return NULL as their (invisible) value.  This change was
 6427        needed to address a reference counting bug without creating
 6428        performance penalties for some common use cases.
 6429 
 6430       \item The \code{print()} method for \code{ls.str()} results now
 6431        obeys an optional \code{digits} argument.
 6432 
 6433       \item The \code{method} argument of \code{glm()} now allows
 6434       user-contributed methods.
 6435 
 6436       \item More general \code{reorder.default()} replaces functionality of
 6437        \code{reorder.factor()} and \code{reorder.character()}.
 6438 
 6439       \item The function \code{aspell()} has been added to provide an
 6440        interface to the \command{Aspell} spell-checker.
 6441 
 6442       \item Filters \code{RdTextFilter()} and \code{SweaveTeXFilter()}
 6443        have been added to the tools package to provide support for
 6444        \code{aspell()} or other spell checkers.
 6445 
 6446       \item \code{xtabs()} with the new argument \code{sparse = TRUE}
 6447        now returns a sparse Matrix, using package \CRANpkg{Matrix}.
 6448 
 6449       \item \code{contr.sum()} etc gain an argument \code{sparse}
 6450        which allows sparse matrices to be returned.
 6451 
 6452        \code{contrasts()} also gains a \code{sparse} argument which it
 6453        passes to the actual contrast function if that has a formal
 6454        argument \code{sparse}.
 6455 
 6456        \code{contrasts(f, .) <- val} now also works when \code{val}
 6457        is a sparse Matrix.  It is planned that \code{model.matrix()}
 6458        will work with such factors \code{f} in the future.
 6459 
 6460       \item \code{readNEWS()} will recognize a UTF-8 byte-order mark
 6461        (BOM) in the \file{NEWS} file.  However, it is safer to use only
 6462        ASCII code there because not all editors recognize BOMs.
 6463 
 6464       \item New utility function \code{inheritedSlotNames()} for S4
 6465       class programming.
 6466 
 6467       \item \code{tabulate()} now allows NAs to pass through (and be ignored).
 6468 
 6469       \item If \code{debug()} is called on an S3 generic function then
 6470        all methods are debugged as well.
 6471 
 6472       \item Outlier symbols drawn by \code{boxplot()} now obey the
 6473        \code{outlwd} argument.  Reported by Jurgen Kluge.
 6474 
 6475       \item \code{svd(x)} and \code{eigen(x)} now behave analogously to
 6476        \code{qr(x)} in accepting logical matrices \code{x}.
 6477 
 6478       \item File \file{NEWS} is now in UTF-8, and has a BOM (often
 6479        invisible) on the first line, and \command{Emacs} local variables
 6480        set for UTF-8 at the end.  \code{RShowDoc("NEWS")} should display
 6481        this correctly, given suitable fonts.
 6482 
 6483       \item \code{terms.formula(simplify = TRUE)} now does not deparse
 6484        the LHS and so preserves non-standard responses such as \code{`a:
 6485        b`} (requested by Sundar Dorai-Raj).
 6486 
 6487       \item New function \code{news()} for building and querying \R or
 6488        package news information.
 6489 
 6490       \item \code{z^n} for integer \code{n} and complex \code{z} is more
 6491        accurate now if \code{|n| <= 65536}.
 6492 
 6493       \item \code{factor(NULL)} now returns the same as
 6494        \code{factor(character(0))} instead of an error, and
 6495        \code{table(NULL)} consequently does analogously.
 6496 
 6497       \item \code{as.data.frame.vector()} (and its copies) is slightly faster
 6498        by avoiding a copy if there are no names (following a
 6499        suggestion of Tim Hesterberg).
 6500 
 6501       \item \code{writeLines()}, \code{writeBin()} and
 6502        \code{writeChar()} have a new argument \code{useBytes}.  If
 6503        false, character strings with marked encodings are translated to
 6504        the current locale (as before) but if true they are written
 6505        byte-by-byte.
 6506 
 6507       \item \code{iconv()} has a new argument \code{mark} which can be
 6508        used (by experts) to suppress the declaration of encodings.
 6509 
 6510       \item \file{DESCRIPTION} file's \code{LinkingTo} specs are now
 6511        recognized as installation dependencies, and included in package
 6512        management computations.
 6513 
 6514       \item Standardized \file{DESCRIPTION} file \code{License} specs
 6515        are now available for package management computations.
 6516 
 6517       \item \code{"\\uxxxx"} and \code{"\\Uxxxxxxxx"} escapes can now be
 6518        parsed to a UTF-8 encoded string even in non-UTF-8 locales (this
 6519        has been implemented on Windows since \R 2.7.0).  The semantics
 6520        have been changed slightly: a string containing such escapes is
 6521        always stored in UTF-8 (and hence is suitable for portably
 6522        including Unicode text in packages).
 6523 
 6524       \item New \code{as.raw()} method for \code{"tclObj"} objects (wish
 6525       of \PR{13758}).
 6526 
 6527       \item \code{Rd.sty} now makes a better job of setting email addresses,
 6528        including using a monospaced font.
 6529 
 6530       \item \code{textConnection()} gains an \code{encoding} argument
 6531        to determine how input strings with marked encodings will be
 6532        handled.
 6533 
 6534       \item \command{R CMD Rd2pdf} is available as a shortcut for
 6535       \command{R CMD Rd2dvi --pdf}.
 6536 
 6537       \item \command{R CMD check} now checks links where a package is
 6538        specified (\code{\\link[pkg]\{file\}} or
 6539        \code{\\link[pkg:file]\{topic\}}), if the package is available.
 6540        It notes if the package is not available, as in many cases this
 6541        is an error in the link.
 6542 
 6543       \item \code{identical()} gains three logical arguments, which
 6544        allow for even more differentiation, notably \code{-0} and
 6545        \code{0}.
 6546 
 6547       \item \code{legend()} now can specify the \code{border} color of
 6548        filled boxes, thanks to a patch from Frederic Schutz.
 6549 
 6550       \item Indexing with a vector index to \code{[[ ]]} has now been
 6551        extended to all recursive types.
 6552 
 6553       \item Pairlists may now be assigned as elements of lists.  (Lists
 6554        could always be created with pairlist elements, but \code{[[<-}
 6555        didn't support assigning them.)
 6556 
 6557       \item The parser now supports C-preprocessor-like \code{#line}
 6558        directives, so error messages and source references may refer to
 6559        the original file rather than an intermediate one.
 6560 
 6561       \item New functions \code{findLineNum()} and
 6562        \code{setBreakpoint()} work with the source references to find
 6563        the location of source lines and set breakpoints (using
 6564        \code{trace()}) at those lines.
 6565 
 6566       \item Namespace importing is more careful about warning on masked
 6567        generics, thanks to a patch by Yohan Chalabi.
 6568 
 6569       \item \code{detach()} now has an argument \code{character.only}
 6570        with the same meaning as for \code{library()} or
 6571        \code{require()}.
 6572 
 6573       \item \code{available.packages()} gains a \code{filters}
 6574        argument for specifying the filtering operations performed on the
 6575        packages found in the repositories.  A new built-in
 6576        \code{"license/FOSS"} filter only retains packages for which
 6577        installation can proceed solely based on packages which can be
 6578        verified as Free or Open Source Software (FOSS) employing the
 6579        available license specifications.
 6580 
 6581       \item In registering an S3 class by a call to
 6582        \code{setOldClass()}, the data part (e.g., the object type)
 6583        required for the class can be included as one of the superclasses
 6584        in the Classes argument.
 6585 
 6586       \item The argument \code{f} to \code{showMethods()} can be an
 6587        expression evaluating to a generic function, allowing methods to
 6588        be shown for non-exported generics and other nonstandard cases.
 6589 
 6590       \item \code{sprintf()} now supports \code{\%o} for octal
 6591       conversions.
 6592 
 6593       \item New function \code{Sys.readlink()} for information about symbolic
 6594        links, including if a file is a symbolic link.
 6595 
 6596       \item Package \pkg{tools} has new functions
 6597        \code{checkRdaFiles()} and \code{resaveRdaFiles()} to report on
 6598        the format of \file{.rda}/\file{.RData} data files, and to
 6599        re-save them in a different compressed format, including choosing
 6600        the most compact format available.
 6601 
 6602        A new \command{INSTALL} option, \option{--resave-data}, makes use
 6603        of this.
 6604 
 6605       \item File \file{~/.R/config} is used in preference to
 6606        \file{~/.Rconfig}, and these are now documented in \sQuote{R
 6607        Installation and Administration}.
 6608 
 6609       \item Logic operations with complex numbers now work, as they were always
 6610        documented to, and as in S.
 6611 
 6612       \item \code{arrows()} and \code{segments()} allow one of \code{x1}
 6613        or \code{y1} to be omitted to simplify the specification of
 6614        vertical or horizontal lines (suggestion of Tim Hesterberg).
 6615 
 6616       \item \code{approxfun()} is faster by avoiding repeated \code{NA}
 6617        checks (diagnosis and patch by Karline Soetaert & Thomas
 6618        Petzoldt).
 6619 
 6620       \item There are the beginnings of a Nynorsk translation by Karl Ove
 6621        Hufthammer.
 6622 
 6623       \item \code{stripchart()} allows \code{par} \code{bg} to be
 6624        passed in for the background colour for \code{pch = 21} (wish of
 6625        \PR{13984}).
 6626 
 6627       \item New generic function \code{.DollarNames()} to enable class authors
 6628        to customize completion after the \code{$} extractor.
 6629 
 6630       \item \code{load()}, \code{save()}, \code{dput()} and
 6631        \code{dump()} now open a not-yet-open connection in the
 6632        appropriate mode (as other functions using connections directly
 6633        already did).
 6634     }
 6635   }
 6636   \subsection{REGULAR EXPRESSIONS}{
 6637     \itemize{
 6638       \item A different regular expression engine is used for basic and
 6639        extended regexps and is also for approximate matching.  This is
 6640        based on the TRE library of Ville Laurikari, a modified copy of
 6641        which is included in the \R sources.
 6642 
 6643        This is often faster, especially in a MBCS locale.
 6644 
 6645        Some known differences are that it is less tolerant of invalid
 6646        inputs in MBCS locales, and in its interpretation of undefined
 6647        (extended) regexps such as \code{"^*"}.  Also, the interpretation of
 6648        ranges such as \code{[W-z]} in caseless matching is no longer to map
 6649        the range to lower case.
 6650 
 6651        This engine may in future be used in \sQuote{literal} mode for
 6652        \code{fixed = TRUE}, and there is a compile-time option in
 6653        \code{src/main/grep.c} to do so.
 6654 
 6655       \item The use of repeated boundary regexps in \code{gsub()} and
 6656        \code{gregexpr()} as warned about in the help page does not work
 6657        in this engine (it did in the previous one since 2005).
 6658 
 6659       \item Extended (and basic) regexps now support same set of options
 6660        as for \code{fixed = TRUE} and \code{perl = TRUE}, including
 6661        \code{useBytes} and support for UTF-8-encoded strings in
 6662        non-UTF-8 locales.
 6663 
 6664       \item \code{agrep()} now has full support for MBCS locales with a modest
 6665        speed penalty.  This enables \code{help.search()} to use approximate
 6666        matching character-wise rather than byte-wise.
 6667 
 6668       \item \code{[g]sub} use a single-pass algorithm instead of
 6669        matching twice and so is usually faster.
 6670 
 6671       \item The \code{perl = TRUE} versions now work correctly in a
 6672        non-UTF-8 MBCS locale, by translating the inputs to UTF-8.
 6673 
 6674       \item \code{useBytes = TRUE} now inhibits the translation of inputs with
 6675        marked encodings.
 6676 
 6677       \item \code{strsplit()} gains a \code{useBytes} argument.
 6678 
 6679       \item The algorithm used by \code{strsplit()} has been reordered
 6680        to batch by elements of \code{split}: this can be much faster for
 6681        \code{fixed = FALSE} (as multiple compilation of regexps is avoided).
 6682 
 6683       \item The help pages, including \code{?regexp}, have been updated
 6684        and should be consulted for details of the new implementations.
 6685     }
 6686   }
 6687   \subsection{HELP & Rd FILE CHANGES}{
 6688     \itemize{
 6689       \item A new dynamic HTML help system is used by default, and may be
 6690        controlled using \code{tools::startDynamicHelp()}.  With this enabled,
 6691        HTML help pages will be generated on request, resolving links
 6692        by searching through the current \code{.libPaths()}.  The user
 6693        may set options(\code{"help.ports"}) to control which IP port is used
 6694        by the server.
 6695 
 6696       \item \code{help.start()} no longer sets \code{options(htmlhelp =
 6697        TRUE)} (it used to on Unix but not on Windows).  Nor does it on
 6698        Unix reset the \code{"browser"} option if given an argument of
 6699        that name.
 6700 
 6701        Arguments \code{update} and \code{remote} are now available
 6702        on all platforms: the default is \code{update = FALSE} since the
 6703        http server will update the package index at first use.
 6704 
 6705       \item \code{help()} has a new argument \code{help_type} (with
 6706        default set by the option of that name) to supersede arguments
 6707        \code{offline}, \code{htmlhelp} and \code{chmhelp}
 6708        (although for now they still work if \code{help_type} is
 6709        unset).  There is a new type, \code{"PDF"} to allow offline PDF
 6710        (rather than PostScript).
 6711 
 6712        A function \code{offline_help_helper()} will be used if this exists
 6713        in the workspace or further down the search path, otherwise
 6714        the function of that name in the \pkg{utils} namespace is used.
 6715 
 6716       \item Plain text help is now used as the fallback for HTML help (as
 6717        it always was for Compiled HTML help on Windows).
 6718 
 6719       \item It is possible to ask for static HTML pages to be prebuilt
 6720        \emph{via} the configure option \option{--enable-prebuilt-html}.  This
 6721        may be useful for those who wish to make HTML help available
 6722        outside R, e.g.\sspace{}on a local web site.
 6723 
 6724       \item An experimental tag \code{\\Sexpr} has been added to Rd
 6725        files, to evaluate expressions at build, install, or render time.
 6726        Currently install time and render time evaluation are supported.
 6727 
 6728       \item Tags \code{\\if}, \code{\\ifelse} and \code{\\out} have been
 6729        added to allow format-specific (or more general, using
 6730        \code{\\Sexpr}) conditional text in man pages.
 6731 
 6732       \item The \code{parse_Rd()} parser has been made more tolerant of coding
 6733        errors in Rd files:  now all syntax errors are reported as
 6734        warnings, and an attempt is made to continue parsing.
 6735 
 6736       \item \code{parse_Rd()} now has an argument \code{fragment}
 6737        (default \code{FALSE}) to accept small fragments of Rd files (so
 6738        that \code{\\Sexpr} can output Rd code which is then parsed).
 6739 
 6740       \item \code{parse_Rd()} now always converts its input to UTF-8.
 6741        The \code{Rd2*} rendering functions have a new argument,
 6742        \code{outputEncoding}, which controls how their output is
 6743        encoded.
 6744 
 6745       \item \code{parse_Rd()} no longer includes the newline as part of
 6746        a \code{"\%"}-style comment.
 6747 
 6748       \item There have been various bug fixes and code reorganization in
 6749        the Rd renderers \code{Rd2HTML}, \code{Rd2latex}, \code{Rd2txt},
 6750        and \code{Rd2ex}.
 6751 
 6752        All example files are now created with either ASCII or UTF-8
 6753        encoding, and the encoding is only marked in the file if there
 6754        is any non-UTF-8 code (previously it was marked if the help
 6755        file had non-ASCII contents, possibly in other sections).
 6756 
 6757       \item \code{print.Rd()} now adds necessary escape characters so that
 6758        printing and re-parsing an Rd object should produce an
 6759        equivalent object.
 6760 
 6761       \item \code{parse_Rd()} was incorrectly handling multiple backslashes in
 6762        \R code strings, converting 4n+3 backslashes to 2n+1 instead
 6763        of 2n+2.
 6764 
 6765       \item \code{parse_Rd()} now recognizes the \code{\\var} tag within
 6766        a quoted string in \R-like text.
 6767 
 6768       \item \code{parse_Rd()} now treats the argument of
 6769        \code{\\command} as LaTeX-like, rather than verbatim.
 6770     }
 6771   }
 6772   \subsection{COMPRESSION}{
 6773     \itemize{
 6774       \item New function \code{untar()} to list or unpack tar archives,
 6775        possibly compressed.  This uses either an external \command{tar}
 6776        command or an internal implementation.
 6777 
 6778       \item New function \code{tar()} to create (possibly compressed)
 6779       tar archives.
 6780 
 6781       \item New functions \code{memCompress()} and
 6782        \code{memDecompress()} for in-memory compression and
 6783        decompression.
 6784 
 6785       \item \code{bzfile()} has a \code{compress} argument to select
 6786        the amount of effort put into compression when writing.
 6787 
 6788       \item New function \code{xzfile()} for use with
 6789        \command{xz}-compressed files.  (This can also read files
 6790        compressed by some versions of \command{lzma}.)
 6791 
 6792       \item \code{gzfile()} looks at the file header and so can now also
 6793        read \command{bzip2}-ed files and \command{xz}-compressed files.
 6794 
 6795       \item There are the new options of \code{save(compress = "bzip2")}
 6796        and \code{"xz"} to use \command{bzip2} or \command{xz}
 6797        compression (which will be slower, but can give substantially
 6798        smaller files).  Argument \code{compression_level} gives finer
 6799        control over the space/time tradeoffs.
 6800 
 6801        \code{load()} can read such saves (but only as from this version of \R).
 6802 
 6803       \item \command{R CMD INSTALL}/\command{check} and
 6804        \code{tools::writePACKAGES} accept a wider range of compressed
 6805        tar archives.  Precisely how wide depends on the capabilities of
 6806        the host system's \command{tar} command: they almost always
 6807        include \command{.tar.bz2} archives, and with modern versions of
 6808        \command{tar} other forms of compression such as \command{lzma}
 6809        and \command{xz}, and arbitrary extensions.
 6810 
 6811       \item \command{R CMD INSTALL} has a new option
 6812        \option{--data-compress} to control the compression used when
 6813        lazy-loading data.  New possibilities are
 6814        \option{--data-compress=bzip2} which will give ca 15\% better
 6815        compression at the expense of slower installation times, and
 6816        \option{--data-compress=xz}, often giving even better compression
 6817        on large datasets at the expense of much longer installation
 6818        times.  (The latter is used for the recommended packages: it is
 6819        particularly effective for \CRANpkg{survival}.)
 6820 
 6821       \item \code{file()} for open = \code{""}, \code{"r"} or
 6822        \code{"rt"} will automagically detect compressed files (from
 6823        \command{gzip}, \command{bzip2} or \command{xz}).  This means
 6824        that compressed files can be specified by file name (rather than
 6825        \emph{via} a \code{gzfile()} connection) to \code{read.table()},
 6826        \code{readlines()}, \code{scan()} and so on.
 6827 
 6828       \item \code{data()} can handle compressed text files with extensions
 6829        \file{.\{txt,tab,csv\}.\{gz,bz2,xz\}} .
 6830     }
 6831   }
 6832   \subsection{DEPRECATED & DEFUNCT}{
 6833     \itemize{
 6834       \item \code{png(type="cairo1")} is defunct: the value is no longer
 6835       recognized.
 6836 
 6837       \item \code{tools::Rd_parse()} is defunct (as this version of \R
 6838        uses only Rd version 2).
 6839 
 6840       \item Use of file \file{~/.Rconf} (which was deprecated in favour
 6841        of \file{~/.Rconfig} in 2004) has finally been removed.
 6842 
 6843       \item Bundles of packages are deprecated.  See \sQuote{Writing R
 6844        Extensions} for the steps needed to unbundle a bundle.
 6845 
 6846       \item \code{help()} arguments \code{offline}, \code{htmlhelp} and
 6847        \code{chmhelp} are deprecated in favour of \code{help_type}.
 6848 
 6849       \item \code{clearNames()} (in package \pkg{stats}) is deprecated
 6850       for \code{unname()}.
 6851 
 6852       \item Basic regular expressions (\code{extended = FALSE}) are
 6853        deprecated in \code{strsplit}, \code{grep} and friends.  There is
 6854        a precise POSIX standard for them, but it is not what recent RE
 6855        engines implement, and it seems that in almost all cases package
 6856        authors intended \code{fixed = TRUE} when using \code{extended =
 6857        FALSE}.
 6858 
 6859       \item \code{methods::trySilent()} is deprecated in favour of
 6860       \code{try(silent=TRUE)} or -- more efficiently and flexibly --
 6861       something like \code{tryCatch(error = function(e) e)}.
 6862 
 6863       \item \code{index.search()} is deprecated: there are no longer
 6864        directories of types other than \code{help}.
 6865     }
 6866   }
 6867   \subsection{INSTALLATION}{
 6868     \itemize{
 6869       \item cairo >= 1.2 is now required (1.2.0 was released in July 2006)
 6870        for cairo-based graphics devices (which remain optional).
 6871 
 6872       \item A suitable \code{iconv()} is now required: support for
 6873        configure option \option{--without-iconv} has been withdrawn (it
 6874        was deprecated in \R 2.5.0).
 6875 
 6876       \item Perl is no longer \sQuote{essential}.  \R can be built
 6877        without it, but scripts \command{R CMD build}, \command{check},
 6878        \command{Rprof} and \command{Sd2d} currently require it.
 6879 
 6880       \item A system \command{glob} function is now essential (a working
 6881        \code{Sys.glob()} has been assumed since \R 2.9.0 at least).
 6882 
 6883       \item C99 support for MBCS is now required, and configure option
 6884        \option{--disable-mbcs} has been withdrawn.
 6885 
 6886       \item Having a version of \command{tar} capable of automagically
 6887        detecting compressed archives is useful for
 6888        \code{utils::untar()}, and so \command{gtar} (a common name for
 6889        GNU \command{tar}) is preferred to \command{tar}: set environment
 6890        variable \env{TAR} to specify a particular \command{tar} command.
 6891     }
 6892   }
 6893   \subsection{INTERNATIONALIZATION}{
 6894     \itemize{
 6895       \item There is some makefile support for adding/updating translations
 6896        in packages: see \code{po/README} and \sQuote{Writing R Extensions}.
 6897 
 6898        There is support for the use of \code{dngettext} for C-level
 6899        translations in packages: see \sQuote{Writing R Extensions}.
 6900     }
 6901   }
 6902   \subsection{BUG FIXES}{
 6903     \itemize{
 6904       \item Assigning an extra 0-length column to a data frame by
 6905        \code{DF[, "foo"] <- value} now works in most cases (by filling
 6906        with \code{NA}s) or fails.  (It used to give a corrupt data
 6907        frame.)
 6908 
 6909       \item \code{validObject()} avoids an error during evaluation in the case
 6910        of various incorrect slot definitions.
 6911 
 6912       \item \code{n:m} now returns a result of type \code{"integer"} in
 6913        a few more boundary cases.
 6914 
 6915       \item The \code{zap.ind} argument to \code{printCoefmat()} did
 6916        not usually work as other code attempted to ensure that non-zero
 6917        values had a non-zero representation.
 6918 
 6919       \item \code{printCoefmat()} formatted groups of columns together,
 6920        not just the \code{cs.ind} group but also the \code{zap.ind}
 6921        group and a residual group.  It now formats all columns except
 6922        the \code{cs.ind} group separately (and zaps the \code{zap.ind}
 6923        group column-by-column).  The main effect will be see in the
 6924        output from \code{print.anova()}, as this grouped SS-like columns
 6925        in the \code{zap.ind} group.
 6926 
 6927       \item \code{R_ReplDLLinit()} initializes the top-level jump so
 6928        that some embedded applications on Windows no longer crash on
 6929        error.
 6930 
 6931       \item \code{identical()} failed to take the encoding of character
 6932        strings into account, so identical byte patterns are not
 6933        necessarily identical strings, and similarly Latin-1 and UTF-8
 6934        versions of the same string differ in byte pattern.
 6935 
 6936       \item \code{methods(f)} used to warn unnecessarily for an S4
 6937        generic \code{f} which had been created based on an existing S3
 6938        generic.
 6939 
 6940       \item The check for consistent ordering of superclasses was not
 6941        ignoring all conditional relations (the symptom was usually
 6942        spurious warnings for classes extending \code{"array"}).
 6943 
 6944       \item Trying to assign into a raw vector with an index vector
 6945        containing \code{NA}s could cause a segfault.  Reported by Hervé
 6946        Pagès.
 6947 
 6948       \item \command{Rscript} could segfault if (by user error) its
 6949        filename argument was missing.  Reported by Martin Morgan.
 6950 
 6951       \item \code{getAnywhere()} (and functions that use it, including argument
 6952        completion in the console) did not handle special built-in
 6953        functions.  Reported by Romain Francois.
 6954 
 6955       \item \code{order()} was missing a \code{PROTECT()} call and so
 6956        could segfault when called on character data under certain (rare)
 6957        circumstances involving marked non-native encodings.
 6958 
 6959       \item \code{prettyNum(z, drop0trailing=TRUE)} did not work
 6960        correctly when \code{z} was a complex vector.  Consequently,
 6961        \code{str(z, \dots)} also did not.  (\PR{13985})
 6962 
 6963       \item \command{make distclean} removed too many files in
 6964        \code{etc/} if builddir = srcdir.
 6965 
 6966       \item \command{R CMD} replaced \code{TEXINPUTS} rather than
 6967        appending to it (as documented and intended).
 6968 
 6969       \item \code{help.start()} no longer fails on unix when
 6970        \code{"browser"} is a function.
 6971 
 6972       \item \code{pbeta(x, ..., log.p = TRUE)} is sometimes more accurate,
 6973        e.g., for very small \code{x}.
 6974 
 6975       \item Unserializing a pre-2.8 workspace containing pure ASCII
 6976        character objects with a Latin-1 or UTF-8 encoding would corrupt
 6977        the \code{CHARSXP} cache.
 6978     }
 6979   }
 6980 }
 6981 
 6982 \section{OLDER NEWS}{
 6983   News for \R 2.9.2 patched and earlier can be found in files
 6984   such as \file{NEWS.2} in the \file{doc} directory.
 6985 }