"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}}}
    4 \name{NEWS}
    5 \title{ R News}
    6 \encoding{UTF-8}
    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 }
   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.
   20       \item \code{image()} now sorts an unsorted \code{breaks} vector,
   21       with a warning.
   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.
   27       \item Packages \pkg{compiler} and \pkg{parallel} have been added
   28       to the reference index (\file{refman.pdf}).
   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.
   35       \item \code{sQuote()} and \code{dQuote()} now handle 0-length
   36       inputs.  (Suggestion of Ben Bolker.)
   38       \item \code{summaryRprof()} returns zero-row data frames rather
   39       than throw an error if no events are recorded, for consistency.
   41       \item The included version of PCRE has been updated to 8.32.
   43       \item The \pkg{tcltk} namespace can now be re-loaded after
   44       unloading.
   46       The Tcl/Tk event loop is inhibited in a forked child from package
   47       \pkg{parallel} (as in e.g.\sspace{}\code{mclapply()}).
   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   }
   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.
   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   }
   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   }
   77   \subsection{DEPRECATED AND DEFUNCT}{
   78    \itemize{
   79       \item Use of \code{col2rgb(0)} is deprecated (see the help page
   80       for its limitations).
   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.
   86       \item \code{real()}, \code{as.real()} and \code{is.real()} are now
   87       formally deprecated and give a warning.
   89       \item This is formal notice that the non-API EISPACK entry points
   90       in \R will be removed shortly.
   91     }
   92   }
   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}).
   99       \item The cairo-based versions of \code{X11()} now work with
  100       current versions of cairographics (e.g., 1.12.10).  (\PR{15168})
  102       A workaround for earlier versions of \R is to use
  103       \code{X11.options(type = "nbcairo")}.
  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   }
  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})
  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).
  123       \item \code{bquote()} is now able to substitute default arguments in
  124       single-argument functions.  (\PR{15077})
  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.
  129       \item \samp{[[<-} for lists (generic vectors) needed to increment
  130       \code{NAMED} count when RHS is used more than once. (\PR{15098})
  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.
  136       \item The \code{call()} function did not duplicate its arguments.
  137       (\PR{15115})
  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.)
  143       \item The deprecated \code{svd(X, LINPACK = TRUE)} could alter
  144       \code{X} in \R 2.15.[12].  (Reported by Bill Dunlap.)
  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).
  150       \item \code{summaryRprof(memory = "both")} mixed up the units of
  151       Vcells and Ncells: it now works in bytes.  (\PR{15138})
  153       \item \code{tools::Rd2HTML()} would sometimes delete text. (\PR{15134})
  155       \item \code{plot()} failed for \code{"table"} objects containing
  156       just one entry.  (\PR{15118})
  158       \item \code{embedFonts()} needed to quote some filepaths.
  159       (\PR{15149})
  161       \item \code{parallel::mccollect()} handled \code{NULL} returns
  162       incorrectly (removing the element rather than setting it to
  163       \code{NULL}).
  165       \item The full reference index (\file{fullrefman.pdf}) was missing
  166       packages \pkg{compiler} and \pkg{parallel}.
  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})
  173       \item \code{qt(1e-12, 1.2)} no longer gives \code{NaN}.
  175       \item \code{dt(1e160, 1.2, log=TRUE)} no longer gives \code{-Inf}.
  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.
  181       \item The version for Windows 8 and Windows Server 2012 is now
  182       displayed by \code{win.version()}.  (Reported by Gabor
  183       Grothendieck.)
  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.)
  189       \item \code{aperm(matrix(1:6, 2, dimnames=list(A={}, B={})), "A")}
  190       no longer segfaults.
  192       \item Expressions involving user defined operators were not
  193       always deparsed faithfully. (\PR{15179})
  195       \item The \code{enc2utf8()} function converted \code{NA_character_}
  196       to \code{"NA"} in non-UTF-8 locales. (\PR{15201})
  198       \item The \code{exclude} argument to \code{xtabs()} was ignored
  199       for \code{"factor"} arguments.
  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.)
  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.
  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 }
  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.
  224       The \code{WM_CLASS} should be set in circumstances where the
  225       Window Manager failed to make use of X11 resource settings.
  227       (Contributed by Philip Johnson.)
  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}.)
  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()}. %$
  239       \item More Polish translations are available: for the
  240       \command{RGui} menus and for several recommended packages.
  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.
  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()}.
  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.
  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.
  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.)
  261       \item Misuse of \code{rep()} on undocumented types of objects
  262       (e.g., calls) is now reported as an error.
  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}.)
  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).
  272       \item PCRE has been updated to version 8.31, a bug-fix release.
  274       \item The included version of \code{liblzma} has been updated to
  275       version 5.0.4, a minor bug-fix release.
  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.
  281       \item The HTML manuals now use directional single quotes.
  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.
  287       \item The \code{X11()} device has some protection against
  288       being used with forked processes \emph{via} package \pkg{parallel}.
  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.
  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.
  302       Similarly, \code{model.frame(fm, data=<data>)} copies across
  303       the variables used for safe prediction from the fit.
  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.)
  309       \item \code{chol(pivot = TRUE, LINPACK = FALSE)} is now available
  310       using LAPACK 3.2 subroutine \code{DPSTRF}.
  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.
  319       \item \code{step()} no longer tries to improve a model with
  320       AIC of \code{-Inf} (a perfect fit).
  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.)
  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   }
  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()}).
  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}).
  342       \item \code{findInterval()}, \code{tabulate()}, \code{cut()},
  343       \code{hist()} and \code{image.default()} all use \code{.Call()}
  344       and are more efficient.
  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.
  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.
  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   }
  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).
  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.
  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.
  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}.)
  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.
  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   }
  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).
  410       \item The misuse of \code{.C("name", ..., PACKAGE = foo)} where
  411       \code{foo} is an arbitrary \R object is now an error.
  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   }
  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).
  423       \item Use of \code{tapply()} with a 0-length \code{INDEX} list is
  424       deprecated with a warning.
  426       \item \samp{Translation} packages are deprecated.
  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.
  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.
  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.
  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.
  445       They were provided for compatibility with \R 1.7.0 (Mar 2003)!
  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"}.
  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   }
  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.
  465       This check can be suppressed: see the help page.
  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   }
  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).
  481       \item LAPACK 3.4.1 does use some Fortran 90 features, so
  482       \command{g77} no longer suffices.
  484       \item If an external LAPACK is used, it must be version 3.2 or later.
  485     }
  486  }
  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})
  493       \item The \code{tools::latexToUtf8()} function missed conversions that
  494       were contained within braces.
  496       \item Long timezone specifications (such as a file name preceded
  497       by \code{:}) could crash \code{as.POSIXlt}.  (\PR{14945})
  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})
  503       \item \code{is.na()} misbehaved on a 0-column data frame.
  504       (\PR{14959})
  506       \item \code{anova.lmlist()} failed if \code{test} was
  507       supplied.  (\PR{14960})
  509       It was unable to compute Cp tests for object of class \code{"lm"}
  510       (it assumed class \code{"glm"}).
  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.)
  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.
  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.
  524       \item \code{aov()} and \code{manova()} gave spurious warning about
  525       singular error model in the multiresponse case.
  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})
  531       \item \code{sprintf()} did not accept numbered arguments ending
  532       in zero.  (\PR{14975})
  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.)
  538       \item Base package vignettes (e.g., \code{vignette("Sweave")}) were
  539       not fully installed in builds of \R from the tarball.
  541       \item \code{lchoose()} and \code{choose()} could overflow the C
  542       stack and crash \R.
  544       \item When given a 0-byte file and asked to keep source
  545       references, \code{parse()} read input from \code{stdin()}
  546       instead.
  548       \item \code{pdf(compress = TRUE)} did not delete temporary files
  549       it created until the end of the \R session.  (\PR{14991})
  551       \item \code{logLik()} did not detect the error of applying it
  552       to a multiple-response linear model.  (\PR{15000})
  554       \item \code{file.copy(recursive = TRUE)} did not always report
  555       \code{FALSE} for a failure two or more directories deep.
  557       \item \code{qgeom()} could return \code{-1} for extremely small
  558       \code{q}. (\PR{14967})
  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})
  564       \item In Windows, the GUI preferences for foreground color were
  565       not always respected.  (Reported by Benjamin Wells.)
  567       \item On OS X, the Quartz versions of the bitmap devices did not
  568       respect \code{antialias = "none"}.  (\PR{15006})
  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).
  574       \item \code{parallel::stopCluster()} now works with MPI
  575       clusters without \CRANpkg{snow} being on the search path.
  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})
  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}).
  585       \item \code{backsolve(T, b)} gave incorrect results when
  586       \code{nrows(b) > ncols(T)} and \code{b} had more than one column.
  588       It could segfault or give nonsense if \code{k} was specified as
  589       more than \code{ncols(T)}.
  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.
  595       \item Protection added to \code{do_system}. (\PR{15025})
  597       \item Printing of vectors with names > 1000 characters now works
  598       correctly rather than truncating. (\PR{15028})
  600       \item \code{qr()} for a complex matrix did not pivot the column names.
  602       \item \code{--with-blas='-framework vecLib'} now also works on OS X 10.8.
  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.)
  608       \item \code{install.packages(type = "both")} could call
  609       \code{chooseCRANmirror()} twice.
  611       \item \code{lm.wfit()} could segfault in \R 2.15.1 if all the
  612       weights were zero. (\PR{15044})
  614       \item A malformed package name could cause \command{R CMD INSTALL}
  615       to write outside the target library.
  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.
  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.
  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).
  629       \item The detection of the C stack direction is better protected
  630       against compiler optimization. (\PR{15011})
  632       \item Long custom line types would sometimes segfault on the
  633       cairographics-based devices. (\PR{15055})
  635       \item \code{tools::checkPoFile()} unprotected too early in its C
  636       code and so segfaulted from time to time.
  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}.)
  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.
  648       \item \code{arima.sim()} could give too long an output in some
  649       corner cases (in part, \PR{15068}).
  651       \item \code{anova.glm()} with \code{test = "Rao"} didn't work when
  652       models included an offset. (Reported by Søren Feodor Nielsen.)
  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.)
  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 }
  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.
  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).
  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}).
  681       \item \code{norm()} now allows \code{type = "2"} (the
  682       \sQuote{spectral} or 2-norm) as well, mainly for didactical
  683       completeness.
  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{+}.
  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.
  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.)
  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.
  704       \item \code{print(packageDescription(*))} trims the \code{Collate}
  705       field by default.
  707       \item The included copy of \code{zlib} has been updated to version
  708       1.2.7.
  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}.)
  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}.
  719       \item Added Polish translations by Łukasz Daniel.
  720     }
  721   }
  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).
  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()}.
  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).
  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}.
  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)}.
  748       \item There is less copying when using primitive replacement
  749       functions such as \code{names()}, \code{attr()} and
  750       \code{attributes()}.
  751     }
  752   }
  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   }
  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   }
  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).
  783 	This check is now also available on Windows.
  784     }
  785   }
  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.
  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   }
  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.
  806       \item There are two new environment variables which
  807       control the defaults for command-line options.
  809       If \env{R_WIN_INTERNET2} is set to a non-empty value, it is as if
  810       \option{--internet2} was used.
  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   }
  818   \subsection{BUG FIXES}{
  819     \itemize{
  820       \item \code{lsfit()} lost the names from the residuals.
  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.
  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.
  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}.)
  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.
  838       It also reported and marked as copies \emph{some} transformations
  839       such as \code{rexp(n, x)}: it no longer does so.
  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})
  845       \item Names containing characters which need to be escaped were
  846       not deparsed properly.  (\PR{14846})
  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})
  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}).
  857       \item \code{get_all_vars()} failed when the data came entirely
  858       from vectors in the global environment. (\PR{14847})
  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.
  865       \item \code{formatC()} uses the C entry point \code{str_signif}
  866       which could write beyond the length allocated for the output string.
  868       \item Missing default argument added to implicit S4 generic for
  869       \code{backsolve()}. (\PR{14883})
  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.
  875       \item For \code{tiff(type = "windows")}, the numbering of per-page
  876       files except the last was off by one.
  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}.
  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})
  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})
  890       \item In package \pkg{parallel}, \code{clusterApply()} and similar
  891       failed to handle a (pretty pointless) length-1 argument. (\PR{14898})
  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.
  899       \item Source locations reported in \code{traceback()} were
  900       incorrect when byte-compiled code was on the stack.
  902       \item \code{plogis(x, lower = FALSE, log.p = TRUE)} no longer
  903       underflows early for large x (e.g., 800).
  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}.
  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.
  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.
  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.)
  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.)
  927       \item The evaluator now keeps track of source references outside
  928       of functions, e.g.\sspace{}when \code{source()} executes a script.
  930       \item The replacement method for \code{window()} now works
  931       correctly for multiple time series of class \code{"mts"}.
  932       (\PR{14925})
  934       \item \code{is.unsorted()} gave incorrect results on non-atomic
  935       objects such as data frames.  (Reported by Matthew Dowle.)
  937       \item The value returned by \code{tools::psnice()} for invalid
  938       \code{pid} values was not always \code{NA} as documented.
  940       \item Closing an \code{X11()} window while \code{locator()} was
  941       active could abort the \R process.
  943       \item \code{getMethod(f, sig)} produced an incorrect error message
  944       in some cases when \code{f} was not a string.
  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})
  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})
  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})
  959       \item \code{by()} failed for a zero-row data frame.  (Reported by
  960       Weiqiang Qian.)
  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}.
  967       \item \code{xgettext()} and related functions sometimes returned
  968       items that were not strings for translation. (\PR{14935})
  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})
  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 }
  980 \section{\Rlogo CHANGES IN R VERSION 2.15.0}{
  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).
  987       On Windows it no longer follows reparse points (including
  988       junctions and symbolic links).
  989     }
  990   }
  992   \subsection{NEW FEATURES}{
  993     \itemize{
  994       \item Environment variable \env{RD2DVI_INPUTENC} has been renamed
  995       to \env{RD2PDF_INPUTENC}.
  997       \item \code{.Deprecated()} becomes a bit more flexible, getting an
  998       \code{old} argument.
 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.
 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.
 1007       \item \code{system()} and \code{system2()} when capturing output
 1008       report a non-zero status in the new \code{"status"} attribute.
 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.
 1015       \item \code{pdf()} accepts forms like \code{file = "|lpr"} in the
 1016       same way as \code{postscript()}.
 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).
 1022       \item \code{format()} (and hence \code{print()}) on
 1023       \code{"bibentry"} objects now uses \code{options("width")} to
 1024       set the output width.
 1026       \item \code{legend()} gains a \code{text.font} argument. (Suggested
 1027       by Tim Paine, \PR{14719}.)
 1029       \item \code{nchar()} and \code{nzchar()} no longer accept factors
 1030       (as integer vectors).  (Wish of \PR{6899}.)
 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}).
 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.
 1042       \item The number of items retained with \code{options(warn = 0)}
 1043       can be set by \code{options(nwarnings=)}.
 1045       \item There is a new function \code{assignInMyNamespace()} which
 1046       uses the namespace of the function it is called from.
 1048       \item \code{attach()} allows the default name for an attached file
 1049       to be overridden.
 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}.
 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.
 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.
 1065       \item The \code{"dendrogram"} method of \code{str()} now takes
 1066       its default for \code{last.str} from option \code{str.dendrogram.last}.
 1068       \item New simple \code{fitted()} method for \code{"kmeans"} objects.
 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}.)
 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}.
 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.
 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
 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.
 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.
 1098       \item PCRE has been updated to version 8.30.
 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}.)
 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.
 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.
 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.
 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.
 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}.)
 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()}.)
 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.
 1137       \item New function \code{rWishart()} generates Wishart-distributed
 1138       random matrices.
 1140       \item Packages may now specify actions to be taken when the
 1141       package is loaded (\code{setLoadActions()}).
 1143       \item \code{options(max.print = Inf)} and similar now give an
 1144       error (instead of warnings later).
 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}.)
 1150       \item \code{poly(raw = TRUE)} no longer requires more unique
 1151       points than the degree.  (Requested by John Fox.)
 1152     }
 1153   }
 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()}.
 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()}.
 1165       \item \code{clusterMap()} has a new argument \code{.scheduling} to
 1166       allow the use of load-balancing.
 1168       \item There are new load-balancing functions \code{parLapplyLB()}
 1169       and \code{parSapplyLB()}.
 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   }
 1178   \subsection{PACKAGE INSTALLATION}{
 1179     \itemize{
 1180       \item Non-ASCII vignettes without a declared encoding are no
 1181       longer accepted.
 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}.
 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.]
 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.)
 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.
 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.
 1212       \item \command{R CMD INSTALL --merge-multiarch} is now supported
 1213       on OS X and other Unix-alikes using multiple sub-architectures.
 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   }
 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.
 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).
 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.
 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.
 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.
 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.
 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.
 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).
 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).
 1269        \item \command{R CMD build} has more options for
 1270        \option{--compact-vignettes}: see \command{R CMD build --help}.
 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.
 1276        If this option is not specified, any existing (and probably
 1277        stale) \file{MD5} file is removed.
 1278      }
 1279    }
 1281   \subsection{DEPRECATED AND DEFUNCT}{
 1282    \itemize{
 1283       \item \command{R CMD Rd2dvi} is now defunct: use \command{R CMD Rd2pdf}.
 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.)
 1289       \item Use of \code{library.dynam()} without specifying all the
 1290       first three arguments is now disallowed.
 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.
 1298       \item The internal functions \code{.readRDS()} and
 1299       \code{.saveRDS()} are now defunct.
 1301       \item The off-line \code{help()} types \samp{"postscript"} and
 1302       \samp{"ps"} are defunct.
 1304       \item \code{Sys.putenv()}, replaced and deprecated in \R 2.5.0, is
 1305       finally removed.
 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()}.
 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   }
 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   }
 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.
 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.
 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   }
 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.
 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})
 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.
 1365       It is now required that there is an S4 generic (imported or
 1366       created in the package) when methods are to be exported.
 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.
 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).
 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}).
 1379       \item Fixes for rendering raster images on X11 and Windows devices
 1380       when the x-axis or y-axis scale is reversed.
 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.
 1386       \item \code{selectMethod(f, sig)} would not return inherited group
 1387       methods when caching was off (as it is by default).
 1389       \item \code{dev.copy2pdf(out.type = "cairo")} gave an error.
 1390       (\PR{14827})
 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}.
 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.)
 1400       \item \code{isGeneric()} produced an error for primitives that
 1401       can not have methods.
 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.
 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.
 1410       \item \code{heatmap(x, symm=TRUE, RowSideColors=*)} no longer
 1411       draws the colors in reversed order.
 1413       \item \code{predict(<ar>)} was incorrect in the multivariate case,
 1414       for p >= 2.
 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.
 1420       \item Closed the \samp{<li>} tag in pages generated by \code{
 1421       Rd2HTML()}. (\PR{14841})
 1423       \item Axis tick marks could go out of range when a log scale was
 1424       used.  (\PR{14833})
 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 }
 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.
 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.
 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.
 1456       \item The included version of zlib has been updated to 1.2.6.
 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   }
 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}.
 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   }
 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.
 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   }
 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.
 1496       \item The \code{getS3method()} implementation had an old
 1497       computation to find an S4 default method.
 1499       \item \code{readLines()} could overflow a buffer if the last line
 1500       of the file was not terminated.  (\PR{14766})
 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.
 1506       \item The HTML Help Search page had malformed links.
 1507       (\PR{14769})
 1509       \item A couple of instances of lack of protection of \code{SEXP}s
 1510       have been squashed. (\PR{14772}, \PR{14773})
 1512       \item \code{image(x, useRaster=TRUE)} misbehaved on single-column
 1513       \code{x}. (\PR{14774})
 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})
 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.
 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.)
 1526       \item \code{str(*, ....., strict.width="cut")} now also obeys
 1527       \code{list.len = n}.  (Reported by Sören Vogel.)
 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.)
 1533       \item \code{pdf(file = NULL)} would produce a spurious file named
 1534       \file{NA}.  (\PR{14808})
 1536       \item \code{list2env()} did not check the type of its \code{envir}
 1537       argument. (\PR{14807})
 1539       \item \code{svg()} could segfault if called with a non-existent
 1540       file path.  (\PR{14790})
 1542       \item \command{make install} can install to a path containing
 1543       \samp{+} characters. (\PR{14798})
 1545       \item The \code{edit()} function did not respect the
 1546       \code{options("keep.source")} setting. (Reported by Cleridy
 1547       Lennert.)
 1549       \item \code{predict.lm(*, type="terms", terms=*, se.fit=TRUE)} did
 1550       not work.  (\PR{14817})
 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).
 1558       \item The C function \code{R_ReplDLLdo1()} did not call top-level
 1559       handlers.
 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.
 1569       \item \code{mclapply()} would fail in code assembling the translated
 1570       error message if some (but not all) cores encountered an error.
 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.
 1576       \item \code{installed.packages()} has some more protection against
 1577       package installs going on in parallel.
 1579       \item \code{.Primitive()} could be mis-used to call
 1580       \code{.Internal()} entry points.
 1581     }
 1582   }
 1583 }
 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.
 1591       It can also do so on most versions of Windows; however the default
 1592       remains \code{detectCores(logical = TRUE)} on that platform.
 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.
 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).
 1602       \item \code{tools::dependsOnPkg()} now accepts the shorthand
 1603       \code{dependencies = "all"}.
 1605       \item \code{parallel::clusterExport()} now allows specification of
 1606       an environment from which to export.
 1608       \item The \code{quartz()} device now does tilde expansion on its
 1609       \code{file} argument.
 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.
 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()}).
 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   }
 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.
 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.
 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   }
 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   }
 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    }
 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).
 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).
 1674       \item \code{tools::deparseLatex(dropBraces=TRUE)} could drop
 1675       text as well as braces.
 1677       \item \code{colormodel = "grey"} (new in \R 2.14.0)
 1678       did not always work in \code{postscript()} and \code{pdf()}.
 1680       \item \code{file.append()} could return \code{TRUE} for failures.
 1681       (\PR{14727})
 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()}).
 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.)
 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.)
 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.)
 1700       \item \code{anyDuplicated(<array>, MARGIN=0)} no longer fails.
 1701       (Reported by Hervé Pagès.)
 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}.
 1708       \item There was a sign error in part of the calculations for the
 1709       variance returned by \code{KalmanSmooth()}.  (\PR{14738})
 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})
 1714       \item \code{RweaveLatex()} now emulates auto-printing rather than
 1715       printing, by calling \code{methods::show()} when auto-printing
 1716       would.
 1718       \item \code{duplicated()} ignored \code{fromLast} for a
 1719       one-column data frame.  (\PR{14742})
 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})
 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})
 1729       \item LaTeX conversion of Rd files did not correctly handle
 1730       preformatted backslashes.  (\PR{14751})
 1732       \item HTML conversion of Rd files did not handle markup within
 1733       tabular cells properly.  (\PR{14708})
 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})
 1739       \item The code to check Rd files in packages would abort if
 1740       duplicate description sections were present.
 1741     }
 1742   }
 1743 }
 1745 \section{\Rlogo CHANGES IN R VERSION 2.14.0}{
 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).
 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}.)
 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.
 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.
 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).
 1776       \item There is a new package \pkg{parallel}.
 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).
 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}).
 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).
 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}.
 1802       \item \code{axTicks(*, log=TRUE)} has changed in some cases to
 1803       satisfy the documented behavior and be consistent.
 1804     }
 1805   }
 1807   \subsection{NEW FEATURES}{
 1808     \itemize{
 1809       \item \code{txtProgressBar()} can write to an open connection
 1810       instead of the console.
 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).
 1816       \item \code{regexpr()} and \code{gregexpr()} with \code{perl =
 1817 	TRUE} allows Python-style named captures.  (Wish and
 1818       contribution of \PR{14518}.)
 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}.)
 1827       \item \code{sunflowerplot()} now has a formula interface.
 1828       (Wish of \PR{14541}.)
 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).
 1834       It will also accept as input the type of list generated with
 1835       \code{toRaw = TRUE}.
 1837       \item Garbage-collecting an unused input text connection no longer
 1838       gives a warning (since it \sQuote{connects} to nothing outside
 1839       \R).
 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.
 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.
 1849       \item \code{mosaicplot()} gains a \code{border} argument.
 1850       (Wish of \PR{14550}.)
 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}.)
 1858       \item \code{gl()} runs faster by avoiding calling \code{factor()}.
 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}.
 1863       \item \code{unlink()} gains a \code{force} argument to work like
 1864       \command{rm -f} and if possible override restrictive permissions.
 1866       \item \code{pbirthday()} and \code{qbirthday()} now use exact
 1867       calculations for \code{coincident = 2}.
 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).
 1874       \code{unzip()} has a new option to restore file times from those
 1875       recorded (in an unknown timezone) in the zip file.
 1877       \item \code{update.packages()} now accepts a character vector of
 1878       package names for the \code{oldPkgs} argument.  (Suggestion of
 1879       Tal Galili.)
 1881       \item The special reference class fields \code{.self} and
 1882       \code{.refClassDef} are now read-only to prevent corrupting
 1883       the object.
 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.)
 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"}.
 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.
 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.
 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}.
 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.
 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).
 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()}.
 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).
 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.
 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}.
 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}.
 1940       \item \code{vcov()} gains methods for classes \code{"summary.lm"} and
 1941       \code{"summary.glm"}.
 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}.
 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.
 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).
 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).
 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.
 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.)
 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.)
 1977       \item \code{Sys.info()} gains a \code{euser} component to report
 1978       the \sQuote{effective} user on OSes which have that concept.
 1980       \item The result returned by \code{try()} now contains the
 1981       original error condition object as the \code{"condition"}
 1982       attribute.
 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.
 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()}.
 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.
 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)}
 2005       \item There is a new function \code{texi2pdf()} in package
 2006       \pkg{tools}, currently a convenience wrapper for
 2007       \code{texi2dvi(pdf = TRUE)}.
 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}.
 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.
 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.
 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.
 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).
 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.
 2045       \item Documentation and messages have been standardized to
 2046       use \dQuote{namespace} rather than \dQuote{name space}.
 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.)
 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.
 2056       \item \code{\\SweaveInput} is now supported when generating
 2057       concordances in \code{Sweave()}.
 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()}.
 2063       \item The body of a closure can be one of further types of \R
 2064       objects, including environments and external pointers.
 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.
 2070       \item New function \code{requireNamespace()} analogous to
 2071       \code{require()}, returning a logical value after attempting to
 2072       load a namespace.
 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}.
 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.
 2083       This also applies to HTML searches, which now give results in all
 2084       of help pages, vignettes and demos.
 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.
 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).
 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).
 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.)
 2105       \item \code{list.dirs()} gains a \code{recursive} argument.
 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.
 2112       \item New utility \code{getElement()} for accessing either a list
 2113       component or a slot in an S4 object.
 2115       \item \code{stars()} gains a \code{col.lines} argument, thanks to
 2116       Dustin Sallings. (Wish of \PR{14657}.)
 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()}.
 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.)
 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.
 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.
 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.)
 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).
 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.
 2148       \item New function \code{adist()} in package \pkg{utils} for
 2149       computing \sQuote{edit} (generalized Levenshtein) distances between
 2150       strings.
 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}).
 2155       \item The \code{identical()} function gains an
 2156       \code{ignore.bytecode} argument to control comparison of
 2157       compiled functions.
 2159       \item \code{pmin} and \code{pmax} now warn if an argument is
 2160       partially recycled (wish of \PR{14638}).
 2162       \item The default for \code{image(useRaster=)} is now taken from
 2163       option \code{"preferRaster"}: for the small print see \code{?image}.
 2165       \item \code{str()} now displays reference class objects and their
 2166       fields, rather than treating them as classical S4 classes.
 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.
 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.
 2177       \code{cacheOK = FALSE} is now supported for \code{method = "curl"}.
 2179       \item \code{interaction.plot(*, type = .)} now also allows type
 2180       \code{"o"} or \code{"c"}.
 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.
 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   }
 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.
 2202       \item Devices \code{svg()}, \code{cairo_pdf()} and
 2203       \code{cairo_ps()} gain a \code{family} argument.
 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.
 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).
 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"}.
 2218       \item There are several new built-in font mappings for
 2219       \code{X11(type = "Xlib")}: see the help on \code{X11Fonts()}.
 2221       \item There is a new type \code{X11(type = "dbcairo")} which
 2222       updates the screen less frequently: see its help page.
 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.)
 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.
 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).
 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}).
 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.)
 2250       The \code{colormodel} for \code{postscript()} which does use both
 2251       gray and sRGB colorspaces is now called \code{"srgb+gray"}.
 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).
 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.
 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).
 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.
 2271       \item The \code{postscript()} and \code{pdf()} devices now output
 2272       greyscale raster images (and not RGB) when \code{colormodel = "gray"}.
 2274       \item \code{postscript(colormodel = "gray")} now accepts non-grey
 2275       colours and uses their luminance (as \code{pdf()} long has).
 2277       \item \code{colormodel = "grey"} is allowed as an alternative name
 2278       for \code{postscript()} and \code{pdf()}.
 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.
 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.
 2290       \item For \code{pdf()}, \code{maxRasters} is increased as needed
 2291       so the argument is no longer used.
 2292     }
 2293   }
 2295   \subsection{SWEAVE & VIGNETTES}{
 2296     \itemize{
 2297       \item Options \code{keep.source = TRUE, figs.only = FALSE}
 2298       are now the default.
 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.
 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).
 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}.
 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}.
 2321       \item \command{R CMD Sweave} and \command{R CMD Stangle} support
 2322       options \option{--encoding} and \option{--options}.
 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}
 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).
 2333       \item \command{R CMD Sweave} now has a \option{--pdf} option to
 2334       produce a PDF version of the processed Sweave document.
 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   }
 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   }
 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.)
 2358       There are corresponding options \option{--with-keep.source} and
 2359       \option{--without-keep.source} for \command{R CMD INSTALL}.
 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.
 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).
 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.)
 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.
 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})
 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   }
 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.
 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.
 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.
 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.
 2418       \item \command{R CMD check} now uses a \code{pdf()} device when
 2419       checking examples (rather than \code{postscript()}).
 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.
 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)}.
 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).
 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}.
 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.)
 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).
 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    }
 2460   \subsection{DEPRECATED AND DEFUNCT}{
 2461    \itemize{
 2462       \item \code{require()} no longer has a \code{save} argument.
 2464       \item The \code{gamma} argument to \code{hsv()},
 2465       \code{rainbow()}, and \code{rgb2hsv()} has been removed.
 2467       \item The \option{--no-docs} option for
 2468       \command{R CMD build --binary} is defunct: use
 2469       \option{--install-args} instead.
 2471       \item The option \option{--unsafe} to \command{R CMD INSTALL} is
 2472       defunct: use the identical option \option{--no-lock} instead.
 2474       \item The entry point \code{pythag} formerly in \file{Rmath.h} is
 2475       defunct: use instead the C99 function \code{hypot}.
 2477       \item \command{R CMD build --binary} is formally defunct:
 2478       \command{R CMD INSTALL --build} has long been the preferred
 2479       alternative.
 2481       \item \command{zip.file.extract()} is now defunct: use
 2482       \code{unzip()} or \code{unz()} instead.
 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.
 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.
 2494       \item Forms like \code{binomial(link = "link")} for GLM families
 2495       deprecated since \R 2.4.0 are now defunct.
 2497       \item The \code{declarativeOnly} argument to
 2498       \code{loadNamespace()} (not relevant since \R 2.13.0) has been
 2499       removed.
 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.)
 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.
 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}.
 2515       In the same spirit, \code{median(x)} now gives an error for a data
 2516       frame \code{x} (it often gave nonsensical results).
 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.
 2523       \item Using a false value for the \file{DESCRIPTION} field
 2524       \samp{LazyLoad} is deprecated.
 2525     }
 2526   }
 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).
 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.
 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.)
 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.
 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}.)
 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.)
 2556       \item The system call \code{times} is required.
 2558       \item The C99 functions \code{acosh}, \code{asinh}, \code{atanh},
 2559       \code{snprintf} and \code{vsnprintf} are now required.
 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.)
 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.
 2573       \item Framework installation now supports \code{DESTDIR}
 2574       (Mac OS X only).
 2576       \item Java detection (\code{R CMD javareconf}) works around bogus
 2577       \code{java.library.path} property in recent Oracle Java binaries.
 2578     }
 2579   }
 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.
 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.
 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.
 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.
 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.
 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})
 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.
 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.
 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.)
 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.
 2628       \item The \code{X11()} device's cairo back-end produced incorrect
 2629       capture snapshot images on big-endian machines.
 2631       \item \code{loglin()} gave a spurious error when argument
 2632       \code{margin} consisted of a single element of length one.
 2633       (\PR{14690})
 2635       \item \code{loess()} is better protected against misuse,
 2636       e.g.\sspace{}zero-length \code{span}.  (\PR{14691})
 2638       \item \code{HoltWinters()} checks that the optimization
 2639       succeeded. (\PR{14694})
 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.
 2646       \item \code{round(x, -Inf)} now does something sensible (return
 2647       zero rather than \code{NA}).
 2649       \item \code{signif(x, -Inf)} now behaves as documented
 2650       (\code{signif(x, 1)}) rather than giving zero.
 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})
 2656       \item Creating a connection might fail under \code{gctorture(TRUE)}.
 2658       \item \code{stack()} and \code{unstack()} converted character
 2659       columns to factors.
 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.
 2664       \item On some systems \code{help(".C", help_type = "pdf")} and
 2665       similar generated file names that TeX was unable to handle.
 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.
 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.
 2675       \item A late change in \R 2.13.2 broke \samp{\Sexpr} expressions
 2676       in Rd files.
 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.
 2685       \item \code{qgamma()} for small \code{shape} underflows to
 2686       \code{0} rather than sometimes giving \code{NaN}.
 2687       (\PR{8528}, \PR{14710})
 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.
 2693       \item Setting a Hershey font family followed by string height
 2694       query would crash R.
 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 }
 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.
 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.)
 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})
 2722       \item \code{install.packages()} with \code{Ncpus > 1} guards
 2723       against simultaneous installation of indirect dependencies as well
 2724       as direct ones.
 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}.
 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"}.
 2734       \item The default for \code{pdf(maxRasters=)} has been increased
 2735 	from 64 to 1000.
 2737       \item \code{readBin()} now warns if \code{signed = FALSE} is used
 2738       inappropriately (rather than being silently ignored).
 2740       It enforces the documented limit of \eqn{2^{31}-1}{2^31-1} bytes
 2741       in a single call.
 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   }
 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.)
 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   }
 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__.} .
 2768       These are also excluded from imports, along with \code{.First.lib}.
 2769     }
 2770   }
 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).
 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.
 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}).
 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.
 2790       \item Plotting \code{pch = '.'} now guarantees at least a one-pixel
 2791       dot if \code{cex > 0}.
 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.)
 2798       \item The HTML generated by \code{Rd2HTML()} comes closer to
 2799       being standards compliant.
 2801       \item \code{filter(x, recursive = TRUE)} gave incorrect results on a
 2802       series containing \code{NA}s.  (Spotted by Bill Dunlap.)
 2804       \item Profiling \code{stats::mle()} fits with a \code{fixed}
 2805       parameter was not supported.  (\PR{14646})
 2807       \item \code{retracemem()} was still using positional matching.
 2808       (\PR{14650})
 2810       \item The \code{quantile} method for \code{"ecdf"} objects now
 2811       works and is documented.
 2813       \item \code{xtabs(~ .., ..., sparse=TRUE)} now also works together
 2814       with an \code{exclude = ..} specification.
 2816       \item \code{decompose()} computed an incorrect seasonal component for
 2817       time series with odd frequencies.
 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.
 2824       \item \code{.hasSlot()} wrongly gave \code{FALSE} in some cases.
 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.
 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.
 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})
 2838       \item In rare cases \code{ks.test()} could return a p-value
 2839       very slightly less than 0 by rounding error.  (\PR{14671})
 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})
 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 }
 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"}.
 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})
 2862       \item \code{RShowDoc()} can now display the licences shipped with
 2863       \R, e.g.\sspace{}\code{RShowDoc("GPL-3")}.
 2865       \item New wrapper function \code{showNonASCIIfile()} in package
 2866       \pkg{tools}.
 2868       \item \code{nobs()} now has a \code{"mle"} method in package
 2869       \pkg{stats4}.
 2871       \item \code{trace()} now deals correctly with S4 reference classes
 2872       and corresponding reference methods (e.g., \code{$trace()})%$
 2873       have been added.
 2875       \item \command{xz} has been updated to 5.0.3 (very minor bugfix
 2876       release).
 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.
 2882       \item \code{cairo_ps(onefile = TRUE)} generates encapsulated EPS
 2883       on platforms with cairo >= 1.6.
 2885       \item Binary reads (e.g., by \code{readChar()} and \code{readBin()})
 2886       are now supported on clipboard connections.  (Wish of \PR{14593}.)
 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.]
 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   }
 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.
 2907       These vignettes are now made with \code{keep.source = TRUE} and
 2908       hence will be laid out differently.
 2910       \item \command{make install-strip} failed under some configuration
 2911       options.
 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   }
 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.
 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.
 2932       \item Sweave custom graphics devices can have a custom function
 2933       \code{foo.off()} to shut them down.
 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).
 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).
 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   }
 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   }
 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.
 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.
 2974       \item The off-line \code{help()} types \samp{"postscript"} and
 2975       \samp{"ps"} are deprecated.
 2976     }
 2977   }
 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}.
 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   }
 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})
 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}.)
 3005       \item \code{dataframe[[row,col]]} now dispatches on \code{[[}
 3006       methods for the selected column.  (Spotted by Bill Dunlap).
 3008       \item \code{sort.int()} would strip the class of an object, but
 3009       leave its object bit set.  (Reported by Bill Dunlap.)
 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.
 3015       \code{pbirthday()} now solves the approximate formula analytically
 3016       rather than using \code{uniroot()} on a discontinuous function.
 3018       The description of the problem was inaccurate: the probability is
 3019       a tail probability (\sQuote{2 \emph{or more} people share a birthday})
 3021       \item Complex arithmetic sometimes warned incorrectly about
 3022       producing NAs when there were NaNs in the input.
 3024       \item \code{seek(origin = "current")} incorrectly reported it was
 3025       not implemented for a \code{gzfile()} connection.
 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})
 3031       \item The \code{fonts} argument to \code{X11(type = "Xlib")} was
 3032       being ignored.
 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.)
 3038       \item Parsed text containing embedded newlines was printed
 3039       incorrectly by \code{as.character.srcref()}.  (Reported by Hadley
 3040       Wickham.)
 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.)
 3046       \item \code{fields = list()} failed for \code{setRefClass()}.
 3047       (Reported by Michael Lawrence.)
 3049       \item Reference classes could not redefine an inherited field
 3050       which had class \code{"ANY"}. (Reported by Janko Thyson.)
 3052       \item Methods that override previously loaded versions will now
 3053       be installed and called.  (Reported by Iago Mosqueira.)
 3055       \item \code{addmargins()} called \code{numeric(apos)} rather than
 3056       \code{numeric(length(apos))}.
 3058       \item The HTML help search sometimes produced bad links.
 3059       (\PR{14608})
 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.)
 3065       \item LaTeX rendering of markup in titles of help pages has been
 3066       improved; in particular, \code{\\eqn{}} may be used there.
 3068       \item \code{isClass()} used its own namespace as the default of
 3069       the \code{where} argument inadvertently.
 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.)
 3075       \item \code{postscript()} with an sRGB colormodel now uses sRGB
 3076       for raster images (in \R 2.13.[01] it used uncalibrated RGB).
 3078       There is no longer an undocumented 21845-pixel limit on raster images.
 3079     }
 3080   }
 3081 }
 3083 \section{\Rlogo CHANGES IN R VERSION 2.13.0}{
 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.
 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.
 3102       It now does tilde expansion.
 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.
 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}).
 3113       \item \code{reformulate()} gains a \code{intercept} argument.
 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}.)
 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.
 3124       \item R colours are now defined to refer to the sRGB color space.
 3126       The PDF, PostScript, and Quartz graphics devices record this fact.
 3127       X11 (and cairo) and Windows just assume that your screen conforms.
 3129       \item \code{system.file()} gains a \code{mustWork} argument
 3130       (suggestion of Bill Dunlap).
 3132       \item \code{new.env(hash = TRUE)} is now the default.
 3134       \item \code{list2env(envir = NULL)} defaults to hashing (with a
 3135       suitably sized environment) for lists of more than 100 elements.
 3137       \item \code{text()} gains a formula method.
 3139       \item \code{IQR()} now has a \code{type} argument which is passed
 3140       to \code{quantile()}.
 3142       \item \code{as.vector()}, \code{as.double()} etc duplicate less
 3143       when they leave the mode unchanged but remove attributes.
 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()}.
 3149       \code{matrix()} duplicates less if \code{data} is an atomic vector
 3150       with attributes such as names (but no class).
 3152       \code{dim(x) <- NULL} duplicates less if \code{x} has neither
 3153       dimensions nor names (since this operation removes names and
 3154       dimnames).
 3156       \item \code{setRepositories()} gains an \code{addURLs} argument.
 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).
 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).
 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<-`}.
 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.
 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).
 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.
 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.
 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.
 3192       \code{replicate()} has this option set by default, and
 3193       \code{vapply()} now behaves that way internally.
 3195       \item \code{aperm()} becomes S3 generic and gets a \code{table}
 3196       method which preserves the class.
 3198       \item \code{merge()} and \code{as.hclust()} methods for objects of
 3199       class \code{"dendrogram"} are now provided.
 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.
 3205       \item \code{str()} now has a method for class \code{"Date"}
 3206       analogous to that for class \code{"POSIXt"}.
 3208       \item New function \code{file.link()} to create hard links on
 3209       those file systems (POSIX, NTFS but not FAT) that support them.
 3211       \item New \code{Summary()} group method for class \code{"ordered"}
 3212       implements \code{min()}, \code{max()} and \code{range()} for
 3213       ordered factors.
 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}.)
 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}.)
 3227       \item \code{example()} gains optional new arguments
 3228       \code{character.only} and \code{give.lines} enabling programmatic
 3229       exploration.
 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.)
 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).
 3246       \code{saveRDS()} supports \code{compress = "xz"}.
 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.
 3257       \item Public functions \code{find.package()} and \code{path.package()}
 3258       replace the internal dot-name versions.
 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.
 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, ...)}.
 3270       \item \code{file.edit()} gains a \code{fileEncoding} argument to
 3271       specify the encoding of the file(s).
 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.)
 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.
 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.)
 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.
 3297       \item There is a simple \code{zip()} function, as wrapper for an
 3298       external \command{zip} command.
 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}).
 3305       \item The primitive function \code{c()} is now of type BUILTIN.
 3307       \item \code{plot(<dendrogram>, .., nodePar=*)} now obeys an optional
 3308       \code{xpd} specification (allowing clipping to be turned off
 3309       completely).
 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.
 3315       \item \command{xz} has been updated to 5.0.1 (very minor bugfix
 3316       release).
 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}.
 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}.
 3327       \item New function \code{list.dirs()} lists all directories,
 3328       (even empty ones).
 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()}.
 3334       \item \code{Sys.umask()} now accepts \code{mode = NA} and returns
 3335       the current \code{umask} value (visibly) without changing it.
 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.
 3341       \item \code{as.raster()} no longer fails for vectors or matrices
 3342       containing \code{NA}s.
 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.
 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}.
 3352       \item \code{tar()} has a new argument \code{extra_flags}.
 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.
 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()}.
 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).
 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.
 3372       \item The default for \code{options("mailer")} is now
 3373       \code{"mailto"} on all platforms.
 3375       \item \code{unlink()} now does tilde-expansion (like most other
 3376       file functions).
 3378       \item \code{file.rename()} now allows vector arguments (of the
 3379       same length).
 3381       \item The \code{"glm"} method for \code{logLik()} now returns an
 3382       \code{"nobs"} attribute (which \code{stats4::BIC()} assumed it
 3383       did).
 3385       The \code{"nls"} method for \code{logLik()} gave incorrect results
 3386       for zero weights.
 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}.
 3393       \item Code for S4 reference-class methods is now examined for
 3394       possible errors in non-local assignments.
 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.
 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}).
 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.)
 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}).
 3419       \item \code{smooth.spline()} is somewhat faster.  With
 3420       \code{cv=NA} it allows some leverage computations to be skipped,
 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.
 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.
 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.
 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.
 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()}.
 3456       Only a few character operations are supported (such as \code{substr()}).
 3458       Printing, \code{format()} and \code{cat()} will represent non-ASCII
 3459       bytes in such strings by a \samp{\xab} escape.
 3461       \item The new function \code{removeSource()} removes the internally
 3462       stored source from a function.
 3464       \item \code{"srcref"} attributes now include two additional
 3465       line number values, recording the line numbers in the order they
 3466       were parsed.
 3468       \item New functions have been added for source reference access:
 3469       \code{getSrcFilename()}, \code{getSrcDirectory()},
 3470       \code{getSrcLocation()} and \code{getSrcref()}.
 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}.
 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.)
 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.
 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}.)
 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.
 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.
 3500       \item \code{rstandard.glm()} gains a \code{type} argument which can
 3501       be used to request standardized Pearson residuals.
 3503       \item A start on a Turkish translation, thanks to Murat Alkan.
 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.
 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.
 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   }
 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}.)
 3527       \item The default for \code{Sweave()} is to produce only PDF
 3528       figures (rather than both EPS and PDF).
 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.
 3534       \item The Sweave manual is now included as a vignette in the
 3535       \pkg{utils} package.
 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   }
 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.
 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.
 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}).
 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   }
 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).
 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.
 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).
 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.
 3587       It now adds a \file{datalist} file for \file{data} directories of
 3588       more than 1Mb.
 3590       Patterns in \file{.Rbuildignore} are now also matched against all
 3591       directory names (including those of empty directories).
 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.
 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.
 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.
 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).
 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.
 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.
 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}.
 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.
 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.
 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.
 3643       It now checks all syntactically valid Rd usage entries, and warns
 3644       about assignments (unless these give the usage of replacement
 3645       functions).
 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).
 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   }
 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}.
 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.
 3671       \item The C99 double complex type is now required.
 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.
 3677       \item The C99 system call \samp{va_copy} is now required.
 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.
 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}.
 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.
 3692       This can be disabled by the \option{--disable-openmp} flag.
 3693     }
 3694   }
 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.)
 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.
 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.)
 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}).
 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.
 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.
 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).
 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.
 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.
 3743       \item The vignette indices are more comprehensive (in the style of
 3744       \code{browseVignetttes()}).
 3745     }
 3746   }
 3748   \subsection{DEPRECATED & DEFUNCT}{
 3749     \itemize{
 3750       \item \code{require(save = TRUE)} is defunct, and use of the
 3751       \code{save} argument is deprecated.
 3753       \item \command{R CMD check --no-latex} is defunct: use
 3754       \option{--no-manual} instead.
 3756       \item \command{R CMD Sd2Rd} is defunct.
 3758       \item The \code{gamma} argument to \code{hsv()},
 3759       \code{rainbow()}, and \code{rgb2hsv()} is deprecated
 3760       and no longer has any effect.
 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.
 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.
 3771       \item The wrapper \code{utils::link.html.help()} is no longer
 3772       available.
 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.
 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.
 3782       \item The \sQuote{experimental} alternative specification of a
 3783       namespace via \code{.Export()} etc is now defunct.
 3785       \item The option \option{--unsafe} to \command{R CMD INSTALL} is
 3786       deprecated: use the identical option \option{--no-lock} instead.
 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.
 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.
 3796       \item \command{R CMD build --binary} is now formally deprecated:
 3797       \command{R CMD INSTALL --build} has long been the preferred
 3798       alternative.
 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   }
 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.)
 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.
 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.
 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.)
 3828       \item The \code{str()} method for class \code{"POSIXt"} now gives
 3829       sensible output for 0-length input.
 3831       \item The one- and two-argument complex maths functions failed to
 3832       warn if NAs were generated (as their numeric analogues do).
 3834       \item Added \code{.requireCachedGenerics} to the \code{dont.mind}
 3835       list for \code{library()} to avoid warnings about duplicates.
 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.
 3841       \item \code{Map()} did not look up a character argument \code{f}
 3842       in the correct frame, thanks to lazy evaluation.  (\PR{14495})
 3844       \item \code{file.copy()} did not tilde-expand \code{from} and \code{to}
 3845       when \code{to} was a directory.  (\PR{14507})
 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.
 3852       \item \code{plot(<formula>, data=<matrix>,..)} now works in more
 3853       cases; similarly for \code{points()}, \code{lines()} and
 3854       \code{text()}.
 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.
 3861       \item \code{data.frame(check.rows = TRUE)} sometimes worked when
 3862       it should have detected an error.  (\PR{14530})
 3864       \item \code{scan(sep= , strip.white=TRUE)} sometimes stripped
 3865       trailing spaces from within quoted strings.  (The real bug in
 3866       \PR{14522}.)
 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})
 3873       They also failed for 1-row matrices.
 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}.)
 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.
 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.
 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)}).
 3894       \item Inside \code{uniroot(f, ...)}, \code{-Inf} function values
 3895       are now replaced by a maximally \bold{negative} value.
 3897       \item \code{rowsum()} could silently over/underflow on integer
 3898       inputs (reported by Bill Dunlap).
 3900       \item \code{as.matrix()} did not handle \code{"dist"} objects with
 3901       zero rows.
 3902     }
 3903   }
 3904 }
 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   }
 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.
 3923       \item PDF output with a non-RGB color model used RGB for the line
 3924       stroke color.  (\PR{14511})
 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.
 3930       \item In some circumstances a one-sided \code{mantelhaen.test()}
 3931       reported the p-value for the wrong tail.  (\PR{14514})
 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.
 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.
 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.
 3945       \item \code{checkRd()} gave a spurious error if the \code{\\href}
 3946       macro was used.
 3947     }
 3948   }
 3949 }
 3951 \section{\Rlogo CHANGES IN R VERSION 2.12.2}{
 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.
 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}).
 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   }
 3970   \subsection{NEW FEATURES}{
 3971     \itemize{
 3972       \item PCRE has been updated to 8.12 (two bug-fix releases since 8.10).
 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.
 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).
 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.)
 3986       \item \code{bug.report()} has been updated for the current \R bug
 3987       tracker, which does not accept emailed submissions.
 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   }
 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}.
 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   }
 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}.
 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}.
 4020       \item \command{R CMD INSTALL} now ensures that directories
 4021       installed from \file{inst} have search permission for everyone.
 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   }
 4029   \subsection{DEPRECATED & DEFUNCT}{
 4030     \itemize{
 4031       \item The \sQuote{experimental} alternative specification of a
 4032       namespace via \code{.Export()} etc is now deprecated.
 4034       \item \code{zip.file.extract()} is now deprecated.
 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   }
 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).
 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})
 4055       \item \code{format.data.frame()} now keeps zero character column names.
 4057       \item \code{pretty(x)} no longer raises an error when \code{x}
 4058       contains solely non-finite values. (\PR{14468})
 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).
 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.
 4068       \item \command{R CMD check} failed to check the filenames under
 4069       \file{man} for Windows' reserved names.
 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.
 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).
 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.)
 4085       \item \code{combn(n, m)} now behaves more regularly for the border
 4086       case \eqn{m = 0}. (\PR{14473})
 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})
 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.)
 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.)
 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.
 4106       \item \code{ccf(na.action = na.pass)} was not implemented.
 4108       \item The parser accepted some incorrect numeric constants,
 4109       e.g.\sspace{}\code{20x2}.  (Reported by Olaf Mersmann.)
 4111       \item \code{format(*, zero.print)} did not always replace the full
 4112       zero parts.
 4114       \item Fixes for subsetting or subassignment of \code{"raster"}
 4115       objects when not both \code{i} and \code{j} are specified.
 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).
 4122       \command{R CMD INSTALL --use-zip-data} was incorrectly implemented
 4123       as \option{--use-zipdata} since \R 2.9.0.
 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.
 4130       \item \code{atan(1i)} returned \code{NaN+Infi} (rather than
 4131       \code{0+Infi}) on platforms without C99 complex support.
 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).
 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.
 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).
 4144       \item In some circumstances (including for package \CRANpkg{XML}),
 4145       \command{R CMD INSTALL} installed version-control directories from
 4146       source packages.
 4148       \item Added \code{PROTECT} calls to some constructed expressions
 4149       used in C level \code{eval} calls.
 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.
 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.
 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.)
 4163       \item \code{prettyNum(c(1i, NA), drop0=TRUE)} or
 4164       \code{str(NA_complex_)} now work correctly.
 4165     }
 4166   }
 4167 }
 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).
 4176       \item \url{http://www.rforge.net} has been added to the default
 4177       set of repositories known to \code{setRepositories()}.
 4179       \item xz-utils has been updated to version 5.0.0.
 4181       \item \code{reshape()} now makes use of \code{sep} when forming
 4182       names during reshaping to wide format.  (\PR{14435})
 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}.
 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}.
 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.
 4196       \item \code{StructTS(type = "BSM")} now allows series with just
 4197       two seasons.  (Reported by Birgit Erni.)
 4198     }
 4199   }
 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.
 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   }
 4213   \subsection{BUG FIXES}{
 4214     \itemize{
 4215       \item \code{seq.int()} no longer sometimes evaluates arguments
 4216       twice.  (\PR{14388})
 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).
 4222       \item \code{predict(<lm object>, type ="terms", ...)} failed if
 4223       both \code{terms} and \code{interval} were specified.  (Reported
 4224       by Bill Dunlap.)
 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}.
 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})
 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.
 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}).
 4242       \item \code{promptClass()} in package \pkg{methods} now works for
 4243       reference classes and gives a suitably specialized skeleton of
 4244       documentation.
 4246       Also, \code{callSuper()} now works via the \code{methods()}
 4247       invocation as well as for initially specified methods.
 4249       \item \code{download.file()} could leave the destination file open
 4250       if the URL was not able to be opened.  (\PR{14414})
 4252       \item Assignment of an environment to functions or as an attribute
 4253       to other objects now works for S4 subclasses of \code{"environment"}.
 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.
 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.
 4263       \item \samp{!} dropped attributes such as names and dimensions from a
 4264       length-zero argument.  (\PR{14424})
 4266       \item When \code{list2env()} created an environment it was missing
 4267       a \code{PROTECT} call and so was vulnerable to garbage collection.
 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.
 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.)
 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))}.
 4284       \item Backreferences to undefined patterns in
 4285       \code{[g]sub(pcre = TRUE)} could cause a segfault.  (\PR{14431})
 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.
 4291       \item Reference S4 class creation could generate ambiguous
 4292       inheritance patterns under very special circumstances.
 4294       \item \samp{[[<-} turned S4 subclasses of \code{"environment"} into
 4295       plain environments.
 4297       \item Long titles for help pages were truncated in package indices
 4298       and a few other places.
 4300       \item Additional utilities now work correctly with S4 subclasses of
 4301       \code{"environment"} (\code{rm}, locking tools and active
 4302       bindings).
 4304       \item \code{spec.ar()} now also work for the \code{"ols"} method.
 4305       (Reported by Hans-Ruedi Kuensch.)
 4307       \item The initialization of objects from S4 subclasses of
 4308       \code{"environment"} now allocates a new environment object.
 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.
 4314       \item \code{qr.X()} with column names and pivoting now also pivots
 4315       the column names.  (\PR{14438})
 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})
 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.)
 4326       \item Fix for subsetting of \code{"raster"} objects when only one
 4327       of \code{i} or \code{j} is specified.
 4329       \item \code{grid.raster()} in package \pkg{grid} did not accept
 4330       \code{"nativeRaster"} objects (like \code{rasterImage()} does).
 4332       \item Rendering raster images in PDF output was resetting the
 4333       clipping region.
 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.
 4339       With cairo < 1.6, will be better than before, though still a
 4340       little clunky.  With cairo >= 1.6, should be sweet as.
 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 }
 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.
 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}.)
 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).
 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}.
 4374       \item The \code{enquote()} utility, in use internally, is exported now.
 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.
 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})
 4387       \item \code{constrOptim()} can now be used with method
 4388       \code{"SANN"}.  (\PR{14245})
 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})
 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"}.
 4398       \item The \code{"POSIX[cl]t"} methods for \code{Axis()} have been
 4399        replaced by a single method for \code{"POSIXt"}.
 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}.
 4407        The methods had a different default (\code{""}) for \code{xlab}.
 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.
 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.
 4421       \item The \code{"POSIXct"} method of \code{as.Date()} allows a
 4422        timezone to be specified (but still defaults to UTC).
 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.
 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()}.
 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.
 4438       \item File \file{.Renviron} can have architecture-specific versions
 4439        such as \file{.Renviron.i386} on systems with sub-architectures.
 4441       \item \code{installed.packages()} has a new argument
 4442        \code{subarch} to filter on sub-architecture.
 4444       \item The \code{summary()} method for \code{packageStatus()} now
 4445        has a separate \code{print()} method.
 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.
 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.
 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.)
 4462       \item \code{tools::texi2dvi()} gains an \code{index} argument,
 4463        mainly for use by \command{R CMD Rd2pdf}.
 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. % )
 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.
 4474       \item \code{scan()} gains a \code{fileEncoding} argument to
 4475       match \code{read.table()}.
 4477       \item \code{points()} and \code{lines()} gain \code{"table"}
 4478        methods to match \code{plot()}.  (Wish of \PR{10472}.)
 4480       \item \code{Sys.chmod()} allows argument \code{mode} to be a
 4481       vector, recycled along \code{paths}.
 4483       \item There are \code{|}, \code{&} and \code{xor()} methods for
 4484        classes \code{"octmode"} and \code{"hexmode"}, which work
 4485        bitwise.
 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"}.)
 4495       \item New function \code{isatty()} to see if terminal connections are
 4496        redirected.
 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.
 4502       \item \code{print(x)} and \code{str(x)} now indicate if an empty
 4503       list \code{x} is named.
 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.
 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.
 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).
 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.
 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.
 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.
 4534       \item Added \samp{\href} tag to the Rd format, to allow
 4535        hyperlinks to URLs without displaying the full URL.
 4537       \item Added \samp{\newcommand} and \samp{\renewcommand} tags
 4538        to the Rd format, to allow user-defined macros.
 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.
 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).
 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.
 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})
 4558       \item \code{legend()} supports \code{title.adj}.  (Wish of
 4559       \PR{13415})
 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{!=}).
 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.
 4569       \item Text rendering of \samp{\itemize} in help uses a Unicode
 4570       bullet in UTF-8 and most single-byte Windows locales.
 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}.
 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.
 4586       \item \code{kmeans(x, 1)} now works.  Further, \code{kmeans} now
 4587       returns between and total sum of squares.
 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.
 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.
 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}.
 4602       \item New function \code{readRenviron} to (re-)read files in the
 4603       format of \file{~/.Renviron} and \file{Renviron.site}.
 4605       \item \code{require()} will now return \code{FALSE} (and not fail)
 4606       if loading the package or one of its dependencies fails.
 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.)
 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.
 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.
 4623       \item New simple function \code{packageVersion()}.
 4625       \item The PCRE library has been updated to version 8.10.
 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.
 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.
 4636       The \file{.Rd} conversion tools also warn about an unrecognized type
 4637       in a \samp{\docType} section.
 4639       \item \code{ecdf()} objects now have a \code{quantile()} method.
 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}.)
 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).
 4650       \item New function \code{droplevels()} to remove unused factor levels.
 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.
 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.
 4662       \item \code{system()} has a new argument \code{ignore.stdout}
 4663       which can be used to (portably) ignore standard output.
 4665       \item \code{system(intern = TRUE)} and \code{pipe()} connections
 4666       are guaranteed to be available on all builds of \R.
 4668       \item \code{Sys.which()} has been altered to return \code{""} if
 4669       the command is not found (even on Solaris).
 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}.
 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}.
 4679       Predictions from \code{"loess"} fits are now named from the row
 4680       names of \code{newdata}.
 4682       \item Parsing errors detected during \code{Sweave()} processing
 4683       will now be reported referencing their original location in the
 4684       source file.
 4686       \item New \code{adjustcolor()} utility, e.g., for simple
 4687       translucent color schemes.
 4689       \item \code{qr()} now has a trivial \code{lm} method with a
 4690       simple (fast) validity check.
 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}.
 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.
 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.
 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   }
 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.
 4717       \item File extension \file{.C} for C++ code files in packages is
 4718       now defunct.
 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.
 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.)
 4729       \item \command{R CMD check --no-latex} is deprecated in favour of
 4730       \option{--no-manual}.
 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).
 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.
 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.
 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.
 4767        \strong{NB:} because these have been completely rewritten, users
 4768        should not expect undocumented details of previous
 4769        implementations to have been duplicated.
 4771        \command{R CMD} no longer manipulates the environment variables
 4772        \env{PERL5LIB} and \env{PERLLIB}.
 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.
 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.
 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).
 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.
 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}).
 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.)
 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.
 4809        It supports a file \file{~/.R/build.Renviron} analogously to
 4810        \command{check}.
 4812        It now runs build-time \samp{\Sexpr} expressions in help files.
 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).
 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.
 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.
 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.)
 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   }
 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.
 4849       \item Tcl/Tk >= 8.4 is now required (increased from 8.3).
 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.)
 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.
 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}.
 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()}.
 4868       \item The \command{pkg-config} file \file{libR.pc} now also works
 4869       when \R is installed using a sub-architecture.
 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   }
 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()}.
 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})
 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})
 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})
 4897       \item \code{source(echo=TRUE)} failed to echo comments that
 4898        followed the last statement in a file.
 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.
 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}.
 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.
 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.
 4918       \item \code{match(x, table)} (and hence \code{\%in\%}) now treat
 4919       \code{"POSIXlt"} consistently with, e.g., \code{"POSIXct"}.
 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.
 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.
 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})
 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})
 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.)
 4944       \item \code{aperm()} treated \code{resize = NA} as \code{resize =
 4945       TRUE}.
 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.
 4952       \item Rendering of S3 and S4 methods in man pages has been
 4953       corrected and made consistent across output formats.
 4955       \item Simple markup is now allowed in \samp{\title} sections
 4956       in \file{.Rd} files.
 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.
 4961       \item \code{prompt()} did not backquote some default arguments in
 4962       the \samp{\usage} section.  (Reported by Claudia Beleites.)
 4964       \item \code{writeBin()} disallows attempts to write 2GB or
 4965       more in a single call. (\PR{14362})
 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.
 4971       \item The \code{summary()} method for data frames makes a better
 4972       job of names containing characters invalid in the current locale.
 4974       \item \code{[[} sub-assignment for factors could create an invalid
 4975       factor (reported by Bill Dunlap).
 4977       \item \code{Negate(f)} would not evaluate argument \code{f}
 4978       until first use of returned function (reported by Olaf Mersmann).
 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)}.
 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.)
 4989       \item Task callbacks could report the wrong expression when
 4990       the task involved parsing new code. (\PR{14368})
 4992       \item \code{getNamespaceVersion()} failed; this was an
 4993       accidental change in 2.11.0. (\PR{14374})
 4995       \item \code{identical()} returned \code{FALSE} for external
 4996       pointer objects even when the pointer addresses were the same.
 4998       \item \code{L$a@x[] <- val} did not duplicate in a case it should have.
 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})
 5004       \item \code{quantile(type=6)} behaved inconsistently.  (\PR{14383})
 5006       \item \code{backSpline(.)} behaved incorrectly when the knot
 5007       sequence was decreasing.  (\PR{14386})
 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}.
 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})
 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})
 5025       \item \code{library.dynam.unload} required an absolute path for
 5026       \code{libpath}.  (\PR{14385})
 5028       Both \code{library()} and \code{loadNamespace()} now record
 5029       absolute paths for use by \code{searchpaths()} and
 5030       \code{getNamespaceInfo(ns, "path")}.
 5032       \item The self-starting model \code{NLSstClosestX} failed if some
 5033       deviation was exactly zero.  (\PR{14384})
 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})
 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.)
 5045       \item \code{source(chdir = TRUE)} failed to reset the working
 5046       directory if it could not be determined -- that is now an error.
 5048       \item Fix for crash of \code{example(rasterImage)} on
 5049       \code{x11(type="Xlib")}.
 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})
 5055       \item \code{model.frame} had an unstated 500 byte limit on
 5056       variable names.  (Example reported by Terry Therneau.)
 5058       \item The 256-byte limit on names is now documented.
 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 }
 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.
 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.
 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   }
 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   }
 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}.
 5101       \item \code{stripchart()} could fail with an empty factor
 5102       level.  (\PR{14317})
 5104       \item Text help rendering of \samp{\tabular\{\}} has been
 5105       improved: under some circumstances leading blank columns were
 5106       not rendered.
 5108       \item \code{strsplit(x, fixed=TRUE)} marked UTF-8 strings with the
 5109       local encoding when no splits were found.
 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.
 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).
 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.
 5122       \item The internal \code{strptime()} could corrupt its copy of the
 5123       timezone which would then lead to spurious warnings. (\PR{14338})
 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.)
 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).
 5134       \item Fixed font face for CID fonts in \code{pdf()} graphics output.
 5135       (\PR{14326})
 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.
 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})
 5145       \item Improperly calling \code{Recall()} from outside a function
 5146       could cause a segfault.  (Reported by Robert McGehee.)
 5148       \item \samp{\Sexpr[result=rd]} in an Rd file added a
 5149       spurious newline, which was displayed as extra whitespace when
 5150       rendered.
 5152       \item \code{require(save = TRUE)} recorded the names of packages
 5153       it failed to load.
 5155       \item \code{packageStatus()} could return a data frame with
 5156       duplicate row names which could then not be printed.
 5158       \item \code{txtProgressBar(style = 2)} did not work correctly.
 5160       \code{txtProgressBar(style = 3)} did not display until a
 5161       non-minimum value was set.
 5163       \item \code{contour()} did not display dashed line types
 5164       properly when contour lines were labelled. (Reported by
 5165       David B. Thompson.)
 5167       \item \code{tools::undoc()} again detects undocumented data
 5168       objects.  Of course, this also affects \command{R CMD check}.
 5170       \item \code{ksmooth(x,NULL)} no longer segfaults.
 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 }
 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.
 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.
 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})
 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})
 5222       \item More efficient implementation of \code{utf8ToInt()} on long
 5223        multi-byte strings with many multi-byte characters.  (\PR{14262})
 5225       \item \code{aggregate.ts()} gave platform-dependent results due to
 5226        rounding error for \code{ndeltat != 1}.
 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})
 5232 	It also failed when only an S4 class without any methods was
 5233         defined.  (\PR{14280})
 5235       \item \code{splinefun(method = "monoH.FC")} was not
 5236       quite monotone in rare cases.  (\PR{14215})
 5238       \item \code{Rhttpd} no longer crashes due to \code{SIGPIPE} when
 5239        the client closes the connection prematurely.  (\PR{14266})
 5241       \item \code{format.POSIXlt()} could cause a stack overflow and
 5242         crash when used on very long vectors.  (\PR{14267})
 5244       \item \code{Rd2latex()} incorrectly escaped special characters in
 5245       \samp{\usage} sections.
 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).
 5251       \item \command{Rd2pdf} sometimes needed a further
 5252        \command{pdflatex} pass to get hyperlinked pages correct.
 5254       \item \code{interaction()} produced malformed results when levels were
 5255         duplicated, causing segfaults in \code{split()}.
 5257       \item \code{cut(d, breaks = <n>)} now also works for \code{"Date"}
 5258         or \code{"POSIXt"} argument \code{d}.
 5259         (\PR{14288})
 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.)
 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})
 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}.)
 5274       \item \code{[<-.data.frame} was not quite careful enough in
 5275         assigning (and potentially deleting) columns
 5276         right-to-left.  (\PR{14263})
 5278       \item \code{rbeta(n, a, b)} no longer occasionally returns
 5279        \code{NaN} for \code{a >> 1 > b}.  (\PR{14291})
 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.
 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})
 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})
 5294       \item \code{tools::Rd2txt()} did not render poorly written Rd
 5295        files consistently with other renderers.
 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}.
 5301       \item \code{na.action()} did not extract the \code{na.action}
 5302       component as documented.
 5304       \item \code{do.call()}ing \code{NextMethod} in erroneous ways no
 5305       longer segfaults. (\PR{13487})
 5306     }
 5307   }
 5308 }
 5311 \section{\Rlogo CHANGES IN R VERSION 2.11.0}{
 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.
 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}.
 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.
 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"}.
 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.
 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).
 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}.
 5360       \item The TRE library has been updated to version 0.8.0 (minor bugfixes).
 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).
 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.
 5372       \item More validity checking of UTF-8 and MBCS strings is done by
 5373        \code{agrep()} and the regular-expression matching functions.
 5375       \item The undocumented restriction on \code{gregexpr()} to
 5376        \code{length(text) > 0} has been removed.
 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.
 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.
 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).
 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}).
 5396       \item \code{prop.table(x)} now accepts a one-dimensional table for
 5397       \code{x}.
 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.
 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.
 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.)
 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.
 5417       \item The index page for HTML help for a package now collapses
 5418        multiple signatures for S4 methods into a single entry.
 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}.
 5427       \item \code{bquote()} has been extended to work on function
 5428        definitions.  (Wish of
 5429        \PR{14031}).
 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()}.
 5435       \item \code{readline()} in non-interactive use returns \code{""}
 5436        and does not attempt to read from the \sQuote{terminal}.
 5438       \item New function \code{file_ext()} in package \pkg{tools}.
 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.
 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).
 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).
 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.
 5459        There is now a \code{"difftime"} method.
 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.)
 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.
 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}.)
 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}.
 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.
 5488       \item New function \code{chooseBioCmirror()} to set the
 5489       \code{"BioC_mirror"} option.
 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.
 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.
 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.
 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).
 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.
 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.
 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.
 5524       \item \code{print.rle()} gains argument \code{prefix}.
 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.
 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}.
 5535       \item \code{utf8ToInt()} and \code{intToUtf8()} now map \code{NA} inputs
 5536       to \code{NA} outputs.
 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.
 5542       \item New function \code{strtoi()}, a wrapper for the C function
 5543       \code{strtol}.
 5545       \item \code{as.octmode()} and \code{as.hexmode()} now allow inputs
 5546        of length other than one.
 5548        The \code{format()} and \code{print()} methods for
 5549        \code{"octmode"} now preserve names and dimensions (as those for
 5550        \code{"hexmode"} did).
 5552        The \code{format()} methods for classes \code{"octmode"} and
 5553        \code{"hexmode"} gain a \code{width} argument.
 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)}.
 5558       \item Added \samp{\subsection\{\}\{\}} macro to Rd syntax, for
 5559        subsections within sections.
 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.
 5567       \item \code{interaction(drop=TRUE)} uses less memory (related to
 5568       \PR{14121}).
 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.
 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.
 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.
 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.
 5586       \item Files \file{Renviron.site} and \file{Rprofile.site} can have
 5587        architecture-specific versions on systems with sub-architectures.
 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.
 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.
 5597       \item \code{path.expand()} now propagates \code{NA} values rather
 5598        than converting them to \code{"NA"}.
 5600       \item \code{file.show()} now disallows \code{NA} values for file names,
 5601        headers, and pager.
 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}).
 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.
 5614       \item New function \code{rasterImage()} in the \code{graphics}
 5615        package for drawing raster images.
 5617       \item \code{stats:::extractAIC.coxph()} now omits aliased terms
 5618        when computing the degrees of freedom (suggestion of Terry
 5619        Therneau).
 5621       \item \code{cor()} and \code{cov()} now test for misuse with
 5622        non-numeric arguments, such as the non-bug report \PR{14207}.
 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}.)
 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).
 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()}.
 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.
 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.
 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()} ...).
 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.
 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.
 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.
 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"}.
 5671       \item \code{any()} and \code{all()} return early if possible.
 5672        This may speed up operations on long vectors.
 5674       \item \code{strptime()} now accepts \code{"\%z"} (for the offset
 5675        from UTC in the RFC822 format of \code{+/-hhmm}).
 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.
 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")}).
 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.
 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).
 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.
 5702       \item \code{stats::clearNames()} is defunct: use \code{unname()}.
 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.
 5709       \item \code{methods::trySilent()} is defunct.
 5711       \item \code{index.search()} (which was deprecated in 2.10.0) is no
 5712        longer exported and has a different argument list.
 5714       \item Use of multiple arguments to \code{return()} is now defunct.
 5716       \item The use of \code{UseMethod()} with more than two arguments
 5717       is now defunct.
 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.
 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.
 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.
 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.
 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.
 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.
 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{
 5771       \item Using \code{with()}, \code{eval()} etc with a list with some
 5772       unnamed elements now works.
 5773       (\PR{14035})
 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.
 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()}.
 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.
 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.
 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.
 5804       \item Various \code{ar()} fitting methods have more protection for
 5805        singular fits.
 5807       \item \code{callNextMethod} now works again with the \code{drop=}
 5808       argument in \samp{[}
 5810       \item \code{parse()} and \code{parse_Rd()} miscounted columns when
 5811        multibyte UTF-8 characters were present.
 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.
 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}.)
 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})
 5826       \item \code{do_par()} \code{UNPROTECT}ed too early  (\PR{14214})
 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})
 5832       \item \code{fisher.test()} no longer gives a P-value \strong{very}
 5833        slightly > 1, in some borderline cases.
 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.
 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.
 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.
 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.
 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.)
 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}).
 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.)
 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.
 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).
 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).
 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).
 5886       \item \code{read.fwf()} misread multi-line records when n was specified.
 5887        (\PR{14241})
 5889       \item \code{all.equal(tolerance = e)} passes the numeric
 5890        tolerance also to the comparison of the attributes.
 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.
 5895       \item Issuing \code{POST} requests to the internal web server could stall
 5896        the request under certain circumstances.
 5898       \item \code{gzcon( <textConnection> )}, an error, no longer
 5899        damages the connection (in a way to have it
 5900        segfault).  (\PR{14237})
 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.)
 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 }
 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.
 5926       \item \code{lchoose(a, k)} is now defined as
 5927        \code{log(abs(choose(a,k)))}, analogously to \code{lfactorial()}.
 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).
 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.
 5942       \item The PCRE library has been updated to version 8.01, a bug-fix
 5943        release.
 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})
 5955       \item \code{qpois(p = 1, lambda = 0)} now gives 0 as for all other
 5956       \code{p}.  (\PR{14135})
 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})
 5963       \item \code{x[ , drop=TRUE]} dropped an \code{NA} level even if it
 5964       was in use.
 5966       \item The dynamic HTML help system reported the wrong MIME type
 5967        for the style sheet.
 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.
 5973       \item Help links containing special characters (e.g., \code{"?"})
 5974        were not generated correctly when rendered in
 5975        HTML.  (\PR{14155})
 5977       \item \code{lchoose(a, k)} no longer wrongly gives \code{NaN} for
 5978       negative \code{a}.
 5980       \item \code{ks.test()} could give a p-value that was off by one
 5981        observation due to rounding error.  (\PR{14145})
 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).
 5987       \item \command{R CMD SHLIB} could fail if used with paths that
 5988        were not alphanumeric, e.g.\sspace{}contained \code{+}.  (\PR{14168})
 5990       \item \code{sprintf()} was not re-entrant, which potentially
 5991        caused problems if an \code{as.character()} method called it.
 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.
 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.
 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.)
 6007       \item \code{tcrossprod()} wrongly failed in some cases when one of the
 6008        arguments was a vector and the other a matrix.
 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}.)
 6014       \item \code{match(incomparables=<non-NULL>)} could in rare cases
 6015        infinite-loop.
 6017       \item \code{poisson.test()} needed to pass argument
 6018        \code{conf.level} to \code{binom.test()}.  (\PR{14195})
 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})
 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()}.
 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}).
 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})
 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.
 6043       \item The suppression of auto-rotation in \code{bitmap()} and
 6044        \code{dev2bitmap()} with the \code{"pdfwrite"} device was not
 6045        working correctly.
 6047       \item \code{plot(ecdf(), log="x")} no longer gives an incorrect
 6048       warning.
 6050       \item \code{read.fwf()} works again when argument \code{file} is
 6051       a connection.
 6053       \item Startup files will now be found if their paths exceed 255
 6054        bytes.  (\PR{14228})
 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 }
 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.
 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).
 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).
 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")}.
 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}).
 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})
 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.
 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})
 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.
 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.
 6130       \item \code{findLineNum()} and \code{setBreakpoint()} would
 6131       sometimes fail if the specified file was not in the current
 6132       directory.
 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)}.
 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.
 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)}.
 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.
 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}).
 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.
 6156       \item \code{available.packages()} would fail when run on a
 6157       repository with no packages meeting the filtering conditions.
 6158       (\PR{14042})
 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.
 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.
 6168       \item Text help rendering did not handle very long input lines
 6169       properly.
 6171       \item \code{promptMethods()} generated signature documentation
 6172       improperly.
 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}).
 6181       \item \code{unname()} now also removes names from a zero length vector.
 6183       \item Printing results from \code{ls.str()} no longer evaluates
 6184       unevaluated calls.
 6186       \item \code{complete.cases()} failed on a 0-column data frame
 6187       argument.  (Underlies \PR{14066}.)
 6189       It could return nonsensical results if no input determined the
 6190       number of cases (seen in the no-segfault tests).
 6192       \item An error in \code{nls()} with a long formula could cause a
 6193       segfault.  (\PR{14059})
 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}.)
 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).
 6204       \code{pchisq(x, df, ncp)} can no longer return values just larger
 6205       than one for large values of \code{ncp}.
 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})
 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.)
 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))}.
 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.
 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}.
 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}.)
 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})
 6239       \item The \code{"difftime"} method of \code{mean()} ignored its
 6240       \code{na.rm} argument.
 6242       \item \code{tcltk::tk_select.list()} is now more likely to remove the
 6243       widget immediately after selection is complete.
 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}).
 6249       \item Conversion to latex of an Rd file with no aliases failed.
 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.
 6256       \item \code{help.search()} failed when the package argument was
 6257       specified.  (\PR{14113})
 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 }
 6266 \section{\Rlogo CHANGES IN R VERSION 2.10.0}{
 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
 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.
 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        }
 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.
 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).
 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.
 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.
 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)
 6322       \item \code{plot()} methods for \code{"stepfun"} and hence
 6323        \code{"ecdf"} no longer plot points by default for \code{n >= 1000}.
 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.
 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.
 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.
 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.
 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.
 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}).
 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.
 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.
 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.
 6364       \item \code{parse()} now warns if the requested encoding is not supported.
 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.
 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).
 6375       \item \code{curve()} now returns a list containing the points that
 6376       w§ere drawn.
 6378       \item \code{spineplot()} now accepts \code{axes = FALSE}, for
 6379        consistency with other functions called by \code{plot.factor()}.
 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}.)
 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()}.
 6392       \item More functions now have an implicit (S4) generic definition.
 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.
 6399       \item \code{weighted.mean()} is now generic and has \code{"Date"},
 6400        \code{"POSIXct"} and \code{"POSIXlt"} methods.
 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.)
 6408       \item \code{as.data.frame()} has an \code{"aovproj"} method.
 6409       (Wish of \PR{13505})
 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.
 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.
 6422       \item \code{codoc()} now also checks S4 methods for code/documentation
 6423        mismatches.
 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.
 6430       \item The \code{print()} method for \code{ls.str()} results now
 6431        obeys an optional \code{digits} argument.
 6433       \item The \code{method} argument of \code{glm()} now allows
 6434       user-contributed methods.
 6436       \item More general \code{reorder.default()} replaces functionality of
 6437        \code{reorder.factor()} and \code{reorder.character()}.
 6439       \item The function \code{aspell()} has been added to provide an
 6440        interface to the \command{Aspell} spell-checker.
 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.
 6446       \item \code{xtabs()} with the new argument \code{sparse = TRUE}
 6447        now returns a sparse Matrix, using package \CRANpkg{Matrix}.
 6449       \item \code{contr.sum()} etc gain an argument \code{sparse}
 6450        which allows sparse matrices to be returned.
 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}.
 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.
 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.
 6464       \item New utility function \code{inheritedSlotNames()} for S4
 6465       class programming.
 6467       \item \code{tabulate()} now allows NAs to pass through (and be ignored).
 6469       \item If \code{debug()} is called on an S3 generic function then
 6470        all methods are debugged as well.
 6472       \item Outlier symbols drawn by \code{boxplot()} now obey the
 6473        \code{outlwd} argument.  Reported by Jurgen Kluge.
 6475       \item \code{svd(x)} and \code{eigen(x)} now behave analogously to
 6476        \code{qr(x)} in accepting logical matrices \code{x}.
 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.
 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).
 6487       \item New function \code{news()} for building and querying \R or
 6488        package news information.
 6490       \item \code{z^n} for integer \code{n} and complex \code{z} is more
 6491        accurate now if \code{|n| <= 65536}.
 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.
 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).
 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.
 6507       \item \code{iconv()} has a new argument \code{mark} which can be
 6508        used (by experts) to suppress the declaration of encodings.
 6510       \item \file{DESCRIPTION} file's \code{LinkingTo} specs are now
 6511        recognized as installation dependencies, and included in package
 6512        management computations.
 6514       \item Standardized \file{DESCRIPTION} file \code{License} specs
 6515        are now available for package management computations.
 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).
 6524       \item New \code{as.raw()} method for \code{"tclObj"} objects (wish
 6525       of \PR{13758}).
 6527       \item \code{Rd.sty} now makes a better job of setting email addresses,
 6528        including using a monospaced font.
 6530       \item \code{textConnection()} gains an \code{encoding} argument
 6531        to determine how input strings with marked encodings will be
 6532        handled.
 6534       \item \command{R CMD Rd2pdf} is available as a shortcut for
 6535       \command{R CMD Rd2dvi --pdf}.
 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.
 6543       \item \code{identical()} gains three logical arguments, which
 6544        allow for even more differentiation, notably \code{-0} and
 6545        \code{0}.
 6547       \item \code{legend()} now can specify the \code{border} color of
 6548        filled boxes, thanks to a patch from Frederic Schutz.
 6550       \item Indexing with a vector index to \code{[[ ]]} has now been
 6551        extended to all recursive types.
 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.)
 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.
 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.
 6566       \item Namespace importing is more careful about warning on masked
 6567        generics, thanks to a patch by Yohan Chalabi.
 6569       \item \code{detach()} now has an argument \code{character.only}
 6570        with the same meaning as for \code{library()} or
 6571        \code{require()}.
 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.
 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.
 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.
 6590       \item \code{sprintf()} now supports \code{\%o} for octal
 6591       conversions.
 6593       \item New function \code{Sys.readlink()} for information about symbolic
 6594        links, including if a file is a symbolic link.
 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.
 6602        A new \command{INSTALL} option, \option{--resave-data}, makes use
 6603        of this.
 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}.
 6609       \item Logic operations with complex numbers now work, as they were always
 6610        documented to, and as in S.
 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).
 6616       \item \code{approxfun()} is faster by avoiding repeated \code{NA}
 6617        checks (diagnosis and patch by Karline Soetaert & Thomas
 6618        Petzoldt).
 6620       \item There are the beginnings of a Nynorsk translation by Karl Ove
 6621        Hufthammer.
 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}).
 6627       \item New generic function \code{.DollarNames()} to enable class authors
 6628        to customize completion after the \code{$} extractor.
 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.
 6643        This is often faster, especially in a MBCS locale.
 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.
 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.
 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).
 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.
 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.
 6668       \item \code{[g]sub} use a single-pass algorithm instead of
 6669        matching twice and so is usually faster.
 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.
 6674       \item \code{useBytes = TRUE} now inhibits the translation of inputs with
 6675        marked encodings.
 6677       \item \code{strsplit()} gains a \code{useBytes} argument.
 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).
 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.
 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.
 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.
 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).
 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.
 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).
 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.
 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.
 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.
 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.
 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).
 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.
 6745       \item \code{parse_Rd()} no longer includes the newline as part of
 6746        a \code{"\%"}-style comment.
 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}.
 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).
 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.
 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.
 6765       \item \code{parse_Rd()} now recognizes the \code{\\var} tag within
 6766        a quoted string in \R-like text.
 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.
 6778       \item New function \code{tar()} to create (possibly compressed)
 6779       tar archives.
 6781       \item New functions \code{memCompress()} and
 6782        \code{memDecompress()} for in-memory compression and
 6783        decompression.
 6785       \item \code{bzfile()} has a \code{compress} argument to select
 6786        the amount of effort put into compression when writing.
 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}.)
 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.
 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.
 6801        \code{load()} can read such saves (but only as from this version of \R).
 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.
 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}.)
 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.
 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.
 6837       \item \code{tools::Rd_parse()} is defunct (as this version of \R
 6838        uses only Rd version 2).
 6840       \item Use of file \file{~/.Rconf} (which was deprecated in favour
 6841        of \file{~/.Rconfig} in 2004) has finally been removed.
 6843       \item Bundles of packages are deprecated.  See \sQuote{Writing R
 6844        Extensions} for the steps needed to unbundle a bundle.
 6846       \item \code{help()} arguments \code{offline}, \code{htmlhelp} and
 6847        \code{chmhelp} are deprecated in favour of \code{help_type}.
 6849       \item \code{clearNames()} (in package \pkg{stats}) is deprecated
 6850       for \code{unname()}.
 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}.
 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)}.
 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).
 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).
 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.
 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).
 6883       \item C99 support for MBCS is now required, and configure option
 6884        \option{--disable-mbcs} has been withdrawn.
 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}.
 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.)
 6909       \item \code{validObject()} avoids an error during evaluation in the case
 6910        of various incorrect slot definitions.
 6912       \item \code{n:m} now returns a result of type \code{"integer"} in
 6913        a few more boundary cases.
 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.
 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.
 6927       \item \code{R_ReplDLLinit()} initializes the top-level jump so
 6928        that some embedded applications on Windows no longer crash on
 6929        error.
 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.
 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.
 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"}).
 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.
 6948       \item \command{Rscript} could segfault if (by user error) its
 6949        filename argument was missing.  Reported by Martin Morgan.
 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.
 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.
 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})
 6963       \item \command{make distclean} removed too many files in
 6964        \code{etc/} if builddir = srcdir.
 6966       \item \command{R CMD} replaced \code{TEXINPUTS} rather than
 6967        appending to it (as documented and intended).
 6969       \item \code{help.start()} no longer fails on unix when
 6970        \code{"browser"} is a function.
 6972       \item \code{pbeta(x, ..., log.p = TRUE)} is sometimes more accurate,
 6973        e.g., for very small \code{x}.
 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 }
 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 }