| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><title>R: R News</title> | |
| <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | |
| <link rel="stylesheet" type="text/css" href="R.css" /> | |
| </head><body> | |
| <table width="100%" summary="page for NEWS"><tr><td>NEWS</td><td style="text-align: right;">R Documentation</td></tr></table> | |
| <h2> R News</h2> | |
| <h3>LATER NEWS</h3> | |
| <p>News for <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.0.0 and later can be found in file ‘<span class="file">NEWS.Rd</span>’ in the | |
| <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> sources and files ‘<span class="file">NEWS</span>’ and ‘<span class="file">doc/html/NEWS.html</span>’ | |
| in an <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> build. | |
| </p> | |
| <h3><img class="toplogo" src="../help/figures/../../html/Rlogo.svg" alt="[R logo]" /> CHANGES IN R VERSION 2.15.3</h3> | |
| <h4>NEW FEATURES</h4> | |
| <ul> | |
| <li> <p><code>lgamma(x)</code> for very small <code>x</code> (in the | |
| denormalized range) is no longer <code>Inf</code> with a warning. | |
| </p> | |
| </li> | |
| <li> <p><code>image()</code> now sorts an unsorted <code>breaks</code> vector, | |
| with a warning. | |
| </p> | |
| </li> | |
| <li><p> The internal methods for <code>tar()</code> and <code>untar()</code> do | |
| a slightly more general job for ‘ustar’-style handling of | |
| paths of more than 100 bytes. | |
| </p> | |
| </li> | |
| <li><p> Packages <span class="pkg">compiler</span> and <span class="pkg">parallel</span> have been added | |
| to the reference index (‘<span class="file">refman.pdf</span>’). | |
| </p> | |
| </li> | |
| <li> <p><code>untar(tar = "internal")</code> has some support for | |
| <code>pax</code> headers as produced by e.g. <code>gnutar --posix</code> | |
| (which seems prevalent on OpenSUSE 12.2) or | |
| <code>bsdtar --format pax</code>, including long path and link names. | |
| </p> | |
| </li> | |
| <li> <p><code>sQuote()</code> and <code>dQuote()</code> now handle 0-length | |
| inputs. (Suggestion of Ben Bolker.) | |
| </p> | |
| </li> | |
| <li> <p><code>summaryRprof()</code> returns zero-row data frames rather | |
| than throw an error if no events are recorded, for consistency. | |
| </p> | |
| </li> | |
| <li><p> The included version of PCRE has been updated to 8.32. | |
| </p> | |
| </li> | |
| <li><p> The <span class="pkg">tcltk</span> namespace can now be re-loaded after | |
| unloading. | |
| </p> | |
| <p>The Tcl/Tk event loop is inhibited in a forked child from package | |
| <span class="pkg">parallel</span> (as in e.g. <code>mclapply()</code>). | |
| </p> | |
| </li> | |
| <li> <p><code>parallel::makeCluster()</code> recognizes the value | |
| <span class="samp">random</span> for the environment variable <span class="env">R_PARALLEL_PORT</span>: | |
| this chooses a random value for the port and reduces the chance of | |
| conflicts when multiple users start a cluster at the same time. | |
| </p> | |
| </li></ul> | |
| <h4>UTILITIES</h4> | |
| <ul> | |
| <li><p> The default for <span class="env">TAR</span> on Windows for <code>R CMD | |
| build</code> has been changed to be <span class="samp">internal</span> if no | |
| <code>tar</code> command is on the path. | |
| </p> | |
| <p>This enables most packages to be built ‘out of the box’ | |
| without <code>Rtools</code>: the main exceptions are those which need | |
| to be installed to re-build vignettes and need <code>Rtools</code> | |
| for installation (usually because they contain compiled code). | |
| </p> | |
| </li></ul> | |
| <h4>C-LEVEL FACILITIES</h4> | |
| <ul> | |
| <li><p> On a 64-bit Windows platform with enough RAM, <code>R_alloc</code> | |
| can now allocate up to just under 32GB like other 64-bit | |
| platforms. | |
| </p> | |
| </li></ul> | |
| <h4>DEPRECATED AND DEFUNCT</h4> | |
| <ul> | |
| <li><p> Use of <code>col2rgb(0)</code> is deprecated (see the help page | |
| for its limitations). | |
| </p> | |
| </li> | |
| <li><p> The deprecated <code>intensities</code> component returned by | |
| <code>hist()</code> is no longer recognized by the <code>plot()</code> method | |
| and will be removed in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.0.0. | |
| </p> | |
| </li> | |
| <li> <p><code>real()</code>, <code>as.real()</code> and <code>is.real()</code> are now | |
| formally deprecated and give a warning. | |
| </p> | |
| </li> | |
| <li><p> This is formal notice that the non-API EISPACK entry points | |
| in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> will be removed shortly. | |
| </p> | |
| </li></ul> | |
| <h4>INSTALLATION</h4> | |
| <ul> | |
| <li><p> The <code>configure</code> tests for Objective C and Objective | |
| C++ now work on Mac OS 10.8 with Xcode 4.5.2 (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15107">PR#15107</a>). | |
| </p> | |
| </li> | |
| <li><p> The cairo-based versions of <code>X11()</code> now work with | |
| current versions of cairographics (e.g., 1.12.10). (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15168">PR#15168</a>) | |
| </p> | |
| <p>A workaround for earlier versions of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> is to use | |
| <code>X11.options(type = "nbcairo")</code>. | |
| </p> | |
| </li> | |
| <li><p> Configuration and <code>R CMD javareconf</code> now come up | |
| with a smaller set of library paths for Java on Oracle-format JDK | |
| (including OpenJDK). This helps avoid conflicts between libraries | |
| (such as <code>libjpeg</code>) supplied in the JDK and system | |
| libraries. This can always be overridden if needed: see the | |
| ‘R Installation and Administration’ manual. | |
| </p> | |
| </li></ul> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li> <p><code>beta(a, b)</code> could overflow to infinity in its | |
| calculations when one of <code>a</code> and <code>b</code> was less than one. | |
| (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15075">PR#15075</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>lbeta(a, b)</code> no longer gives <code>NaN</code> if <code>a</code> or | |
| <code>b</code> is very small (in the denormalized range). | |
| </p> | |
| </li> | |
| <li> <p><code>bquote()</code> is now able to substitute default arguments in | |
| single-argument functions. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15077">PR#15077</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>browseEnv(html = FALSE)</code> would segfault if called from | |
| <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> (not <code>R.app</code>) on a CRAN-style Mac OS X build of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>. | |
| </p> | |
| </li> | |
| <li> <p><span class="samp">[[<-</span> for lists (generic vectors) needed to increment | |
| <code>NAMED</code> count when RHS is used more than once. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15098">PR#15098</a>) | |
| </p> | |
| </li> | |
| <li><p> On Windows, warnings about opening a file or pipe with a | |
| non-ASCII description were sometimes output in UTF-8 rather than | |
| in the current locale's character set. | |
| </p> | |
| </li> | |
| <li><p> The <code>call()</code> function did not duplicate its arguments. | |
| (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15115">PR#15115</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>TukeyHSD()</code> could give <code>NA</code> results with some | |
| <span class="samp">na.action</span> methods such as <code>na.exclude()</code>. | |
| (Hinted at on R-help by John Fox.) | |
| </p> | |
| </li> | |
| <li><p> The deprecated <code>svd(X, LINPACK = TRUE)</code> could alter | |
| <code>X</code> in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.15.[12]. (Reported by Bill Dunlap.) | |
| </p> | |
| </li> | |
| <li><p> Under Windows, <code>file.link()</code> and <code>file.symlink()</code> | |
| used the link name twice, so would always fail. (Reported | |
| by Rui Barradas/Oliver Soong). | |
| </p> | |
| </li> | |
| <li> <p><code>summaryRprof(memory = "both")</code> mixed up the units of | |
| Vcells and Ncells: it now works in bytes. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15138">PR#15138</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>tools::Rd2HTML()</code> would sometimes delete text. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15134">PR#15134</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>plot()</code> failed for <code>"table"</code> objects containing | |
| just one entry. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15118">PR#15118</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>embedFonts()</code> needed to quote some filepaths. | |
| (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15149">PR#15149</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>parallel::mccollect()</code> handled <code>NULL</code> returns | |
| incorrectly (removing the element rather than setting it to | |
| <code>NULL</code>). | |
| </p> | |
| </li> | |
| <li><p> The full reference index (‘<span class="file">fullrefman.pdf</span>’) was missing | |
| packages <span class="pkg">compiler</span> and <span class="pkg">parallel</span>. | |
| </p> | |
| </li> | |
| <li><p> The report for | |
| <code>optim(method = "L-BFGS-B", control = list(trace = 1))</code> | |
| reported the last completed and not the current iteration, unlike | |
| other methods and trace levels. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15103">PR#15103</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>qt(1e-12, 1.2)</code> no longer gives <code>NaN</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>dt(1e160, 1.2, log=TRUE)</code> no longer gives <code>-Inf</code>. | |
| </p> | |
| </li> | |
| <li><p> On Windows the <code>untar()</code> function now quotes the | |
| directory name when using an external <code>tar</code> utility, so | |
| <code>R CMD check</code> will handle pathnames containing spaces. | |
| </p> | |
| </li> | |
| <li><p> The version for Windows 8 and Windows Server 2012 is now | |
| displayed by <code>win.version()</code>. (Reported by Gabor | |
| Grothendieck.) | |
| </p> | |
| </li> | |
| <li><p> The custom Windows installer target <code>myR</code> in the | |
| installer ‘<span class="file">Makefile</span>’ did not work in 2.15.2. (Reported | |
| by Erich Neuwirth.) | |
| </p> | |
| </li> | |
| <li> <p><code>aperm(matrix(1:6, 2, dimnames=list(A={}, B={})), "A")</code> | |
| no longer segfaults. | |
| </p> | |
| </li> | |
| <li><p> Expressions involving user defined operators were not | |
| always deparsed faithfully. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15179">PR#15179</a>) | |
| </p> | |
| </li> | |
| <li><p> The <code>enc2utf8()</code> function converted <code>NA_character_</code> | |
| to <code>"NA"</code> in non-UTF-8 locales. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15201">PR#15201</a>) | |
| </p> | |
| </li> | |
| <li><p> The <code>exclude</code> argument to <code>xtabs()</code> was ignored | |
| for <code>"factor"</code> arguments. | |
| </p> | |
| </li> | |
| <li><p> On Windows, work around an event-timing problem when | |
| the RGui console was closed from the ‘X’ control and the closure | |
| cancelled. (This would on some 64-bit systems crash <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>, typically | |
| those with a slow GPU relative to the CPU.) | |
| </p> | |
| </li> | |
| <li><p> On unix <code>Rscript</code> will pass the <code>r_arch</code> setting | |
| it was compiled with on to the R process so that the architecture | |
| of <code>Rscript</code> and that of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> will match unless overridden. | |
| </p> | |
| </li> | |
| <li><p> On Windows, <code>basename()</code>, <code>dirname()</code> and | |
| <code>file.choose()</code> have more support for long non-ASCII file | |
| names with 260 or more bytes when expressed in UTF-8. | |
| </p> | |
| </li></ul> | |
| <h3><img class="toplogo" src="../help/figures/../../html/Rlogo.svg" alt="[R logo]" /> CHANGES IN R VERSION 2.15.2</h3> | |
| <h4>NEW FEATURES</h4> | |
| <ul> | |
| <li><p> The <code>X11()</code> window gains an icon: the | |
| latter may be especially useful on Ubuntu's ‘Unity’ | |
| interface. | |
| </p> | |
| <p>The <code>WM_CLASS</code> should be set in circumstances where the | |
| Window Manager failed to make use of X11 resource settings. | |
| </p> | |
| <p>(Contributed by Philip Johnson.) | |
| </p> | |
| </li> | |
| <li><p> The <code>"Date"</code> and <code>"POSIXt"</code> methods for | |
| <code>cut()</code> will accept an unsorted <code>breaks</code> argument (as | |
| the default method does, although this was undocumented). | |
| (Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14961">PR#14961</a>.) | |
| </p> | |
| </li> | |
| <li><p> Reference class methods (in the <span class="pkg">methods</span> package) that | |
| use other methods in an indirect way (e.g., by <code>sapply()</code>) | |
| must tell the code analysis to include that method. They can now | |
| do so by invoking <code>$usingMethods()</code>. | |
| </p> | |
| </li> | |
| <li><p> More Polish translations are available: for the | |
| <code>RGui</code> menus and for several recommended packages. | |
| </p> | |
| </li> | |
| <li><p> Multistratum MANOVA works. In fact, it seems to have done so | |
| for years in spite of the help page claiming it did not. | |
| </p> | |
| </li> | |
| <li> <p><code>qqline()</code> has new optional arguments | |
| <code>distribution</code>, <code>probs</code> and <code>qtype</code>, following the | |
| example of <a href="https://CRAN.R-project.org/package=lattice"><span class="pkg">lattice</span></a>'s <code>panel.qqmathline()</code>. | |
| </p> | |
| </li> | |
| <li><p> The handling of single quotes in the <code>en@quot</code> | |
| pseudo-language has been slightly improved. Double quotes are no | |
| longer converted. | |
| </p> | |
| </li> | |
| <li><p> New functions <code>checkPoFiles()</code> and <code>checkPoFile()</code> | |
| have been added to the <span class="pkg">tools</span> package to check for | |
| consistency of format strings in translation files. | |
| </p> | |
| </li> | |
| <li> <p><code>model.matrix(~1, ...)</code> now also contains the same | |
| rownames that less trivial formulae produce. (Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14992">PR#14992</a>, | |
| changes the output of several packages.) | |
| </p> | |
| </li> | |
| <li><p> Misuse of <code>rep()</code> on undocumented types of objects | |
| (e.g., calls) is now reported as an error. | |
| </p> | |
| </li> | |
| <li><p> The included LAPACK has been updated to 3.4.1, with some | |
| patches from the current SVN sources. (<em>Inter alia</em>, this | |
| resolves <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14692">PR#14692</a>.) | |
| </p> | |
| </li> | |
| <li> <p><code>file.copy(recursive = TRUE)</code> has some additional | |
| checks on user error leading to attempted infinite recursion (and on | |
| some platforms to crashing <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>). | |
| </p> | |
| </li> | |
| <li><p> PCRE has been updated to version 8.31, a bug-fix release. | |
| </p> | |
| </li> | |
| <li><p> The included version of <code>liblzma</code> has been updated to | |
| version 5.0.4, a minor bug-fix release. | |
| </p> | |
| </li> | |
| <li><p> New function <code>.bincode()</code>, a ‘bare-bones’ | |
| version of <code>cut.default(labels = FALSE)</code> for use in packages | |
| with <code>image()</code> methods. | |
| </p> | |
| </li> | |
| <li><p> The HTML manuals now use directional single quotes. | |
| </p> | |
| </li> | |
| <li> <p><code>maintainer()</code> now converts embedded new lines to | |
| spaces. It no longer gives a non-obvious error for non-installed | |
| packages. | |
| </p> | |
| </li> | |
| <li><p> The <code>X11()</code> device has some protection against | |
| being used with forked processes <em>via</em> package <span class="pkg">parallel</span>. | |
| </p> | |
| </li> | |
| <li><p> Setting the environment variable <span class="env">R_OSX_VALGRIND</span> (to | |
| any value) allows <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> to be run under <code>valgrind</code> on Mac OS | |
| 10.6 and 10.7 (<code>valgrind</code> currently has very limited | |
| support for 10.8), provided <code>system()</code> is not used (directly | |
| or indirectly). This should not be needed for <code>valgrind</code> | |
| >= 3.8.1. | |
| </p> | |
| </li> | |
| <li><p> The <code>model.frame()</code> method for <code>"lm"</code> uses | |
| <code>xlevels</code>: this is safer if <code>data</code> was supplied or | |
| <code>model = FALSE</code> was used and the levels of factors used in | |
| the fit had been re-ordered since fitting. | |
| </p> | |
| <p>Similarly, <code>model.frame(fm, data=<data>)</code> copies across | |
| the variables used for safe prediction from the fit. | |
| </p> | |
| </li> | |
| <li><p> Functions such as <code>parLapply()</code> in package | |
| <span class="pkg">parallel</span> can make use of a default cluster if one is set. | |
| (Reported by Martin Morgan.) | |
| </p> | |
| </li> | |
| <li> <p><code>chol(pivot = TRUE, LINPACK = FALSE)</code> is now available | |
| using LAPACK 3.2 subroutine <code>DPSTRF</code>. | |
| </p> | |
| </li> | |
| <li><p> The functions <code>.C()</code>, <code>.Call()</code>, | |
| <code>.External()</code> and <code>.Fortran()</code> now check that they are | |
| called with an unnamed first argument: the formal arguments were | |
| changed from <code>name=</code> to <code>.NAME=</code> in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.13.0, but some | |
| packages were still using the old name. This is currently a | |
| warning, but will be an error in future. | |
| </p> | |
| </li> | |
| <li> <p><code>step()</code> no longer tries to improve a model with | |
| AIC of <code>-Inf</code> (a perfect fit). | |
| </p> | |
| </li> | |
| <li> <p><code>spline()</code> and <code>splinefun()</code> gain a new method | |
| <code>"hyman"</code>, an implementation of Hyman's method of | |
| constructing monotonic interpolation splines. (Based on | |
| contributions of Simon Wood and Rob Hyndman.) | |
| </p> | |
| </li> | |
| <li><p> On Windows, the C stack size has been increased to 64MB (it | |
| has been 10MB since the days of 32MB RAM systems). | |
| </p> | |
| </li></ul> | |
| <h4>PERFORMANCE IMPROVEMENTS</h4> | |
| <ul> | |
| <li> <p><code>array()</code> is now implemented in C code (for speed) when | |
| <code>data</code> is atomic or an unclassed list (so it is known that | |
| <code>as.vector(data)</code> will have no class to be used by <code>rep()</code>). | |
| </p> | |
| </li> | |
| <li> <p><code>rep()</code> is faster and uses less memory, | |
| substantially so in some common cases (e.g., if <code>times</code> is of | |
| length one or <code>length.out</code> is given, and <code>each = 1</code>). | |
| </p> | |
| </li> | |
| <li> <p><code>findInterval()</code>, <code>tabulate()</code>, <code>cut()</code>, | |
| <code>hist()</code> and <code>image.default()</code> all use <code>.Call()</code> | |
| and are more efficient. | |
| </p> | |
| </li> | |
| <li> <p><code>duplicated()</code>, <code>unique()</code> and similar now | |
| support vectors of lengths above <i>2^29</i> on 64-bit | |
| platforms. | |
| </p> | |
| </li> | |
| <li><p> Omitting <code>PACKAGE</code> in <code>.C()</code> etc calls was | |
| supposed to make use of the DLL from the namespace within which | |
| the enclosing function was defined. It was less successful in | |
| doing so than it might be, and gave no indication it had failed. | |
| </p> | |
| <p>A new search strategy is very successful and gives a warning | |
| when it fails. In most cases this is because the entry point is | |
| not actually provided by that package (and so <code>PACKAGE</code> | |
| should be used to indicate which package is intended) but in some | |
| the namespace does not have a DLL specified by a | |
| <code>useDynLib()</code> directive so <code>PACKAGE</code> is required. | |
| </p> | |
| </li></ul> | |
| <h4>UTILITIES</h4> | |
| <ul> | |
| <li> <p><code>R CMD check</code> now checks if a package can be loaded | |
| by <code>library(pkgname, lib.loc = "somewhere")</code> without being on | |
| the library search path (unless it is already installed in | |
| <code>.Library</code>, when it always will be). | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check --as-cran</code> notes ‘hidden’ files | |
| and directories (with names starting with a dot) that are not | |
| needed for the operation of <code>R CMD INSTALL</code> or <code>R CMD | |
| build</code>: such files should be excluded from the published tarball. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> (if checking subdirectories) checks | |
| that the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> code in any demos is ASCII and can be parsed, and | |
| warns if not. | |
| </p> | |
| </li> | |
| <li><p> When <code>R CMD Rd2pdf</code> is used with ‘<span class="file">inputenx.sty</span>’, | |
| it allows further characters (mainly for Eastern European | |
| languages) by including ‘<span class="file">ix-utf8enc.dfu</span>’ (if available). | |
| (Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14989">PR#14989</a>.) | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD build</code> now omits several types of hidden | |
| files/directories, including ‘<span class="file">inst/doc/.Rinstignore</span>’, | |
| ‘<span class="file">vignettes/.Rinstignore</span>’, (‘<span class="file">.Rinstignore</span>’ should be at | |
| top level), ‘<span class="file">.deps</span>’ under ‘<span class="file">src</span>’, ‘<span class="file">.Renviron</span>’, | |
| ‘<span class="file">.Rprofile</span>’, ‘<span class="file">.Rproj.user</span>’, ‘<span class="file">.backups</span>’, | |
| ‘<span class="file">.cvsignore</span>’, ‘<span class="file">.cproject</span>’, ‘<span class="file">.directory</span>’, | |
| ‘<span class="file">.dropbox</span>’, ‘<span class="file">.exrc</span>’, ‘<span class="file">.gdb.history</span>’, | |
| ‘<span class="file">.gitattributes</span>’, ‘<span class="file">.gitignore</span>’, ‘<span class="file">.gitmodules</span>’, | |
| ‘<span class="file">.hgignore</span>’, ‘<span class="file">.hgtags</span>’, ‘<span class="file">.htaccess</span>’, | |
| ‘<span class="file">.latex2html-init</span>’, ‘<span class="file">.project</span>’, ‘<span class="file">.seed</span>’, | |
| ‘<span class="file">.settings</span>’, ‘<span class="file">.tm_properties</span>’ and various leftovers. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> now checks for <code>.C()</code>, | |
| <code>.Call()</code>, <code>.External()</code> and <code>.Fortran()</code> calls in | |
| other packages, and gives a warning on those found from <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> itself | |
| (which are not part of the API and change without notice: many | |
| will be changed for <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.0.0). | |
| </p> | |
| </li></ul> | |
| <h4>C-LEVEL FACILITIES</h4> | |
| <ul> | |
| <li><p> The limit for <code>R_alloc</code> on 64-bit platforms has been | |
| raised to just under 32GB (from just under 16GB). | |
| </p> | |
| </li> | |
| <li><p> The misuse of <code>.C("name", ..., PACKAGE = foo)</code> where | |
| <code>foo</code> is an arbitrary <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> object is now an error. | |
| </p> | |
| <p>The misuse <code>.C("name",..., PACKAGE = "")</code> is now warned about | |
| in <code>R CMD check</code>, and will be an error in future. | |
| </p> | |
| </li></ul> | |
| <h4>DEPRECATED AND DEFUNCT</h4> | |
| <ul> | |
| <li><p> Use of <code>array()</code> with a 0-length <code>dim</code> argument is | |
| deprecated with a warning (and was contrary to the documentation). | |
| </p> | |
| </li> | |
| <li><p> Use of <code>tapply()</code> with a 0-length <code>INDEX</code> list is | |
| deprecated with a warning. | |
| </p> | |
| </li> | |
| <li> <p><span class="samp">Translation</span> packages are deprecated. | |
| </p> | |
| </li> | |
| <li><p> Calling <code>rep()</code> or <code>rep.int()</code> on a pairlist is | |
| deprecated and will give a warning. In any case, <code>rep()</code> | |
| converted a pairlist to a list so you may as well do that | |
| explicitly. | |
| </p> | |
| </li> | |
| <li><p> Entry point <code>rcont2</code> is no longer part of the API, and | |
| will move to package <span class="pkg">stats</span> in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.0.0. | |
| </p> | |
| </li> | |
| <li><p> The ‘internal’ graphics device invoked by | |
| <code>.Call("R_GD_nullDevice", package = "grDevices")</code> is about to | |
| be removed: use <code>pdf(file = NULL)</code> instead. | |
| </p> | |
| </li> | |
| <li> <p><code>eigen(EISPACK = TRUE)</code>, | |
| <code>chol(pivot = FALSE, LINPACK = TRUE)</code>, | |
| <code>chol2inv(LINPACK = TRUE)</code>, <code>solve(LINPACK = TRUE)</code> and | |
| <code>svd(LINPACK = TRUE)</code> are deprecated and give a warning. | |
| </p> | |
| <p>They were provided for compatibility with <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 1.7.0 (Mar 2003)! | |
| </p> | |
| </li> | |
| <li><p> The ‘internal function’ <code>kappa.tri()</code> has been | |
| renamed to <code>.kappa_tri()</code> so it is not inadvertently called | |
| as a method for class <code>"tri"</code>. | |
| </p> | |
| </li> | |
| <li><p> Functions <code>sessionData()</code> and <code>browseAll()</code> in | |
| package <span class="pkg">methods</span> are on a help page describing them as | |
| ‘deprecated’ and are now formally deprecated. | |
| </p> | |
| </li></ul> | |
| <h4>PACKAGE INSTALLATION</h4> | |
| <ul> | |
| <li><p> For a Windows or Mac OS X binary package install, | |
| <code>install.packages()</code> will check if a source package is | |
| available on the same repositories, and report if it is a later | |
| version or there is a source package but no binary package | |
| available. | |
| </p> | |
| <p>This check can be suppressed: see the help page. | |
| </p> | |
| </li> | |
| <li> <p><code>install.packages(type = "both")</code> has been enhanced. | |
| In interactive use it will ask whether to choose the source | |
| version of a package if the binary version is older and contains | |
| compiled code, and also asks if source packages with no binary | |
| version should be installed). | |
| </p> | |
| </li></ul> | |
| <h4>INSTALLATION</h4> | |
| <ul> | |
| <li><p> There is a new <code>configure</code> option | |
| <span class="option">--with-libtiff</span> (mainly in case the system installation | |
| needs to be avoided). | |
| </p> | |
| </li> | |
| <li><p> LAPACK 3.4.1 does use some Fortran 90 features, so | |
| <code>g77</code> no longer suffices. | |
| </p> | |
| </li> | |
| <li><p> If an external LAPACK is used, it must be version 3.2 or later. | |
| </p> | |
| </li></ul> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li><p> On Windows, starting <code>Rterm</code> via <code>R.exe</code> | |
| caused Ctrl-C to misbehave. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14948">PR#14948</a>) | |
| </p> | |
| </li> | |
| <li><p> The <code>tools::latexToUtf8()</code> function missed conversions that | |
| were contained within braces. | |
| </p> | |
| </li> | |
| <li><p> Long timezone specifications (such as a file name preceded | |
| by <code>:</code>) could crash <code>as.POSIXlt</code>. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14945">PR#14945</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD build --resave-data</code> could fail if there was no | |
| ‘<span class="file">data</span>’ directory but there was an ‘<span class="file">R/sysdata.rda</span>’ file. | |
| (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14947">PR#14947</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>is.na()</code> misbehaved on a 0-column data frame. | |
| (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14959">PR#14959</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>anova.lmlist()</code> failed if <code>test</code> was | |
| supplied. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14960">PR#14960</a>) | |
| </p> | |
| <p>It was unable to compute Cp tests for object of class <code>"lm"</code> | |
| (it assumed class <code>"glm"</code>). | |
| </p> | |
| </li> | |
| <li><p> The <code>formula</code> method for <code>sunflowerplot()</code> now | |
| allows <code>xlab</code> and <code>ylab</code> to be set. (Reported by Gerrit | |
| Eichner.) | |
| </p> | |
| </li> | |
| <li><p> The <code>"POSIXt"</code> and <code>"Date"</code> methods for <code>hist()</code> | |
| could fail on Windows where adjustments to the right-hand boundary | |
| crossed a DST transition time. | |
| </p> | |
| </li> | |
| <li><p> On Windows, the code in <code>as.POSIXct()</code> to handle | |
| incorrectly specified <code>isdst</code> fields might have resulted in | |
| <code>NA</code> being returned. | |
| </p> | |
| </li> | |
| <li> <p><code>aov()</code> and <code>manova()</code> gave spurious warning about | |
| singular error model in the multiresponse case. | |
| </p> | |
| </li> | |
| <li><p> In <code>ns()</code> and <code>bs()</code>, specifying <code>knots = NULL</code> | |
| is now equivalent to omitting it, also when <code>df</code> is | |
| specified. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14970">PR#14970</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>sprintf()</code> did not accept numbered arguments ending | |
| in zero. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14975">PR#14975</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>rWishart()</code> could overflow the C stack and maybe crash | |
| the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> process for dimensions of several hundreds or more. | |
| (Reported by Michael Braun on R-sig-mac.) | |
| </p> | |
| </li> | |
| <li><p> Base package vignettes (e.g., <code>vignette("Sweave")</code>) were | |
| not fully installed in builds of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> from the tarball. | |
| </p> | |
| </li> | |
| <li> <p><code>lchoose()</code> and <code>choose()</code> could overflow the C | |
| stack and crash <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>. | |
| </p> | |
| </li> | |
| <li><p> When given a 0-byte file and asked to keep source | |
| references, <code>parse()</code> read input from <code>stdin()</code> | |
| instead. | |
| </p> | |
| </li> | |
| <li> <p><code>pdf(compress = TRUE)</code> did not delete temporary files | |
| it created until the end of the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> session. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14991">PR#14991</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>logLik()</code> did not detect the error of applying it | |
| to a multiple-response linear model. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15000">PR#15000</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>file.copy(recursive = TRUE)</code> did not always report | |
| <code>FALSE</code> for a failure two or more directories deep. | |
| </p> | |
| </li> | |
| <li> <p><code>qgeom()</code> could return <code>-1</code> for extremely small | |
| <code>q</code>. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14967">PR#14967</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>smooth.spline()</code> used <code>DUP = FALSE</code> which allowed | |
| its compiled C code to change the function: this was masked by the | |
| default byte-compilation. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14965">PR#14965</a>) | |
| </p> | |
| </li> | |
| <li><p> In Windows, the GUI preferences for foreground color were | |
| not always respected. (Reported by Benjamin Wells.) | |
| </p> | |
| </li> | |
| <li><p> On OS X, the Quartz versions of the bitmap devices did not | |
| respect <code>antialias = "none"</code>. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15006">PR#15006</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>unique()</code> and similar would infinite-loop if called on | |
| a vector of length > <i>2^29</i> (but reported that the | |
| vector was too long for <i>2^30</i> or more). | |
| </p> | |
| </li> | |
| <li> <p><code>parallel::stopCluster()</code> now works with MPI | |
| clusters without <a href="https://CRAN.R-project.org/package=snow"><span class="pkg">snow</span></a> being on the search path. | |
| </p> | |
| </li> | |
| <li> <p><code>terms.formula()</code> could exhaust the stack, and the | |
| stack check did not always catch this before the segfault. | |
| (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15013">PR#15013</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>sort.list(method = "radix")</code> could give incorrect | |
| results on certain compilers (seen with <code>clang</code> on Mac OS | |
| 10.7 and <code>Xcode 4.4.1</code>). | |
| </p> | |
| </li> | |
| <li> <p><code>backsolve(T, b)</code> gave incorrect results when | |
| <code>nrows(b) > ncols(T)</code> and <code>b</code> had more than one column. | |
| </p> | |
| <p>It could segfault or give nonsense if <code>k</code> was specified as | |
| more than <code>ncols(T)</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>smooth.spline()</code> did not check that a specified | |
| numeric <code>spar</code> was of length 1, and gave corrupt results if | |
| it was of length 0. | |
| </p> | |
| </li> | |
| <li><p> Protection added to <code>do_system</code>. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15025">PR#15025</a>) | |
| </p> | |
| </li> | |
| <li><p> Printing of vectors with names > 1000 characters now works | |
| correctly rather than truncating. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15028">PR#15028</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>qr()</code> for a complex matrix did not pivot the column names. | |
| </p> | |
| </li> | |
| <li> <p><code>--with-blas='-framework vecLib'</code> now also works on OS X 10.8. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> no longer fails with an error if | |
| a ‘<span class="file">DESCRIPTION</span>’ file incorrectly contains a blank line. | |
| (Reported by Bill Dunlap.) | |
| </p> | |
| </li> | |
| <li> <p><code>install.packages(type = "both")</code> could call | |
| <code>chooseCRANmirror()</code> twice. | |
| </p> | |
| </li> | |
| <li> <p><code>lm.wfit()</code> could segfault in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.15.1 if all the | |
| weights were zero. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15044">PR#15044</a>) | |
| </p> | |
| </li> | |
| <li><p> A malformed package name could cause <code>R CMD INSTALL</code> | |
| to write outside the target library. | |
| </p> | |
| </li> | |
| <li><p> Some of the quality control functions | |
| (e.g., <code>tools::checkFF()</code>) were wrongly identifying the source | |
| of S4 methods in a package and so not checking them. | |
| </p> | |
| </li> | |
| <li><p> The default type of display by <code>browseEnv()</code> when using | |
| <code>R.app</code> on Mac OS X has been incorrect for a long time. | |
| </p> | |
| </li> | |
| <li><p> The implementation of <code>importMethodsFrom</code> in a | |
| <code>NAMESPACE</code> file could be confused and fail to find generics | |
| when importing from multiple packages (reported and fixed by | |
| Michael Lawrence). | |
| </p> | |
| </li> | |
| <li><p> The detection of the C stack direction is better protected | |
| against compiler optimization. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15011">PR#15011</a>) | |
| </p> | |
| </li> | |
| <li><p> Long custom line types would sometimes segfault on the | |
| cairographics-based devices. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15055">PR#15055</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>tools::checkPoFile()</code> unprotected too early in its C | |
| code and so segfaulted from time to time. | |
| </p> | |
| </li> | |
| <li><p> The Fortran code underlying <code>nlminb()</code> could | |
| infinite-loop if any of the input functions returned <code>NA</code> or | |
| <code>NaN</code>. This is now an error for the gradient or Hessian, and | |
| a warning for the function (with the value replaced by | |
| <code>Inf</code>). (In part, <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15052">PR#15052</a>.) | |
| </p> | |
| </li> | |
| <li><p> The code for creating <code>coerce()</code> methods could | |
| generate false notes about ambiguous selection; the notes have | |
| been suppressed for this function. | |
| </p> | |
| </li> | |
| <li> <p><code>arima.sim()</code> could give too long an output in some | |
| corner cases (in part, <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15068">PR#15068</a>). | |
| </p> | |
| </li> | |
| <li> <p><code>anova.glm()</code> with <code>test = "Rao"</code> didn't work when | |
| models included an offset. (Reported by Søren Feodor Nielsen.) | |
| </p> | |
| </li> | |
| <li> <p><code>as.data.frame.matrix()</code> could return invalid data | |
| frame with no <code>row.names</code> attribute for 0-row matrix. (Reported | |
| by Hervé Pagès.) | |
| </p> | |
| </li> | |
| <li><p> Compilation with the <code>vecLib</code> or <code>Accelerate</code> | |
| frameworks on OS X without using that also for LAPACK is more | |
| likely to be successful. | |
| </p> | |
| </li></ul> | |
| <h3><img class="toplogo" src="../help/figures/../../html/Rlogo.svg" alt="[R logo]" /> CHANGES IN R VERSION 2.15.1</h3> | |
| <h4>NEW FEATURES</h4> | |
| <ul> | |
| <li> <p><code>source()</code> now uses <code>withVisible()</code> rather than | |
| <code>.Internal(eval.with.vis)</code>. This sometimes alters tracebacks | |
| slightly. | |
| </p> | |
| </li> | |
| <li> <p><code>install.packages("pkg_version.tgz")</code> on Mac OS X now | |
| has sanity checks that this is actually a binary package (as | |
| people have tried it with incorrectly named source packages). | |
| </p> | |
| </li> | |
| <li> <p><code>splineDesign()</code> and <code>spline.des()</code> in package | |
| <span class="pkg">splines</span> have a new option <code>sparse</code> which can be used | |
| for efficient construction of a sparse B-spline design matrix | |
| (<em>via</em> <a href="https://CRAN.R-project.org/package=Matrix"><span class="pkg">Matrix</span></a>). | |
| </p> | |
| </li> | |
| <li> <p><code>norm()</code> now allows <code>type = "2"</code> (the | |
| ‘spectral’ or 2-norm) as well, mainly for didactical | |
| completeness. | |
| </p> | |
| </li> | |
| <li> <p><code>pmin()</code> and <code>pmax())</code> now also work when one of | |
| the inputs is of length zero and others are not, returning a | |
| zero-length vector, analogously to, say, <code>+</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>colorRamp()</code> (and hence <code>colorRampPalette()</code>) now | |
| also works for the boundary case of just one color when the ramp is | |
| flat. | |
| </p> | |
| </li> | |
| <li> <p><code>.C()</code> gains some protection against the misuse of | |
| character vector arguments. (An all too common error is to pass | |
| <code>character(N)</code>, which initializes the elements to <code>""</code>, | |
| and then attempt to edit the strings in-place, sometimes forgetting | |
| to terminate them.) | |
| </p> | |
| </li> | |
| <li><p> Calls to the new function <code>globalVariables()</code> in | |
| package <span class="pkg">utils</span> declare that functions and other objects in a | |
| package should be treated as globally defined, so that <code>CMD | |
| check</code> will not note them. | |
| </p> | |
| </li> | |
| <li> <p><code>print(packageDescription(*))</code> trims the <code>Collate</code> | |
| field by default. | |
| </p> | |
| </li> | |
| <li><p> The included copy of <code>zlib</code> has been updated to version | |
| 1.2.7. | |
| </p> | |
| </li> | |
| <li><p> A new option <code>"show.error.locations"</code> has been added. | |
| When set to <code>TRUE</code>, error messages will contain the | |
| location of the most recent call containing source reference | |
| information. (Other values are supported as well; see | |
| <code>?options</code>.) | |
| </p> | |
| </li> | |
| <li><p> The NA warning messages from e.g. <code>pchisq()</code> now report | |
| the call to the closure and not that of the <code>.Internal</code>. | |
| </p> | |
| </li> | |
| <li><p> Added Polish translations by Łukasz Daniel. | |
| </p> | |
| </li></ul> | |
| <h4>PERFORMANCE IMPROVEMENTS</h4> | |
| <ul> | |
| <li><p> In package <span class="pkg">parallel</span>, <code>makeForkCluster()</code> and the | |
| multicore-based functions use native byte-order for serialization | |
| (deferred from 2.15.0). | |
| </p> | |
| </li> | |
| <li> <p><code>lm.fit()</code>, <code>lm.wfit()</code>, <code>glm.fit()</code> and | |
| <code>lsfit()</code> do less copying of objects, mainly by using | |
| <code>.Call()</code> rather than <code>.Fortran()</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>.C()</code> and <code>.Fortran()</code> do less copying: arguments | |
| which are raw, logical, integer, real or complex vectors and are | |
| unnamed are not copied before the call, and (named or not) are not | |
| copied after the call. Lists are no longer copied (they are | |
| supposed to be used read-only in the C code). | |
| </p> | |
| </li> | |
| <li> <p><code>tabulate()</code> makes use of <code>.C(DUP = FALSE)</code> and | |
| hence does not copy <code>bin</code>. (Suggested by Tim Hesterberg.) | |
| It also avoids making a copy of a factor argument <code>bin</code>. | |
| </p> | |
| </li> | |
| <li><p> Other functions (often or always) doing less copying include | |
| <code>cut()</code>, <code>dist()</code>, the complex case of <code>eigen()</code>, | |
| <code>hclust()</code>, <code>image()</code>, <code>kmeans()</code>, <code>loess()</code>, | |
| <code>stl()</code> and <code>svd(LINPACK = TRUE)</code>. | |
| </p> | |
| </li> | |
| <li><p> There is less copying when using primitive replacement | |
| functions such as <code>names()</code>, <code>attr()</code> and | |
| <code>attributes()</code>. | |
| </p> | |
| </li></ul> | |
| <h4>DEPRECATED AND DEFUNCT</h4> | |
| <ul> | |
| <li><p> The converters for use with <code>.C()</code> (see | |
| <code>?getCConverterDescriptions</code>) are deprecated: use the | |
| <code>.Call()</code> interface instead. There are no known examples | |
| (they were never fully documented). | |
| </p> | |
| </li></ul> | |
| <h4>UTILITIES</h4> | |
| <ul> | |
| <li><p> For <code>R CMD check</code>, a few people have reported | |
| problems with junctions on Windows (although they were tested on | |
| Windows 7, XP and Server 2008 machines and it is unknown under | |
| what circumstances the problems occur). Setting the environment | |
| variable <span class="env">R_WIN_NO_JUNCTIONS</span> to a non-empty value (e.g., in | |
| ‘<span class="file">~/.R/check.Renviron</span>’) will force copies to be used instead. | |
| </p> | |
| </li></ul> | |
| <h4>INSTALLATION</h4> | |
| <ul> | |
| <li> <p><code>R CMD INSTALL</code> with <span class="env">_R_CHECK_INSTALL_DEPENDS_</span> | |
| set to a true value (as done by <code>R CMD check --as-cran</code>) | |
| now restricts the packages available when lazy-loading as well | |
| as when test-loading (since packages such as <a href="https://CRAN.R-project.org/package=ETLUtils"><span class="pkg">ETLUtils</span></a> | |
| and <a href="https://CRAN.R-project.org/package=agsemisc"><span class="pkg">agsemisc</span></a> had top-level calls to <code>library()</code> | |
| for undeclared packages). | |
| </p> | |
| <p>This check is now also available on Windows. | |
| </p> | |
| </li></ul> | |
| <h4>C-LEVEL FACILITIES</h4> | |
| <ul> | |
| <li><p> C entry points <code>mkChar</code> and <code>mkCharCE</code> now check | |
| that the length of the string they are passed does not exceed | |
| <i>2^31-1</i> bytes: they used to overflow with | |
| unpredictable consequences. | |
| </p> | |
| </li> | |
| <li><p> C entry points <code>R_GetCurrentSrcref</code> and | |
| <code>R_GetSrcFilename</code> have been added to the API to allow | |
| debuggers access to the source references on the stack. | |
| </p> | |
| </li></ul> | |
| <h4>WINDOWS-SPECIFIC CHANGES</h4> | |
| <ul> | |
| <li><p> Windows-specific changes will now be announced in this file | |
| (‘<span class="file">NEWS</span>’). Changes up and including <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.15.0 remain in the | |
| ‘<span class="file">CHANGES</span>’ file. | |
| </p> | |
| </li> | |
| <li><p> There are two new environment variables which | |
| control the defaults for command-line options. | |
| </p> | |
| <p>If <span class="env">R_WIN_INTERNET2</span> is set to a non-empty value, it is as if | |
| <span class="option">--internet2</span> was used. | |
| </p> | |
| <p>If <span class="env">R_MAX_MEM_SIZE</span> is set, it gives the default memory limit | |
| if <span class="option">--max-mem-size</span> is not specified: invalid values being | |
| ignored. | |
| </p> | |
| </li></ul> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li> <p><code>lsfit()</code> lost the names from the residuals. | |
| </p> | |
| </li> | |
| <li><p> More cases in which <code>merge()</code> could create a data frame | |
| with duplicate column names now give warnings. Cases where | |
| names specified in <code>by</code> match multiple columns are errors. | |
| </p> | |
| </li> | |
| <li><p> Nonsense uses such as <code>seq(1:50, by = 5)</code> (from package | |
| <a href="https://CRAN.R-project.org/package=plotrix"><span class="pkg">plotrix</span></a>) and <code>seq.int(1:50, by = 5)</code> are now errors. | |
| </p> | |
| </li> | |
| <li><p> The residuals in the 5-number summary printed by | |
| <code>summary()</code> on an <code>"lm"</code> object are now explicitly | |
| labelled as weighted residuals when non-constant weights are | |
| present. (Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14840">PR#14840</a>.) | |
| </p> | |
| </li> | |
| <li> <p><code>tracemem()</code> reported that all objects were copied | |
| by <code>.C()</code> or <code>.Fortran()</code> whereas only some object types | |
| were ever copied. | |
| </p> | |
| <p>It also reported and marked as copies <em>some</em> transformations | |
| such as <code>rexp(n, x)</code>: it no longer does so. | |
| </p> | |
| </li> | |
| <li><p> The <code>plot()</code> method for class <code>"stepfun"</code> only | |
| used the optional <code>xval</code> argument to compute <code>xlim</code> and | |
| not the points at which to plot (as documented). (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14864">PR#14864</a>) | |
| </p> | |
| </li> | |
| <li><p> Names containing characters which need to be escaped were | |
| not deparsed properly. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14846">PR#14846</a>) | |
| </p> | |
| </li> | |
| <li><p> Trying to update (recommended) packages in | |
| ‘<span class="file">R_HOME/library</span>’ without write access is now dealt with more | |
| gracefully. Further, such package updates may be skipped (with a | |
| warning), when a newer installed version is already going to be | |
| used from <code>.libPaths()</code>. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14866">PR#14866</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>hclust()</code> is now fast again (as up to end of 2003), | |
| with a different fix for the "median"/"centroid" problem. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=4195">PR#4195</a>). | |
| </p> | |
| </li> | |
| <li> <p><code>get_all_vars()</code> failed when the data came entirely | |
| from vectors in the global environment. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14847">PR#14847</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> with <span class="env">_R_CHECK_NO_RECOMMENDED_</span> | |
| set to a true value (as done by the <code>--as-cran</code> option) | |
| could issue false errors if there was an indirect dependency | |
| on a recommended package. | |
| </p> | |
| </li> | |
| <li> <p><code>formatC()</code> uses the C entry point <code>str_signif</code> | |
| which could write beyond the length allocated for the output string. | |
| </p> | |
| </li> | |
| <li><p> Missing default argument added to implicit S4 generic for | |
| <code>backsolve()</code>. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14883">PR#14883</a>) | |
| </p> | |
| </li> | |
| <li><p> Some bugs have been fixed in handling load actions that | |
| could fail to export assigned items or generate spurious warnings | |
| in <code>CMD check</code> on loading. | |
| </p> | |
| </li> | |
| <li><p> For <code>tiff(type = "windows")</code>, the numbering of per-page | |
| files except the last was off by one. | |
| </p> | |
| </li> | |
| <li><p> On Windows, loading package <span class="pkg">stats</span> (which is done for | |
| a default session) would switch line endings on ‘<span class="file">stdout</span>’ | |
| and ‘<span class="file">stderr</span>’ from CRLF to LF. This affected | |
| <code>Rterm</code> and <code>R CMD BATCH</code>. | |
| </p> | |
| </li> | |
| <li><p> On Windows, the compatibility function <code>x11()</code> had | |
| not kept up with changes to <code>windows()</code>, and issued | |
| warnings about bad parameters. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14880">PR#14880</a>) | |
| </p> | |
| </li> | |
| <li><p> On Windows, the <code>Sys.glob()</code> function did not handle | |
| UNC paths as it was designed to try to do. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14884">PR#14884</a>) | |
| </p> | |
| </li> | |
| <li><p> In package <span class="pkg">parallel</span>, <code>clusterApply()</code> and similar | |
| failed to handle a (pretty pointless) length-1 argument. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14898">PR#14898</a>) | |
| </p> | |
| </li> | |
| <li><p> Quartz Cocoa display reacted asynchronously to | |
| <code>dev.flush()</code> which means that the redraw could be performed | |
| after the plot has been already modified by subsequent code. The | |
| redraw is now done synchronously in <code>dev.flush()</code> to allow | |
| animations without sleep cycles. | |
| </p> | |
| </li> | |
| <li><p> Source locations reported in <code>traceback()</code> were | |
| incorrect when byte-compiled code was on the stack. | |
| </p> | |
| </li> | |
| <li> <p><code>plogis(x, lower = FALSE, log.p = TRUE)</code> no longer | |
| underflows early for large x (e.g., 800). | |
| </p> | |
| </li> | |
| <li> <p><code>?Arithmetic</code>'s “<code>1 ^ y</code> and <code>y ^ 0</code> | |
| are <code>1</code>, <em>always</em>” now also applies for <code>integer</code> | |
| vectors <code>y</code>. | |
| </p> | |
| </li> | |
| <li><p> X11-based pixmap devices like <code>png(type = "Xlib")</code> were | |
| trying to set the cursor style, which triggered some warnings and | |
| hangs. | |
| </p> | |
| </li> | |
| <li><p> Code executed by the built-in HTTP server no longer allows | |
| other HTTP clients to re-enter <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> until the current worker | |
| evaluation finishes, to prevent cascades. | |
| </p> | |
| </li> | |
| <li><p> The <code>plot()</code> and <code>Axis()</code> methods for class | |
| <code>"table"</code> now respect graphical parameters such as | |
| <code>cex.axis</code>. (Reported by Martin Becker.) | |
| </p> | |
| </li> | |
| <li><p> Under some circumstances <code>package.skeleton()</code> would | |
| give out progress reports that could not be translated and so were | |
| displayed by question marks. Now they are always in English. | |
| (This was seen for CJK locales on Windows, but may have occurred | |
| elsewhere.) | |
| </p> | |
| </li> | |
| <li><p> The evaluator now keeps track of source references outside | |
| of functions, e.g. when <code>source()</code> executes a script. | |
| </p> | |
| </li> | |
| <li><p> The replacement method for <code>window()</code> now works | |
| correctly for multiple time series of class <code>"mts"</code>. | |
| (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14925">PR#14925</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>is.unsorted()</code> gave incorrect results on non-atomic | |
| objects such as data frames. (Reported by Matthew Dowle.) | |
| </p> | |
| </li> | |
| <li><p> The value returned by <code>tools::psnice()</code> for invalid | |
| <code>pid</code> values was not always <code>NA</code> as documented. | |
| </p> | |
| </li> | |
| <li><p> Closing an <code>X11()</code> window while <code>locator()</code> was | |
| active could abort the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> process. | |
| </p> | |
| </li> | |
| <li> <p><code>getMethod(f, sig)</code> produced an incorrect error message | |
| in some cases when <code>f</code> was not a string). | |
| </p> | |
| </li> | |
| <li><p> Using a string as a “call” in an error condition | |
| with <code>options(showErrorCalls=TRUE)</code> could cause a segfault. | |
| (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14931">PR#14931</a>) | |
| </p> | |
| </li> | |
| <li><p> The string <code>"infinity"</code> allowed by C99 was not accepted | |
| as a numerical string value by e.g. <code>scan()</code> and | |
| <code>as.numeric()</code>. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14933">PR#14933</a>) | |
| </p> | |
| </li> | |
| <li><p> In <code>legend()</code>, setting some entries of <code>lwd</code> to | |
| <code>NA</code> was inconsistent (depending on the graphics device) in | |
| whether it would suppress those lines; now it consistently does | |
| so. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14926">PR#14926</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>by()</code> failed for a zero-row data frame. (Reported by | |
| Weiqiang Qian.) | |
| </p> | |
| </li> | |
| <li><p> The Yates' correction in <code>chisq.test()</code> could be bigger | |
| than the terms it corrected, previously leading to an infinite | |
| test statistic in some corner cases which are now reported as | |
| <code>NaN</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>xgettext()</code> and related functions sometimes returned | |
| items that were not strings for translation. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14935">PR#14935</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>plot(<lm>, which=5)</code> now correctly labels the factor | |
| level combinations for the special case where all | |
| <i>h[i,i]</i> are the same. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14837">PR#14837</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>Sys.glob()</code> caused a segfault if the first element of | |
| <code>path</code> was <code>NA_character</code>. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14990">PR#14990</a>) | |
| </p> | |
| </li></ul> | |
| <h3><img class="toplogo" src="../help/figures/../../html/Rlogo.svg" alt="[R logo]" /> CHANGES IN R VERSION 2.15.0</h3> | |
| <h4>SIGNIFICANT USER-VISIBLE CHANGES</h4> | |
| <ul> | |
| <li><p> The behaviour of <code>unlink(recursive = TRUE)</code> for a | |
| symbolic link to a directory has changed: it now removes the link | |
| rather than the directory contents (just as <code>rm -r</code> does). | |
| </p> | |
| <p>On Windows it no longer follows reparse points (including | |
| junctions and symbolic links). | |
| </p> | |
| </li></ul> | |
| <h4>NEW FEATURES</h4> | |
| <ul> | |
| <li><p> Environment variable <span class="env">RD2DVI_INPUTENC</span> has been renamed | |
| to <span class="env">RD2PDF_INPUTENC</span>. | |
| </p> | |
| </li> | |
| <li> <p><code>.Deprecated()</code> becomes a bit more flexible, getting an | |
| <code>old</code> argument. | |
| </p> | |
| </li> | |
| <li><p> Even data-only packages without <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> code need a namespace and | |
| so may need to be installed under <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.14.0 or later. | |
| </p> | |
| </li> | |
| <li> <p><code>assignInNamespace()</code> has further restrictions on use | |
| apart from at top-level, as its help page has warned. | |
| Expect it to be disabled from programmatic use in the future. | |
| </p> | |
| </li> | |
| <li> <p><code>system()</code> and <code>system2()</code> when capturing output | |
| report a non-zero status in the new <code>"status"</code> attribute. | |
| </p> | |
| </li> | |
| <li> <p><code>kronecker()</code> now has an S4 generic in package | |
| <span class="pkg">methods</span> on which packages can set methods. It will be | |
| invoked by <code>X %x% Y</code> if either <code>X</code> or <code>Y</code> is an S4 | |
| object. | |
| </p> | |
| </li> | |
| <li> <p><code>pdf()</code> accepts forms like <code>file = "|lpr"</code> in the | |
| same way as <code>postscript()</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>pdf()</code> accepts <code>file = NULL</code>. | |
| This means that the device does NOT create a PDF file | |
| (but it can still be queried, e.g., for font metric info). | |
| </p> | |
| </li> | |
| <li> <p><code>format()</code> (and hence <code>print()</code>) on | |
| <code>"bibentry"</code> objects now uses <code>options("width")</code> to | |
| set the output width. | |
| </p> | |
| </li> | |
| <li> <p><code>legend()</code> gains a <code>text.font</code> argument. (Suggested | |
| by Tim Paine, <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14719">PR#14719</a>.) | |
| </p> | |
| </li> | |
| <li> <p><code>nchar()</code> and <code>nzchar()</code> no longer accept factors | |
| (as integer vectors). (Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=6899">PR#6899</a>.) | |
| </p> | |
| </li> | |
| <li> <p><code>summary()</code> behaves slightly differently (or more | |
| precisely, its <code>print()</code> method does). For numeric inputs, the | |
| number of NAs is printed as an integer and not a real. For dates | |
| and datetimes, the number of NAs is included in the printed output | |
| (the latter being the wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14720">PR#14720</a>). | |
| </p> | |
| <p>The <code>"data.frame"</code> method is more consistent with the default | |
| method: in particular it now applies <code>zapsmall()</code> to | |
| numeric/complex summaries. | |
| </p> | |
| </li> | |
| <li><p> The number of items retained with <code>options(warn = 0)</code> | |
| can be set by <code>options(nwarnings=)</code>. | |
| </p> | |
| </li> | |
| <li><p> There is a new function <code>assignInMyNamespace()</code> which | |
| uses the namespace of the function it is called from. | |
| </p> | |
| </li> | |
| <li> <p><code>attach()</code> allows the default name for an attached file | |
| to be overridden. | |
| </p> | |
| </li> | |
| <li> <p><code>bxp()</code>, the work horse of <code>boxplot()</code>, now uses a | |
| more sensible default <code>xlim</code> in the case where <code>at</code> is | |
| specified differently from <code>1:n</code>, see the discussion on R-devel, | |
| <a href="https://stat.ethz.ch/pipermail/r-devel/2011-November/062586.html">https://stat.ethz.ch/pipermail/r-devel/2011-November/062586.html</a>. | |
| </p> | |
| </li> | |
| <li><p> New function <code>paste0()</code>, an efficient version of | |
| <code>paste(*, sep="")</code>, to be used in many places for more | |
| concise (and slightly more efficient) code. | |
| </p> | |
| </li> | |
| <li><p> Function <code>setClass()</code> in package <span class="pkg">methods</span> now | |
| returns, invisibly, a generator function for the new class, | |
| slightly preferred to calling <code>new()</code>, as explained on the | |
| <code>setClass</code> help page. | |
| </p> | |
| </li> | |
| <li><p> The <code>"dendrogram"</code> method of <code>str()</code> now takes | |
| its default for <code>last.str</code> from option <code>str.dendrogram.last</code>. | |
| </p> | |
| </li> | |
| <li><p> New simple <code>fitted()</code> method for <code>"kmeans"</code> objects. | |
| </p> | |
| </li> | |
| <li><p> The <code>traceback()</code> function can now be called with | |
| an integer argument, to display a current stack trace. (Wish of | |
| <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14770">PR#14770</a>.) | |
| </p> | |
| </li> | |
| <li> <p><code>setGeneric()</code> calls can be simplified when creating | |
| a new generic function by supplying the default method as the | |
| <code>def</code> argument. See <code>?setGeneric</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>serialize()</code> has a new option <code>xdr = FALSE</code> which | |
| will use the native byte-order for binary serializations. In | |
| scenarios where only little-endian machines are involved (these | |
| days, close to universal) and (un)serialization takes an | |
| appreciable amount of time this may speed up noticeably | |
| transferring data between systems. | |
| </p> | |
| </li> | |
| <li><p> The internal (un)serialization code is faster for long | |
| vectors, particularly with XDR on some platforms. (Based on a | |
| suggested patch by Michael Spiegel.) | |
| </p> | |
| </li> | |
| <li><p> For consistency, circles with zero radius are omitted by | |
| <code>points()</code> and <code>grid.circle()</code>. Previously this was | |
| device-dependent, but they were usually invisible. | |
| </p> | |
| </li> | |
| <li> <p><code>NROW(x)</code> and <code>NCOL(x)</code> now work whenever | |
| <code>dim(x)</code> looks appropriate, e.g., also for more generalized | |
| matrices. | |
| </p> | |
| </li> | |
| <li><p> PCRE has been updated to version 8.30. | |
| </p> | |
| </li> | |
| <li><p> The internal <code>R_Srcref</code> variable is now updated | |
| before the browser stops on entering a function. (Suggestion of | |
| <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14818">PR#14818</a>.) | |
| </p> | |
| </li> | |
| <li><p> There are ‘bare-bones’ functions <code>.colSums()</code>, | |
| <code>.rowSums()</code>, <code>.colMeans()</code> and <code>.rowMeans()</code> for | |
| use in programming where ultimate speed is required. | |
| </p> | |
| </li> | |
| <li><p> The formerly internal function | |
| <code>.package_dependencies()</code> from package <span class="pkg">tools</span> for | |
| calculating (recursive) (reverse) dependencies on package databases | |
| has been renamed to <code>package_dependencies()</code> and is now | |
| exported. | |
| </p> | |
| </li> | |
| <li><p> There is a new function <code>optimHess()</code> to compute the | |
| (approximate) Hessian for an <code>optim()</code> solution if | |
| <code>hessian = TRUE</code> was forgotten. | |
| </p> | |
| </li> | |
| <li> <p><code>.filled.contour()</code> is a ‘bare-bones’ function to | |
| add a filled-contour rectangular plot to an already prepared plot | |
| region. | |
| </p> | |
| </li> | |
| <li><p> The stepping in debugging and single-step browsing modes has | |
| changed slightly: now left braces at the start of the body are | |
| stepped over for <code>if</code> statements as well as for <code>for</code> and | |
| <code>while</code> statements. (Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14814">PR#14814</a>.) | |
| </p> | |
| </li> | |
| <li> <p><code>library()</code> no longer warns about a conflict with a | |
| function from <code>package:base</code> if the function has the same | |
| code as the base one but with a different environment. (An | |
| example is <code>Matrix::det()</code>.) | |
| </p> | |
| </li> | |
| <li><p> When deparsing very large language objects, | |
| <code>as.character()</code> now inserts newlines after each line of | |
| approximately 500 bytes, rather than truncating to the first | |
| line. | |
| </p> | |
| </li> | |
| <li><p> New function <code>rWishart()</code> generates Wishart-distributed | |
| random matrices. | |
| </p> | |
| </li> | |
| <li><p> Packages may now specify actions to be taken when the | |
| package is loaded (<code>setLoadActions()</code>). | |
| </p> | |
| </li> | |
| <li> <p><code>options(max.print = Inf)</code> and similar now give an | |
| error (instead of warnings later). | |
| </p> | |
| </li> | |
| <li><p> The <code>"difftime"</code> replacement method of <code>units</code> | |
| tries harder to preserve other attributes of the argument. (Wish | |
| of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14839">PR#14839</a>.) | |
| </p> | |
| </li> | |
| <li> <p><code>poly(raw = TRUE)</code> no longer requires more unique | |
| points than the degree. (Requested by John Fox.) | |
| </p> | |
| </li></ul> | |
| <h4>PACKAGE parallel</h4> | |
| <ul> | |
| <li><p> There is a new function <code>mcmapply()</code>, a parallel version | |
| of <code>mapply()</code>, and a wrapper <code>mcMap()</code>, a parallel | |
| version of <code>Map()</code>. | |
| </p> | |
| </li> | |
| <li><p> A default cluster can be registered by the new function | |
| <code>setDefaultCluster()</code>: this will be used by default in | |
| functions such as <code>parLapply()</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>clusterMap()</code> has a new argument <code>.scheduling</code> to | |
| allow the use of load-balancing. | |
| </p> | |
| </li> | |
| <li><p> There are new load-balancing functions <code>parLapplyLB()</code> | |
| and <code>parSapplyLB()</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>makePSOCKCluster()</code> has a new option <code>useXDR = | |
| FALSE</code> which can be used to avoid byte-shuffling for | |
| serialization when all the nodes are known to be little-endian (or | |
| all big-endian). | |
| </p> | |
| </li></ul> | |
| <h4>PACKAGE INSTALLATION</h4> | |
| <ul> | |
| <li><p> Non-ASCII vignettes without a declared encoding are no | |
| longer accepted. | |
| </p> | |
| </li> | |
| <li><p> C/C++ code in packages is now compiled with <code>-NDEBUG</code> | |
| to mitigate against the C/C++ function <code>assert</code> being called | |
| in production use. Developers can turn this off during package | |
| development with <code>PKG_CPPFLAGS = -UNDEBUG</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD INSTALL</code> has a new option <span class="option">--dsym</span> | |
| which on Mac OS X (Darwin) dumps the symbols alongside the | |
| ‘<span class="file">.so</span>’ file: this is helpful when debugging with | |
| <code>valgrind</code> (and especially when installing packages into | |
| ‘<span class="file">R.framework</span>’). [This can also be enabled by setting the | |
| undocumented environment variable <span class="env">PKG_MAKE_DSYM</span>, since <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> | |
| 2.12.0.] | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD INSTALL</code> will test loading under all installed | |
| sub-architectures even for packages without compiled code, unless | |
| the flag <span class="option">--no-multiarch</span> is used. (Pure <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> packages can | |
| do things which are architecture-dependent: in the case which | |
| prompted this, looking for an icon in a Windows <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> executable.) | |
| </p> | |
| </li> | |
| <li><p> There is a new option <code>install.packages(type = "both")</code> | |
| which tries source packages if binary packages are not available, | |
| on those platforms where the latter is the default. | |
| </p> | |
| </li> | |
| <li><p> The meaning of <code>install.packages(dependencies = TRUE)</code> | |
| has changed: it now means to install the essential dependencies of | |
| the named packages plus the <span class="samp">Suggests</span>, but only the | |
| essential dependencies of dependencies. To get the previous | |
| behaviour, specify <code>dependencies</code> as a character vector. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD INSTALL --merge-multiarch</code> is now supported | |
| on OS X and other Unix-alikes using multiple sub-architectures. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD INSTALL --libs-only</code> now by default does a | |
| test load on Unix-alikes as well as on Windows: suppress with | |
| <span class="option">--no-test-load</span>. | |
| </p> | |
| </li></ul> | |
| <h4>UTILITIES</h4> | |
| <ul> | |
| <li> <p><code>R CMD check</code> now gives a warning rather than a | |
| note if it finds inefficiently compressed datasets. With | |
| <code>bzip2</code> and <code>xz</code> compression having been | |
| available since <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.10.0, it only exceptionally makes sense to | |
| not use them. | |
| </p> | |
| <p>The environment variable <span class="env">_R_CHECK_COMPACT_DATA2_</span> is | |
| no longer consulted: the check is always done if | |
| <span class="env">_R_CHECK_COMPACT_DATA_</span> has a true value (its default). | |
| </p> | |
| </li> | |
| <li><p> Where multiple sub-architectures are to be tested, | |
| <code>R CMD check</code> now runs the examples and tests for all the | |
| sub-architectures even if one fails. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> can optionally report timings on | |
| various parts of the check: this is controlled by environment | |
| variable <span class="env">_R_CHECK_TIMINGS_</span> documented in ‘Writing R | |
| Extensions’. Timings (in the style of <code>R CMD BATCH</code>) are | |
| given at the foot of the output files from running each test and | |
| the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> code in each vignette. | |
| </p> | |
| </li> | |
| <li><p> There are new options for more rigorous testing by | |
| <code>R CMD check</code> selected by environment variables – see | |
| the ‘Writing R Extensions’ manual. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> now warns (rather than notes) on | |
| undeclared use of other packages in examples and tests: | |
| increasingly people are using the metadata in the | |
| ‘<span class="file">DESCRIPTION</span>’ file to compute information about packages, | |
| for example reverse dependencies. | |
| </p> | |
| </li> | |
| <li><p> The defaults for some of the options in <code>R CMD | |
| check</code> (described in the ‘R Internals’ manual) have | |
| changed: checks for unsafe and <code>.Internal()</code> calls and | |
| for partial matching of arguments in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> function calls are now | |
| done by default. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> has more comprehensive facilities for | |
| checking compiled code and so gives fewer reports on entry points | |
| linked into ‘<span class="file">.so</span>’/‘<span class="file">.dll</span>’ files from libraries | |
| (including C++ and Fortran runtimes). | |
| </p> | |
| <p>Checking compiled code is now done on FreeBSD (as well as the | |
| existing supported platforms of Linux, Mac OS X, Solaris and | |
| Windows). | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD build</code> has more options for | |
| <span class="option">--compact-vignettes</span>: see <code>R CMD build --help</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD build</code> has a new option <span class="option">--md5</span> to | |
| add an ‘<span class="file">MD5</span>’ file (as done by CRAN): this is used by <code>R | |
| CMD INSTALL</code> to check the integrity of the distribution. | |
| </p> | |
| <p>If this option is not specified, any existing (and probably | |
| stale) ‘<span class="file">MD5</span>’ file is removed. | |
| </p> | |
| </li></ul> | |
| <h4>DEPRECATED AND DEFUNCT</h4> | |
| <ul> | |
| <li> <p><code>R CMD Rd2dvi</code> is now defunct: use <code>R CMD Rd2pdf</code>. | |
| </p> | |
| </li> | |
| <li><p> Options such <span class="option">--max-nsize</span>, <span class="option">--max-vsize</span> and | |
| the function <code>mem.limits()</code> are now defunct. (Options | |
| <span class="option">--min-nsize</span> and <span class="option">--min-vsize</span> remain available.) | |
| </p> | |
| </li> | |
| <li><p> Use of <code>library.dynam()</code> without specifying all the | |
| first three arguments is now disallowed. | |
| </p> | |
| <p>Use of an argument <code>chname</code> in <code>library.dynam()</code> | |
| including the extension ‘<span class="file">.so</span>’ or ‘<span class="file">.dll</span>’ (which was never | |
| allowed according to the help page) is defunct. This also applies | |
| to <code>library.dynam.unload()</code> and to <code>useDynLib</code> | |
| directives in ‘<span class="file">NAMESPACE</span>’ files. | |
| </p> | |
| </li> | |
| <li><p> The internal functions <code>.readRDS()</code> and | |
| <code>.saveRDS()</code> are now defunct. | |
| </p> | |
| </li> | |
| <li><p> The off-line <code>help()</code> types <span class="samp">"postscript"</span> and | |
| <span class="samp">"ps"</span> are defunct. | |
| </p> | |
| </li> | |
| <li> <p><code>Sys.putenv()</code>, replaced and deprecated in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.5.0, is | |
| finally removed. | |
| </p> | |
| </li> | |
| <li><p> Some functions/objects which have been defunct for five or | |
| more years have been removed completely. These include | |
| <code>.Alias()</code>, <code>La.chol()</code>, <code>La.chol2inv()</code>, | |
| <code>La.eigen()</code>, <code>Machine()</code>, <code>Platform()</code>, | |
| <code>Version</code>, <code>codes()</code>, <code>delay()</code>, | |
| <code>format.char()</code>, <code>getenv()</code>, <code>httpclient()</code>, | |
| <code>loadURL()</code>, <code>machine()</code>, <code>parse.dcf()</code>, | |
| <code>printNoClass()</code>, <code>provide()</code>, <code>read.table.url()</code>, | |
| <code>restart()</code>, <code>scan.url()</code>, <code>symbol.C()</code>, | |
| <code>symbol.For()</code> and <code>unix()</code>. | |
| </p> | |
| </li> | |
| <li><p> The <code>ENCODING</code> argument to <code>.C()</code> is deprecated. | |
| It was intended to smooth the transition to multi-byte character | |
| strings, but can be replaced by the use of <code>iconv()</code> in the | |
| rare cases where it is still needed. | |
| </p> | |
| </li></ul> | |
| <h4>INSTALLATION</h4> | |
| <ul> | |
| <li><p> Building with a positive value of | |
| <span class="option">--with-valgrind-instrumentation</span> now also instruments logical, | |
| complex and raw vectors. | |
| </p> | |
| </li></ul> | |
| <h4>C-LEVEL FACILITIES</h4> | |
| <ul> | |
| <li><p> Passing <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> objects other than atomic vectors, functions, | |
| lists and environments to <code>.C()</code> is now deprecated and will | |
| give a warning. Most cases (especially <code>NULL</code>) are actually | |
| coding errors. <code>NULL</code> will be disallowed in future. | |
| </p> | |
| <p><code>.C()</code> now passes a pairlist as a <code>SEXP</code> to the compiled | |
| code. This is as was documented, but pairlists were in reality | |
| handled differently as a legacy from the early days of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>. | |
| </p> | |
| </li> | |
| <li> <p><code>call_R</code> and <code>call_S</code> are deprecated. They still | |
| exist in the headers and as entry points, but are no longer | |
| documented and should not be used for new code. | |
| </p> | |
| </li></ul> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li> <p><code>str(x, width)</code> now obeys its <code>width</code> | |
| argument also for function headers and other objects <code>x</code> | |
| where <code>deparse()</code> is applied. | |
| </p> | |
| </li> | |
| <li><p> The convention for <code>x %/% 0L</code> for integer-mode <code>x</code> | |
| has been changed from <code>0L</code> to <code>NA_integer_</code>. | |
| (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14754">PR#14754</a>) | |
| </p> | |
| </li> | |
| <li><p> The <code>exportMethods</code> directive in a ‘<span class="file">NAMESPACE</span>’ | |
| file now exports S4 generics as necessary, as the extensions | |
| manual said it does. The manual has also been updated to be a | |
| little more informative on this point. | |
| </p> | |
| <p>It is now required that there is an S4 generic (imported or | |
| created in the package) when methods are to be exported. | |
| </p> | |
| </li> | |
| <li><p> Reference methods cannot safely use non-exported entries | |
| in the namespace. We now do not do so, and warn in the documentation. | |
| </p> | |
| </li> | |
| <li><p> The namespace import code was warning when identical | |
| S4 generic functions were imported more than once, but should | |
| not (reported by Brian Ripley, then Martin Morgan). | |
| </p> | |
| </li> | |
| <li> <p><code>merge()</code> is no longer allowed (in some ways) to create | |
| a data frame with duplicate column names (which confused | |
| <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14786">PR#14786</a>). | |
| </p> | |
| </li> | |
| <li><p> Fixes for rendering raster images on X11 and Windows devices | |
| when the x-axis or y-axis scale is reversed. | |
| </p> | |
| </li> | |
| <li> <p><code>getAnywhere()</code> found S3 methods as seen from the | |
| <span class="pkg">utils</span> namespace and not from the environment from which it | |
| was called. | |
| </p> | |
| </li> | |
| <li> <p><code>selectMethod(f, sig)</code> would not return inherited group | |
| methods when caching was off (as it is by default). | |
| </p> | |
| </li> | |
| <li> <p><code>dev.copy2pdf(out.type = "cairo")</code> gave an error. | |
| (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14827">PR#14827</a>) | |
| </p> | |
| </li> | |
| <li><p> Virtual classes (e.g., class unions) had a <code>NULL</code> | |
| prototype even if that was not a legal subclass. See | |
| <code>?setClassUnion</code>. | |
| </p> | |
| </li> | |
| <li><p> The C prototypes for <code>zdotc</code> and <code>zdotu</code> in | |
| ‘<span class="file">R_ext/BLAS.h</span>’ have been changed to the more modern style | |
| rather than that used by <code>f2c</code>. (Patch by Berwin Turlach.) | |
| </p> | |
| </li> | |
| <li> <p><code>isGeneric()</code> produced an error for primitives that | |
| can not have methods. | |
| </p> | |
| </li> | |
| <li> <p><code>.C()</code> or <code>.Fortran()</code> had a lack-of-protection | |
| error if the registration information resulted in an argument | |
| being coerced to another type. | |
| </p> | |
| </li> | |
| <li> <p><code>boxplot(x=x, at=at)</code> with non finite elements in <code>x</code> | |
| and non integer <code>at</code> could not generate a warning but failed. | |
| </p> | |
| </li> | |
| <li> <p><code>heatmap(x, symm=TRUE, RowSideColors=*)</code> no longer | |
| draws the colors in reversed order. | |
| </p> | |
| </li> | |
| <li> <p><code>predict(<ar>)</code> was incorrect in the multivariate case, | |
| for p >= 2. | |
| </p> | |
| </li> | |
| <li> <p><code>print(x, max=m)</code> is now consistent when <code>x</code> is a | |
| <code>"Date"</code>; also the “reached ... max.print ..” messages | |
| are now consistently using single brackets. | |
| </p> | |
| </li> | |
| <li><p> Closed the <span class="samp"><li></span> tag in pages generated by <code> | |
| Rd2HTML()</code>. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14841">PR#14841</a>) | |
| </p> | |
| </li> | |
| <li><p> Axis tick marks could go out of range when a log scale was | |
| used. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14833">PR#14833</a>) | |
| </p> | |
| </li> | |
| <li><p> Signature objects in methods were not allocated as S4 | |
| objects (caused a problem with <code>trace()</code> reported by Martin Morgan). | |
| </p> | |
| </li></ul> | |
| <h3><img class="toplogo" src="../help/figures/../../html/Rlogo.svg" alt="[R logo]" /> CHANGES IN R VERSION 2.14.2</h3> | |
| <h4>NEW FEATURES</h4> | |
| <ul> | |
| <li><p> The internal <code>untar()</code> (as used by default by | |
| <code>R CMD INSTALL</code>) now knows about some <code>pax</code> | |
| headers which <code>bsdtar</code> (e.g., the default <code>tar</code> for | |
| Mac OS >= 10.6) can incorrectly include in <code>tar</code> files, | |
| and will skip them with a warning. | |
| </p> | |
| </li> | |
| <li><p> PCRE has been upgraded to version 8.21: as well as bug fixes | |
| and greater Perl compatibility, this adds a JIT pattern compiler, | |
| about which PCRE's news says | |
| ‘large performance benefits can be had in many situations’. | |
| This is supported on most but not all <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> platforms. | |
| </p> | |
| </li> | |
| <li><p> Function <code>compactPDF()</code> in package <span class="pkg">tools</span> now | |
| takes the default for argument <code>gs_quality</code> from environment | |
| variable <span class="env">GS_QUALITY</span>: there is a new value <code>"none"</code>, the | |
| ultimate default, which prevents GhostScript being used in | |
| preference to <code>qpdf</code> just because environment variable | |
| <span class="env">R_GSCMD</span> is set. If <span class="env">R_GSCMD</span> is unset or set to | |
| <code>""</code>, the function will try to find a suitable GhostScript | |
| executable. | |
| </p> | |
| </li> | |
| <li><p> The included version of zlib has been updated to 1.2.6. | |
| </p> | |
| </li> | |
| <li><p> For consistency with the <code>logLik()</code> method, | |
| <code>nobs()</code> for <code>"nls"</code> files now excludes observations | |
| with zero weight. (Reported by Berwin Turlach.) | |
| </p> | |
| </li></ul> | |
| <h4>UTILITIES</h4> | |
| <ul> | |
| <li> <p><code>R CMD check</code> now reports by default on licenses not | |
| according to the description in ‘Writing R Extensions’. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> has a new option <span class="option">--as-cran</span> to | |
| turn on most of the customizations that CRAN uses for its incoming | |
| checks. | |
| </p> | |
| </li></ul> | |
| <h4>PACKAGE INSTALLATION</h4> | |
| <ul> | |
| <li> <p><code>R CMD INSTALL</code> will now no longer install certain | |
| file types from ‘<span class="file">inst/doc</span>’: these are almost certainly | |
| mistakes and for some packages are wasting a lot of space. These | |
| are ‘<span class="file">Makefile</span>’, files generated by running LaTeX, and unless | |
| the package uses a ‘<span class="file">vignettes</span>’ directory, PostScript and | |
| image bitmap files. | |
| </p> | |
| <p>Note that only PDF vignettes have ever been supported: some of | |
| these files come from DVI/PS output from the Sweave defaults prior | |
| to <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.13.0. | |
| </p> | |
| </li></ul> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li><p> R configured with <span class="option">--disable-openmp</span> would mistakenly | |
| set <code>HAVE_OPENMP</code> (internal) and <code>SUPPORT_OPENMP</code> (in | |
| ‘<span class="file">Rconfig.h</span>’) even though no OpenMP flags were populated. | |
| </p> | |
| </li> | |
| <li><p> The <code>getS3method()</code> implementation had an old | |
| computation to find an S4 default method. | |
| </p> | |
| </li> | |
| <li> <p><code>readLines()</code> could overflow a buffer if the last line | |
| of the file was not terminated. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14766">PR#14766</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> could miss undocumented S4 objects in | |
| packages which used S4 classes but did not <span class="samp">Depends: methods</span> | |
| in their ‘<span class="file">DESCRIPTION</span>’ file. | |
| </p> | |
| </li> | |
| <li><p> The HTML Help Search page had malformed links. | |
| (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14769">PR#14769</a>) | |
| </p> | |
| </li> | |
| <li><p> A couple of instances of lack of protection of <code>SEXP</code>s | |
| have been squashed. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14772">PR#14772</a>, <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14773">PR#14773</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>image(x, useRaster=TRUE)</code> misbehaved on single-column | |
| <code>x</code>. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14774">PR#14774</a>) | |
| </p> | |
| </li> | |
| <li><p> Negative values for <code>options("max.print")</code> or the <code>max</code> | |
| argument to <code>print.default()</code> caused crashes. Now the former | |
| are ignored and the latter trigger an error. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14779">PR#14779</a>) | |
| </p> | |
| </li> | |
| <li><p> The text of a function body containing more than 4096 | |
| bytes was not properly saved by the parser when entered | |
| at the console. | |
| </p> | |
| </li> | |
| <li><p> Forgetting the <code>#endif</code> tag in an Rd file could cause | |
| the parser to go into a loop. (Reported by Hans-Jorg Bibiko.) | |
| </p> | |
| </li> | |
| <li> <p><code>str(*, ....., strict.width="cut")</code> now also obeys | |
| <code>list.len = n</code>. (Reported by Sören Vogel.) | |
| </p> | |
| </li> | |
| <li><p> Printing of arrays did not have enough protection (C level), | |
| e.g., in the context of <code>capture.output()</code>. (Reported by | |
| Hervé Pagès and Martin Morgan.) | |
| </p> | |
| </li> | |
| <li> <p><code>pdf(file = NULL)</code> would produce a spurious file named | |
| ‘<span class="file">NA</span>’. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14808">PR#14808</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>list2env()</code> did not check the type of its <code>envir</code> | |
| argument. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14807">PR#14807</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>svg()</code> could segfault if called with a non-existent | |
| file path. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14790">PR#14790</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>make install</code> can install to a path containing | |
| <span class="samp">+</span> characters. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14798">PR#14798</a>) | |
| </p> | |
| </li> | |
| <li><p> The <code>edit()</code> function did not respect the | |
| <code>options("keep.source")</code> setting. (Reported by Cleridy | |
| Lennert.) | |
| </p> | |
| </li> | |
| <li> <p><code>predict.lm(*, type="terms", terms=*, se.fit=TRUE)</code> did | |
| not work. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14817">PR#14817</a>) | |
| </p> | |
| </li> | |
| <li><p> There is a partial workaround for errors in the TRE | |
| regular-expressions engine with named classes and repeat counts of | |
| at least 2 in a MBCS locale (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14408">PR#14408</a>): these are avoided when | |
| TRE is in 8-bit mode (e.g., for <code>useBytes = TRUE</code> and when all | |
| the data are ASCII). | |
| </p> | |
| </li> | |
| <li><p> The C function <code>R_ReplDLLdo1()</code> did not call top-level | |
| handlers. | |
| </p> | |
| </li> | |
| <li><p> The Quartz device was unable to detect window sessions on | |
| Mac OS X 10.7 (Lion) and higher and thus it was not used as the | |
| default device on the console. Since Lion any application can use | |
| window sessions, so Quartz will now be the default device if the | |
| user's window session is active and <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> is not run via | |
| <code>ssh</code> which is at least close to the behavior in prior OS | |
| X versions. | |
| </p> | |
| </li> | |
| <li> <p><code>mclapply()</code> would fail in code assembling the translated | |
| error message if some (but not all) cores encountered an error. | |
| </p> | |
| </li> | |
| <li> <p><code>format.POSIXlt(x)</code> raised an arithmetic exception when | |
| <code>x</code> was an invalid object of class <code>"POSIXlt"</code> and parts | |
| were empty. | |
| </p> | |
| </li> | |
| <li> <p><code>installed.packages()</code> has some more protection against | |
| package installs going on in parallel. | |
| </p> | |
| </li> | |
| <li> <p><code>.Primitive()</code> could be mis-used to call | |
| <code>.Internal()</code> entry points. | |
| </p> | |
| </li></ul> | |
| <h3><img class="toplogo" src="../help/figures/../../html/Rlogo.svg" alt="[R logo]" /> CHANGES IN R VERSION 2.14.1</h3> | |
| <h4>NEW FEATURES</h4> | |
| <ul> | |
| <li> <p><code>parallel::detectCores()</code> is now able to find the | |
| number of physical cores (rather than CPUs) on Sparc Solaris. | |
| </p> | |
| <p>It can also do so on most versions of Windows; however the default | |
| remains <code>detectCores(logical = TRUE)</code> on that platform. | |
| </p> | |
| </li> | |
| <li><p> Reference classes now keep a record of which fields are | |
| locked. <code>$lock()</code> with no arguments returns the names | |
| of the locked fields. | |
| </p> | |
| </li> | |
| <li> <p><code>HoltWinters()</code> reports a warning rather than an error | |
| for some optimization failures (where the answer might be a | |
| reasonable one). | |
| </p> | |
| </li> | |
| <li> <p><code>tools::dependsOnPkg()</code> now accepts the shorthand | |
| <code>dependencies = "all"</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>parallel::clusterExport()</code> now allows specification of | |
| an environment from which to export. | |
| </p> | |
| </li> | |
| <li><p> The <code>quartz()</code> device now does tilde expansion on its | |
| <code>file</code> argument. | |
| </p> | |
| </li> | |
| <li> <p><code>tempfile()</code> on a Unix-alike now takes the process ID | |
| into account. This is needed with <a href="https://CRAN.R-project.org/package=multicore"><span class="pkg">multicore</span></a> (and as part of | |
| <span class="pkg">parallel</span>) because the parent and all the children share a | |
| session temporary directory, and they can share the C random | |
| number stream used to produce the unique part. Further, two | |
| children can call <code>tempfile()</code> simultaneously. | |
| </p> | |
| </li> | |
| <li><p> Option <code>print</code> in Sweave's <code>RweaveLatex()</code> driver | |
| now emulates auto-printing rather than printing (which can differ | |
| for an S4 object by calling <code>show()</code> rather than | |
| <code>print()</code>). | |
| </p> | |
| </li> | |
| <li> <p><code>filled.contour()</code> now accepts infinite values: | |
| previously it might have generated invalid graphics files | |
| (e.g., containing NaN values). | |
| </p> | |
| </li></ul> | |
| <h4>INSTALLATION</h4> | |
| <ul> | |
| <li><p> On 64-bit Linux systems, <code>configure</code> now only sets | |
| <span class="samp">LIBnn</span> to <code>lib64</code> if ‘<span class="file">/usr/lib64</span>’ exists. This | |
| may obviate setting <span class="samp">LIBnn</span> explicitly on Debian-derived | |
| systems. | |
| </p> | |
| <p>It is still necessary to set <span class="samp">LIBnn = lib</span> (or | |
| <span class="samp">lib32</span>) for 32-bit builds of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> on a 64-bit OS on those Linux | |
| distributions capable for supporting that concept. | |
| </p> | |
| </li> | |
| <li> <p><code>configure</code> looks for ‘<span class="file">inconsolata.sty</span>’, and if | |
| not found adjusts the default <span class="env">R_RD4PDF</span> to not use it (with a | |
| warning, since it is needed for high-quality rendering of manuals). | |
| </p> | |
| </li></ul> | |
| <h4>PACKAGE INSTALLATION</h4> | |
| <ul> | |
| <li> <p><code>R CMD INSTALL</code> will now do a test load for all | |
| sub-architectures for which code was compiled (rather than just | |
| the primary sub-architecture). | |
| </p> | |
| </li></ul> | |
| <h4>UTILITIES</h4> | |
| <ul> | |
| <li><p> When checking examples under more than one sub-architecture, | |
| <code>R CMD check</code> now uses a separate directory | |
| ‘<span class="file">examples_arch</span>’ for each sub-architecture, and leaves the | |
| output in file ‘<span class="file">pkgname-Ex_arch.Rout</span>’. Some packages | |
| expect their examples to be run in a clean directory .... | |
| </p> | |
| </li></ul> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li> <p><code>stack()</code> now gives an error if no vector column is | |
| selected, rather than returning a 1-column data frame (contrary to | |
| its documentation). | |
| </p> | |
| </li> | |
| <li> <p><code>summary.mlm()</code> did not handle objects where the | |
| formula had been specified by an expression. (Reported by | |
| Helios de Rosario Martinez). | |
| </p> | |
| </li> | |
| <li> <p><code>tools::deparseLatex(dropBraces=TRUE)</code> could drop | |
| text as well as braces. | |
| </p> | |
| </li> | |
| <li> <p><code>colormodel = "grey"</code> (new in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.14.0)) | |
| did not always work in <code>postscript()</code> and <code>pdf()</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>file.append()</code> could return <code>TRUE</code> for failures. | |
| (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14727">PR#14727</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>gzcon()</code> connections are no longer subject to garbage | |
| collection: it was possible for this to happen when unintended | |
| (e.g., when calling <code>load()</code>). | |
| </p> | |
| </li> | |
| <li> <p><code>nobs()</code> does not count zero-weight observations for | |
| <code>glm()</code> fits, for consistency with <code>lm()</code>. This affects | |
| the <code>BIC()</code> values reported for such <code>glm()</code> fits. | |
| (Spotted by Bill Dunlap.) | |
| </p> | |
| </li> | |
| <li> <p><code>options(warn = 0)</code> failed to end a (C-level) context | |
| with more than 50 accumulated warnings. (Spotted by Jeffrey | |
| Horner.) | |
| </p> | |
| </li> | |
| <li><p> The internal <code>plot.default()</code> code did not do sanity | |
| checks on a <code>cex</code> argument, so invalid input could cause | |
| problems. (Reported by Ben Bolker.) | |
| </p> | |
| </li> | |
| <li> <p><code>anyDuplicated(<array>, MARGIN=0)</code> no longer fails. | |
| (Reported by Hervé Pagès.) | |
| </p> | |
| </li> | |
| <li> <p><code>read.dcf()</code> removes trailing blanks: unfortunately | |
| on some platforms this included <code>\xa0</code> (non-breaking space) | |
| which is the trailing byte of a UTF-8 character. It now only | |
| considers ASCII space and tab to be ‘blank’. | |
| </p> | |
| </li> | |
| <li><p> There was a sign error in part of the calculations for the | |
| variance returned by <code>KalmanSmooth()</code>. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14738">PR#14738</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>pbinom(10, 1e6, 0.01, log.p = TRUE)</code> was <code>NaN</code> | |
| thanks to the buggy fix to <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14320">PR#14320</a> in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.11.0. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14739">PR#14739</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>RweaveLatex()</code> now emulates auto-printing rather than | |
| printing, by calling <code>methods::show()</code> when auto-printing | |
| would. | |
| </p> | |
| </li> | |
| <li> <p><code>duplicated()</code> ignored <code>fromLast</code> for a | |
| one-column data frame. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14742">PR#14742</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>source()</code> and related functions did not put the correct | |
| timestamp on the source references; <code>srcfilecopy()</code> has gained | |
| a new argument <code>timestamp</code> to support this fix. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14750">PR#14750</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>srcfilecopy()</code> has gained a new argument <code>isFile</code> | |
| and now records the working directory, to allow debuggers to find | |
| the original source file. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14826">PR#14826</a>) | |
| </p> | |
| </li> | |
| <li><p> LaTeX conversion of Rd files did not correctly handle | |
| preformatted backslashes. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14751">PR#14751</a>) | |
| </p> | |
| </li> | |
| <li><p> HTML conversion of Rd files did not handle markup within | |
| tabular cells properly. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14708">PR#14708</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>source()</code> on an empty file with <code>keep.source = | |
| TRUE</code> tried to read from <code>stdin()</code>, in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.14.0 only. | |
| (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14753">PR#14753</a>) | |
| </p> | |
| </li> | |
| <li><p> The code to check Rd files in packages would abort if | |
| duplicate description sections were present. | |
| </p> | |
| </li></ul> | |
| <h3><img class="toplogo" src="../help/figures/../../html/Rlogo.svg" alt="[R logo]" /> CHANGES IN R VERSION 2.14.0</h3> | |
| <h4>SIGNIFICANT USER-VISIBLE CHANGES</h4> | |
| <ul> | |
| <li><p> All packages must have a namespace, and one is created on | |
| installation if not supplied in the sources. This means that any | |
| package without a namespace must be re-installed under this | |
| version of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> (but previously-installed data-only packages without | |
| <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> code can still be used). | |
| </p> | |
| </li> | |
| <li><p> The <code>yLineBias</code> of the <code>X11()</code> and | |
| <code>windows()</code> families of devices has been changed from 0.1 to | |
| 0.2: this changes slightly the vertical positioning of text in the | |
| margins (including axis annotations). This is mainly for | |
| consistency with other devices such as <code>quartz()</code> and | |
| <code>pdf()</code>. (Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14538">PR#14538</a>.) | |
| </p> | |
| <p>There is a new graphics parameter <code>"ylbias"</code> which | |
| allows the y-line bias of the graphics device to be tweaked, | |
| including to reproduce output from earlier versions of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>. | |
| </p> | |
| </li> | |
| <li><p> Labeling of the p-values in various anova tables has been | |
| rationalized to be either <code>"Pr(>F)"</code> or <code>"Pr(>Chi)"</code> | |
| (i.e., the <code>"Pr(F)"</code>, <code>"Pr(Chi)"</code> and <code>"P(>|Chi|)"</code> | |
| variants have been eliminated). Code which extracts the p value | |
| <em>via</em> indexing by name may need adjustment. | |
| </p> | |
| </li> | |
| <li> <p><code>::</code> can now be used for datasets made available for | |
| lazy-loading in packages with namespaces (which makes it consistent | |
| with its use for data-only packages without namespaces in earlier | |
| versions of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>). | |
| </p> | |
| </li> | |
| <li><p> There is a new package <span class="pkg">parallel</span>. | |
| </p> | |
| <p>It incorporates (slightly revised) copies of packages | |
| <a href="https://CRAN.R-project.org/package=multicore"><span class="pkg">multicore</span></a> and <a href="https://CRAN.R-project.org/package=snow"><span class="pkg">snow</span></a> (excluding MPI, PVM and NWS | |
| clusters). Code written to use the higher-level API functions in | |
| those packages should work unchanged (apart from changing any | |
| references to their namespaces to a reference to <span class="pkg">parallel</span>, | |
| and links explicitly to <a href="https://CRAN.R-project.org/package=multicore"><span class="pkg">multicore</span></a> or <a href="https://CRAN.R-project.org/package=snow"><span class="pkg">snow</span></a> on help | |
| pages). | |
| </p> | |
| <p>It also contains support for multiple RNG streams following | |
| L'Ecuyer <em>et al</em> (2002), with support for both | |
| <code>mclapply</code> and <a href="https://CRAN.R-project.org/package=snow"><span class="pkg">snow</span></a> clusters. This replaces functions | |
| like <code>clusterSetupRNG()</code> from <a href="https://CRAN.R-project.org/package=snow"><span class="pkg">snow</span></a> (which are not in | |
| <span class="pkg">parallel</span>). | |
| </p> | |
| <p>The version released for <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.14.0 contains base functionality: | |
| higher-level convenience functions are planned (and some are | |
| already available in the ‘R-devel’ version of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>). | |
| </p> | |
| </li> | |
| <li><p> Building PDF manuals (for <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> itself or packages, | |
| e.g. <em>via</em> <code>R CMD check</code>) by default requires the | |
| LaTeX package <span class="samp">inconsolata</span>: see the section on | |
| ‘Making the manuals’ in the ‘R Installation and | |
| Administration Manual’. | |
| </p> | |
| </li> | |
| <li> <p><code>axTicks(*, log=TRUE)</code> has changed in some cases to | |
| satisfy the documented behavior and be consistent. | |
| </p> | |
| </li></ul> | |
| <h4>NEW FEATURES</h4> | |
| <ul> | |
| <li> <p><code>txtProgressBar()</code> can write to an open connection | |
| instead of the console. | |
| </p> | |
| </li> | |
| <li><p> Non-portable package names ending in ‘<span class="file">.</span>’ are no longer | |
| allowed. Nor are single-character package names (<span class="pkg">R</span> was | |
| already disallowed). | |
| </p> | |
| </li> | |
| <li> <p><code>regexpr()</code> and <code>gregexpr()</code> with <code>perl = | |
| TRUE</code> allows Python-style named captures. (Wish and | |
| contribution of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14518">PR#14518</a>.) | |
| </p> | |
| </li> | |
| <li><p> The placement of ‘plotmath’ text in the margins of | |
| plots done by base graphics now makes the same vertical adjustment | |
| as ordinary text, so using ordinary and plotmath text on the same | |
| margin line will seem better aligned (but not exactly aligned, | |
| since ordinary text has descenders below the baseline and plotmath | |
| places them on the baseline). (Related to <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14537">PR#14537</a>.) | |
| </p> | |
| </li> | |
| <li> <p><code>sunflowerplot()</code> now has a formula interface. | |
| (Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14541">PR#14541</a>.) | |
| </p> | |
| </li> | |
| <li> <p><code>iconv()</code> has a new argument <code>toRaw</code> to handle | |
| encodings such as <code>UTF-16</code> with embedded nuls (as was | |
| possible before the <code>CHARSXP</code> cache was introduced). | |
| </p> | |
| <p>It will also accept as input the type of list generated with | |
| <code>toRaw = TRUE</code>. | |
| </p> | |
| </li> | |
| <li><p> Garbage-collecting an unused input text connection no longer | |
| gives a warning (since it ‘connects’ to nothing outside | |
| <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>). | |
| </p> | |
| </li> | |
| <li> <p><code>read.table()</code> and <code>scan()</code> have gained a | |
| <code>text</code> argument, to allow reading data from a (possibly | |
| literal) character string. | |
| </p> | |
| </li> | |
| <li> <p><code>optim(*, method = .)</code> now allows <code>method = "Brent"</code> | |
| as an interface to <code>optimize()</code>, for use in cases such as | |
| <code>mle()</code> where <code>optim()</code> is used internally. | |
| </p> | |
| </li> | |
| <li> <p><code>mosaicplot()</code> gains a <code>border</code> argument. | |
| (Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14550">PR#14550</a>.) | |
| </p> | |
| </li> | |
| <li> <p><code>smooth.spline()</code> gains a <code>tol</code> argument which | |
| controls how different <code>x</code> values need to be to be treated as | |
| distinct. The default has been changed to be more reliable for | |
| inputs whose range is small compared to their maximum absolute | |
| value. (Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14452">PR#14452</a>.) | |
| </p> | |
| </li> | |
| <li> <p><code>gl()</code> runs faster by avoiding calling <code>factor()</code>. | |
| </p> | |
| </li> | |
| <li><p> The <code>print()</code> method for <code>object.size()</code> accepts | |
| <span class="samp">B</span> as well as <span class="samp">b</span> as an abbreviation for ‘bytes’. | |
| </p> | |
| </li> | |
| <li> <p><code>unlink()</code> gains a <code>force</code> argument to work like | |
| <code>rm -f</code> and if possible override restrictive permissions. | |
| </p> | |
| </li> | |
| <li> <p><code>pbirthday()</code> and <code>qbirthday()</code> now use exact | |
| calculations for <code>coincident = 2</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>unzip()</code> and <code>unz()</code> connections have been | |
| updated with support for more recent Zip64 features (including | |
| large file sizes and <code>bzip2</code> compression, but not UTF-8 | |
| file names). | |
| </p> | |
| <p><code>unzip()</code> has a new option to restore file times from those | |
| recorded (in an unknown timezone) in the zip file. | |
| </p> | |
| </li> | |
| <li> <p><code>update.packages()</code> now accepts a character vector of | |
| package names for the <code>oldPkgs</code> argument. (Suggestion of | |
| Tal Galili.) | |
| </p> | |
| </li> | |
| <li><p> The special reference class fields <code>.self</code> and | |
| <code>.refClassDef</code> are now read-only to prevent corrupting | |
| the object. | |
| </p> | |
| </li> | |
| <li> <p><code>decompose()</code> now returns the original series as part | |
| of its value, so it can be used (rather than reconstructed) when | |
| plotting. (Suggestion of Rob Hyndman.) | |
| </p> | |
| </li> | |
| <li><p> Rao's efficient score test has been implemented for | |
| <code>glm</code> objects. Specifically, the <code>add1</code>, <code>drop1</code>, | |
| and <code>anova</code> methods now allow <code>test = "Rao"</code>. | |
| </p> | |
| </li> | |
| <li><p> If a saved workspace (e.g., ‘<span class="file">.RData</span>’) contains objects | |
| that cannot be loaded, <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> will now start with an warning message | |
| and an empty workspace, rather than failing to start. | |
| </p> | |
| </li> | |
| <li> <p><code>strptime()</code> now accepts times such as <span class="samp">24:00</span> for | |
| midnight at the end of the day, for although these are disallowed by | |
| POSIX 1003.1-2008, ISO 8601:2004 allows them. | |
| </p> | |
| </li> | |
| <li><p> Assignment of <code>names()</code> to S4 objects now checks for | |
| a corresponding <code>"names"</code> slot, and generates a warning or | |
| an error if that slot is not defined. See the section on slots | |
| in <code>?Classes</code>. | |
| </p> | |
| </li> | |
| <li><p> The default methods for <code>is.finite()</code>, <code>is.infinite()</code> | |
| and <code>is.nan()</code> now signal an error if their argument is not | |
| an atomic vector. | |
| </p> | |
| </li> | |
| <li><p> The formula method for <code>plot()</code> no longer places | |
| package <span class="pkg">stats</span> on the search path (it loads the namespace | |
| instead). | |
| </p> | |
| </li> | |
| <li><p> There now is a genuine <code>"function"</code> method for | |
| <code>plot()</code> rather than the generic dispatching internally to | |
| <code>graphics::plot.function()</code>. It is now exported, so can be | |
| called directly as <code>plot.function()</code>. | |
| </p> | |
| </li> | |
| <li><p> The one-sided <code>ks.test()</code> allows <code>exact = TRUE</code> to | |
| be specified in the presence of ties (but the approximate | |
| calculation remains the default: the ‘exact’ computation | |
| makes assumptions known to be invalid in the presence of ties). | |
| </p> | |
| </li> | |
| <li><p> The behaviour of <code>curve(add = FALSE)</code> has changed: it | |
| now no longer takes the default x limits from the previous plot | |
| (if any): rather they default to <code>c(0, 1)</code> just as the | |
| <code>"function"</code> method for <code>plot()</code>. To get the previous | |
| behaviour use <code>curve(add = NA)</code>, which also takes the default for | |
| log-scaling of the x-axis from the previous plot. | |
| </p> | |
| </li> | |
| <li><p> Both <code>curve()</code> and the <code>plot()</code> method for | |
| functions have a new argument <code>xname</code> to facilitate plots | |
| such as <code>sin(t)</code> <em>vs</em> <code>t</code>. | |
| </p> | |
| </li> | |
| <li><p> The <code>local</code> argument to <code>source()</code> can specify an | |
| environment as well as <code>TRUE</code> (<code>parent.env()</code>) and | |
| <code>FALSE</code> (<code>.GlobalEnv</code>). It gives better error messages | |
| for other values, such as <code>NA</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>vcov()</code> gains methods for classes <code>"summary.lm"</code> and | |
| <code>"summary.glm"</code>. | |
| </p> | |
| </li> | |
| <li><p> The <code>plot()</code> method for class <code>"profile.nls"</code> | |
| gains <code>ylab</code> and <code>lty</code> arguments, and passes | |
| <code>...</code> on to <code>plot.default</code>. | |
| </p> | |
| </li> | |
| <li><p> Character-string arguments such as the <code>mode</code> argument | |
| of <code>vector()</code>, <code>as.vector()</code> and <code>is.vector()</code> and | |
| the <code>description</code> argument of <code>file()</code> are required to | |
| be of length exactly one, rather than any further elements being | |
| silently discarded. This helps catch incorrect usage in | |
| programming. | |
| </p> | |
| </li> | |
| <li><p> The <code>length</code> argument of <code>vector()</code> and its | |
| wrappers such as <code>numeric()</code> is required to be of length | |
| exactly one (other values are now an error rather than giving a | |
| warning as previously). | |
| </p> | |
| </li> | |
| <li> <p><code>vector(len)</code> and <code>length(x) <- len</code> no longer | |
| accept <code>TRUE</code>/<code>FALSE</code> for <code>len</code> (not that they | |
| were ever documented to, but there was special-casing in the C | |
| code). | |
| </p> | |
| </li> | |
| <li><p> There is a new function <code>Sys.setFileTime()</code> to set the | |
| time of a file (including a directory). See its help for exactly | |
| which times it sets on various OSes. | |
| </p> | |
| </li> | |
| <li><p> The file times reported by <code>file.info()</code> are reported | |
| to sub-second resolution on systems which support it. (Currently | |
| the POSIX 2008 and FreeBSD/Darwin/NetBSD methods are detected.) | |
| </p> | |
| </li> | |
| <li><p> New function <code>getCall(m)</code> as an abstraction for | |
| <code>m$call</code>, enabling <code>update()</code>'s default method to apply | |
| more universally. (NB: this can be masked by existing functions | |
| in packages.) | |
| </p> | |
| </li> | |
| <li> <p><code>Sys.info()</code> gains a <code>euser</code> component to report | |
| the ‘effective’ user on OSes which have that concept. | |
| </p> | |
| </li> | |
| <li><p> The result returned by <code>try()</code> now contains the | |
| original error condition object as the <code>"condition"</code> | |
| attribute. | |
| </p> | |
| </li> | |
| <li><p> All packages with <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> code are lazy-loaded irrespective of | |
| the <span class="samp">LazyLoad</span> field in the ‘<span class="file">DESCRIPTION</span>’ file. A | |
| warning is given if the <span class="samp">LazyLoad</span> field is overridden. | |
| </p> | |
| </li> | |
| <li> <p><code>Rd</code> markup has a new <span class="samp">\figure</span> tag so that | |
| figures can be included in help pages when converted to HTML or | |
| LaTeX. There are examples on the help pages for <code>par()</code> and | |
| <code>points()</code>. | |
| </p> | |
| </li> | |
| <li><p> The built-in httpd server now allows access to files | |
| in the session temporary directory <code>tempdir()</code>, | |
| addressed as the ‘<span class="file">/session</span>’ directory on the httpd | |
| server. | |
| </p> | |
| </li> | |
| <li><p> Development versions of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> are no longer referred to by the | |
| number under which they might be released, e.g., in the startup | |
| banner, <code>R --version</code> and <code>sessionUtils()</code>. The | |
| correct way to refer to a development version of R is | |
| ‘R-devel’, preferably with the date and SVN version number.<br /> | |
| E.g., <span class="samp">R-devel (2011-07-04 r56266)</span> | |
| </p> | |
| </li> | |
| <li><p> There is a new function <code>texi2pdf()</code> in package | |
| <span class="pkg">tools</span>, currently a convenience wrapper for | |
| <code>texi2dvi(pdf = TRUE)</code>. | |
| </p> | |
| </li> | |
| <li><p> There are two new options for typesetting PDF manuals from | |
| Rd files. These are <span class="samp">beramono</span> and <span class="samp">inconsolata</span>, and | |
| used the named font for monospaced output. They are intended to | |
| be used in combination with <span class="samp">times</span>, and | |
| <span class="samp">times,inconsolata,hyper</span> is now the default for the | |
| reference manual and package manuals. If you do not have that | |
| font installed, you can set <span class="env">R_RD4PF</span> to one of the other | |
| options: see the ‘R Installation and Administration Manual’. | |
| </p> | |
| </li> | |
| <li><p> Automatic printing for reference classes is now done by | |
| the <code>$show()</code> method. A method is defined for class | |
| <span class="samp">envRefClass</span> and may be overridden for user classes (see | |
| the <code>?ReferenceClasses</code> example). S4 <code>show()</code> methods | |
| should no longer be needed for reference classes. | |
| </p> | |
| </li> | |
| <li> <p><code>tools::Rdiff</code> (by default) and <code>R CMD Rdiff</code> | |
| now ignore differences in pointer values when comparing printed | |
| environments, compiled byte code, etc. | |
| </p> | |
| </li> | |
| <li><p> The <code>"source"</code> attribute on functions created with | |
| <code>keep.source=TRUE</code> has been replaced with a <code>"srcref"</code> | |
| attribute. The <code>"srcref"</code> attribute references an in-memory | |
| copy of the source file using the <code>"srcfilecopy"</code> class or | |
| the new <code>"srcfilealias"</code> class. | |
| </p> | |
| <p><strong>NB:</strong> This means that functions sourced with | |
| <code>keep.source = TRUE</code> and saved (e.g., by <code>save()</code> or | |
| <code>readRDS()</code>) in earlier versions of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> will no longer show | |
| the original sources (including comments). | |
| </p> | |
| </li> | |
| <li><p> New items <span class="samp">User Manuals</span> and | |
| <a href="http://developer.r-project.org/TechDocs">Technical Papers</a> | |
| have been added to the HTML help main page. These link to | |
| vignettes in the base and recommended packages and to a | |
| collection of papers about R issues, respectively. | |
| </p> | |
| </li> | |
| <li><p> Documentation and messages have been standardized to | |
| use “namespace” rather than “name space”. | |
| </p> | |
| </li> | |
| <li> <p><code>setGeneric()</code> now looks in the default packages for | |
| a non-generic version of a function if called from a package with a | |
| namespace. (It always did for packages without a namespace.) | |
| </p> | |
| </li> | |
| <li><p> Setting the environment variable | |
| <span class="env">_R_WARN_ON_LOCKED_BINDINGS_</span> will give a warning if an | |
| attempt is made to change a locked binding. | |
| </p> | |
| </li> | |
| <li> <p><code>\SweaveInput</code> is now supported when generating | |
| concordances in <code>Sweave()</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>findLineNum()</code> and <code>setBreakpoint()</code> now allow | |
| the environment to be specified indirectly; the latter gains | |
| a <code>clear</code> argument to allow it to call <code>untrace()</code>. | |
| </p> | |
| </li> | |
| <li><p> The body of a closure can be one of further types of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> | |
| objects, including environments and external pointers. | |
| </p> | |
| </li> | |
| <li><p> The <code>Rd2HTML()</code> function in package <span class="pkg">tools</span> now has | |
| a <code>stylesheet</code> argument, allowing pages to be displayed in | |
| alternate formats. | |
| </p> | |
| </li> | |
| <li><p> New function <code>requireNamespace()</code> analogous to | |
| <code>require()</code>, returning a logical value after attempting to | |
| load a namespace. | |
| </p> | |
| </li> | |
| <li><p> There is a new type of RNG, <code>"L'Ecuyer-CMRG"</code>, | |
| implementing L'Ecuyer (1999)'s ‘combined multiple-recursive | |
| generator’ <span class="samp">MRG32k3a</span>. See the comments on <code>?RNG</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>help.search()</code> and <code>??</code> can now display | |
| vignettes and demos as well as help pages. The new option | |
| <code>"help.search.types"</code> controls the types of documentation | |
| and the order of their display. | |
| </p> | |
| <p>This also applies to HTML searches, which now give results in all | |
| of help pages, vignettes and demos. | |
| </p> | |
| </li> | |
| <li> <p><code>socketConnection()</code> now has a <code>timeout</code> argument. | |
| It is now documented that large values (package <a href="https://CRAN.R-project.org/package=snow"><span class="pkg">snow</span></a> used a | |
| year) do not work on some OSes. | |
| </p> | |
| </li> | |
| <li><p> The initialization of the random-number generator now uses | |
| the process ID as well as the current time, just in case two <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> | |
| processes are launched very rapidly on a machine with | |
| low-resolution wall clock (some have a resolution of a second; | |
| modern systems have microsecond-level resolution). | |
| </p> | |
| </li> | |
| <li><p> New function <code>pskill()</code> in the <span class="pkg">tools</span> package to | |
| send a terminate signal to one or more processes, plus constants | |
| such as <code>SIGTERM</code> to provide a portable way to refer to | |
| signals (since the numeric values are OS-dependent). | |
| </p> | |
| </li> | |
| <li><p> New function <code>psnice()</code> in the <span class="pkg">tools</span> package to | |
| return or change the ‘niceness’ of a process. (Refers to | |
| the ‘priority class’ on Windows.) | |
| </p> | |
| </li> | |
| <li> <p><code>list.dirs()</code> gains a <code>recursive</code> argument. | |
| </p> | |
| </li> | |
| <li><p> An <span class="samp">Authors@R</span> field in a package ‘<span class="file">DESCRIPTION</span>’ | |
| file can now be used to generate <span class="samp">Author</span> and | |
| <span class="samp">Maintainer</span> fields if needed, and to auto-generate package | |
| citations. | |
| </p> | |
| </li> | |
| <li><p> New utility <code>getElement()</code> for accessing either a list | |
| component or a slot in an S4 object. | |
| </p> | |
| </li> | |
| <li> <p><code>stars()</code> gains a <code>col.lines</code> argument, thanks to | |
| Dustin Sallings. (Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14657">PR#14657</a>.) | |
| </p> | |
| </li> | |
| <li><p> New function <code>regmatches()</code> for extracting or replacing | |
| matched or non-matched substrings from match data obtained by | |
| <code>regexpr()</code>, <code>gregexpr()</code> and <code>regexec()</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>help(package = "pkg_name", help_type = "HTML")</code> now | |
| gives HTML help on the package rather than text help. (This gives | |
| direct access to the HTML version of the package manual shown | |
| <em>via</em> <code>help.start()</code>'s ‘Packages’ menu.) | |
| </p> | |
| </li> | |
| <li> <p><code>agrep()</code> gains a <code>fixed</code> argument to optionally | |
| allow approximate regular expression matching, and a <code>costs</code> | |
| argument to specify possibly different integer match costs for | |
| insertions, deletions and substitutions. | |
| </p> | |
| </li> | |
| <li> <p><code>read.dcf()</code> and <code>write.dcf()</code> gain a | |
| <code>keep.white</code> argument to indicate fields where whitespace | |
| should be kept as is. | |
| </p> | |
| </li> | |
| <li> <p><code>available.packages()</code> now works around servers that | |
| fail to return an error code when ‘<span class="file">PACKAGES.gz</span>’ does not | |
| exist. (Patch submitted by Seth Schommer.) | |
| </p> | |
| </li> | |
| <li> <p><code>readBin()</code> can now read more than | |
| <i>2^31 - 1</i> bytes in a single call (the previously | |
| documented limitation). | |
| </p> | |
| </li> | |
| <li><p> New function <code>regexec()</code> for finding the positions of | |
| matches as well as all substrings corresponding to parenthesized | |
| subexpressions of the given regular expression. | |
| </p> | |
| </li> | |
| <li><p> New function <code>adist()</code> in package <span class="pkg">utils</span> for | |
| computing ‘edit’ (generalized Levenshtein) distances between | |
| strings. | |
| </p> | |
| </li> | |
| <li><p> Class <code>"raster"</code> gains an <code>is.na</code> method to avoid | |
| confusion from the misuse of the matrix method (such as <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14618">PR#14618</a>). | |
| </p> | |
| </li> | |
| <li><p> The <code>identical()</code> function gains an | |
| <code>ignore.bytecode</code> argument to control comparison of | |
| compiled functions. | |
| </p> | |
| </li> | |
| <li> <p><code>pmin</code> and <code>pmax</code> now warn if an argument is | |
| partially recycled (wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14638">PR#14638</a>). | |
| </p> | |
| </li> | |
| <li><p> The default for <code>image(useRaster=)</code> is now taken from | |
| option <code>"preferRaster"</code>: for the small print see <code>?image</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>str()</code> now displays reference class objects and their | |
| fields, rather than treating them as classical S4 classes. | |
| </p> | |
| </li> | |
| <li><p> New function <code>aregexec()</code> in package <span class="pkg">utils</span> for | |
| finding the positions of approximate string matches as well as all | |
| substrings corresponding to parenthesized subexpressions of the | |
| given regular expression. | |
| </p> | |
| </li> | |
| <li> <p><code>download.file()</code> has an <code>extra</code> argument to pass | |
| additional command-line options to the non-default methods using | |
| command-line utilities. | |
| </p> | |
| <p><code>cacheOK = FALSE</code> is now supported for <code>method = "curl"</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>interaction.plot(*, type = .)</code> now also allows type | |
| <code>"o"</code> or <code>"c"</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>axTicks(*, log=TRUE)</code> did sometimes give more values | |
| than the ticks in the corresponding <code>graphics::axis()</code>. By | |
| default, it now makes use of the new (<span class="pkg">graphics</span>-package | |
| independent) <code>axisTicks()</code> which can make use of a new | |
| utility <code>.axisPars()</code>. Further, it now returns a decreasing | |
| sequence (as for <code>log=FALSE</code>) when <code>usr</code> is decreasing. | |
| </p> | |
| </li> | |
| <li><p> Using <code>fix()</code> or <code>edit()</code> on a <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> object (except | |
| perhaps a matrix or data frame) writes its temporary file with | |
| extension ‘<span class="file">.R</span>’ so editors which select their mode based on | |
| the extension will select a suitable mode. | |
| </p> | |
| </li></ul> | |
| <h4>GRAPHICS DEVICES</h4> | |
| <ul> | |
| <li><p> The <code>pdf()</code> device makes use of Flate compression: this | |
| is controlled by the new logical argument <code>compress</code>, and is | |
| enabled by default. | |
| </p> | |
| </li> | |
| <li><p> Devices <code>svg()</code>, <code>cairo_pdf()</code> and | |
| <code>cairo_ps()</code> gain a <code>family</code> argument. | |
| </p> | |
| <p>On a Unix-alike <code>X11()</code> gains a <code>family</code> argument. This | |
| is one of the <code>x11.options()</code> and so can be passed as an | |
| argument to the <code>bmp()</code>, <code>jpeg()</code>, <code>png()</code> and | |
| <code>tiff()</code> devices. | |
| </p> | |
| <p>Analogous changes have been made on Windows, so all built-in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> | |
| graphics devices now have a <code>family</code> argument except | |
| <code>pictex()</code> (which has no means to change fonts). | |
| </p> | |
| </li> | |
| <li><p> The <code>bmp()</code>, <code>jpeg()</code>, <code>png()</code> and <code>tiff()</code> | |
| devices now make use of the <code>antialias</code> argument for | |
| <code>type = "quartz"</code>. | |
| </p> | |
| </li> | |
| <li><p> There are several new built-in font mappings for | |
| <code>X11(type = "Xlib")</code>: see the help on <code>X11Fonts()</code>. | |
| </p> | |
| </li> | |
| <li><p> There is a new type <code>X11(type = "dbcairo")</code> which | |
| updates the screen less frequently: see its help page. | |
| </p> | |
| </li> | |
| <li><p> The <code>X11()</code> device now makes use of cursors to | |
| distinguish its states. The normal cursor is an arrow (rather | |
| than a crosshair); the crosshair is used when the locator is in | |
| use, and a watch cursor is shown when plotting computations are | |
| being done. (These are the standard names for X11 cursors: how | |
| they are actually displayed depends on the window manager.) | |
| </p> | |
| </li> | |
| <li><p> New functions <code>dev.hold()</code> and <code>dev.flush()</code> for | |
| use with graphics devices with buffering. These are used for most | |
| of the high-level graphics functions such as <code>boxplot()</code>, so | |
| that the plot is only displayed when the page is complete. | |
| </p> | |
| <p>Currently implemented for <code>windows(buffered = TRUE)</code>, | |
| <code>quartz()</code> and the cairographics-based <code>X11()</code> types | |
| with buffering (which are the default on-screen devices). | |
| </p> | |
| </li> | |
| <li><p> New function <code>dev.capture()</code> for capture of bitmap | |
| snapshots of image-based devices (a superset of the functionality | |
| provided by <code>grid.cap()</code> in <code>grid</code>). | |
| </p> | |
| </li> | |
| <li><p> The default <code>colormodel</code> for <code>pdf()</code> and | |
| <code>postscript()</code> is now called <code>"srgb"</code> to more accurately | |
| describe it. (Instead of <code>"rgb"</code>, and in the case of | |
| <code>postscript()</code> it no longer switches to and from the gray | |
| colorspace, by default.) | |
| </p> | |
| <p>The <code>colormodel</code> for <code>postscript()</code> which does use both | |
| gray and sRGB colorspaces is now called <code>"srgb+gray"</code>. | |
| </p> | |
| <p>Plots which are known to use only black/white/transparent can | |
| advantageously use <code>colormodel = "gray"</code> (just as before, but | |
| there is now slightly more advantage in doing so). | |
| </p> | |
| </li> | |
| <li> <p><code>postscript()</code> with values <code>colormodel = "rgb"</code> and | |
| <code>colormodel = "rgb-nogray"</code> give the behaviour prior to <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> | |
| 2.13.0 of uncalibrated RGB, which under some circumstances can be | |
| rendered much faster by a viewer. | |
| </p> | |
| <p><code>pdf(colormodel = "rgb")</code> gives the behaviour prior to <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> | |
| 2.13.0 of uncalibrated RGB, which under some circumstances can be | |
| rendered faster by a viewer, and the files will be smaller (by | |
| about 9KB if compression is not used). | |
| </p> | |
| </li> | |
| <li><p> The <code>postscript()</code> device only includes the definition | |
| of the sRGB colorspace in the output file for the colormodels | |
| which use it. | |
| </p> | |
| </li> | |
| <li><p> The <code>postscript()</code> and <code>pdf()</code> devices now output | |
| greyscale raster images (and not RGB) when <code>colormodel = "gray"</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>postscript(colormodel = "gray")</code> now accepts non-grey | |
| colours and uses their luminance (as <code>pdf()</code> long has). | |
| </p> | |
| </li> | |
| <li> <p><code>colormodel = "grey"</code> is allowed as an alternative name | |
| for <code>postscript()</code> and <code>pdf()</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>pdf()</code> in the default sRGB colorspace outputs many | |
| fewer changes of colorspace, which may speed up rendering in some | |
| viewing applications. | |
| </p> | |
| </li> | |
| <li><p> There is a new function <code>dev.capabilities()</code> to query | |
| the capabilities of the current device. The initial set of | |
| capabilities are support for semi-transparent colours, rendering | |
| and capturing raster images, the locator and for interactive | |
| events. | |
| </p> | |
| </li> | |
| <li><p> For <code>pdf()</code>, <code>maxRasters</code> is increased as needed | |
| so the argument is no longer used. | |
| </p> | |
| </li></ul> | |
| <h4>SWEAVE & VIGNETTES</h4> | |
| <ul> | |
| <li><p> Options <code>keep.source = TRUE, figs.only = FALSE</code> | |
| are now the default. | |
| </p> | |
| </li> | |
| <li><p> The way the type of user-defined options is determined has | |
| changed. Previously they were all regarded as logical: now the | |
| type is determined by the value given at first use. | |
| </p> | |
| </li> | |
| <li><p> The allowed values of logical options are now precisely | |
| those allowed for character inputs to <code>as.logical()</code>: this | |
| means that <span class="samp">t</span> and <span class="samp">f</span> are no longer allowed (although | |
| <code>T</code> and <code>F</code> still are). | |
| </p> | |
| </li> | |
| <li><p> The preferred location for vignette sources is now the | |
| directory ‘<span class="file">vignettes</span>’ and not ‘<span class="file">inst/doc</span>’: <code>R CMD | |
| build</code> will now re-build vignettes in directory ‘<span class="file">vignettes</span>’ | |
| and copy the ‘<span class="file">.Rnw</span>’ (etc) files and the corresponding PDFs to | |
| ‘<span class="file">inst/doc</span>’. Further files to be copied to ‘<span class="file">inst/doc</span>’ | |
| can be specified <em>via</em> the file | |
| ‘<span class="file">vignettes/.install_extras</span>’. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD Sweave</code> now supports a <span class="option">--driver</span> | |
| option to select the Sweave driver: the default is equivalent to | |
| <span class="option">--driver=RweaveLatex</span>. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD Sweave</code> and <code>R CMD Stangle</code> support | |
| options <span class="option">--encoding</span> and <span class="option">--options</span>. | |
| </p> | |
| </li> | |
| <li><p> The <code>Rtangle()</code> driver allows <code>output = "stdout"</code> | |
| or <code>output = "stderr"</code> to select the output or message | |
| connection. This is convenient for scripting using something like | |
| </p> | |
| <pre> R CMD Stangle --options='output="stdout"' foo.Rnw > foo2.R</pre> | |
| </li> | |
| <li><p> There is a new option <code>pdf.compress</code> controlling | |
| whether PDF figures are generated using Flate compression (they | |
| are by default). | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD Sweave</code> now has a <span class="option">--pdf</span> option to | |
| produce a PDF version of the processed Sweave document. | |
| </p> | |
| </li> | |
| <li><p> It is no longer allowed to have two vignettes with the | |
| same vignette basename (e.g., ‘<span class="file">vig.Rnw</span>’ and ‘<span class="file">vig.Snw</span>’). | |
| (Previously one vignette hid the other in the <code>vignette()</code> | |
| function.) | |
| </p> | |
| </li></ul> | |
| <h4>C-LEVEL FACILITIES</h4> | |
| <ul> | |
| <li><p> Function <code>R_tmpnam2</code> has been added to the API to allow | |
| a temporary filename to include a specified extension. | |
| </p> | |
| </li></ul> | |
| <h4>PACKAGE INSTALLATION</h4> | |
| <ul> | |
| <li><p> Package ‘<span class="file">DESCRIPTION</span>’ file field <span class="samp">KeepSource</span> | |
| forces the package to be installed with <code>keep.source = | |
| TRUE</code> (or <code>FALSE</code>). (Suggestion of Greg Snow. Note that | |
| as all packages are lazy-loaded, this is now only relevant at | |
| installation.) | |
| </p> | |
| <p>There are corresponding options <span class="option">--with-keep.source</span> and | |
| <span class="option">--without-keep.source</span> for <code>R CMD INSTALL</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD INSTALL</code> has a new option | |
| <span class="option">--byte-compile</span> to byte-compile the packages during | |
| installation (since all packages are now lazy-loaded). This can | |
| be controlled on a per-package basis by the optional field | |
| <span class="samp">ByteCompile</span> in the ‘<span class="file">DESCRIPTION</span>’ file. | |
| </p> | |
| </li> | |
| <li><p> A package <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> code but without a ‘<span class="file">NAMESPACE</span>’ file will | |
| have a default one created at <code>R CMD build</code> or <code>R | |
| CMD INSTALL</code> time, so all packages will be installed with | |
| namespaces. A consequence of this is that <code>.First.lib()</code> | |
| functions need to be copied to <code>.onLoad()</code> (usually) or | |
| <code>.onAttach()</code>. For the time being, if there is an | |
| auto-generated ‘<span class="file">NAMESPACE</span>’ file and no <code>.onLoad()</code> nor | |
| <code>.onAttach()</code> function is found but <code>.First.lib()</code> is, | |
| it will be run as the attach hook (unless the package is one of a | |
| list of known exceptions, when it will be run as the load hook). | |
| </p> | |
| </li> | |
| <li><p> A warning is given if test-loading a package changes a | |
| locked binding in a package other than itself. It is likely that | |
| this will be disallowed in future releases. (There are <em>pro | |
| tem</em> some exceptions to the warning.) | |
| </p> | |
| </li> | |
| <li><p> A dependency on SVN revision is allowed for <code>R</code>, | |
| e.g. <code>R (>= r56550)</code>. This should be used in conjunction with a | |
| version number, e.g. <code>R (>= 2.14.0), R (>= r56550)</code> to | |
| distinguish between R-patched and R-devel versions with the same | |
| SVN revision. | |
| </p> | |
| </li> | |
| <li> <p><code>installed.packages()</code> now hashes the names of its | |
| cache files to avoid very rare problems with excessively long path | |
| names. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14669">PR#14669</a>) | |
| </p> | |
| </li> | |
| <li><p> A top-level ‘<span class="file">COPYING</span>’ file in a package is no longer | |
| installed (file names ‘<span class="file">LICENSE</span>’ or ‘<span class="file">LICENCE</span>’ having long | |
| been preferred). | |
| </p> | |
| </li></ul> | |
| <h4>UTILITIES</h4> | |
| <ul> | |
| <li> <p><code>R CMD check</code> now gives an error if the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> code in a | |
| vignette fails to run, unless this is caused by a missing package. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> now unpacks tarballs in the same way | |
| as <code>R CMD INSTALL</code>, including making use of the | |
| environment variable <span class="env">R_INSTALL_TAR</span> to override the default | |
| behaviour. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> performs additional code analysis of | |
| package startup functions, and notifies about incorrect argument | |
| lists and (incorrect) calls to functions which modify the search | |
| path or inappropriately generate messages. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> now also checks compiled code for | |
| symbols corresponding to functions which might terminate <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> or | |
| write to ‘<span class="file">stdout</span>’/‘<span class="file">stderr</span>’ instead of the console. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> now uses a <code>pdf()</code> device when | |
| checking examples (rather than <code>postscript()</code>). | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> now checks line-endings of makefiles | |
| and C/C++/Fortran sources in subdirectories of ‘<span class="file">src</span>’ as well | |
| as in ‘<span class="file">src</span>’ itself. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> now reports as a NOTE what look like | |
| methods documented with their full names even if there is a | |
| namespace and they are exported. In almost all cases they are | |
| intended to be used only as methods and should use the | |
| <span class="samp">\method</span> markup. In the other rare cases the recommended | |
| form is to use a function such as <code>coefHclust</code> which would | |
| not get confused with a method, document that and register it in | |
| the ‘<span class="file">NAMESPACE</span>’ file by <code>s3method(coef, hclust, | |
| coefHclust)</code>. | |
| </p> | |
| </li> | |
| <li><p> The default for the environment variable | |
| <span class="env">_R_CHECK_COMPACT_DATA2_</span> is now true: thus if using the newer | |
| forms of compression introduced in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.10.0 would be beneficial | |
| is now checked (by default). | |
| </p> | |
| </li> | |
| <li><p> Reference output for a vignette can be supplied when | |
| checking a package by <code>R CMD check</code>: see ‘Writing R | |
| Extensions’. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD Rd2dvi</code> allows the use of LaTeX package | |
| <span class="samp">inputenx</span> rather than <span class="samp">inputenc</span>: the value of the | |
| environment variable <span class="env">RD2DVI_INPUTENC</span> is used. (LaTeX package | |
| <span class="samp">inputenx</span> is an optional install which provides greater | |
| coverage of the UTF-8 encoding.) | |
| </p> | |
| </li> | |
| <li> <p><code>Rscript</code> on a Unix-alike now accepts file names | |
| containing spaces (provided these are escaped or quoted in the | |
| shell). | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD build</code> on a Unix-alike (only) now tries to | |
| preserve dates on files it copies from its input directory. (This | |
| was the undocumented behaviour prior to <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.13.0.) | |
| </p> | |
| </li></ul> | |
| <h4>DEPRECATED AND DEFUNCT</h4> | |
| <ul> | |
| <li> <p><code>require()</code> no longer has a <code>save</code> argument. | |
| </p> | |
| </li> | |
| <li><p> The <code>gamma</code> argument to <code>hsv()</code>, | |
| <code>rainbow()</code>, and <code>rgb2hsv()</code> has been removed. | |
| </p> | |
| </li> | |
| <li><p> The <span class="option">--no-docs</span> option for | |
| <code>R CMD build --binary</code> is defunct: use | |
| <span class="option">--install-args</span> instead. | |
| </p> | |
| </li> | |
| <li><p> The option <span class="option">--unsafe</span> to <code>R CMD INSTALL</code> is | |
| defunct: use the identical option <span class="option">--no-lock</span> instead. | |
| </p> | |
| </li> | |
| <li><p> The entry point <code>pythag</code> formerly in ‘<span class="file">Rmath.h</span>’ is | |
| defunct: use instead the C99 function <code>hypot</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD build --binary</code> is formally defunct: | |
| <code>R CMD INSTALL --build</code> has long been the preferred | |
| alternative. | |
| </p> | |
| </li> | |
| <li> <p><code>zip.file.extract()</code> is now defunct: use | |
| <code>unzip()</code> or <code>unz()</code> instead. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD Rd2dvi</code> without the <span class="option">--pdf</span> option is | |
| now deprecated: only PDF output will be supported in future | |
| releases (since this allows the use of fonts only supported for | |
| PDF), and only <code>R CMD Rd2pdf</code> will be available. | |
| </p> | |
| </li> | |
| <li><p> Options such as <span class="option">--max-nsize</span> and the function | |
| <code>mem.limits()</code> are now deprecated: these limits are nowadays | |
| almost never used, and are reported by <code>gc()</code> when they are | |
| in use. | |
| </p> | |
| </li> | |
| <li><p> Forms like <code>binomial(link = "link")</code> for GLM families | |
| deprecated since <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.4.0 are now defunct. | |
| </p> | |
| </li> | |
| <li><p> The <code>declarativeOnly</code> argument to | |
| <code>loadNamespace()</code> (not relevant since <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.13.0) has been | |
| removed. | |
| </p> | |
| </li> | |
| <li><p> Use of <code>library.dynam()</code> without specifying all the | |
| first three arguments is deprecated. (It is often called from a | |
| namespace, and the defaults are only appropriate to a package.) | |
| </p> | |
| <p>Use of <code>chname</code> in <code>library.dynam()</code> with the extension | |
| ‘<span class="file">.so</span>’ or <code>.dll</code> (which is clearly not allowed according | |
| to the help page) is deprecated. This also applies to | |
| <code>library.dynam.unload()</code> and <code>useDynLib</code> directives in | |
| ‘<span class="file">NAMESPACE</span>’ files. | |
| </p> | |
| </li> | |
| <li><p> It is deprecated to use <code>mean(x)</code> and <code>sd(x)</code> | |
| directly on data frames (or also matrices, for <code>sd</code>) | |
| <code>x</code>, instead of simply using <code>sapply</code>. | |
| </p> | |
| <p>In the same spirit, <code>median(x)</code> now gives an error for a data | |
| frame <code>x</code> (it often gave nonsensical results). | |
| </p> | |
| </li> | |
| <li><p> The <code>keep.source</code> argument to <code>library()</code> and | |
| <code>require()</code> is deprecated: it was only used for packages | |
| installed without lazy-loading, and now all packages are | |
| lazy-loaded. | |
| </p> | |
| </li> | |
| <li><p> Using a false value for the ‘<span class="file">DESCRIPTION</span>’ field | |
| <span class="samp">LazyLoad</span> is deprecated. | |
| </p> | |
| </li></ul> | |
| <h4>INSTALLATION</h4> | |
| <ul> | |
| <li><p> The base and recommended packages are now byte-compiled | |
| (equivalent to <code>make bytecode</code> in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.13.x). | |
| </p> | |
| </li> | |
| <li><p> Configure option <span class="option">--with-system-zlib</span> now only makes | |
| use of the basic interface of <code>zlib</code> and not the | |
| C function <span class="samp">gzseek</span> which has shown erroneous behaviour in | |
| <code>zlib</code> 1.2.4 and 1.2.5. | |
| </p> | |
| </li> | |
| <li><p> The <code>zlib</code> in the R sources is now version 1.2.5. | |
| (This is safe even on 32-bit Linux systems because only the basic | |
| interface is now used.) | |
| </p> | |
| </li> | |
| <li><p> The ‘<span class="file">.afm</span>’ files in package <span class="pkg">grDevices</span> are now | |
| installed as compressed files (as long done on Windows), saving ca | |
| 2MB on the installed size. | |
| </p> | |
| </li> | |
| <li><p> The non-screen cairo-based devices are no longer in the X11 | |
| module and so can be installed without X11. (We have never seen a | |
| Unix-alike system with cairographics installed but not X11, but a | |
| user might select <span class="option">--without-x</span>.) | |
| </p> | |
| </li> | |
| <li><p> Configure will try to use <span class="option">-fobjc-exceptions</span> for the | |
| Objective-C compiler (if present) to ensure that even compilers | |
| that do not enable exceptions by default (such as vanilla gcc) can | |
| be used. (Objective-C is currently only used on Mac OS X.) | |
| </p> | |
| </li> | |
| <li><p> The system call <code>times</code> is required. | |
| </p> | |
| </li> | |
| <li><p> The C99 functions <code>acosh</code>, <code>asinh</code>, <code>atanh</code>, | |
| <code>snprintf</code> and <code>vsnprintf</code> are now required. | |
| </p> | |
| </li> | |
| <li><p> There is no longer support for making DVI manuals <em>via</em> | |
| <code>make dvi</code>, <code>make install-dvi</code> and similar. Only | |
| PDF manuals are supported (to allow the use of fonts which are | |
| only available for PDF.) | |
| </p> | |
| </li> | |
| <li><p> The ‘<span class="file">configure</span>’ arguments used during configuration of | |
| <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> are included as a comment in ‘<span class="file">Makeconf</span>’ for informative | |
| purposes on Unix-alikes in a form suitable for shell execution. | |
| Note that those are merely command-line arguments, they do not | |
| include environment variables (one more reason to use configure | |
| variables instead) or site configuration settings. | |
| </p> | |
| </li> | |
| <li><p> Framework installation now supports <code>DESTDIR</code> | |
| (Mac OS X only). | |
| </p> | |
| </li> | |
| <li><p> Java detection (<code>R CMD javareconf</code>) works around bogus | |
| <code>java.library.path</code> property in recent Oracle Java binaries. | |
| </p> | |
| </li></ul> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li><p> The locale category <span class="samp">LC_MONETARY</span> was only being set on | |
| startup on Windows: that is now done on Unix-alikes where | |
| supported. | |
| </p> | |
| </li> | |
| <li><p> Reference class utilities will detect an attempt to modify | |
| methods or fields in a locked class definition (e.g., in a | |
| namespace) and generate an error. | |
| </p> | |
| </li> | |
| <li><p> The formula methods for <code>lines()</code>, <code>points()</code> and | |
| <code>text()</code> now work even if package <span class="pkg">stats</span> is not on the | |
| search path. | |
| </p> | |
| </li> | |
| <li><p> In principle, S4 classes from different packages could | |
| have the same name. This has not previously worked. Changes | |
| have now been installed that should allow such classes and | |
| permit methods to use them. New functions <code>className()</code> | |
| and <code>multipleClasses()</code> are related tools for programming. | |
| </p> | |
| </li> | |
| <li><p> Work around an issue in Linux (a system <code>select</code> call | |
| resetting <code>tv</code>) which prevented internet operations from | |
| timing out properly. | |
| </p> | |
| </li> | |
| <li><p> Several stack trampling and overflow issues have been fixed | |
| in TRE, triggered by <code>agrep</code> and friends with long patterns. | |
| (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14627">PR#14627</a>) | |
| </p> | |
| </li> | |
| <li><p> (“design infelicity”) Field assignments in reference | |
| classes are now consistent with slots in S4 classes: the | |
| assigned value must come from the declared class (if any) for the field | |
| or from a subclass. | |
| </p> | |
| </li> | |
| <li><p> The methods objects constructed for <code>"coerce"</code> and | |
| <code>"coerce<-"</code> were lacking some essential information in the | |
| <code>generic</code>, <code>defined</code> and <code>target</code> slots; | |
| <code>as()</code> did not handle duplicate class definitions correctly. | |
| </p> | |
| </li> | |
| <li><p> The parser no longer accepts the digit <code>8</code> in an octal | |
| character code in a string, nor does it accept unterminated | |
| strings in a file. (Reported by Bill Dunlap.) | |
| </p> | |
| </li> | |
| <li><p> The <code>print()</code> method for class <code>"summary.aov"</code> did | |
| not pass on argument <code>digits</code> when <code>summary()</code> was | |
| called on a single object, and hence used more digits than | |
| documented. | |
| </p> | |
| </li> | |
| <li><p> The <code>X11()</code> device's cairo back-end produced incorrect | |
| capture snapshot images on big-endian machines. | |
| </p> | |
| </li> | |
| <li> <p><code>loglin()</code> gave a spurious error when argument | |
| <code>margin</code> consisted of a single element of length one. | |
| (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14690">PR#14690</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>loess()</code> is better protected against misuse, | |
| e.g. zero-length <code>span</code>. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14691">PR#14691</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>HoltWinters()</code> checks that the optimization | |
| succeeded. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14694">PR#14694</a>) | |
| </p> | |
| </li> | |
| <li><p> The (undocumented) inclusion of superclass objects in | |
| default initializing of reference classes overwrote explicit | |
| field arguments. The bug is fixed, the feature documented and a | |
| test added. | |
| </p> | |
| </li> | |
| <li> <p><code>round(x, -Inf)</code> now does something sensible (return | |
| zero rather than <code>NA</code>). | |
| </p> | |
| </li> | |
| <li> <p><code>signif(x, -Inf)</code> now behaves as documented | |
| (<code>signif(x, 1)</code>) rather than giving zero. | |
| </p> | |
| </li> | |
| <li><p> The <code>"table"</code> method for <code>Axis()</code> hardcoded | |
| <code>side = 1</code>, hence calls to <code>plot(<vector>, <table>)</code> | |
| labelled the wrong axis. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14699">PR#14699</a>) | |
| </p> | |
| </li> | |
| <li><p> Creating a connection might fail under <code>gctorture(TRUE)</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>stack()</code> and <code>unstack()</code> converted character | |
| columns to factors. | |
| </p> | |
| <p><code>unstack()</code> sometimes produced incorrect results (a list or a | |
| vector) if the factor on which to un-split had only one level. | |
| </p> | |
| </li> | |
| <li><p> On some systems <code>help(".C", help_type = "pdf")</code> and | |
| similar generated file names that TeX was unable to handle. | |
| </p> | |
| </li> | |
| <li><p> Non-blocking listening socket connections continued to | |
| report <code>isIncomplete()</code> as true even when the peer had closed | |
| down and all available input had been read. | |
| </p> | |
| </li> | |
| <li><p> The revised HTML search system now generates better | |
| hyperlinks to help topics found: previously it gave problems with | |
| help pages with names containing e.g. spaces and slashes. | |
| </p> | |
| </li> | |
| <li><p> A late change in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.13.2 broke <span class="samp">\Sexpr</span> expressions | |
| in Rd files. | |
| </p> | |
| </li> | |
| <li><p> The creation of ticks on log axes (including by | |
| <code>axTicks()</code>) sometimes incorrectly omitted a tick at one end | |
| of the range by rounding error in a platform-dependent way. This | |
| could be seen in the examples for <code>axTicks()</code>, where with | |
| axis limits <code>c(0.2, 88)</code> the tick for <code>0.2</code> was | |
| sometimes omitted. | |
| </p> | |
| </li> | |
| <li> <p><code>qgamma()</code> for small <code>shape</code> underflows to | |
| <code>0</code> rather than sometimes giving <code>NaN</code>. | |
| (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=8528">PR#8528</a>, <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14710">PR#14710</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>mapply()</code> now gives an explicit error message (rather | |
| than an obscure one) if inputs of zero and positive length are | |
| mixed. | |
| </p> | |
| </li> | |
| <li><p> Setting a Hershey font family followed by string height | |
| query would crash R. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD javareconf -e</code> would fail for some shells due to | |
| a shift error. Also the resulting paths will no longer contain | |
| <code>$(JAVA_HOME)</code> as that can result in an unintended | |
| substitution based on ‘<span class="file">Makeconf</span>’ instead of the shell | |
| setting. | |
| </p> | |
| </li></ul> | |
| <h3><img class="toplogo" src="../help/figures/../../html/Rlogo.svg" alt="[R logo]" /> CHANGES IN R VERSION 2.13.2</h3> | |
| <h4>NEW FEATURES</h4> | |
| <ul> | |
| <li> <p><code>mem.limits()</code> now reports values larger than the | |
| maximum integer (previously documented to be reported as | |
| <code>NA</code>), and allows larger values to be set, including | |
| <code>Inf</code> to remove the limit. | |
| </p> | |
| </li> | |
| <li><p> The <code>print()</code> methods for classes <code>"Date"</code>, | |
| <code>"POSIXct"</code> and <code>"POSIXlt"</code> respect the option | |
| <code>"max.print"</code> and so are much faster for very long datetime | |
| vectors. (Suggestion of Yohan Chalabi.) | |
| </p> | |
| </li> | |
| <li> <p><code>untar2()</code> now works around errors generated with | |
| <code>tar</code> files that use more than the standard 6 digits for the | |
| checksum. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14654">PR#14654</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>install.packages()</code> with <code>Ncpus > 1</code> guards | |
| against simultaneous installation of indirect dependencies as well | |
| as direct ones. | |
| </p> | |
| </li> | |
| <li><p> Sweave now knows about a few more Windows' encodings | |
| (including <code>cp1250</code> and <code>cp1257</code>) and some | |
| <code>inputenx</code> encodings such as <code>koi8-r</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>postscript(colormodel = "rgb-nogray")</code> no longer sets | |
| the sRGB colorspace for each colour and so some viewers may render | |
| its files much faster than the default <code>colormodel ="rgb"</code>. | |
| </p> | |
| </li> | |
| <li><p> The default for <code>pdf(maxRasters=)</code> has been increased | |
| from 64 to 1000. | |
| </p> | |
| </li> | |
| <li> <p><code>readBin()</code> now warns if <code>signed = FALSE</code> is used | |
| inappropriately (rather than being silently ignored). | |
| </p> | |
| <p>It enforces the documented limit of <i>2^31-1</i> bytes | |
| in a single call. | |
| </p> | |
| </li> | |
| <li><p> PCRE has been updated to version 8.13, a bug-fix release | |
| with updated Unicode tables (version 6.0.0). An additional patch | |
| (r611 from PCRE 8.20-to-be) has been added to fix a collation | |
| symbol recognition issue. | |
| </p> | |
| </li></ul> | |
| <h4>INSTALLATION</h4> | |
| <ul> | |
| <li><p> It is possible to build in ‘<span class="file">src/extra/xdr</span>’ on more | |
| platforms. (Needed since glibc 2.14 hides its RPC implementation.) | |
| </p> | |
| </li> | |
| <li> <p><code>configure</code> will find the Sun TI-RPC implementation | |
| of xdr (in ‘<span class="file">libtirpc</span>’) provided its header files are in the | |
| search path: see the ‘R Installation and Administration | |
| Manual’. | |
| </p> | |
| </li></ul> | |
| <h4>PACKAGE INSTALLATION</h4> | |
| <ul> | |
| <li><p> Using a broad <code>exportPattern</code> directive in a | |
| ‘<span class="file">NAMESPACE</span>’ file is no longer allowed to export internal | |
| objects such as <code>.onLoad</code> and <code>.__S3MethodsTable__.</code> . | |
| </p> | |
| <p>These are also excluded from imports, along with <code>.First.lib</code>. | |
| </p> | |
| </li></ul> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li> <p><code>fisher.test()</code> had a buglet: If arguments were factors | |
| with unused levels, levels were dropped and you would get an error | |
| saying that there should be at least two levels, inconsistently | |
| with pre-tabulated data. (Reported by Michael Fay). | |
| </p> | |
| </li> | |
| <li> <p><code>package.skeleton()</code> will no longer dump S4 objects | |
| supplied directly rather than in a code file. These cannot be | |
| restored correctly from the dumped version. | |
| </p> | |
| </li> | |
| <li><p> Build-time expressions in help files did not have access | |
| to functions in the package being built (with <code>R CMD build</code>). | |
| </p> | |
| </li> | |
| <li><p> Because <code>quote()</code> did not mark its result as being in | |
| use, modification of the result could in some circumstances | |
| modify the original call. | |
| </p> | |
| </li> | |
| <li><p> Plotting <code>pch = '.'</code> now guarantees at least a one-pixel | |
| dot if <code>cex > 0</code>. | |
| </p> | |
| </li> | |
| <li><p> The very-rarely-used command-line option | |
| <span class="option">--max-vsize</span> was incorrectly interpreted as a number of | |
| Vcells and not in bytes as documented. (Spotted by Christophe | |
| Rhodes.) | |
| </p> | |
| </li> | |
| <li><p> The HTML generated by <code>Rd2HTML()</code> comes closer to | |
| being standards compliant. | |
| </p> | |
| </li> | |
| <li> <p><code>filter(x, recursive = TRUE)</code> gave incorrect results on a | |
| series containing <code>NA</code>s. (Spotted by Bill Dunlap.) | |
| </p> | |
| </li> | |
| <li><p> Profiling <code>stats::mle()</code> fits with a <code>fixed</code> | |
| parameter was not supported. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14646">PR#14646</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>retracemem()</code> was still using positional matching. | |
| (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14650">PR#14650</a>) | |
| </p> | |
| </li> | |
| <li><p> The <code>quantile</code> method for <code>"ecdf"</code> objects now | |
| works and is documented. | |
| </p> | |
| </li> | |
| <li> <p><code>xtabs(~ .., ..., sparse=TRUE)</code> now also works together | |
| with an <code>exclude = ..</code> specification. | |
| </p> | |
| </li> | |
| <li> <p><code>decompose()</code> computed an incorrect seasonal component for | |
| time series with odd frequencies. | |
| </p> | |
| </li> | |
| <li><p> The <code>pdf()</code> device only includes the definition of the | |
| sRGB colorspace in the output file for the <code>"rgb"</code> colormodel | |
| (and not for <code>"gray"</code> nor <code>"cmyk"</code>): this saves ca | |
| 9KB in the output file. | |
| </p> | |
| </li> | |
| <li> <p><code>.hasSlot()</code> wrongly gave <code>FALSE</code> in some cases. | |
| </p> | |
| </li> | |
| <li> <p><code>Sweave()</code> with <code>keep.source=TRUE</code> could generate | |
| spurious <code>NA</code> lines when a chunk reference appeared last in | |
| a code chunk. | |
| </p> | |
| </li> | |
| <li> <p><span class="samp">\Sexpr[results=rd]</span> in an ‘<span class="file">.Rd</span>’ file now first tries | |
| <code>parse_Rd(fragment=FALSE)</code> to allow Rd section-level macros | |
| to be inserted. | |
| </p> | |
| </li> | |
| <li><p> The <code>print()</code> method for class <code>"summary.aov"</code> did | |
| not pass on arguments such as <code>signif.stars</code> when | |
| <code>summary()</code> was called on a single object. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14684">PR#14684</a>) | |
| </p> | |
| </li> | |
| <li><p> In rare cases <code>ks.test()</code> could return a p-value | |
| very slightly less than 0 by rounding error. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14671">PR#14671</a>) | |
| </p> | |
| </li> | |
| <li><p> If <code>trunc()</code> was called on a <code>"POSIXlt"</code> vector | |
| and the result was subsetted, all but the first element was | |
| converted to <code>NA</code>. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14679">PR#14679</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>cbind()</code> and <code>rbind()</code> could cause memory | |
| corruption when used on a combination of raw and logical/integer | |
| vectors. | |
| </p> | |
| </li></ul> | |
| <h3><img class="toplogo" src="../help/figures/../../html/Rlogo.svg" alt="[R logo]" /> CHANGES IN R VERSION 2.13.1</h3> | |
| <h4>NEW FEATURES</h4> | |
| <ul> | |
| <li> <p><code>iconv()</code> no longer translates <code>NA</code> strings as | |
| <code>"NA"</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>persp(box = TRUE)</code> now warns if the surface extends | |
| outside the box (since occlusion for the box and axes is computed | |
| assuming the box is a bounding box). (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=202">PR#202</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>RShowDoc()</code> can now display the licences shipped with | |
| <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>, e.g. <code>RShowDoc("GPL-3")</code>. | |
| </p> | |
| </li> | |
| <li><p> New wrapper function <code>showNonASCIIfile()</code> in package | |
| <span class="pkg">tools</span>. | |
| </p> | |
| </li> | |
| <li> <p><code>nobs()</code> now has a <code>"mle"</code> method in package | |
| <span class="pkg">stats4</span>. | |
| </p> | |
| </li> | |
| <li> <p><code>trace()</code> now deals correctly with S4 reference classes | |
| and corresponding reference methods (e.g., <code>$trace()</code>) | |
| have been added. | |
| </p> | |
| </li> | |
| <li> <p><code>xz</code> has been updated to 5.0.3 (very minor bugfix | |
| release). | |
| </p> | |
| </li> | |
| <li> <p><code>tools::compactPDF()</code> gets more compression (usually a | |
| little, sometimes a lot) by using the compressed object streams of | |
| PDF 1.5. | |
| </p> | |
| </li> | |
| <li> <p><code>cairo_ps(onefile = TRUE)</code> generates encapsulated EPS | |
| on platforms with cairo >= 1.6. | |
| </p> | |
| </li> | |
| <li><p> Binary reads (e.g., by <code>readChar()</code> and <code>readBin()</code>) | |
| are now supported on clipboard connections. (Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14593">PR#14593</a>.) | |
| </p> | |
| </li> | |
| <li> <p><code>as.POSIXlt.factor()</code> now passes <code>...</code> to the | |
| character method (suggestion of Joshua Ulrich). [Intended for <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> | |
| 2.13.0 but accidentally removed before release.] | |
| </p> | |
| </li> | |
| <li> <p><code>vector()</code> and its wrappers such as <code>integer()</code> | |
| and <code>double()</code> now warn if called with a <code>length</code> | |
| argument of more than one element. This helps track down user | |
| errors such as calling <code>double(x)</code> instead of | |
| <code>as.double(x)</code>. | |
| </p> | |
| </li></ul> | |
| <h4>INSTALLATION</h4> | |
| <ul> | |
| <li><p> Building the vignette PDFs in packages <span class="pkg">grid</span> and | |
| <span class="pkg">utils</span> is now part of running <code>make</code> from an SVN | |
| checkout on a Unix-alike: a separate <code>make vignettes</code> step | |
| is no longer required. | |
| </p> | |
| <p>These vignettes are now made with <code>keep.source = TRUE</code> and | |
| hence will be laid out differently. | |
| </p> | |
| </li> | |
| <li> <p><code>make install-strip</code> failed under some configuration | |
| options. | |
| </p> | |
| </li> | |
| <li><p> Packages can customize non-standard installation of compiled | |
| code via a <code>src/install.libs.R</code> script. This allows packages that | |
| have architecture-specific binaries (beyond the package's shared | |
| objects/DLLs) to be installed in a multi-architecture setting. | |
| </p> | |
| </li></ul> | |
| <h4>SWEAVE & VIGNETTES</h4> | |
| <ul> | |
| <li> <p><code>Sweave()</code> and <code>Stangle()</code> gain an <code>encoding</code> | |
| argument to specify the encoding of the vignette sources if the | |
| latter do not contain a <span class="samp">\usepackage[]{inputenc}</span> statement | |
| specifying a single input encoding. | |
| </p> | |
| </li> | |
| <li><p> There is a new Sweave option <code>figs.only = TRUE</code> to run | |
| each figure chunk only for each selected graphics device, and not | |
| first using the default graphics device. This will become the | |
| default in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.14.0. | |
| </p> | |
| </li> | |
| <li><p> Sweave custom graphics devices can have a custom function | |
| <code>foo.off()</code> to shut them down. | |
| </p> | |
| </li> | |
| <li><p> Warnings are issued when non-portable filenames are found | |
| for graphics files (and chunks if <code>split = TRUE</code>). Portable | |
| names are regarded as alphanumeric plus hyphen, underscore, plus | |
| and hash (periods cause problems with recognizing file | |
| extensions). | |
| </p> | |
| </li> | |
| <li><p> The <code>Rtangle()</code> driver has a new option | |
| <code>show.line.nos</code> which is by default false; if true it | |
| annotates code chunks with a comment giving the line number of the | |
| first line in the sources (the behaviour of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> >= 2.12.0). | |
| </p> | |
| </li> | |
| <li><p> Package installation tangles the vignette sources: this step | |
| now converts the vignette sources from the vignette/package | |
| encoding to the current encoding, and records the encoding (if not | |
| ASCII) in a comment line at the top of the installed ‘<span class="file">.R</span>’ | |
| file. | |
| </p> | |
| </li></ul> | |
| <h4>LICENCE</h4> | |
| <ul> | |
| <li><p> No parts of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> are now licensed solely under GPL-2. The | |
| licences for packages <a href="https://CRAN.R-project.org/package=rpart"><span class="pkg">rpart</span></a> and <a href="https://CRAN.R-project.org/package=survival"><span class="pkg">survival</span></a> have been | |
| changed, which means that the licence terms for <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> as distributed | |
| are GPL-2 | GPL-3. | |
| </p> | |
| </li></ul> | |
| <h4>DEPRECATED AND DEFUNCT</h4> | |
| <ul> | |
| <li><p> The internal functions <code>.readRDS()</code> and | |
| <code>.saveRDS()</code> are now deprecated in favour of the public | |
| functions <code>readRDS()</code> and <code>saveRDS()</code> introduced in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> | |
| 2.13.0. | |
| </p> | |
| </li> | |
| <li><p> Switching off lazy-loading of code <em>via</em> the | |
| <span class="samp">LazyLoad</span> field of the ‘<span class="file">DESCRIPTION</span>’ file is now | |
| deprecated. In future all packages will be lazy-loaded. | |
| </p> | |
| </li> | |
| <li><p> The off-line <code>help()</code> types <span class="samp">"postscript"</span> and | |
| <span class="samp">"ps"</span> are deprecated. | |
| </p> | |
| </li></ul> | |
| <h4>UTILITIES</h4> | |
| <ul> | |
| <li> <p><code>R CMD check</code> on a multi-architecture installation now | |
| skips the user's ‘<span class="file">.Renviron</span>’ file for the | |
| architecture-specific tests (which do read the | |
| architecture-specific ‘<span class="file">Renviron.site</span>’ files). This is | |
| consistent with single-architecture checks, which use | |
| <span class="option">--no-environ</span>. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD build</code> now looks for ‘<span class="file">DESCRIPTION</span>’ | |
| fields <span class="samp">BuildResaveData</span> and <span class="samp">BuildKeepEmpty</span> for | |
| per-package overrides. See ‘Writing R Extensions’. | |
| </p> | |
| </li></ul> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li> <p><code>plot.lm(which = 5)</code> was intended to order factor | |
| levels in increasing order of mean standardized residual. It | |
| ordered the factor labels correctly, but could plot the wrong | |
| group of residuals against the label. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14545">PR#14545</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>mosaicplot()</code> could clip the factor labels, and could | |
| overlap them with the cells if a non-default value of | |
| <code>cex.axis</code> was used. (Related to <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14550">PR#14550</a>.) | |
| </p> | |
| </li> | |
| <li> <p><code>dataframe[[row,col]]</code> now dispatches on <code>[[</code> | |
| methods for the selected column. (Spotted by Bill Dunlap). | |
| </p> | |
| </li> | |
| <li> <p><code>sort.int()</code> would strip the class of an object, but | |
| leave its object bit set. (Reported by Bill Dunlap.) | |
| </p> | |
| </li> | |
| <li> <p><code>pbirthday()</code> and <code>qbirthday()</code> did not implement | |
| the algorithm exactly as given in their reference and so were | |
| unnecessarily inaccurate. | |
| </p> | |
| <p><code>pbirthday()</code> now solves the approximate formula analytically | |
| rather than using <code>uniroot()</code> on a discontinuous function. | |
| </p> | |
| <p>The description of the problem was inaccurate: the probability is | |
| a tail probability (‘2 <em>or more</em> people share a birthday’) | |
| </p> | |
| </li> | |
| <li><p> Complex arithmetic sometimes warned incorrectly about | |
| producing NAs when there were NaNs in the input. | |
| </p> | |
| </li> | |
| <li> <p><code>seek(origin = "current")</code> incorrectly reported it was | |
| not implemented for a <code>gzfile()</code> connection. | |
| </p> | |
| </li> | |
| <li> <p><code>c()</code>, <code>unlist()</code>, <code>cbind()</code> and | |
| <code>rbind()</code> could silently overflow the maximum vector length | |
| and cause a segfault. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14571">PR#14571</a>) | |
| </p> | |
| </li> | |
| <li><p> The <code>fonts</code> argument to <code>X11(type = "Xlib")</code> was | |
| being ignored. | |
| </p> | |
| </li> | |
| <li><p> Reading (e.g., with <code>readBin()</code>) from a raw connection | |
| was not advancing the pointer, so successive reads would read the | |
| same value. (Spotted by Bill Dunlap.) | |
| </p> | |
| </li> | |
| <li><p> Parsed text containing embedded newlines was printed | |
| incorrectly by <code>as.character.srcref()</code>. (Reported by Hadley | |
| Wickham.) | |
| </p> | |
| </li> | |
| <li> <p><code>decompose()</code> used with a series of a non-integer | |
| number of periods returned a seasonal component shorter than the | |
| original series. (Reported by Rob Hyndman.) | |
| </p> | |
| </li> | |
| <li> <p><code>fields = list()</code> failed for <code>setRefClass()</code>. | |
| (Reported by Michael Lawrence.) | |
| </p> | |
| </li> | |
| <li><p> Reference classes could not redefine an inherited field | |
| which had class <code>"ANY"</code>. (Reported by Janko Thyson.) | |
| </p> | |
| </li> | |
| <li><p> Methods that override previously loaded versions will now | |
| be installed and called. (Reported by Iago Mosqueira.) | |
| </p> | |
| </li> | |
| <li> <p><code>addmargins()</code> called <code>numeric(apos)</code> rather than | |
| <code>numeric(length(apos))</code>. | |
| </p> | |
| </li> | |
| <li><p> The HTML help search sometimes produced bad links. | |
| (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14608">PR#14608</a>) | |
| </p> | |
| </li> | |
| <li><p> Command completion will no longer be broken if | |
| <code>tail.default()</code> is redefined by the user. (Problem reported | |
| by Henrik Bengtsson.) | |
| </p> | |
| </li> | |
| <li><p> LaTeX rendering of markup in titles of help pages has been | |
| improved; in particular, <code>\eqn{}</code> may be used there. | |
| </p> | |
| </li> | |
| <li> <p><code>isClass()</code> used its own namespace as the default of | |
| the <code>where</code> argument inadvertently. | |
| </p> | |
| </li> | |
| <li><p> Rd conversion to latex mishandled multi-line titles | |
| (including cases where there was a blank line in the <span class="samp">\title</span> | |
| section). (It seems this happened only in 2.13.0 patched.) | |
| </p> | |
| </li> | |
| <li> <p><code>postscript()</code> with an sRGB colormodel now uses sRGB | |
| for raster images (in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.13.[01] it used uncalibrated RGB). | |
| </p> | |
| <p>There is no longer an undocumented 21845-pixel limit on raster images. | |
| </p> | |
| </li></ul> | |
| <h3><img class="toplogo" src="../help/figures/../../html/Rlogo.svg" alt="[R logo]" /> CHANGES IN R VERSION 2.13.0</h3> | |
| <h4>SIGNIFICANT USER-VISIBLE CHANGES</h4> | |
| <ul> | |
| <li> <p><code>replicate()</code> (by default) and <code>vapply()</code> (always) | |
| now return a higher-dimensional array instead of a matrix in the case | |
| where the inner function value is an array of dimension >= 2. | |
| </p> | |
| </li> | |
| <li><p> Printing and formatting of floating point numbers is now | |
| using the correct number of digits, where it previously rarely | |
| differed by a few digits. (See “scientific” entry below.) | |
| This affects <em>many</em> ‘<span class="file">*.Rout.save</span>’ checks in packages. | |
| </p> | |
| </li></ul> | |
| <h4>NEW FEATURES</h4> | |
| <ul> | |
| <li> <p><code>normalizePath()</code> has been moved to the <span class="pkg">base</span> | |
| package (from <span class="pkg">utils</span>): this is so it can be used by | |
| <code>library()</code> and friends. | |
| </p> | |
| <p>It now does tilde expansion. | |
| </p> | |
| <p>It gains new arguments <code>winslash</code> (to select the separator on | |
| Windows) and <code>mustWork</code> to control the action if a canonical | |
| path cannot be found. | |
| </p> | |
| </li> | |
| <li><p> The previously barely documented limit of 256 bytes on a | |
| symbol name has been raised to 10,000 bytes (a sanity check). | |
| Long symbol names can sometimes occur when deparsing expressions | |
| (for example, in <code>model.frame</code>). | |
| </p> | |
| </li> | |
| <li> <p><code>reformulate()</code> gains a <code>intercept</code> argument. | |
| </p> | |
| </li> | |
| <li> <p><code>cmdscale(add = FALSE)</code> now uses the more common | |
| definition that there is a representation in <code>n-1</code> or less | |
| dimensions, and only dimensions corresponding to positive | |
| eigenvalues are used. (Avoids confusion such as <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14397">PR#14397</a>.) | |
| </p> | |
| </li> | |
| <li><p> Names used by <code>c()</code>, <code>unlist()</code>, <code>cbind()</code> | |
| and <code>rbind()</code> are marked with an encoding when this can be | |
| ascertained. | |
| </p> | |
| </li> | |
| <li><p> R colours are now defined to refer to the sRGB color space. | |
| </p> | |
| <p>The PDF, PostScript, and Quartz graphics devices record this fact. | |
| X11 (and cairo) and Windows just assume that your screen conforms. | |
| </p> | |
| </li> | |
| <li> <p><code>system.file()</code> gains a <code>mustWork</code> argument | |
| (suggestion of Bill Dunlap). | |
| </p> | |
| </li> | |
| <li> <p><code>new.env(hash = TRUE)</code> is now the default. | |
| </p> | |
| </li> | |
| <li> <p><code>list2env(envir = NULL)</code> defaults to hashing (with a | |
| suitably sized environment) for lists of more than 100 elements. | |
| </p> | |
| </li> | |
| <li> <p><code>text()</code> gains a formula method. | |
| </p> | |
| </li> | |
| <li> <p><code>IQR()</code> now has a <code>type</code> argument which is passed | |
| to <code>quantile()</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>as.vector()</code>, <code>as.double()</code> etc duplicate less | |
| when they leave the mode unchanged but remove attributes. | |
| </p> | |
| <p><code>as.vector(mode = "any")</code> no longer duplicates when it does | |
| not remove attributes. This helps memory usage in <code>matrix()</code> | |
| and <code>array()</code>. | |
| </p> | |
| <p><code>matrix()</code> duplicates less if <code>data</code> is an atomic vector | |
| with attributes such as names (but no class). | |
| </p> | |
| <p><code>dim(x) <- NULL</code> duplicates less if <code>x</code> has neither | |
| dimensions nor names (since this operation removes names and | |
| dimnames). | |
| </p> | |
| </li> | |
| <li> <p><code>setRepositories()</code> gains an <code>addURLs</code> argument. | |
| </p> | |
| </li> | |
| <li> <p><code>chisq.test()</code> now also returns a <code>stdres</code> | |
| component, for standardized residuals (which have unit variance, | |
| unlike the Pearson residuals). | |
| </p> | |
| </li> | |
| <li> <p><code>write.table()</code> and friends gain a <code>fileEncoding</code> | |
| argument, to simplify writing files for use on other OSes (e.g., a | |
| spreadsheet intended for Windows or Mac OS X Excel). | |
| </p> | |
| </li> | |
| <li><p> Assignment expressions of the form <code>foo::bar(x) <- y</code> | |
| and <code>foo:::bar(x) <- y</code> now work; the replacement functions | |
| used are <code>foo::`bar<-`</code> and <code>foo:::`bar<-`</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>Sys.getenv()</code> gains a <code>names</code> argument so | |
| <code>Sys.getenv(x, names = FALSE)</code> can replace the common idiom | |
| of <code>as.vector(Sys.getenv())</code>. The default has been changed | |
| to not name a length-one result. | |
| </p> | |
| </li> | |
| <li><p> Lazy loading of environments now preserves attributes and | |
| locked status. (The locked status of bindings and active bindings | |
| are still not preserved; this may be addressed in the future). | |
| </p> | |
| </li> | |
| <li> <p><code>options("install.lock")</code> may be set to <code>FALSE</code> | |
| so that <code>install.packages()</code> defaults to <span class="option">--no-lock</span> | |
| installs, or (on Windows) to <code>TRUE</code> so that binary installs | |
| implement locking. | |
| </p> | |
| </li> | |
| <li> <p><code>sort(partial = p)</code> for large <code>p</code> now tries | |
| Shellsort if quicksort is not appropriate and so works for | |
| non-numeric atomic vectors. | |
| </p> | |
| </li> | |
| <li> <p><code>sapply()</code> gets a new option <code>simplify = "array"</code> | |
| which returns a “higher rank” array instead of just a matrix | |
| when <code>FUN()</code> returns a <code>dim()</code> length of two or more. | |
| </p> | |
| <p><code>replicate()</code> has this option set by default, and | |
| <code>vapply()</code> now behaves that way internally. | |
| </p> | |
| </li> | |
| <li> <p><code>aperm()</code> becomes S3 generic and gets a <code>table</code> | |
| method which preserves the class. | |
| </p> | |
| </li> | |
| <li> <p><code>merge()</code> and <code>as.hclust()</code> methods for objects of | |
| class <code>"dendrogram"</code> are now provided. | |
| </p> | |
| </li> | |
| <li><p> The character method of <code>as.POSIXlt()</code> now tries to | |
| find a format that works for all non-<code>NA</code> inputs, not just | |
| the first one. | |
| </p> | |
| </li> | |
| <li> <p><code>str()</code> now has a method for class <code>"Date"</code> | |
| analogous to that for class <code>"POSIXt"</code>. | |
| </p> | |
| </li> | |
| <li><p> New function <code>file.link()</code> to create hard links on | |
| those file systems (POSIX, NTFS but not FAT) that support them. | |
| </p> | |
| </li> | |
| <li><p> New <code>Summary()</code> group method for class <code>"ordered"</code> | |
| implements <code>min()</code>, <code>max()</code> and <code>range()</code> for | |
| ordered factors. | |
| </p> | |
| </li> | |
| <li> <p><code>mostattributes<-()</code> now consults the <code>"dim"</code> | |
| attribute and not the <code>dim()</code> function, making it more useful | |
| for objects (such as data frames) from classes with methods for | |
| <code>dim()</code>. It also uses <code>attr<-()</code> in preference to the | |
| generics <code>name<-()</code>, <code>dim<-()</code> and <code>dimnames<-()</code>. | |
| (Related to <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14469">PR#14469</a>.) | |
| </p> | |
| </li> | |
| <li><p> There is a new option <code>"browserNLdisabled"</code> to disable | |
| the use of an empty (e.g., via the ‘Return’ key) as a synonym | |
| for <code>c</code> in <code>browser()</code> or <code>n</code> under <code>debug()</code>. | |
| (Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14472">PR#14472</a>.) | |
| </p> | |
| </li> | |
| <li> <p><code>example()</code> gains optional new arguments | |
| <code>character.only</code> and <code>give.lines</code> enabling programmatic | |
| exploration. | |
| </p> | |
| </li> | |
| <li> <p><code>serialize()</code> and <code>unserialize()</code> are no longer | |
| described as ‘experimental’. The interface is now regarded | |
| as stable, although the serialization format may well change in | |
| future releases. (<code>serialize()</code> has a new argument | |
| <code>version</code> which would allow the current format to be written | |
| if that happens.) | |
| </p> | |
| <p>New functions <code>saveRDS()</code> and <code>readRDS()</code> are public | |
| versions of the ‘internal’ functions <code>.saveRDS()</code> and | |
| <code>.readRDS()</code> made available for general use. The dot-name | |
| versions remain available as several package authors have made use | |
| of them, despite the documentation. <code>readRDS()</code> no longer | |
| wraps non-file connections in a call to <code>gzcon()</code>, for | |
| efficiency (see its documentation). | |
| </p> | |
| <p><code>saveRDS()</code> supports <code>compress = "xz"</code>. | |
| </p> | |
| </li> | |
| <li><p> Many functions when called with a not-open connection will | |
| now ensure that the connection is left not-open in the event of | |
| error. These include <code>read.dcf()</code>, <code>dput()</code>, | |
| <code>dump()</code>, <code>load()</code>, <code>parse()</code>, <code>readBin()</code>, | |
| <code>readChar()</code>, <code>readLines()</code>, <code>save()</code>, | |
| <code>writeBin()</code>, <code>writeChar()</code>, <code>writeLines()</code>, | |
| <code>.readRDS()</code>, <code>.saveRDS()</code> and <code>tools::parse_Rd()</code>, | |
| as well as functions calling these. | |
| </p> | |
| </li> | |
| <li><p> Public functions <code>find.package()</code> and <code>path.package()</code> | |
| replace the internal dot-name versions. | |
| </p> | |
| </li> | |
| <li><p> The default method for <code>terms()</code> now looks for a | |
| <code>"terms"</code> attribute if it does not find a <code>"terms"</code> | |
| component, and so works for model frames. | |
| </p> | |
| </li> | |
| <li> <p><code>httpd()</code> handlers receive an additional argument | |
| containing the full request headers as a raw vector (this can be | |
| used to parse cookies, multi-part forms etc.). The recommended | |
| full signature for handlers is therefore <code>function(url, | |
| query, body, headers, ...)</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>file.edit()</code> gains a <code>fileEncoding</code> argument to | |
| specify the encoding of the file(s). | |
| </p> | |
| </li> | |
| <li><p> The format of the HTML package listings has changed. If | |
| there is more than one library tree , a table of links to | |
| libraries is provided at the top and bottom of the page. Where a | |
| library contains more than 100 packages, an alphabetic index is | |
| given at the top of the section for that library. (As a | |
| consequence, package names are now sorted case-insensitively | |
| whatever the locale.) | |
| </p> | |
| </li> | |
| <li> <p><code>isSeekable()</code> now returns <code>FALSE</code> on connections | |
| which have non-default <code>encoding</code>. Although documented to | |
| record if ‘in principle’ the connection supports seeking, | |
| it seems safer to report <code>FALSE</code> when it may not work. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD REMOVE</code> and <code>remove.packages()</code> now | |
| remove file <code>R.css</code> when removing all remaining packages in a | |
| library tree. (Related to the wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14475">PR#14475</a>: note that this | |
| file is no longer installed.) | |
| </p> | |
| </li> | |
| <li> <p><code>unzip()</code> now has a <code>unzip</code> argument like | |
| <code>zip.file.extract()</code>. This allows an external | |
| <code>unzip</code> program to be used, which can be useful to access | |
| features supported by Info-ZIP's <code>unzip</code> version 6 which | |
| is now becoming more widely available. | |
| </p> | |
| </li> | |
| <li><p> There is a simple <code>zip()</code> function, as wrapper for an | |
| external <code>zip</code> command. | |
| </p> | |
| </li> | |
| <li> <p><code>bzfile()</code> connections can now read from concatenated | |
| <code>bzip2</code> files (including files written with | |
| <code>bzfile(open = "a")</code>) and files created by some other | |
| compressors (such as the example of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14479">PR#14479</a>). | |
| </p> | |
| </li> | |
| <li><p> The primitive function <code>c()</code> is now of type BUILTIN. | |
| </p> | |
| </li> | |
| <li> <p><code>plot(<dendrogram>, .., nodePar=*)</code> now obeys an optional | |
| <code>xpd</code> specification (allowing clipping to be turned off | |
| completely). | |
| </p> | |
| </li> | |
| <li> <p><code>nls(algorithm="port")</code> now shares more code with | |
| <code>nlminb()</code>, and is more consistent with the other | |
| <code>nls()</code> algorithms in its return value. | |
| </p> | |
| </li> | |
| <li> <p><code>xz</code> has been updated to 5.0.1 (very minor bugfix | |
| release). | |
| </p> | |
| </li> | |
| <li> <p><code>image()</code> has gained a logical <code>useRaster</code> | |
| argument allowing it to use a bitmap raster for plotting a | |
| regular grid instead of polygons. This can be more efficient, but | |
| may not be supported by all devices. The default is <code>FALSE</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>list.files()</code>/<code>dir()</code> gains a new argument | |
| <code>include.dirs()</code> to include directories in the listing when | |
| <code>recursive = TRUE</code>. | |
| </p> | |
| </li> | |
| <li><p> New function <code>list.dirs()</code> lists all directories, | |
| (even empty ones). | |
| </p> | |
| </li> | |
| <li> <p><code>file.copy()</code> now (by default) copies | |
| read/write/execute permissions on files, moderated by the current | |
| setting of <code>Sys.umask()</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>Sys.umask()</code> now accepts <code>mode = NA</code> and returns | |
| the current <code>umask</code> value (visibly) without changing it. | |
| </p> | |
| </li> | |
| <li><p> There is a <code>!</code> method for classes <code>"octmode"</code> and | |
| <code>"hexmode"</code>: this allows <code>xor(a, b)</code> to work if both | |
| <code>a</code> and <code>b</code> are from one of those classes. | |
| </p> | |
| </li> | |
| <li> <p><code>as.raster()</code> no longer fails for vectors or matrices | |
| containing <code>NA</code>s. | |
| </p> | |
| </li> | |
| <li><p> New hook <code>"before.new.plot"</code> allows functions to be run | |
| just before advancing the frame in <code>plot.new</code>, which is | |
| potentially useful for custom figure layout implementations. | |
| </p> | |
| </li> | |
| <li><p> Package <span class="pkg">tools</span> has a new function <code>compactPDF()</code> | |
| to try to reduce the size of PDF files <em>via</em> <code>qpdf</code> | |
| or <code>gs</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>tar()</code> has a new argument <code>extra_flags</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>dotchart()</code> accepts more general objects <code>x</code> such | |
| as 1D tables which can be coerced by <code>as.numeric()</code> to a | |
| numeric vector, with a warning since that might not be | |
| appropriate. | |
| </p> | |
| </li> | |
| <li><p> The previously internal function <code>create.post()</code> is now | |
| exported from <span class="pkg">utils</span>, and the documentation for | |
| <code>bug.report()</code> and <code>help.request()</code> now refer to that | |
| for <code>create.post()</code>. | |
| </p> | |
| <p>It has a new <code>method = "mailto"</code> on Unix-alikes similar to | |
| that on Windows: it invokes a default mailer via <code>open</code> | |
| (Mac OS X) or <code>xdg-open</code> or the default browser (elsewhere). | |
| </p> | |
| <p>The default for <code>ccaddress</code> is now | |
| <code>getOption("ccaddress")</code> which is by default unset: using the | |
| username as a mailing address nowadays rarely works as expected. | |
| </p> | |
| </li> | |
| <li><p> The default for <code>options("mailer")</code> is now | |
| <code>"mailto"</code> on all platforms. | |
| </p> | |
| </li> | |
| <li> <p><code>unlink()</code> now does tilde-expansion (like most other | |
| file functions). | |
| </p> | |
| </li> | |
| <li> <p><code>file.rename()</code> now allows vector arguments (of the | |
| same length). | |
| </p> | |
| </li> | |
| <li><p> The <code>"glm"</code> method for <code>logLik()</code> now returns an | |
| <code>"nobs"</code> attribute (which <code>stats4::BIC()</code> assumed it | |
| did). | |
| </p> | |
| <p>The <code>"nls"</code> method for <code>logLik()</code> gave incorrect results | |
| for zero weights. | |
| </p> | |
| </li> | |
| <li><p> There is a new generic function <code>nobs()</code> in package | |
| <span class="pkg">stats</span>, to extract from model objects a suitable value for | |
| use in BIC calculations. An S4 generic derived from it is defined | |
| in package <span class="pkg">stats4</span>. | |
| </p> | |
| </li> | |
| <li><p> Code for S4 reference-class methods is now examined for | |
| possible errors in non-local assignments. | |
| </p> | |
| </li> | |
| <li> <p><code>findClasses</code>, <code>getGeneric</code>, <code>findMethods</code> | |
| and <code>hasMethods</code> are revised to deal consistently with | |
| the <code>package=</code> argument and be consistent with soft namespace | |
| policy for finding objects. | |
| </p> | |
| </li> | |
| <li> <p><code>tools::Rdiff()</code> now has the option to return not only | |
| the status but a character vector of observed differences (which | |
| are still by default sent to ‘<span class="file">stdout</span>’). | |
| </p> | |
| </li> | |
| <li><p> The startup environment variables <span class="env">R_ENVIRON_USER</span>, | |
| <span class="env">R_ENVIRON</span>, <span class="env">R_PROFILE_USER</span> and <span class="env">R_PROFILE</span> are now | |
| treated more consistently. In all cases an empty value is | |
| considered to be set and will stop the default being used, and for | |
| the last two tilde expansion is performed on the file name. (Note | |
| that setting an empty value is probably impossible on Windows.) | |
| </p> | |
| </li> | |
| <li><p> Using <code>R --no-environ CMD</code>, <code>R | |
| --no-site-file CMD</code> or <code>R --no-init-file CMD</code> sets | |
| environment variables so these settings are passed on to child <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> | |
| processes, notably those run by <code>INSTALL</code>, <code>check</code> and | |
| <code>build</code>. <code>R --vanilla CMD</code> sets these three options | |
| (but not <span class="option">--no-restore</span>). | |
| </p> | |
| </li> | |
| <li> <p><code>smooth.spline()</code> is somewhat faster. With | |
| <code>cv=NA</code> it allows some leverage computations to be skipped, | |
| </p> | |
| </li> | |
| <li><p> The internal (C) function <span class="samp">scientific()</span>, at the heart | |
| of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>'s <code>format.info(x)</code>, <code>format(x)</code>, <code>print(x)</code>, | |
| etc, for numeric <code>x</code>, has been re-written in order to provide | |
| slightly more correct results, fixing <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14491">PR#14491</a>, notably in | |
| border cases including when <code>digits >= 16</code>, thanks to | |
| substantial contributions (code and experiments) from Petr | |
| Savicky. This affects a noticeable amount of numeric output from | |
| <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>. | |
| </p> | |
| </li> | |
| <li><p> A new function <code>grepRaw()</code> has been introduced for | |
| finding subsets of raw vectors. It supports both literal searches | |
| and regular expressions. | |
| </p> | |
| </li> | |
| <li><p> Package <span class="pkg">compiler</span> is now provided as a standard | |
| package. See <code>?compiler::compile</code> for information on how to | |
| use the compiler. This package implements a byte code compiler | |
| for <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>: by default the compiler is not used in this release. See | |
| the ‘R Installation and Administration Manual’ for how to | |
| compile the base and recommended packages. | |
| </p> | |
| </li> | |
| <li><p> Providing an <code>exportPattern</code> directive in a NAMESPACE | |
| file now causes classes to be exported according to the same | |
| pattern, for example the default from <code>package.skeleton()</code> | |
| to specify all names starting with a letter. An explicit | |
| directive to <code>exportClassPattern</code> will still over-ride. | |
| </p> | |
| </li> | |
| <li><p> There is an additional marked encoding <code>"bytes"</code> for | |
| character strings. This is intended to be used for non-ASCII | |
| strings which should be treated as a set of bytes, and never | |
| re-encoded as if they were in the encoding of the current locale: | |
| <code>useBytes = TRUE</code> is automatically selected in functions such | |
| as <code>writeBin()</code>, <code>writeLines()</code>, <code>grep()</code> and | |
| <code>strsplit()</code>. | |
| </p> | |
| <p>Only a few character operations are supported (such as <code>substr()</code>). | |
| </p> | |
| <p>Printing, <code>format()</code> and <code>cat()</code> will represent non-ASCII | |
| bytes in such strings by a <span class="samp">\xab</span> escape. | |
| </p> | |
| </li> | |
| <li><p> The new function <code>removeSource()</code> removes the internally | |
| stored source from a function. | |
| </p> | |
| </li> | |
| <li> <p><code>"srcref"</code> attributes now include two additional | |
| line number values, recording the line numbers in the order they | |
| were parsed. | |
| </p> | |
| </li> | |
| <li><p> New functions have been added for source reference access: | |
| <code>getSrcFilename()</code>, <code>getSrcDirectory()</code>, | |
| <code>getSrcLocation()</code> and <code>getSrcref()</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>Sys.chmod()</code> has an extra argument <code>use_umask</code> | |
| which defaults to true and restricts the file mode by the current | |
| setting of <code>umask</code>. This means that all the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> functions | |
| which manipulate file/directory permissions by default respect | |
| <code>umask</code>, notably <code>R CMD INSTALL</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>tempfile()</code> has an extra argument <code>fileext</code> to | |
| create a temporary filename with a specified extension. | |
| (Suggestion and initial implementation by Dirk Eddelbuettel.) | |
| </p> | |
| <p>There are improvements in the way <code>Sweave()</code> and | |
| <code>Stangle()</code> handle non-ASCII vignette sources, especially in | |
| a UTF-8 locale: see ‘Writing R Extensions’ which now has a | |
| subsection on this topic. | |
| </p> | |
| </li> | |
| <li> <p><code>factanal()</code> now returns the rotation matrix if a | |
| rotation such as <code>"promax"</code> is used, and hence factor | |
| correlations are displayed. (Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=12754">PR#12754</a>.) | |
| </p> | |
| </li> | |
| <li><p> The <code>gctorture2()</code> function provides a more refined | |
| interface to the GC torture process. Environment variables | |
| <span class="env">R_GCTORTURE</span>, <span class="env">R_GCTORTURE_WAIT</span>, and | |
| <span class="env">R_GCTORTURE_INHIBIT_RELEASE</span> can also be used to control the | |
| GC torture process. | |
| </p> | |
| </li> | |
| <li> <p><code>file.copy(from, to)</code> no longer regards it as an error | |
| to supply a zero-length <code>from</code>: it now simply does nothing. | |
| </p> | |
| </li> | |
| <li> <p><code>rstandard.glm()</code> gains a <code>type</code> argument which can | |
| be used to request standardized Pearson residuals. | |
| </p> | |
| </li> | |
| <li><p> A start on a Turkish translation, thanks to Murat Alkan. | |
| </p> | |
| </li> | |
| <li> <p><code>.libPaths()</code> calls <code>normalizePath(winslash = "/")</code> | |
| on the paths: this helps (usually) to present them in a | |
| user-friendly form and should detect duplicate paths accessed via | |
| different symbolic links. | |
| </p> | |
| </li> | |
| <li> <p><code>download.file()</code> can be now used with external methods | |
| even if there are spaces in the URL or the target filename. | |
| </p> | |
| </li> | |
| <li><p> The first formal argument of <code>.C()</code>, <code>.Fortran()</code>, | |
| <code>.Call()</code> and <code>.External()</code> is now referred to a | |
| <code>.NAME</code> rather than <code>name</code>: however actual calls should | |
| have an unnamed first argument. | |
| </p> | |
| </li></ul> | |
| <h4>SWEAVE CHANGES</h4> | |
| <ul> | |
| <li> <p><code>Sweave()</code> has options to produce PNG and JPEG figures, | |
| and to use a custom function to open a graphics device (see | |
| <code>?RweaveLatex</code>).<br /> | |
| (Based in part on the contribution of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14418">PR#14418</a>.) | |
| </p> | |
| </li> | |
| <li><p> The default for <code>Sweave()</code> is to produce only PDF | |
| figures (rather than both EPS and PDF). | |
| </p> | |
| </li> | |
| <li><p> Environment variable <span class="env">SWEAVE_OPTIONS</span> can be used to | |
| supply defaults for existing or new options to be applied after | |
| the Sweave driver setup has been run. | |
| </p> | |
| </li> | |
| <li><p> The Sweave manual is now included as a vignette in the | |
| <span class="pkg">utils</span> package. | |
| </p> | |
| </li> | |
| <li> <p><code>Sweave()</code> handles <code>keep.source=TRUE</code> much better: | |
| it could duplicate some lines and omit comments. (Reported by John | |
| Maindonald and others.) | |
| </p> | |
| </li></ul> | |
| <h4>C-LEVEL FACILITIES</h4> | |
| <ul> | |
| <li><p> Because they use a C99 interface which a C++ compiler is not | |
| required to support, <code>Rvprintf</code> and <code>REvprintf</code> are only | |
| defined by ‘<span class="file">R_ext/Print.h</span>’ in C++ code if the macro | |
| <code>R_USE_C99_IN_CXX</code> is defined when it is included. | |
| </p> | |
| </li> | |
| <li> <p><code>pythag</code> duplicated the C99 function <code>hypot</code>. It | |
| is no longer provided, but is used as a substitute for <code>hypot</code> | |
| in the very unlikely event that the latter is not available. | |
| </p> | |
| </li> | |
| <li> <p><code>R_inspect(obj)</code> and <code>R_inspect3(obj, deep, pvec)</code> | |
| are (hidden) C-level entry points to the internal <code>inspect</code> | |
| function and can be used for C-level debugging (e.g., in conjunction | |
| with the <code>p</code> command in <code>gdb</code>). | |
| </p> | |
| </li> | |
| <li><p> Compiling R with <span class="option">--enable-strict-barrier</span> now also | |
| enables additional checking for use of unprotected objects. In | |
| combination with <code>gctorture()</code> or <code>gctorture2()</code> and a | |
| C-level debugger this can be useful for tracking down memory | |
| protection issues. | |
| </p> | |
| </li></ul> | |
| <h4>UTILITIES</h4> | |
| <ul> | |
| <li> <p><code>R CMD Rdiff</code> is now implemented in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> on | |
| Unix-alikes (as it has been on Windows since <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.12.0). | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD build</code> no longer does any cleaning in the | |
| supplied package directory: all the cleaning is done in the copy. | |
| </p> | |
| <p>It has a new option <span class="option">--install-args</span> to pass arguments to | |
| <code>R CMD INSTALL</code> for <span class="option">--build</span> (but not when | |
| installing to rebuild vignettes). | |
| </p> | |
| <p>There is new option, <span class="option">--resave-data</span>, to call | |
| <code>tools::resaveRdaFiles()</code> on the ‘<span class="file">data</span>’ directory, to | |
| compress tabular files (‘<span class="file">.tab</span>’, ‘<span class="file">.csv</span>’ etc) and to | |
| convert ‘<span class="file">.R</span>’ files to ‘<span class="file">.rda</span>’ files. The default, | |
| <span class="option">--resave-data=gzip</span>, is to do so in a way compatible even | |
| with years-old versions of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>, but better compression is given by | |
| <span class="option">--resave-data=best</span>, requiring <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> >= 2.10.0. | |
| </p> | |
| <p>It now adds a ‘<span class="file">datalist</span>’ file for ‘<span class="file">data</span>’ directories of | |
| more than 1Mb. | |
| </p> | |
| <p>Patterns in ‘<span class="file">.Rbuildignore</span>’ are now also matched against all | |
| directory names (including those of empty directories). | |
| </p> | |
| <p>There is a new option, <span class="option">--compact-vignettes</span>, to try | |
| reducing the size of PDF files in the ‘<span class="file">inst/doc</span>’ directory. | |
| Currently this tries <code>qpdf</code>: other options may be used in | |
| future. | |
| </p> | |
| <p>When re-building vignettes and a ‘<span class="file">inst/doc/Makefile</span>’ file is | |
| found, <code>make clean</code> is run if the makefile has a | |
| <code>clean:</code> target. | |
| </p> | |
| <p>After re-building vignettes the default clean-up operation will | |
| remove any directories (and not just files) created during the | |
| process: e.g., one package created a ‘<span class="file">.R_cache</span>’ directory. | |
| </p> | |
| <p>Empty directories are now removed unless the option | |
| <span class="option">--keep-empty-dirs</span> is given (and a few packages do | |
| deliberately include empty directories). | |
| </p> | |
| <p>If there is a field <code>BuildVignettes</code> in the package | |
| ‘<span class="file">DESCRIPTION</span>’ file with a false value, re-building the | |
| vignettes is skipped. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> now also checks for filenames that are | |
| case-insensitive matches to Windows' reserved file names with | |
| extensions, such as ‘<span class="file">nul.Rd</span>’, as these have caused problems | |
| on some Windows systems. | |
| </p> | |
| <p>It checks for inefficiently saved ‘<span class="file">data/*.rda</span>’ and | |
| ‘<span class="file">data/*.RData</span>’ files, and reports on those large than 100Kb. | |
| A more complete check (including of the type of compression, but | |
| potentially much slower) can be switched on by setting environment | |
| variable <span class="env">_R_CHECK_COMPACT_DATA2_</span> to <span class="samp">TRUE</span>. | |
| </p> | |
| <p>The types of files in the ‘<span class="file">data</span>’ directory are now checked, | |
| as packages are <em>still</em> misusing it for non-<span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> data files. | |
| </p> | |
| <p>It now extracts and runs the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> code for each vignette in a | |
| separate directory and <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> process: this is done in the package's | |
| declared encoding. Rather than call | |
| <code>tools::checkVignettes()</code>, it calls | |
| <code>tools::buildVignettes()</code> to see if the vignettes can be | |
| re-built as they would be by <code>R CMD build</code>. Option | |
| <span class="option">--use-valgrind</span> now applies only to these runs, and not | |
| when running code to rebuild the vignettes. This version does a | |
| much better job of suppressing output from successful vignette | |
| tests. | |
| </p> | |
| <p>The ‘<span class="file">00check.log</span>’ file is a more complete record of what is | |
| output to ‘<span class="file">stdout</span>’: in particular contains more details of | |
| the tests. | |
| </p> | |
| <p>It now checks all syntactically valid Rd usage entries, and warns | |
| about assignments (unless these give the usage of replacement | |
| functions). | |
| </p> | |
| <p>‘<span class="file">.tar.xz</span>’ compressed tarballs are now allowed, if | |
| <code>tar</code> supports them (and setting environment variable | |
| <span class="env">TAR</span> to <span class="samp">internal</span> ensures so on all platforms). | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> now warns if it finds | |
| ‘<span class="file">inst/doc/makefile</span>’, and <code>R CMD build</code> renames such a | |
| file to ‘<span class="file">inst/doc/Makefile</span>’. | |
| </p> | |
| </li></ul> | |
| <h4>INSTALLATION</h4> | |
| <ul> | |
| <li><p> Installing <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> no longer tries to find <code>perl</code>, and | |
| <code>R CMD</code> no longer tries to substitute a full path for | |
| <code>awk</code> nor <code>perl</code> – this was a legacy from the | |
| days when they were used by <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> itself. Because a couple of | |
| packages do use <code>awk</code>, it is set as the <code>make</code> | |
| (rather than environment) variable <span class="env">AWK</span>. | |
| </p> | |
| </li> | |
| <li> <p><code>make check</code> will now fail if there are differences | |
| from the reference output when testing package examples and if | |
| environment variable <span class="env">R_STRICT_PACKAGE_CHECK</span> is set to a true | |
| value. | |
| </p> | |
| </li> | |
| <li><p> The C99 double complex type is now required. | |
| </p> | |
| <p>The C99 complex trigonometric functions (such as <span class="samp">csin</span>) are | |
| not currently required (FreeBSD lacks most of them): substitutes | |
| are used if they are missing. | |
| </p> | |
| </li> | |
| <li><p> The C99 system call <span class="samp">va_copy</span> is now required. | |
| </p> | |
| </li> | |
| <li><p> If environment variable <span class="env">R_LD_LIBRARY_PATH</span> is set | |
| during configuration (for example in ‘<span class="file">config.site</span>’) it is | |
| used unchanged in file ‘<span class="file">etc/ldpaths</span>’ rather than being | |
| appended to. | |
| </p> | |
| </li> | |
| <li> <p><code>configure</code> looks for support for OpenMP and if | |
| found compiles <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> with appropriate flags and also makes them | |
| available for use in packages: see ‘Writing R Extensions’. | |
| </p> | |
| <p>This is currently experimental, and is only used in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> with a | |
| single thread for <code>colSums()</code> and <code>colMeans()</code>. Expect | |
| it to be more widely used in later versions of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>. | |
| </p> | |
| <p>This can be disabled by the <span class="option">--disable-openmp</span> flag. | |
| </p> | |
| </li></ul> | |
| <h4>PACKAGE INSTALLATION</h4> | |
| <ul> | |
| <li> <p><code>R CMD INSTALL --clean</code> now removes copies of a | |
| ‘<span class="file">src</span>’ directory which are created when multiple | |
| sub-architectures are in use. (Following a comment from | |
| Berwin Turlach.) | |
| </p> | |
| </li> | |
| <li><p> File ‘<span class="file">R.css</span>’ is now installed on a per-package basis | |
| (in the package's ‘<span class="file">html</span>’ directory) rather than in each | |
| library tree, and this is used for all the HTML pages in the | |
| package. This helps when installing packages with static HTML | |
| pages for use on a webserver. It will also allow future versions | |
| of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> to use different stylesheets for the packages they install. | |
| </p> | |
| </li> | |
| <li><p> A top-level file ‘<span class="file">.Rinstignore</span>’ in the package sources | |
| can list (in the same way as ‘<span class="file">.Rbuildignore</span>’) files under | |
| <code>inst</code> that should not be installed. (Why should there be any | |
| such files? Because all the files needed to re-build vignettes | |
| need to be under <code>inst/doc</code>, but they may not need to be | |
| installed.) | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD INSTALL</code> has a new option | |
| <span class="option">--compact-docs</span> to compact any PDFs under the | |
| ‘<span class="file">inst/doc</span>’ directory. Currently this uses <code>qpdf</code>, | |
| which must be installed (see ‘Writing R Extensions’). | |
| </p> | |
| </li> | |
| <li><p> There is a new option <span class="option">--lock</span> which can be used to | |
| cancel the effect of <span class="option">--no-lock</span> or <span class="option">--pkglock</span> earlier | |
| on the command line. | |
| </p> | |
| </li> | |
| <li><p> Option <span class="option">--pkglock</span> can now be used with more than one | |
| package, and is now the default if only one package is specified. | |
| </p> | |
| </li> | |
| <li><p> Argument <code>lock</code> of <code>install.packages()</code> can now be | |
| use for Mac binary installs as well as for Windows ones. The | |
| value <code>"pkglock"</code> is now accepted, as well as <code>TRUE</code> and | |
| <code>FALSE</code> (the default). | |
| </p> | |
| </li> | |
| <li><p> There is a new option <span class="option">--no-clean-on-error</span> for | |
| <code>R CMD INSTALL</code> to retain a partially installed package for | |
| forensic analysis. | |
| </p> | |
| </li> | |
| <li><p> Packages with names ending in ‘<span class="file">.</span>’ are not portable | |
| since Windows does not work correctly with such directory names. | |
| This is now warned about in <code>R CMD check</code>, and will not be | |
| allowed in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.14.x. | |
| </p> | |
| </li> | |
| <li><p> The vignette indices are more comprehensive (in the style of | |
| <code>browseVignetttes()</code>). | |
| </p> | |
| </li></ul> | |
| <h4>DEPRECATED & DEFUNCT</h4> | |
| <ul> | |
| <li> <p><code>require(save = TRUE)</code> is defunct, and use of the | |
| <code>save</code> argument is deprecated. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check --no-latex</code> is defunct: use | |
| <span class="option">--no-manual</span> instead. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD Sd2Rd</code> is defunct. | |
| </p> | |
| </li> | |
| <li><p> The <code>gamma</code> argument to <code>hsv()</code>, | |
| <code>rainbow()</code>, and <code>rgb2hsv()</code> is deprecated | |
| and no longer has any effect. | |
| </p> | |
| </li> | |
| <li><p> The previous options for <code>R CMD build --binary</code> | |
| (<span class="option">--auto-zip</span>, <span class="option">--use-zip-data</span> and | |
| <span class="option">--no-docs</span>) are deprecated (or defunct): | |
| use the new option <span class="option">--install-args</span> instead. | |
| </p> | |
| </li> | |
| <li><p> When a character value is used for the <code>EXPR</code> | |
| argument in <code>switch()</code>, only a single unnamed alternative | |
| value is now allowed. | |
| </p> | |
| </li> | |
| <li><p> The wrapper <code>utils::link.html.help()</code> is no longer | |
| available. | |
| </p> | |
| </li> | |
| <li><p> Zip-ing data sets in packages (and hence <code>R CMD | |
| INSTALL</code> options <span class="option">--use-zip-data</span> and <span class="option">--auto-zip</span>, as | |
| well as the <span class="samp">ZipData: yes</span> field in a <code>DESCRIPTION</code> file) | |
| is defunct. | |
| </p> | |
| <p>Installed packages with zip-ed data sets can still be used, but a | |
| warning that they should be re-installed will be given. | |
| </p> | |
| </li> | |
| <li><p> The ‘experimental’ alternative specification of a | |
| namespace via <code>.Export()</code> etc is now defunct. | |
| </p> | |
| </li> | |
| <li><p> The option <span class="option">--unsafe</span> to <code>R CMD INSTALL</code> is | |
| deprecated: use the identical option <span class="option">--no-lock</span> instead. | |
| </p> | |
| </li> | |
| <li><p> The entry point <code>pythag</code> in ‘<span class="file">Rmath.h</span>’ is deprecated | |
| in favour of the C99 function <code>hypot</code>. A wrapper for | |
| <code>hypot</code> is provided for <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.13.x only. | |
| </p> | |
| </li> | |
| <li><p> Direct access to the <code>"source"</code> attribute of functions | |
| is deprecated; use <code>deparse(fn, control="useSource")</code> to access | |
| it, and <code>removeSource(fn)</code> to remove it. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD build --binary</code> is now formally deprecated: | |
| <code>R CMD INSTALL --build</code> has long been the preferred | |
| alternative. | |
| </p> | |
| </li> | |
| <li><p> Single-character package names are deprecated (and <span class="pkg">R</span> | |
| is already disallowed to avoid confusion in <span class="samp">Depends:</span> | |
| fields). | |
| </p> | |
| </li></ul> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li> <p><code>drop.terms</code> and the <code>[</code> method for class | |
| <code>"terms"</code> no longer add back an intercept. (Reported by | |
| Niels Hansen.) | |
| </p> | |
| </li> | |
| <li> <p><code>aggregate</code> preserves the class of a column (e.g., a | |
| date) under some circumstances where it discarded the class | |
| previously. | |
| </p> | |
| </li> | |
| <li> <p><code>p.adjust()</code> now always returns a vector result, as | |
| documented. In previous versions it copied attributes (such as | |
| dimensions) from the <code>p</code> argument: now it only copies names. | |
| </p> | |
| </li> | |
| <li><p> On PDF and PostScript devices, a line width of zero was | |
| recorded verbatim and this caused problems for some viewers | |
| (a very thin line combined with a non-solid line dash pattern | |
| could also cause a problem). On these devices, the line width is | |
| now limited at 0.01 and for very thin lines with complex dash | |
| patterns the device may force the line dash pattern to be solid. | |
| (Reported by Jari Oksanen.) | |
| </p> | |
| </li> | |
| <li><p> The <code>str()</code> method for class <code>"POSIXt"</code> now gives | |
| sensible output for 0-length input. | |
| </p> | |
| </li> | |
| <li><p> The one- and two-argument complex maths functions failed to | |
| warn if NAs were generated (as their numeric analogues do). | |
| </p> | |
| </li> | |
| <li><p> Added <code>.requireCachedGenerics</code> to the <code>dont.mind</code> | |
| list for <code>library()</code> to avoid warnings about duplicates. | |
| </p> | |
| </li> | |
| <li> <p><code>$<-.data.frame</code> messed with the class attribute, | |
| breaking any S4 subclass. The S4 <code>data.frame</code> class now has its own | |
| <code>$<-</code> method, and turns dispatch on for this primitive. | |
| </p> | |
| </li> | |
| <li> <p><code>Map()</code> did not look up a character argument <code>f</code> | |
| in the correct frame, thanks to lazy evaluation. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14495">PR#14495</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>file.copy()</code> did not tilde-expand <code>from</code> and <code>to</code> | |
| when <code>to</code> was a directory. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14507">PR#14507</a>) | |
| </p> | |
| </li> | |
| <li><p> It was possible (but very rare) for the loading test in | |
| <code>R CMD INSTALL</code> to crash a child <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> process and so leave | |
| around a lock directory and a partially installed package. That | |
| test is now done in a separate process. | |
| </p> | |
| </li> | |
| <li> <p><code>plot(<formula>, data=<matrix>,..)</code> now works in more | |
| cases; similarly for <code>points()</code>, <code>lines()</code> and | |
| <code>text()</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>edit.default()</code> contained a manual dispatch for matrices | |
| (the <code>"matrix"</code> class didn't really exist when it was written). | |
| This caused an infinite recursion in the no-GUI case and has now | |
| been removed. | |
| </p> | |
| </li> | |
| <li> <p><code>data.frame(check.rows = TRUE)</code> sometimes worked when | |
| it should have detected an error. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14530">PR#14530</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>scan(sep= , strip.white=TRUE)</code> sometimes stripped | |
| trailing spaces from within quoted strings. (The real bug in | |
| <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14522">PR#14522</a>.) | |
| </p> | |
| </li> | |
| <li><p> The rank-correlation methods for <code>cor()</code> and | |
| <code>cov()</code> with <code>use = "complete.obs"</code> computed the ranks | |
| before removing missing values, whereas the documentation implied | |
| incomplete cases were removed first. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14488">PR#14488</a>) | |
| </p> | |
| <p>They also failed for 1-row matrices. | |
| </p> | |
| </li> | |
| <li><p> The perpendicular adjustment used in placing text and | |
| expressions in the margins of plots was not scaled by | |
| <code>par("mex")</code>. (Part of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14532">PR#14532</a>.) | |
| </p> | |
| </li> | |
| <li><p> Quartz Cocoa device now catches any Cocoa exceptions that | |
| occur during the creation of the device window to prevent crashes. | |
| It also imposes a limit of 144 ft^2 on the area used by a window | |
| to catch user errors (unit misinterpretation) early. | |
| </p> | |
| </li> | |
| <li><p> The browser (invoked by <code>debug()</code>, <code>browser()</code> | |
| or otherwise) would display attributes such as <code>"wholeSrcref"</code> | |
| that were intended for internal use only. | |
| </p> | |
| </li> | |
| <li><p> R's internal filename completion now properly handles | |
| filenames with spaces in them even when the readline library is | |
| used. This resolves <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14452">PR#14452</a> provided the internal filename | |
| completion is used (e.g., by setting <code>rc.settings(files = | |
| TRUE)</code>). | |
| </p> | |
| </li> | |
| <li><p> Inside <code>uniroot(f, ...)</code>, <code>-Inf</code> function values | |
| are now replaced by a maximally <b>negative</b> value. | |
| </p> | |
| </li> | |
| <li> <p><code>rowsum()</code> could silently over/underflow on integer | |
| inputs (reported by Bill Dunlap). | |
| </p> | |
| </li> | |
| <li> <p><code>as.matrix()</code> did not handle <code>"dist"</code> objects with | |
| zero rows. | |
| </p> | |
| </li></ul> | |
| <h3><img class="toplogo" src="../help/figures/../../html/Rlogo.svg" alt="[R logo]" /> CHANGES IN R VERSION 2.12.2 patched</h3> | |
| <h4>NEW FEATURES</h4> | |
| <ul> | |
| <li> <p><code>max()</code> and <code>min()</code> work harder to ensure that | |
| <code>NA</code> has precedence over <code>NaN</code>, | |
| so e.g. <code>min(NaN, NA)</code> is <code>NA</code>. | |
| (This was not previously documented except | |
| for within a single numeric vector, where compiler optimizations | |
| often defeated the code.) | |
| </p> | |
| </li></ul> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li><p> A change to the C function <span class="samp">R_tryEval</span> had broken error | |
| messages in S4 method selection; the error message is now printed. | |
| </p> | |
| </li> | |
| <li><p> PDF output with a non-RGB color model used RGB for the line | |
| stroke color. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14511">PR#14511</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>stats4::BIC()</code> assumed without checking that an object | |
| of class <code>"logLik"</code> has an <code>"nobs"</code> attribute: | |
| <code>glm()</code> fits did not and so <code>BIC()</code> failed for them. | |
| </p> | |
| </li> | |
| <li><p> In some circumstances a one-sided <code>mantelhaen.test()</code> | |
| reported the p-value for the wrong tail. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14514">PR#14514</a>) | |
| </p> | |
| </li> | |
| <li><p> Passing the invalid value <code>lty = NULL</code> to <code>axis()</code> | |
| sent an invalid value to the graphics device, and might cause the | |
| device to segfault. | |
| </p> | |
| </li> | |
| <li> <p><code>Sweave()</code> with <code>concordance=TRUE</code> could lead to | |
| invalid PDF files; ‘<span class="file">Sweave.sty</span>’ has been updated to avoid | |
| this. | |
| </p> | |
| </li> | |
| <li><p> Non-ASCII characters in the titles of help pages were | |
| not rendered properly in some locales, and could cause errors | |
| or warnings. | |
| </p> | |
| </li> | |
| <li> <p><code>checkRd()</code> gave a spurious error if the <code>\href</code> | |
| macro was used. | |
| </p> | |
| </li></ul> | |
| <h3><img class="toplogo" src="../help/figures/../../html/Rlogo.svg" alt="[R logo]" /> CHANGES IN R VERSION 2.12.2</h3> | |
| <h4>SIGNIFICANT USER-VISIBLE CHANGES</h4> | |
| <ul> | |
| <li><p> Complex arithmetic (notably <code>z^n</code> for complex <code>z</code> | |
| and integer <code>n</code>) gave incorrect results since <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.10.0 on | |
| platforms without C99 complex support. This and some | |
| lesser issues in trigonometric functions have been corrected. | |
| </p> | |
| <p>Such platforms were rare (we know of Cygwin and FreeBSD). | |
| However, because of new compiler optimizations in the way complex | |
| arguments are handled, the same code was selected on x86_64 Linux | |
| with <code>gcc 4.5.x</code> at the default <code>-O2</code> optimization | |
| (but not at <code>-O</code>). | |
| </p> | |
| </li> | |
| <li><p> There is a workaround for crashes seen with several packages | |
| on systems using <span class="samp">zlib 1.2.5</span>: see the INSTALLATION section. | |
| </p> | |
| </li></ul> | |
| <h4>NEW FEATURES</h4> | |
| <ul> | |
| <li><p> PCRE has been updated to 8.12 (two bug-fix releases since 8.10). | |
| </p> | |
| </li> | |
| <li> <p><code>rep()</code>, <code>seq()</code>, <code>seq.int()</code> and | |
| <code>seq_len()</code> report more often when the first element is taken | |
| of an argument of incorrect length. | |
| </p> | |
| </li> | |
| <li><p> The Cocoa back-end for the <code>quartz()</code> graphics device | |
| on Mac OS X provides a way to disable event loop processing | |
| temporarily (useful, e.g., for forked instances of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>). | |
| </p> | |
| </li> | |
| <li> <p><code>kernel()</code>'s default for <code>m</code> was not appropriate | |
| if <code>coef</code> was a set of coefficients. (Reported by Pierre | |
| Chausse.) | |
| </p> | |
| </li> | |
| <li> <p><code>bug.report()</code> has been updated for the current <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> bug | |
| tracker, which does not accept emailed submissions. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> now checks for the correct use of | |
| <span class="samp">$(LAPACK_LIBS)</span> (as well as <span class="samp">$(BLAS_LIBS)</span>), since | |
| several CRAN recent submissions have ignored ‘Writing R | |
| Extensions’. | |
| </p> | |
| </li></ul> | |
| <h4>INSTALLATION</h4> | |
| <ul> | |
| <li><p> The <span class="samp">zlib</span> sources in the distribution are now built | |
| with all symbols remapped: this is intended to avoid problems seen | |
| with packages such as <a href="https://CRAN.R-project.org/package=XML"><span class="pkg">XML</span></a> and <a href="https://CRAN.R-project.org/package=rggobi"><span class="pkg">rggobi</span></a> which link to | |
| ‘<span class="file">zlib.so.1</span>’ on systems using <span class="samp">zlib 1.2.5</span>. | |
| </p> | |
| </li> | |
| <li><p> The default for <span class="env">FFLAGS</span> and <span class="env">FCFLAGS</span> with | |
| <code>gfortran</code> on x86_64 Linux has been changed back to <span class="samp">-g | |
| -O2</span>: however, setting <span class="samp">-g -O</span> may still be needed for | |
| <code>gfortran 4.3.x</code>. | |
| </p> | |
| </li></ul> | |
| <h4>PACKAGE INSTALLATION</h4> | |
| <ul> | |
| <li><p> A <span class="samp">LazyDataCompression</span> field in the ‘<span class="file">DESCRIPTION</span>’ | |
| file will be used to set the value for the | |
| <span class="option">--data-compress</span> option of <code>R CMD INSTALL</code>. | |
| </p> | |
| </li> | |
| <li><p> Files ‘<span class="file">R/sysdata.rda</span>’ of more than 1Mb are now stored | |
| in the lazyload database using <code>xz</code> compression: this for | |
| example halves the installed size of package <a href="https://CRAN.R-project.org/package=Imap"><span class="pkg">Imap</span></a>. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD INSTALL</code> now ensures that directories | |
| installed from ‘<span class="file">inst</span>’ have search permission for everyone. | |
| </p> | |
| <p>It no longer installs files ‘<span class="file">inst/doc/Rplots.ps</span>’ and | |
| ‘<span class="file">inst/doc/Rplots.pdf</span>’. These are almost certainly left-overs | |
| from <code>Sweave</code> runs, and are often large. | |
| </p> | |
| </li></ul> | |
| <h4>DEPRECATED & DEFUNCT</h4> | |
| <ul> | |
| <li><p> The ‘experimental’ alternative specification of a | |
| namespace via <code>.Export()</code> etc is now deprecated. | |
| </p> | |
| </li> | |
| <li> <p><code>zip.file.extract()</code> is now deprecated. | |
| </p> | |
| </li> | |
| <li><p> Zip-ing data sets in packages (and hence <code>R CMD | |
| INSTALL --use-zip-data</code> and the <span class="samp">ZipData: yes</span> field in a | |
| <code>DESCRIPTION</code> file) is deprecated: using efficiently | |
| compressed ‘<span class="file">.rda</span>’ images and lazy-loading of data has | |
| superseded it. | |
| </p> | |
| </li></ul> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li> <p><code>identical()</code> could in rare cases generate a warning | |
| about non-pairlist attributes on CHARSXPs. As these are used for | |
| internal purposes, the attribute check should be skipped. | |
| (Reported by Niels Richard Hansen). | |
| </p> | |
| </li> | |
| <li><p> If the filename extension (usually ‘<span class="file">.Rnw</span>’) was not | |
| included in a call to <code>Sweave()</code>, source references would not | |
| work properly and the <code>keep.source</code> option failed. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14459">PR#14459</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>format.data.frame()</code> now keeps zero character column names. | |
| </p> | |
| </li> | |
| <li> <p><code>pretty(x)</code> no longer raises an error when <code>x</code> | |
| contains solely non-finite values. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14468">PR#14468</a>) | |
| </p> | |
| </li> | |
| <li><p> The <code>plot.TukeyHSD()</code> function now uses a line width of | |
| 0.5 for its reference lines rather than <span class="samp">lwd = 0</span> (which | |
| caused problems for some PDF and PostScript viewers). | |
| </p> | |
| </li> | |
| <li><p> The <code>big.mark</code> argument to <code>prettyNum()</code>, | |
| <code>format()</code>, etc. was inserted reversed if it was more than | |
| one character long. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> failed to check the filenames under | |
| ‘<span class="file">man</span>’ for Windows' reserved names. | |
| </p> | |
| </li> | |
| <li><p> The <code>"Date"</code> and <code>"POSIXt"</code> methods for | |
| <code>seq()</code> could overshoot when <code>to</code> was supplied and | |
| <code>by</code> was specified in months or years. | |
| </p> | |
| </li> | |
| <li><p> The internal method of <code>untar()</code> now restores hard | |
| links as file copies rather than symbolic links (which did not | |
| work for cross-directory links). | |
| </p> | |
| </li> | |
| <li> <p><code>unzip()</code> did not handle zip files which contained | |
| filepaths with two or more leading directories which were not in | |
| the zipfile and did not already exist. (It is unclear if such | |
| zipfiles are valid and the third-party C code used did not support | |
| them, but <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14462">PR#14462</a> created one.) | |
| </p> | |
| </li> | |
| <li> <p><code>combn(n, m)</code> now behaves more regularly for the border | |
| case <i>m = 0</i>. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14473">PR#14473</a>) | |
| </p> | |
| </li> | |
| <li><p> The rendering of numbers in plotmath expressions (e.g., | |
| <code>expression(10^2)</code>) used the current settings for conversion | |
| to strings rather than setting the defaults, and so could be | |
| affected by what has been done before. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14477">PR#14477</a>) | |
| </p> | |
| </li> | |
| <li><p> The methods of <code>napredict()</code> and <code>naresid()</code> for | |
| <code>na.action = na.exclude</code> fits did not work correctly in the | |
| very rare event that every case had been omitted in the fit. | |
| (Reported by Simon Wood.) | |
| </p> | |
| </li> | |
| <li> <p><code>weighted.residuals(drop0=TRUE)</code> returned a vector when | |
| the residuals were a matrix (e.g., those of class <code>"mlm"</code>). | |
| (Reported by Bill Dunlap.) | |
| </p> | |
| </li> | |
| <li><p> Package HTML index files ‘<span class="file"><pkg>/html/00Index.html</span>’ were | |
| generated with a stylesheet reference that was not correct for | |
| static browsing in libraries. | |
| </p> | |
| </li> | |
| <li> <p><code>ccf(na.action = na.pass)</code> was not implemented. | |
| </p> | |
| </li> | |
| <li><p> The parser accepted some incorrect numeric constants, | |
| e.g. <code>20x2</code>. (Reported by Olaf Mersmann.) | |
| </p> | |
| </li> | |
| <li> <p><code>format(*, zero.print)</code> did not always replace the full | |
| zero parts. | |
| </p> | |
| </li> | |
| <li><p> Fixes for subsetting or subassignment of <code>"raster"</code> | |
| objects when not both <code>i</code> and <code>j</code> are specified. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD INSTALL</code> was not always respecting the | |
| <span class="samp">ZipData: yes</span> field of a ‘<span class="file">DESCRIPTION</span>’ file (although | |
| this is frequently incorrectly specified for packages with no data | |
| or which specify lazy-loading of data). | |
| </p> | |
| <p><code>R CMD INSTALL --use-zip-data</code> was incorrectly implemented | |
| as <span class="option">--use-zipdata</span> since <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.9.0. | |
| </p> | |
| </li> | |
| <li> <p><code>source(file, echo=TRUE)</code> could fail if the file | |
| contained <span class="samp">#line</span> directives. It now recovers more gracefully, but | |
| may still display the wrong line if the directive gives incorrect | |
| information. | |
| </p> | |
| </li> | |
| <li> <p><code>atan(1i)</code> returned <code>NaN+Infi</code> (rather than | |
| <code>0+Infi</code>) on platforms without C99 complex support. | |
| </p> | |
| </li> | |
| <li> <p><code>library()</code> failed to cache S4 metadata (unlike | |
| <code>loadNamespace()</code>) causing failures in S4-using packages | |
| without a namespace (e.g., those using reference classes). | |
| </p> | |
| </li> | |
| <li><p> The function <code>qlogis(lp, log.p=TRUE)</code> no longer | |
| prematurely overflows to <code>Inf</code> when exp(lp) is close to 1. | |
| </p> | |
| </li> | |
| <li><p> Updating S4 methods for a group generic function requires | |
| resetting the methods tables for the members of the group (patch | |
| contributed by Martin Morgan). | |
| </p> | |
| </li> | |
| <li><p> In some circumstances (including for package <a href="https://CRAN.R-project.org/package=XML"><span class="pkg">XML</span></a>), | |
| <code>R CMD INSTALL</code> installed version-control directories from | |
| source packages. | |
| </p> | |
| </li> | |
| <li><p> Added <code>PROTECT</code> calls to some constructed expressions | |
| used in C level <code>eval</code> calls. | |
| </p> | |
| </li> | |
| <li> <p><code>utils:::create.post()</code> (used by <code>bug.report()</code> | |
| and <code>help.request()</code>) failed to quote arguments to the | |
| mailer, and so often failed. | |
| </p> | |
| </li> | |
| <li> <p><code>bug.report()</code> was naive about how to extract | |
| maintainer email addresses from package descriptions, so would | |
| often try mailing to incorrect addresses. | |
| </p> | |
| </li> | |
| <li> <p><code>debugger()</code> could fail to read the environment of a | |
| call to a function with a <code>...</code> argument. (Reported by | |
| Charlie Roosen.) | |
| </p> | |
| </li> | |
| <li> <p><code>prettyNum(c(1i, NA), drop0=TRUE)</code> or | |
| <code>str(NA_complex_)</code> now work correctly. | |
| </p> | |
| </li></ul> | |
| <h3><img class="toplogo" src="../help/figures/../../html/Rlogo.svg" alt="[R logo]" /> CHANGES IN R VERSION 2.12.1</h3> | |
| <h4>NEW FEATURES</h4> | |
| <ul> | |
| <li><p> The DVI/PDF reference manual now includes the help pages for | |
| all the standard packages: <span class="pkg">splines</span>, <span class="pkg">stats4</span> and | |
| <span class="pkg">tcltk</span> were previously omitted (intentionally). | |
| </p> | |
| </li> | |
| <li> <p><a href="http://www.rforge.net">http://www.rforge.net</a> has been added to the default | |
| set of repositories known to <code>setRepositories()</code>. | |
| </p> | |
| </li> | |
| <li><p> xz-utils has been updated to version 5.0.0. | |
| </p> | |
| </li> | |
| <li> <p><code>reshape()</code> now makes use of <code>sep</code> when forming | |
| names during reshaping to wide format. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14435">PR#14435</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>legend()</code> allows the length of lines to be set by the | |
| end user <em>via</em> the new argument <code>seg.len</code>. | |
| </p> | |
| </li> | |
| <li><p> New S4 reference class utility methods <code>copy()</code>, | |
| <code>field()</code>, <code>getRefClass()</code> and <code>getClass()</code> have | |
| been added to package <span class="pkg">methods</span>. | |
| </p> | |
| </li> | |
| <li><p> When a character value is used for the <code>EXPR</code> | |
| argument in <code>switch()</code>, a warning is given if more than | |
| one unnamed alternative value is given. This will become an | |
| error in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.13.0. | |
| </p> | |
| </li> | |
| <li> <p><code>StructTS(type = "BSM")</code> now allows series with just | |
| two seasons. (Reported by Birgit Erni.) | |
| </p> | |
| </li></ul> | |
| <h4>INSTALLATION</h4> | |
| <ul> | |
| <li><p> The PDF reference manual is now built as PDF version 1.5 | |
| with object compression, which on platforms for which this is not | |
| the default (notably MiKTeX) halves its size. | |
| </p> | |
| </li> | |
| <li><p> Variable <span class="env">FCLIBS</span> can be set during configuration, for | |
| any additional library flags needed when linking a shared object | |
| with the Fortran 9x compiler. (Needed with Solaris Studio 12.2.) | |
| </p> | |
| </li></ul> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li> <p><code>seq.int()</code> no longer sometimes evaluates arguments | |
| twice. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14388">PR#14388</a>) | |
| </p> | |
| </li> | |
| <li><p> The <code>data.frame</code> method of <code>format()</code> failed if a | |
| column name was longer than 256 bytes (the maximum length allowed | |
| for an <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> name). | |
| </p> | |
| </li> | |
| <li> <p><code>predict(<lm object>, type ="terms", ...)</code> failed if | |
| both <code>terms</code> and <code>interval</code> were specified. (Reported | |
| by Bill Dunlap.) | |
| </p> | |
| <p>Also, if <code>se.fit = TRUE</code> the standard errors were reported | |
| for all terms, not just those selected by a non-null <code>terms</code>. | |
| </p> | |
| </li> | |
| <li><p> The TRE regular expressions engine could terminate <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> rather | |
| than give an error when given certain invalid regular expressions. | |
| (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14398">PR#14398</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>cmdscale(eig = TRUE)</code> was documented to return <i>n-1</i> | |
| eigenvalues but in fact only returned <code>k</code>. It now returns | |
| all <i>n</i> eigenvalues. | |
| </p> | |
| <p><code>cmdscale(add = TRUE)</code> failed to centre the return | |
| configuration and sometimes lost the labels on the points. Its | |
| return value was described wrongly (it is always a list and | |
| contains component <code>ac</code>). | |
| </p> | |
| </li> | |
| <li> <p><code>promptClass()</code> in package <span class="pkg">methods</span> now works for | |
| reference classes and gives a suitably specialized skeleton of | |
| documentation. | |
| </p> | |
| <p>Also, <code>callSuper()</code> now works via the <code>methods()</code> | |
| invocation as well as for initially specified methods. | |
| </p> | |
| </li> | |
| <li> <p><code>download.file()</code> could leave the destination file open | |
| if the URL was not able to be opened. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14414">PR#14414</a>) | |
| </p> | |
| </li> | |
| <li><p> Assignment of an environment to functions or as an attribute | |
| to other objects now works for S4 subclasses of <code>"environment"</code>. | |
| </p> | |
| </li> | |
| <li><p> Use of <span class="samp">[[<-</span> for S4 subclasses of | |
| <code>"environment"</code> generated an infinite recursion from the | |
| method. The method has been replaced by internal code. | |
| </p> | |
| </li> | |
| <li><p> In a reference class S4 method, <code>callSuper()</code> now works in | |
| <code>initialize()</code> methods when there is no explicit superclass | |
| method. | |
| </p> | |
| </li> | |
| <li> <p><span class="samp">!</span> dropped attributes such as names and dimensions from a | |
| length-zero argument. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14424">PR#14424</a>) | |
| </p> | |
| </li> | |
| <li><p> When <code>list2env()</code> created an environment it was missing | |
| a <code>PROTECT</code> call and so was vulnerable to garbage collection. | |
| </p> | |
| </li> | |
| <li> <p><code>Sweave()</code> with <code>keep.source=TRUE</code> dropped | |
| comments at the start and end of code chunks. It could also | |
| fail when <span class="samp">\SweaveInput</span> was combined with named chunks. | |
| </p> | |
| </li> | |
| <li><p> The Fortran code used by <code>nls(algorithm = "port")</code> | |
| could infinite-loop when compiled with high optimization on a | |
| modern version of <code>gcc</code>, and <code>SAFE_FFLAGS</code> is now used | |
| to make this less likely. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14427">PR#14427</a>, seen with 32-bit Windows | |
| using <code>gcc 4.5.0</code> used from <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.12.0.) | |
| </p> | |
| </li> | |
| <li> <p><code>sapply()</code> with default <code>simplify = TRUE</code> and | |
| <code>mapply()</code> with default <code>SIMPLIFY = TRUE</code> wrongly | |
| simplified language-like results, as, e.g., in | |
| <code>mapply(1:2, c(3,7), FUN = function(i,j) call(':',i,j))</code>. | |
| </p> | |
| </li> | |
| <li><p> Backreferences to undefined patterns in | |
| <code>[g]sub(pcre = TRUE)</code> could cause a segfault. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14431">PR#14431</a>) | |
| </p> | |
| </li> | |
| <li><p> The <code>format()</code> (and hence the <code>print()</code>) method | |
| for class <code>"Date"</code> rounded fractional dates towards zero: it | |
| now always rounds them down. | |
| </p> | |
| </li> | |
| <li><p> Reference S4 class creation could generate ambiguous | |
| inheritance patterns under very special circumstances. | |
| </p> | |
| </li> | |
| <li> <p><span class="samp">[[<-</span> turned S4 subclasses of <code>"environment"</code> into | |
| plain environments. | |
| </p> | |
| </li> | |
| <li><p> Long titles for help pages were truncated in package indices | |
| and a few other places. | |
| </p> | |
| </li> | |
| <li><p> Additional utilities now work correctly with S4 subclasses of | |
| <code>"environment"</code> (<code>rm</code>, locking tools and active | |
| bindings). | |
| </p> | |
| </li> | |
| <li> <p><code>spec.ar()</code> now also work for the <code>"ols"</code> method. | |
| (Reported by Hans-Ruedi Kuensch.) | |
| </p> | |
| </li> | |
| <li><p> The initialization of objects from S4 subclasses of | |
| <code>"environment"</code> now allocates a new environment object. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> has more protection against (probably | |
| erroneous) example or test output which is invalid in the current | |
| locale. | |
| </p> | |
| </li> | |
| <li> <p><code>qr.X()</code> with column names and pivoting now also pivots | |
| the column names. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14438">PR#14438</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>unit.pmax()</code> and <code>unit.pmin()</code> in package | |
| <span class="pkg">grid</span> gave incorrect results when all inputs were of length 1. | |
| (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14443">PR#14443</a>) | |
| </p> | |
| </li> | |
| <li><p> The parser for ‘<span class="file">NAMESPACE</span>’ files ignored misspelled | |
| directives, rather than signalling an error. For 2.12.x a warning | |
| will be issued, but this will be correctly reported as an error | |
| in later releases. (Reported by Charles Berry.) | |
| </p> | |
| </li> | |
| <li><p> Fix for subsetting of <code>"raster"</code> objects when only one | |
| of <code>i</code> or <code>j</code> is specified. | |
| </p> | |
| </li> | |
| <li> <p><code>grid.raster()</code> in package <span class="pkg">grid</span> did not accept | |
| <code>"nativeRaster"</code> objects (like <code>rasterImage()</code> does). | |
| </p> | |
| </li> | |
| <li><p> Rendering raster images in PDF output was resetting the | |
| clipping region. | |
| </p> | |
| </li> | |
| <li><p> Rendering of raster images on cairo X11 device was wrong, | |
| particularly when a small image was being scaled up using | |
| interpolation. | |
| </p> | |
| <p>With cairo < 1.6, will be better than before, though still a | |
| little clunky. With cairo >= 1.6, should be sweet as. | |
| </p> | |
| </li> | |
| <li><p> Several bugs fixed in <code>read.DIF()</code>: single column | |
| inputs caused errors, cells marked as <code>"character"</code> could | |
| be converted to other types, and (in Windows) copying from the | |
| clipboard failed. | |
| </p> | |
| </li></ul> | |
| <h3><img class="toplogo" src="../help/figures/../../html/Rlogo.svg" alt="[R logo]" /> CHANGES IN R VERSION 2.12.0</h3> | |
| <h4>NEW FEATURES</h4> | |
| <ul> | |
| <li><p> Reading a package's ‘<span class="file">CITATION</span>’ file now defaults to | |
| ASCII rather than Latin-1: a package with a non-ASCII | |
| ‘<span class="file">CITATION</span>’ file should declare an encoding in its | |
| ‘<span class="file">DESCRIPTION</span>’ file and use that encoding for the | |
| ‘<span class="file">CITATION</span>’ file. | |
| </p> | |
| </li> | |
| <li> <p><code>difftime()</code> now defaults to the <code>"tzone"</code> | |
| attribute of <code>"POSIXlt"</code> objects rather than to the current | |
| timezone as set by the default for the <code>tz</code> argument. (Wish | |
| of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14182">PR#14182</a>.) | |
| </p> | |
| </li> | |
| <li> <p><code>pretty()</code> is now generic, with new methods for | |
| <code>"Date"</code> and <code>"POSIXt"</code> classes (based on code | |
| contributed by Felix Andrews). | |
| </p> | |
| </li> | |
| <li> <p><code>unique()</code> and <code>match()</code> are now faster on | |
| character vectors where all elements are in the global <code>CHARSXP</code> | |
| cache and have unmarked encoding (ASCII). Thanks to Matthew | |
| Dowle for suggesting improvements to the way the hash code is | |
| generated in ‘<span class="file">unique.c</span>’. | |
| </p> | |
| </li> | |
| <li><p> The <code>enquote()</code> utility, in use internally, is exported now. | |
| </p> | |
| </li> | |
| <li> <p><code>.C()</code> and <code>.Fortran()</code> now map non-zero return | |
| values (other than <code>NA_LOGICAL</code>) for logical vectors to | |
| <code>TRUE</code>: it has been an implicit assumption that they are | |
| treated as true. | |
| </p> | |
| </li> | |
| <li><p> The <code>print()</code> methods for <code>"glm"</code> and <code>"lm"</code> | |
| objects now insert linebreaks in long calls in the same way that | |
| the <code>print()</code> methods for <code>"summary.[g]lm"</code> objects | |
| have long done. This does change the layout of the examples for | |
| a number of packages, e.g. <a href="https://CRAN.R-project.org/package=MASS"><span class="pkg">MASS</span></a>. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14250">PR#14250</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>constrOptim()</code> can now be used with method | |
| <code>"SANN"</code>. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14245">PR#14245</a>) | |
| </p> | |
| <p>It gains an argument <code>hessian</code> to be passed to | |
| <code>optim()</code>, which allows all the <code>...</code> arguments to be | |
| intended for <code>f()</code> and <code>grad()</code>. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14071">PR#14071</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>curve()</code> now allows <code>expr</code> to be an object of | |
| mode <code>"expression"</code> as well as <code>"call"</code> and | |
| <code>"function"</code>. | |
| </p> | |
| </li> | |
| <li><p> The <code>"POSIX[cl]t"</code> methods for <code>Axis()</code> have been | |
| replaced by a single method for <code>"POSIXt"</code>. | |
| </p> | |
| <p>There are no longer separate <code>plot()</code> methods for | |
| <code>"POSIX[cl]t"</code> and <code>"Date"</code>: the default method has | |
| been able to handle those classes for a long time. This | |
| <em>inter alia</em> allows a single date-time object to be | |
| supplied, the wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14016">PR#14016</a>. | |
| </p> | |
| <p>The methods had a different default (<code>""</code>) for <code>xlab</code>. | |
| </p> | |
| </li> | |
| <li><p> Classes <code>"POSIXct"</code>, <code>"POSIXlt"</code> and | |
| <code>"difftime"</code> have generators <code>.POSIXct()</code>, | |
| <code>.POSIXlt()</code> and <code>.difftime()</code>. Package authors are | |
| advised to make use of them (they are available from <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.11.0) to | |
| proof against planned future changes to the classes. | |
| </p> | |
| <p>The ordering of the classes has been changed, so <code>"POSIXt"</code> | |
| is now the second class. See the document ‘Updating | |
| packages for changes in R 2.12.x’ on | |
| <a href="http://developer.r-project.org">http://developer.r-project.org</a> for the consequences for a | |
| handful of CRAN packages. | |
| </p> | |
| </li> | |
| <li><p> The <code>"POSIXct"</code> method of <code>as.Date()</code> allows a | |
| timezone to be specified (but still defaults to UTC). | |
| </p> | |
| </li> | |
| <li><p> New <code>list2env()</code> utility function as an inverse of | |
| <code>as.list(<environment>)</code> and for fast multi-<code>assign()</code> | |
| to existing environment. <code>as.environment()</code> is now generic | |
| and uses <code>list2env()</code> as list method. | |
| </p> | |
| </li> | |
| <li><p> There are several small changes to output which ‘zap’ | |
| small numbers, e.g. in printing quantiles of residuals in | |
| summaries from <code>"lm"</code> and <code>"glm"</code> fits, and in test | |
| statistics in <code>print.anova()</code>. | |
| </p> | |
| </li> | |
| <li><p> Special names such as <code>"dim"</code>, <code>"names"</code>, etc, are | |
| now allowed as slot names of S4 classes, with <code>"class"</code> the | |
| only remaining exception. | |
| </p> | |
| </li> | |
| <li><p> File ‘<span class="file">.Renviron</span>’ can have architecture-specific versions | |
| such as ‘<span class="file">.Renviron.i386</span>’ on systems with sub-architectures. | |
| </p> | |
| </li> | |
| <li> <p><code>installed.packages()</code> has a new argument | |
| <code>subarch</code> to filter on sub-architecture. | |
| </p> | |
| </li> | |
| <li><p> The <code>summary()</code> method for <code>packageStatus()</code> now | |
| has a separate <code>print()</code> method. | |
| </p> | |
| </li> | |
| <li><p> The default <code>summary()</code> method returns an object | |
| inheriting from class <code>"summaryDefault"</code> which has a | |
| separate <code>print()</code> method that calls <code>zapsmall()</code> for | |
| numeric/complex values. | |
| </p> | |
| </li> | |
| <li><p> The startup message now includes the platform and if used, | |
| sub-architecture: this is useful where different | |
| (sub-)architectures run on the same OS. | |
| </p> | |
| </li> | |
| <li><p> The <code>getGraphicsEvent()</code> mechanism now allows multiple windows | |
| to return graphics events, through the new functions | |
| <code>setGraphicsEventHandlers()</code>, <code>setGraphicsEventEnv()</code>, and | |
| <code>getGraphicsEventEnv()</code>. (Currently implemented in the | |
| <code>windows()</code> and <code>X11()</code> devices.) | |
| </p> | |
| </li> | |
| <li> <p><code>tools::texi2dvi()</code> gains an <code>index</code> argument, | |
| mainly for use by <code>R CMD Rd2pdf</code>. | |
| </p> | |
| <p>It avoids the use of <code>texindy</code> by <code>texinfo</code>'s | |
| <code>texi2dvi >= 1.157</code>, since that does not emulate | |
| 'makeindex' well enough to avoid problems with special characters | |
| (such as <span class="samp">(</span>, <span class="samp">{</span>, <span class="samp">!</span>) in indices. | |
| </p> | |
| </li> | |
| <li><p> The ability of <code>readLines()</code> and <code>scan()</code> to | |
| re-encode inputs to marked UTF-8 strings on Windows since <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.7.0 | |
| is extended to non-UTF-8 locales on other OSes. | |
| </p> | |
| </li> | |
| <li> <p><code>scan()</code> gains a <code>fileEncoding</code> argument to | |
| match <code>read.table()</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>points()</code> and <code>lines()</code> gain <code>"table"</code> | |
| methods to match <code>plot()</code>. (Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=10472">PR#10472</a>.) | |
| </p> | |
| </li> | |
| <li> <p><code>Sys.chmod()</code> allows argument <code>mode</code> to be a | |
| vector, recycled along <code>paths</code>. | |
| </p> | |
| </li> | |
| <li><p> There are <code>|</code>, <code>&</code> and <code>xor()</code> methods for | |
| classes <code>"octmode"</code> and <code>"hexmode"</code>, which work | |
| bitwise. | |
| </p> | |
| </li> | |
| <li><p> Environment variables <span class="env">R_DVIPSCMD</span>, <span class="env">R_LATEXCMD</span>, | |
| <span class="env">R_MAKEINDEXCMD</span>, <span class="env">R_PDFLATEXCMD</span> are no longer used | |
| nor set in an <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> session. (With the move to | |
| <code>tools::texi2dvi()</code>, the conventional environment variables | |
| <span class="env">LATEX</span>, <span class="env">MAKEINDEX</span> and <span class="env">PDFLATEX</span> will be used. | |
| <code>options("dvipscmd")</code> defaults to the value of <span class="env">DVIPS</span>, | |
| then to <code>"dvips"</code>.) | |
| </p> | |
| </li> | |
| <li><p> New function <code>isatty()</code> to see if terminal connections are | |
| redirected. | |
| </p> | |
| </li> | |
| <li> <p><code>summaryRprof()</code> returns the sampling interval in | |
| component <code>sample.interval</code> and only returns in | |
| <code>by.self</code> data for functions with non-zero self times. | |
| </p> | |
| </li> | |
| <li> <p><code>print(x)</code> and <code>str(x)</code> now indicate if an empty | |
| list <code>x</code> is named. | |
| </p> | |
| </li> | |
| <li> <p><code>install.packages()</code> and <code>remove.packages()</code> with | |
| <code>lib</code> unspecified and multiple libraries in | |
| <code>.libPaths()</code> inform the user of the library location used | |
| with a message rather than a warning. | |
| </p> | |
| </li> | |
| <li><p> There is limited support for multiple compressed streams on a | |
| file: all of <code>[bgx]zfile()</code> allow streams to be appended to an | |
| existing file, but <code>bzfile()</code> reads only the first stream. | |
| </p> | |
| </li> | |
| <li><p> Function <code>person()</code> in package <span class="pkg">utils</span> now uses | |
| a given/family scheme in preference to first/middle/last, is | |
| vectorized to handle an arbitrary number of persons, and gains a | |
| <code>role</code> argument to specify person roles using a controlled | |
| vocabulary (the MARC relator terms). | |
| </p> | |
| </li> | |
| <li><p> Package <span class="pkg">utils</span> adds a new <code>"bibentry"</code> class | |
| for representing and manipulating bibliographic information in | |
| enhanced BibTeX style, unifying and enhancing the previously | |
| existing mechanisms. | |
| </p> | |
| </li> | |
| <li><p> A <code>bibstyle()</code> function has been added to the | |
| <span class="pkg">tools</span> package with default JSS style for rendering | |
| <code>"bibentry"</code> objects, and a mechanism for registering other | |
| rendering styles. | |
| </p> | |
| </li> | |
| <li><p> Several aspects of the display of text help are now | |
| customizable using the new <code>Rd2txt_options()</code> function. | |
| options(<code>"help_text_width"</code>) is no longer used. | |
| </p> | |
| </li> | |
| <li><p> Added <span class="samp">\href</span> tag to the Rd format, to allow | |
| hyperlinks to URLs without displaying the full URL. | |
| </p> | |
| </li> | |
| <li><p> Added <span class="samp">\newcommand</span> and <span class="samp">\renewcommand</span> tags | |
| to the Rd format, to allow user-defined macros. | |
| </p> | |
| </li> | |
| <li><p> New <code>toRd()</code> generic in the <span class="pkg">tools</span> package to | |
| convert objects to fragments of Rd code, and added | |
| <code>"fragment"</code> argument to <code>Rd2txt()</code>, <code>Rd2HTML()</code>, | |
| and <code>Rd2latex()</code> to support it. | |
| </p> | |
| </li> | |
| <li><p> Directory ‘<span class="file">R_HOME/share/texmf</span>’ now follows the TDS | |
| conventions, so can be set as a <code>texmf</code> tree (‘root | |
| directory’ in MiKTeX parlance). | |
| </p> | |
| </li> | |
| <li><p> S3 generic functions now use correct S4 inheritance when | |
| dispatching on an S4 object. See <code>?Methods</code>, section on | |
| “Methods for S3 Generic Functions” for recommendations | |
| and details. | |
| </p> | |
| </li> | |
| <li> <p><code>format.pval()</code> gains a <code>...</code> argument to pass | |
| arguments such as <code>nsmall</code> to <code>format()</code>. (Wish of | |
| <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=9574">PR#9574</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>legend()</code> supports <code>title.adj</code>. (Wish of | |
| <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=13415">PR#13415</a>) | |
| </p> | |
| </li> | |
| <li><p> Added support for subsetting <code>"raster"</code> objects, plus | |
| assigning to a subset, conversion to a matrix (of colour | |
| strings), and comparisons (<span class="samp">==</span> and <span class="samp">!=</span>). | |
| </p> | |
| </li> | |
| <li><p> Added a new <code>parseLatex()</code> function (and related | |
| functions <code>deparseLatex()</code> and <code>latexToUtf8()</code>) to | |
| support conversion of bibliographic entries for display in R. | |
| </p> | |
| </li> | |
| <li><p> Text rendering of <span class="samp">\itemize</span> in help uses a Unicode | |
| bullet in UTF-8 and most single-byte Windows locales. | |
| </p> | |
| </li> | |
| <li><p> Added support for polygons with holes to the graphics | |
| engine. This is implemented for the <code>pdf()</code>, | |
| <code>postscript()</code>, <code>x11(type="cairo")</code>, <code>windows()</code>, | |
| and <code>quartz()</code> devices (and associated raster formats), | |
| but not for <code>x11(type="Xlib")</code> or <code>xfig()</code> or | |
| <code>pictex()</code>. The user-level interface is the | |
| <code>polypath()</code> function in <span class="pkg">graphics</span> and | |
| <code>grid.path()</code> in <span class="pkg">grid</span>. | |
| </p> | |
| </li> | |
| <li><p> File ‘<span class="file">NEWS</span>’ is now generated at installation with a | |
| slightly different format: it will be in UTF-8 on platforms using | |
| UTF-8, and otherwise in ASCII. There is also a PDF version, | |
| ‘<span class="file">NEWS.pdf</span>’, installed at the top-level of the R distribution. | |
| </p> | |
| </li> | |
| <li> <p><code>kmeans(x, 1)</code> now works. Further, <code>kmeans</code> now | |
| returns between and total sum of squares. | |
| </p> | |
| </li> | |
| <li> <p><code>arrayInd()</code> and <code>which()</code> gain an argument | |
| <code>useNames</code>. For <code>arrayInd</code>, the default is now false, | |
| for speed reasons. | |
| </p> | |
| </li> | |
| <li><p> As is done for closures, the default <code>print</code> method for | |
| the formula class now displays the associated environment if it is | |
| not the global environment. | |
| </p> | |
| </li> | |
| <li><p> A new facility has been added for inserting code into a | |
| package without re-installing it, to facilitate testing | |
| changes which can be selectively added and backed out. See | |
| <code>?insertSource</code>. | |
| </p> | |
| </li> | |
| <li><p> New function <code>readRenviron</code> to (re-)read files in the | |
| format of ‘<span class="file">~/.Renviron</span>’ and ‘<span class="file">Renviron.site</span>’. | |
| </p> | |
| </li> | |
| <li> <p><code>require()</code> will now return <code>FALSE</code> (and not fail) | |
| if loading the package or one of its dependencies fails. | |
| </p> | |
| </li> | |
| <li> <p><code>aperm()</code> now allows argument <code>perm</code> to be a | |
| character vector when the array has named dimnames (as the results | |
| of <code>table()</code> calls do). Similarly, <code>array()</code> allows | |
| <code>MARGIN</code> to be a character vector. (Based on suggestions of | |
| Michael Lachmann.) | |
| </p> | |
| </li> | |
| <li><p> Package <span class="pkg">utils</span> now exports and documents functions | |
| <code>aspell_package_Rd_files()</code> and | |
| <code>aspell_package_vignettes()</code> for spell checking package Rd | |
| files and vignettes using Aspell, Ispell or Hunspell. | |
| </p> | |
| </li> | |
| <li><p> Package news can now be given in Rd format, and | |
| <code>news()</code> prefers these ‘<span class="file">inst/NEWS.Rd</span>’ files to old-style | |
| plain text ‘<span class="file">NEWS</span>’ or ‘<span class="file">inst/NEWS</span>’ files. | |
| </p> | |
| </li> | |
| <li><p> New simple function <code>packageVersion()</code>. | |
| </p> | |
| </li> | |
| <li><p> The PCRE library has been updated to version 8.10. | |
| </p> | |
| </li> | |
| <li><p> The standard Unix-alike terminal interface declares its name | |
| to readline as 'R', so that can be used for conditional sections | |
| in ‘<span class="file">~/.inputrc</span>’ files. | |
| </p> | |
| </li> | |
| <li> <p>‘Writing R Extensions’ now stresses that the standard | |
| sections in ‘<span class="file">.Rd</span>’ files (other than <span class="samp">\alias</span>, | |
| <span class="samp">\keyword</span> and <span class="samp">\note</span>) are intended to be unique, and | |
| the conversion tools now drop duplicates with a warning. | |
| </p> | |
| <p>The ‘<span class="file">.Rd</span>’ conversion tools also warn about an unrecognized type | |
| in a <span class="samp">\docType</span> section. | |
| </p> | |
| </li> | |
| <li> <p><code>ecdf()</code> objects now have a <code>quantile()</code> method. | |
| </p> | |
| </li> | |
| <li> <p><code>format()</code> methods for date-time objects now attempt to make | |
| use of a <code>"tzone"</code> attribute with <code>"%Z"</code> and | |
| <code>"%z"</code> formats, but it is not always possible. (Wish of | |
| <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14358">PR#14358</a>.) | |
| </p> | |
| </li> | |
| <li> <p><code>tools::texi2dvi(file, clean = TRUE)</code> now works in more | |
| cases (e.g., where emulation is used and when ‘<span class="file">file</span>’ is not in | |
| the current directory). | |
| </p> | |
| </li> | |
| <li><p> New function <code>droplevels()</code> to remove unused factor levels. | |
| </p> | |
| </li> | |
| <li> <p><code>system(command, intern = TRUE)</code> now gives an error on | |
| a Unix-alike (as well as on Windows) if <code>command</code> cannot be | |
| run. It reports a non-success exit status from running | |
| <code>command</code> as a warning. | |
| </p> | |
| <p>On a Unix-alike an attempt is made to return the actual exit | |
| status of the command in <code>system(intern = FALSE)</code>: previously | |
| this had been system-dependent but on POSIX-compliant systems the | |
| value return was 256 times the status. | |
| </p> | |
| </li> | |
| <li> <p><code>system()</code> has a new argument <code>ignore.stdout</code> | |
| which can be used to (portably) ignore standard output. | |
| </p> | |
| </li> | |
| <li> <p><code>system(intern = TRUE)</code> and <code>pipe()</code> connections | |
| are guaranteed to be available on all builds of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>. | |
| </p> | |
| </li> | |
| <li> <p><code>Sys.which()</code> has been altered to return <code>""</code> if | |
| the command is not found (even on Solaris). | |
| </p> | |
| </li> | |
| <li><p> A facility for defining reference-based S4 classes (in the | |
| OOP style of Java, C++, etc.) has been added experimentally to | |
| package <span class="pkg">methods</span>; see <code>?ReferenceClasses</code>. | |
| </p> | |
| </li> | |
| <li><p> The <code>predict</code> method for <code>"loess"</code> fits gains an | |
| <code>na.action</code> argument which defaults to <code>na.pass</code> rather | |
| than the previous default of <code>na.omit</code>. | |
| </p> | |
| <p>Predictions from <code>"loess"</code> fits are now named from the row | |
| names of <code>newdata</code>. | |
| </p> | |
| </li> | |
| <li><p> Parsing errors detected during <code>Sweave()</code> processing | |
| will now be reported referencing their original location in the | |
| source file. | |
| </p> | |
| </li> | |
| <li><p> New <code>adjustcolor()</code> utility, e.g., for simple | |
| translucent color schemes. | |
| </p> | |
| </li> | |
| <li> <p><code>qr()</code> now has a trivial <code>lm</code> method with a | |
| simple (fast) validity check. | |
| </p> | |
| </li> | |
| <li><p> An experimental new programming model has been added to | |
| package <span class="pkg">methods</span> for reference (OOP-style) classes and | |
| methods. See <code>?ReferenceClasses</code>. | |
| </p> | |
| </li> | |
| <li><p> bzip2 has been updated to version 1.0.6 (bug-fix release). | |
| <span class="option">--with-system-bzlib</span> now requires at least version 1.0.6. | |
| </p> | |
| </li> | |
| <li><p> R now provides ‘<span class="file">jss.cls</span>’ and ‘<span class="file">jss.bst</span>’ (the class | |
| and bib style file for the Journal of Statistical Software) as | |
| well as ‘<span class="file">RJournal.bib</span>’ and ‘<span class="file">Rnews.bib</span>’, and | |
| <code>R CMD</code> ensures that the ‘<span class="file">.bst</span>’ and ‘<span class="file">.bib</span>’ files | |
| are found by BibTeX. | |
| </p> | |
| </li> | |
| <li><p> Functions using the <span class="env">TAR</span> environment variable no longer | |
| quote the value when making <code>system</code> calls. This allows | |
| values such as <span class="samp">tar --force-local</span>, but does require | |
| additional quotes in, e.g., <code>TAR = "'/path with spaces/mytar'"</code>. | |
| </p> | |
| </li></ul> | |
| <h4>DEPRECATED & DEFUNCT</h4> | |
| <ul> | |
| <li><p> Supplying the parser with a character string containing both | |
| octal/hex and Unicode escapes is now an error. | |
| </p> | |
| </li> | |
| <li><p> File extension ‘<span class="file">.C</span>’ for C++ code files in packages is | |
| now defunct. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> no longer supports configuration | |
| files containing Perl configuration variables: use the environment | |
| variables documented in ‘R Internals’ instead. | |
| </p> | |
| </li> | |
| <li><p> The <code>save</code> argument of <code>require()</code> now defaults to | |
| <code>FALSE</code> and <code>save = TRUE</code> is now deprecated. (This | |
| facility is very rarely actually used, and was superseded by the | |
| <span class="samp">Depends</span> field of the ‘<span class="file">DESCRIPTION</span>’ file long ago.) | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check --no-latex</code> is deprecated in favour of | |
| <span class="option">--no-manual</span>. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD Sd2Rd</code> is formally deprecated and will be | |
| removed in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.13.0. | |
| </p> | |
| </li></ul> | |
| <h4>PACKAGE INSTALLATION</h4> | |
| <ul> | |
| <li> <p><code>install.packages()</code> has a new argument | |
| <code>libs_only</code> to optionally pass <span class="option">--libs-only</span> to | |
| <code>R CMD INSTALL</code> and works analogously for Windows binary | |
| installs (to add support for 64- or 32-bit Windows). | |
| </p> | |
| </li> | |
| <li><p> When sub-architectures are in use, the installed | |
| architectures are recorded in the <code>Archs</code> field of the | |
| ‘<span class="file">DESCRIPTION</span>’ file. There is a new default filter, | |
| <code>"subarch"</code>, in <code>available.packages()</code> to make use of | |
| this. | |
| </p> | |
| <p>Code is compiled in a copy of the ‘<span class="file">src</span>’ directory when a | |
| package is installed for more than one sub-architecture: this | |
| avoid problems with cleaning the sources between building | |
| sub-architectures. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD INSTALL --libs-only</code> no longer overrides the | |
| setting of locking, so a previous version of the package will be | |
| restored unless <span class="option">--no-lock</span> is specified. | |
| </p> | |
| </li></ul> | |
| <h4>UTILITIES</h4> | |
| <ul> | |
| <li> <p><code>R CMD Rprof|build|check</code> are now based on <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> rather | |
| than Perl scripts. The only remaining Perl scripts are the | |
| deprecated <code>R CMD Sd2Rd</code> and <code>install-info.pl</code> (used | |
| only if <code>install-info</code> is not found) as well as some | |
| maintainer-mode-only scripts. | |
| </p> | |
| <p><strong>NB:</strong> because these have been completely rewritten, users | |
| should not expect undocumented details of previous | |
| implementations to have been duplicated. | |
| </p> | |
| <p><code>R CMD</code> no longer manipulates the environment variables | |
| <span class="env">PERL5LIB</span> and <span class="env">PERLLIB</span>. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> has a new argument <span class="option">--extra-arch</span> | |
| to confine tests to those needed to check an additional | |
| sub-architecture. | |
| </p> | |
| <p>Its check for “Subdirectory 'inst' contains no files” is | |
| more thorough: it looks for files, and warns if there are only | |
| empty directories. | |
| </p> | |
| <p>Environment variables such as <span class="env">R_LIBS</span> and those used for | |
| customization can be set for the duration of checking <em>via</em> a file | |
| ‘<span class="file">~/.R/check.Renviron</span>’ (in the format used by | |
| ‘<span class="file">.Renviron</span>’, and with sub-architecture specific versions | |
| such as ‘<span class="file">~/.R/check.Renviron.i386</span>’ taking precedence). | |
| </p> | |
| <p>There are new options <span class="option">--multiarch</span> to check the package | |
| under all of the installed sub-architectures and | |
| <span class="option">--no-multiarch</span> to confine checking to the | |
| sub-architecture under which <code>check</code> is invoked. If | |
| neither option is supplied, a test is done of installed | |
| sub-architectures and all those which can be run on the current | |
| OS are used. | |
| </p> | |
| <p>Unless multiple sub-architectures are selected, the install done | |
| by <code>check</code> for testing purposes is only of the current | |
| sub-architecture (<em>via</em> <code>R CMD INSTALL --no-multiarch</code>). | |
| </p> | |
| <p>It will skip the check for non-ascii characters in code or data | |
| if the environment variables <span class="env">_R_CHECK_ASCII_CODE_</span> or | |
| <span class="env">_R_CHECK_ASCII_DATA_</span> are respectively set to <span class="env">FALSE</span>. | |
| (Suggestion of Vince Carey.) | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD build</code> no longer creates an ‘<span class="file">INDEX</span>’ file | |
| (<code>R CMD INSTALL</code> does so), and <span class="option">--force</span> removes | |
| (rather than overwrites) an existing ‘<span class="file">INDEX</span>’ file. | |
| </p> | |
| <p>It supports a file ‘<span class="file">~/.R/build.Renviron</span>’ analogously to | |
| <code>check</code>. | |
| </p> | |
| <p>It now runs build-time <span class="samp">\Sexpr</span> expressions in help files. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD Rd2dvi</code> makes use of <code>tools::texi2dvi()</code> | |
| to process the package manual. It is now implemented entirely in | |
| <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> (rather than partially as a shell script). | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD Rprof</code> now uses <code>utils::summaryRprof()</code> | |
| rather than Perl. It has new arguments to select one of the | |
| tables and to limit the number of entries printed. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD Sweave</code> now runs <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> with <span class="option">--vanilla</span> so | |
| the environment setting of <span class="env">R_LIBS</span> will always be used. | |
| </p> | |
| </li></ul> | |
| <h4>C-LEVEL FACILITIES</h4> | |
| <ul> | |
| <li> <p><code>lang5()</code> and <code>lang6()</code> (in addition to | |
| pre-existing <code>lang[1-4]()</code>) convenience functions for easier | |
| construction of <code>eval()</code> calls. If you have your own | |
| definition, do wrap it inside <code>#ifndef lang5 .... #endif</code> | |
| to keep it working with old and new <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>. | |
| </p> | |
| </li> | |
| <li><p> Header ‘<span class="file">R.h</span>’ now includes only the C headers it itself needs, | |
| hence no longer includes <code>errno.h</code>. (This helps avoid problems | |
| when it is included from C++ source files.) | |
| </p> | |
| </li> | |
| <li><p> Headers ‘<span class="file">Rinternals.h</span>’ and ‘<span class="file">R_ext/Print.h</span>’ include | |
| the C++ versions of ‘<span class="file">stdio.h</span>’ and ‘<span class="file">stdarg.h</span>’ | |
| respectively if included from a C++ source file. | |
| </p> | |
| </li></ul> | |
| <h4>INSTALLATION</h4> | |
| <ul> | |
| <li><p> A C99 compiler is now required, and more C99 language features | |
| will be used in the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> sources. | |
| </p> | |
| </li> | |
| <li><p> Tcl/Tk >= 8.4 is now required (increased from 8.3). | |
| </p> | |
| </li> | |
| <li><p> System functions <code>access</code>, <code>chdir</code> and | |
| <code>getcwd</code> are now essential to configure <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>. (In practice | |
| they have been required for some time.) | |
| </p> | |
| </li> | |
| <li> <p><code>make check</code> compares the output of the examples | |
| from several of the base packages to reference output rather than | |
| the previous output (if any). Expect some differences due to | |
| differences in floating-point computations between platforms. | |
| </p> | |
| </li> | |
| <li><p> File ‘<span class="file">NEWS</span>’ is no longer in the sources, but generated as | |
| part of the installation. The primary source for changes is now | |
| ‘<span class="file">doc/NEWS.Rd</span>’. | |
| </p> | |
| </li> | |
| <li><p> The <code>popen</code> system call is now required to build <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>. | |
| This ensures the availability of <code>system(intern = TRUE)</code>, | |
| <code>pipe()</code> connections and printing from <code>postscript()</code>. | |
| </p> | |
| </li> | |
| <li><p> The <code>pkg-config</code> file ‘<span class="file">libR.pc</span>’ now also works | |
| when <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> is installed using a sub-architecture. | |
| </p> | |
| </li> | |
| <li> <p><span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> has always required a BLAS that conforms to IE60559 | |
| arithmetic, but after discovery of more real-world problems caused | |
| by a BLAS that did not, this is tested more thoroughly in this | |
| version. | |
| </p> | |
| </li></ul> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li><p> Calls to <code>selectMethod()</code> by default no longer cache | |
| inherited methods. This could previously corrupt methods used by | |
| <code>as()</code>. | |
| </p> | |
| </li> | |
| <li><p> The densities of non-central chi-squared are now more accurate | |
| in some cases in the extreme tails, | |
| e.g. <code>dchisq(2000, 2, 1000)</code>, | |
| as a series expansion was truncated too early. | |
| (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14105">PR#14105</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>pt()</code> is more accurate in the left tail for <code>ncp</code> | |
| large, e.g. <code>pt(-1000, 3, 200)</code>. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14069">PR#14069</a>) | |
| </p> | |
| </li> | |
| <li><p> The default C function (<code>R_binary</code>) for binary ops now | |
| sets the S4 bit in the result if either argument is an S4 object. | |
| (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=13209">PR#13209</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>source(echo=TRUE)</code> failed to echo comments that | |
| followed the last statement in a file. | |
| </p> | |
| </li> | |
| <li><p> S4 classes that contained one of <code>"matrix"</code>, | |
| <code>"array"</code> or <code>"ts"</code> and also another class now accept | |
| superclass objects in <code>new()</code>. Also fixes failure to call | |
| <code>validObject()</code> for these classes. | |
| </p> | |
| </li> | |
| <li><p> Conditional inheritance defined by argument <code>test</code> in | |
| <code>methods::setIs()</code> will no longer be used in S4 method | |
| selection (caching these methods could give incorrect results). | |
| See <code>?setIs</code>. | |
| </p> | |
| </li> | |
| <li><p> The signature of an implicit generic is now used by | |
| <code>setGeneric()</code> when that does not use a definition nor | |
| explicitly set a signature. | |
| </p> | |
| </li> | |
| <li><p> A bug in <code>callNextMethod()</code> for some examples with | |
| <code>"..."</code> in the arguments has been fixed. See file | |
| ‘<span class="file">src/library/methods/tests/nextWithDots.R</span>’ in the sources. | |
| </p> | |
| </li> | |
| <li> <p><code>match(x, table)</code> (and hence <code>%in%</code>) now treat | |
| <code>"POSIXlt"</code> consistently with, e.g., <code>"POSIXct"</code>. | |
| </p> | |
| </li> | |
| <li><p> Built-in code dealing with environments (<code>get()</code>, | |
| <code>assign()</code>, <code>parent.env()</code>, <code>is.environment()</code> and | |
| others) now behave consistently to recognize S4 subclasses; | |
| <code>is.name()</code> also recognizes subclasses. | |
| </p> | |
| </li> | |
| <li><p> The <code>abs.tol</code> control parameter to <code>nlminb()</code> | |
| now defaults to <code>0.0</code> to avoid false declarations of | |
| convergence in objective functions that may go negative. | |
| </p> | |
| </li> | |
| <li><p> The standard Unix-alike termination dialog to ask whether to | |
| save the workspace takes a EOF response as <code>n</code> to avoid | |
| problems with a damaged terminal connection. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14332">PR#14332</a>) | |
| </p> | |
| </li> | |
| <li><p> Added <code>warn.unused</code> argument to <code>hist.default()</code> | |
| to allow suppression of spurious warnings about graphical | |
| parameters used with <code>plot=FALSE</code>. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14341">PR#14341</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>predict.lm()</code>, <code>summary.lm()</code>, and indeed | |
| <code>lm()</code> itself had issues with residual DF in zero-weighted | |
| cases (the latter two only in connection with empty | |
| models). (Thanks to Bill Dunlap for spotting the | |
| <code>predict()</code> case.) | |
| </p> | |
| </li> | |
| <li> <p><code>aperm()</code> treated <code>resize = NA</code> as <code>resize = | |
| TRUE</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>constrOptim()</code> now has an improved convergence | |
| criterion, notably for cases where the minimum was (very close to) | |
| zero; further, other tweaks inspired from code proposals by Ravi | |
| Varadhan. | |
| </p> | |
| </li> | |
| <li><p> Rendering of S3 and S4 methods in man pages has been | |
| corrected and made consistent across output formats. | |
| </p> | |
| </li> | |
| <li><p> Simple markup is now allowed in <span class="samp">\title</span> sections | |
| in ‘<span class="file">.Rd</span>’ files. | |
| </p> | |
| </li> | |
| <li><p> The behaviour of <code>as.logical()</code> on factors (to use the | |
| levels) was lost in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.6.0 and has been restored. | |
| </p> | |
| </li> | |
| <li> <p><code>prompt()</code> did not backquote some default arguments in | |
| the <span class="samp">\usage</span> section. (Reported by Claudia Beleites.) | |
| </p> | |
| </li> | |
| <li> <p><code>writeBin()</code> disallows attempts to write 2GB or | |
| more in a single call. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14362">PR#14362</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>new()</code> and <code>getClass()</code> will now work if Class | |
| is a subclass of <code>"classRepresentation"</code> and should also be | |
| faster in typical calls. | |
| </p> | |
| </li> | |
| <li><p> The <code>summary()</code> method for data frames makes a better | |
| job of names containing characters invalid in the current locale. | |
| </p> | |
| </li> | |
| <li> <p><code>[[</code> sub-assignment for factors could create an invalid | |
| factor (reported by Bill Dunlap). | |
| </p> | |
| </li> | |
| <li> <p><code>Negate(f)</code> would not evaluate argument <code>f</code> | |
| until first use of returned function (reported by Olaf Mersmann). | |
| </p> | |
| </li> | |
| <li> <p><code>quietly=FALSE</code> is now also an optional argument of | |
| <code>library()</code>, and consequently, <code>quietly</code> is now | |
| propagated also for loading dependent packages, e.g., in | |
| <code>require(*, quietly=TRUE)</code>. | |
| </p> | |
| </li> | |
| <li><p> If the loop variable in a <code>for</code> loop was deleted, it | |
| would be recreated as a global variable. (Reported by Radford | |
| Neal; the fix includes his optimizations as well.) | |
| </p> | |
| </li> | |
| <li><p> Task callbacks could report the wrong expression when | |
| the task involved parsing new code. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14368">PR#14368</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>getNamespaceVersion()</code> failed; this was an | |
| accidental change in 2.11.0. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14374">PR#14374</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>identical()</code> returned <code>FALSE</code> for external | |
| pointer objects even when the pointer addresses were the same. | |
| </p> | |
| </li> | |
| <li> <p><code>L$a@x[] <- val</code> did not duplicate in a case it should have. | |
| </p> | |
| </li> | |
| <li> <p><code>tempfile()</code> now always gives a random file name (even | |
| if the directory is specified) when called directly after | |
| startup and before the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> RNG had been used. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14381">PR#14381</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>quantile(type=6)</code> behaved inconsistently. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14383">PR#14383</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>backSpline(.)</code> behaved incorrectly when the knot | |
| sequence was decreasing. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14386">PR#14386</a>) | |
| </p> | |
| </li> | |
| <li><p> The reference BLAS included in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> was assuming that | |
| <code>0*x</code> and <code>x*0</code> were always zero (whereas they could be | |
| <code>NA</code> or <code>NaN</code> in IEC 60559 arithmetic). This was seen | |
| in results from <code>tcrossprod</code>, and for example that | |
| <code>log(0) %*% 0</code> gave <code>0</code>. | |
| </p> | |
| </li> | |
| <li><p> The calculation of whether text was completely outside | |
| the device region (in which case, you draw nothing) | |
| was wrong for screen devices (which have [0, 0] at top-left). | |
| The symptom was (long) text disappearing when | |
| resizing a screen window (to make it smaller). (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14391">PR#14391</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>model.frame(drop.unused.levels = TRUE)</code> did not | |
| take into account <code>NA</code> values of factors when deciding to | |
| drop levels. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14393">PR#14393</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>library.dynam.unload</code> required an absolute path for | |
| <code>libpath</code>. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14385">PR#14385</a>) | |
| </p> | |
| <p>Both <code>library()</code> and <code>loadNamespace()</code> now record | |
| absolute paths for use by <code>searchpaths()</code> and | |
| <code>getNamespaceInfo(ns, "path")</code>. | |
| </p> | |
| </li> | |
| <li><p> The self-starting model <code>NLSstClosestX</code> failed if some | |
| deviation was exactly zero. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14384">PR#14384</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>X11(type = "cairo")</code> (and other devices such as | |
| <code>png</code> using cairographics) and which use Pango font selection | |
| now work around a bug in Pango when very small fonts (those with | |
| sizes between 0 and 1 in Pango's internal units) are requested. | |
| (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14369">PR#14369</a>) | |
| </p> | |
| </li> | |
| <li><p> Added workaround for the font problem with <code>X11(type = | |
| "cairo")</code> and similar on Mac OS X whereby italic and bold styles | |
| were interchanged. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=13463">PR#13463</a> amongst many other reports.) | |
| </p> | |
| </li> | |
| <li> <p><code>source(chdir = TRUE)</code> failed to reset the working | |
| directory if it could not be determined – that is now an error. | |
| </p> | |
| </li> | |
| <li><p> Fix for crash of <code>example(rasterImage)</code> on | |
| <code>x11(type="Xlib")</code>. | |
| </p> | |
| </li> | |
| <li><p> Force Quartz to bring the on-screen display up-to-date | |
| immediately before the snapshot is taken by <code>grid.cap()</code> | |
| in the Cocoa implementation. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14260">PR#14260</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>model.frame</code> had an unstated 500 byte limit on | |
| variable names. (Example reported by Terry Therneau.) | |
| </p> | |
| </li> | |
| <li><p> The 256-byte limit on names is now documented. | |
| </p> | |
| </li> | |
| <li><p> Subassignment by <code>[</code>, <code>[[</code> or <code>$</code> on an | |
| expression object with value <code>NULL</code> coerced the object to a | |
| list. | |
| </p> | |
| </li></ul> | |
| <h3><img class="toplogo" src="../help/figures/../../html/Rlogo.svg" alt="[R logo]" /> CHANGES IN R VERSION 2.11.1 patched</h3> | |
| <h4>NEW FEATURES</h4> | |
| <ul> | |
| <li> <p><code>install.packages()</code> has a new optional argument | |
| <code>INSTALL_opts</code> which can be used to pass options to | |
| <code>R CMD INSTALL</code> for source-package installs. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> now runs the package-specific tests | |
| with <span class="env">LANGUAGE=en</span> to facilitate comparison to | |
| ‘<span class="file">.Rout.save</span>’ files. | |
| </p> | |
| </li> | |
| <li> <p><code>sessionInfo()</code> gives more detailed platform | |
| information, including 32/64-bit and the sub-architecture if one | |
| is used. | |
| </p> | |
| </li></ul> | |
| <h4>DEPRECATED & DEFUNCT</h4> | |
| <ul> | |
| <li><p> The use of Perl configuration variables for <code>R CMD | |
| check</code> (as previously documented in ‘Writing R | |
| Extensions’) is deprecated and will be removed in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.12.0. Use | |
| the environment variables documented in ‘R Internals’ | |
| instead. | |
| </p> | |
| </li></ul> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li> <p><code>R CMD Rd2dvi</code> failed if run from a path containing | |
| space(s). This also affected <code>R CMD check</code>, which calls | |
| <code>Rd2dvi</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>stripchart()</code> could fail with an empty factor | |
| level. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14317">PR#14317</a>) | |
| </p> | |
| </li> | |
| <li><p> Text help rendering of <span class="samp">\tabular{}</span> has been | |
| improved: under some circumstances leading blank columns were | |
| not rendered. | |
| </p> | |
| </li> | |
| <li> <p><code>strsplit(x, fixed=TRUE)</code> marked UTF-8 strings with the | |
| local encoding when no splits were found. | |
| </p> | |
| </li> | |
| <li> <p><code>weighted.mean(NA, na.rm=TRUE)</code> and similar now returns | |
| <code>NaN</code> again, as it did prior to <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.10.0. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD</code> had a typo in its detection of whether the | |
| environment variable <span class="env">TEXINPUTS</span> was set (reported by Martin | |
| Morgan). | |
| </p> | |
| </li> | |
| <li><p> The command-line parser could mistake | |
| <span class="option">--file=size...</span> for one of the options for setting limits | |
| for Ncells or Vcells. | |
| </p> | |
| </li> | |
| <li><p> The internal <code>strptime()</code> could corrupt its copy of the | |
| timezone which would then lead to spurious warnings. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14338">PR#14338</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>dir.create(recursive = TRUE)</code> could fail if one of the | |
| components existed but was a directory on a read-only file system. | |
| (Seen on Solaris, where the error code returned is not even listed | |
| as possible on the man page.) | |
| </p> | |
| </li> | |
| <li><p> The <code>postscript()</code> and <code>pdf()</code> devices will now | |
| allow <code>lwd</code> values less than 1 (they used to force such | |
| values to be 1). | |
| </p> | |
| </li> | |
| <li><p> Fixed font face for CID fonts in <code>pdf()</code> graphics output. | |
| (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14326">PR#14326</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>GERaster()</code> now checks for width or height of zero and | |
| does nothing in those cases; previously the behaviour was | |
| undefined, probably device-specific, and possibly dangerous. | |
| </p> | |
| </li> | |
| <li> <p><code>wilcox.test(x, y, conf.int = TRUE)</code> failed with an unhelpful | |
| message if <code>x</code> and <code>y</code> were constant vectors, and | |
| similarly in the one-sample case. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14329">PR#14329</a>) | |
| </p> | |
| </li> | |
| <li><p> Improperly calling <code>Recall()</code> from outside a function | |
| could cause a segfault. (Reported by Robert McGehee.) | |
| </p> | |
| </li> | |
| <li> <p><span class="samp">\Sexpr[result=rd]</span> in an Rd file added a | |
| spurious newline, which was displayed as extra whitespace when | |
| rendered. | |
| </p> | |
| </li> | |
| <li> <p><code>require(save = TRUE)</code> recorded the names of packages | |
| it failed to load. | |
| </p> | |
| </li> | |
| <li> <p><code>packageStatus()</code> could return a data frame with | |
| duplicate row names which could then not be printed. | |
| </p> | |
| </li> | |
| <li> <p><code>txtProgressBar(style = 2)</code> did not work correctly. | |
| </p> | |
| <p><code>txtProgressBar(style = 3)</code> did not display until a | |
| non-minimum value was set. | |
| </p> | |
| </li> | |
| <li> <p><code>contour()</code> did not display dashed line types | |
| properly when contour lines were labelled. (Reported by | |
| David B. Thompson.) | |
| </p> | |
| </li> | |
| <li> <p><code>tools::undoc()</code> again detects undocumented data | |
| objects. Of course, this also affects <code>R CMD check</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>ksmooth(x,NULL)</code> no longer segfaults. | |
| </p> | |
| </li> | |
| <li> <p><code>approxfun()</code>, <code>approx()</code>, <code>splinefun()</code> | |
| and <code>spline()</code> could be confused by <code>x</code> values that | |
| were different but so close as to print identically. | |
| (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14377">PR#14377</a>) | |
| </p> | |
| </li></ul> | |
| <h3><img class="toplogo" src="../help/figures/../../html/Rlogo.svg" alt="[R logo]" /> CHANGES IN R VERSION 2.11.1</h3> | |
| <h4>NEW FEATURES</h4> | |
| <ul> | |
| <li> <p><code>R CMD INSTALL</code> checks if dependent packages are | |
| available early on in the installation of source packages, | |
| thereby giving clearer error messages. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD INSTALL --build</code> now names the file in the | |
| format used for Mac OS X binary files on that platform. | |
| </p> | |
| </li> | |
| <li> <p><code>BIC()</code> in package <span class="pkg">stats4</span> now also works with | |
| multiple fitted models, analogously to <code>AIC()</code>. | |
| </p> | |
| </li></ul> | |
| <h4>DEPRECATED & DEFUNCT</h4> | |
| <ul> | |
| <li><p> Use of file extension ‘<span class="file">.C</span>’ for C++ code in packages is now | |
| deprecated: it has caused problems for some <code>make</code>s on | |
| case-insensitive file systems (although it currently works | |
| with the recommended toolkits). | |
| </p> | |
| </li></ul> | |
| <h4>INSTALLATION</h4> | |
| <ul> | |
| <li><p> Command <code>gnutar</code> is preferred to <code>tar</code> | |
| when configure sets <span class="env">TAR</span>. This is needed on Mac OS 10.6, | |
| where the default <code>tar</code>, <code>bsdtar 2.6.2</code>, has been | |
| reported to produce archives with illegal extensions to tar | |
| (according to the POSIX standard). | |
| </p> | |
| </li></ul> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li><p> The C function <code>mkCharLenCE</code> now no longer reads past | |
| <code>len</code> bytes (unlikely to be a problem except in user | |
| code). (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14246">PR#14246</a>) | |
| </p> | |
| </li> | |
| <li><p> On systems without any default <span class="env">LD_LIBRARY_PATH</span> (not | |
| even ‘<span class="file">/usr/local/lib</span>’), <span class="env">[DY]LIB_LIBRARY_PATH</span> is now | |
| set without a trailing colon. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=13637">PR#13637</a>) | |
| </p> | |
| </li> | |
| <li><p> More efficient implementation of <code>utf8ToInt()</code> on long | |
| multi-byte strings with many multi-byte characters. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14262">PR#14262</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>aggregate.ts()</code> gave platform-dependent results due to | |
| rounding error for <code>ndeltat != 1</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>package.skeleton()</code> sometimes failed to fix filenames | |
| for ‘<span class="file">.R</span>’ or ‘<span class="file">.Rd</span>’ files to start with an alphanumeric. | |
| (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14253">PR#14253</a>) | |
| </p> | |
| <p>It also failed when only an S4 class without any methods was | |
| defined. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14280">PR#14280</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>splinefun(method = "monoH.FC")</code> was not | |
| quite monotone in rare cases. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14215">PR#14215</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>Rhttpd</code> no longer crashes due to <code>SIGPIPE</code> when | |
| the client closes the connection prematurely. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14266">PR#14266</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>format.POSIXlt()</code> could cause a stack overflow and | |
| crash when used on very long vectors. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14267">PR#14267</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>Rd2latex()</code> incorrectly escaped special characters in | |
| <span class="samp">\usage</span> sections. | |
| </p> | |
| </li> | |
| <li> <p><code>mcnemar.test()</code> could alter the levels (dropping | |
| unused levels) if passed <code>x</code> and <code>y</code> as factors | |
| (reported by Greg Snow). | |
| </p> | |
| </li> | |
| <li> <p><code>Rd2pdf</code> sometimes needed a further | |
| <code>pdflatex</code> pass to get hyperlinked pages correct. | |
| </p> | |
| </li> | |
| <li> <p><code>interaction()</code> produced malformed results when levels were | |
| duplicated, causing segfaults in <code>split()</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>cut(d, breaks = <n>)</code> now also works for <code>"Date"</code> | |
| or <code>"POSIXt"</code> argument <code>d</code>. | |
| (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14288">PR#14288</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>memDecompress()</code> could decompress incompletely rare | |
| <code>xz</code>-compressed input due to incorrect documentation of | |
| <code>xz utils</code>. (Report and patch from Olaf Mersmann.) | |
| </p> | |
| </li> | |
| <li><p> The S4 <code>initialize()</code> methods for <code>"matrix"</code>, | |
| <code>"array"</code>, and <code>"ts"</code> have been fixed to call | |
| <code>validObject()</code>. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14284">PR#14284</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD INSTALL</code> now behaves the same way with or | |
| without <span class="option">--no-multiarch</span> on platforms with only one | |
| installed architecture. (It used to clean the ‘<span class="file">src</span>’ | |
| directory without <span class="option">--no-multiarch</span>.) | |
| </p> | |
| </li> | |
| <li> <p><code>[<-.data.frame</code> was not quite careful enough in | |
| assigning (and potentially deleting) columns | |
| right-to-left. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14263">PR#14263</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>rbeta(n, a, b)</code> no longer occasionally returns | |
| <code>NaN</code> for <code>a >> 1 > b</code>. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14291">PR#14291</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>pnorm(x, log.p = TRUE)</code> could return <code>NaN</code> not | |
| <code>-Inf</code> for <code>x</code> near (minus for <code>lower.tail=TRUE</code>) | |
| the largest representable number. | |
| </p> | |
| </li> | |
| <li><p> Compressed data files ‘<span class="file">*.(txt|tab|csv).(gz|bz2|xz)</span>’ | |
| were not recognized for the list of data topics and hence for | |
| packages using <code>LazyData</code>. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14273">PR#14273</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>textConnection()</code> did an unnecessary translation on | |
| strings in a foreign encoding (e.g., UTF-8 strings on Windows) and | |
| so was slower than it could have been on very long input strings. | |
| (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14286">PR#14286</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>tools::Rd2txt()</code> did not render poorly written Rd | |
| files consistently with other renderers. | |
| </p> | |
| <p>It computed widths of strings that would be <code>print()</code>ed with | |
| escapes incorrectly, for example in the computation of column | |
| width for <span class="samp">\tabular</span>. | |
| </p> | |
| </li> | |
| <li> <p><code>na.action()</code> did not extract the <code>na.action</code> | |
| component as documented. | |
| </p> | |
| </li> | |
| <li> <p><code>do.call()</code>ing <code>NextMethod</code> in erroneous ways no | |
| longer segfaults. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=13487">PR#13487</a>) | |
| </p> | |
| </li></ul> | |
| <h3><img class="toplogo" src="../help/figures/../../html/Rlogo.svg" alt="[R logo]" /> CHANGES IN R VERSION 2.11.0</h3> | |
| <h4>SIGNIFICANT USER-VISIBLE CHANGES</h4> | |
| <ul> | |
| <li><p> Packages must have been installed under <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> >= 2.10.0, as the | |
| current help system is the only one now supported. | |
| </p> | |
| </li> | |
| <li><p> A port to 64-bit Windows is now available as well as binary | |
| package repositories: see the ‘R Administration and | |
| Installation Manual’. | |
| </p> | |
| </li> | |
| <li><p> Argument matching for primitive functions is now done in the | |
| same way as for interpreted functions except for the deliberate | |
| exceptions | |
| </p> | |
| <pre> | |
| call switch .C .Fortran .Call .External | |
| </pre> | |
| <p>all of which use positional matching for their first argument, | |
| and also some internal-use-only primitives. | |
| </p> | |
| </li> | |
| <li><p> The default device for command-line <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> at the console on Mac OS X | |
| is now <code>quartz()</code> and not <code>X11()</code>. | |
| </p> | |
| </li></ul> | |
| <h4>NEW FEATURES</h4> | |
| <ul> | |
| <li><p> The <code>open</code> modes for connections are now interpreted | |
| more consistently. <code>open = "r"</code> is now equivalent to | |
| <code>open = "rt"</code> for all connections. The default <code>open = | |
| ""</code> now means <code>"rt"</code> for all connections except the | |
| compressed-file connections <code>gzfile()</code>, <code>bzfile()</code> and | |
| <code>xzfile()</code> for which it means <code>"rb"</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD INSTALL</code> now uses the internal <code>untar()</code> | |
| function in package <span class="pkg">utils</span>: this ensures that all platforms | |
| can install <code>bzip2</code>- and <code>xz</code>-compressed | |
| tarballs. In case this causes problems (as it has on some | |
| Windows file systems when run from Cygwin tools) it can be | |
| overridden by the environment variable <span class="env">R_INSTALL_TAR</span>: | |
| setting this to a modern external tar program will speed up | |
| unpacking of large (tens of Mb or more) tarballs. | |
| </p> | |
| </li> | |
| <li> <p><code>help(try.all.packages = TRUE)</code> is much faster | |
| (although the time taken by the OS to find all the packages the | |
| first time it is used can dominate the time). | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> has a new option <span class="option">--timings</span> | |
| to record per-example timings in file | |
| ‘<span class="file"><pkg>.Rcheck/<pkg>-Ex.timings</span>’. | |
| </p> | |
| </li> | |
| <li><p> The TRE library has been updated to version 0.8.0 (minor bugfixes). | |
| </p> | |
| </li> | |
| <li> <p><code>grep[l]</code>, <code>[g]sub</code> and <code>[g]regexpr</code> now work | |
| in bytes in an 8-bit locales if there is no marked UTF-8 input | |
| string: this will be somewhat faster, and for <code>[g]sub()</code> | |
| give the result in the native encoding rather than in UTF-8 | |
| (which returns to the behaviour prior to <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.10.0). | |
| </p> | |
| </li> | |
| <li><p> A new argument <code>skipCalls</code> has been added to | |
| <code>browser()</code> so that it can report the original context when | |
| called by other debugging functions. | |
| </p> | |
| </li> | |
| <li><p> More validity checking of UTF-8 and MBCS strings is done by | |
| <code>agrep()</code> and the regular-expression matching functions. | |
| </p> | |
| </li> | |
| <li><p> The undocumented restriction on <code>gregexpr()</code> to | |
| <code>length(text) > 0</code> has been removed. | |
| </p> | |
| </li> | |
| <li><p> Package <span class="pkg">tcltk</span> now sends strings to Tcl in UTF-8: this | |
| means that strings with a marked UTF-8 encoding are supported in | |
| non-UTF-8 locales. | |
| </p> | |
| </li> | |
| <li><p> The graphics engine now supports rendering of raster (bitmap) | |
| images, though not all graphics devices can provide (full) | |
| support. Packages providing graphics devices (e.g., <code>Cairo</code>, | |
| <code>RSvgDevice</code>, <code>cairoDevice</code>) will need to be reinstalled. | |
| </p> | |
| <p>There is also support in the graphics engine for capturing | |
| raster images from graphics devices (again not supported | |
| on all graphics devices). | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> now also checks if the package and | |
| namespace can be unloaded: this provides a check of the | |
| <code>.Last.lib()</code> and <code>.onUnload()</code> hook functions (unless | |
| <span class="option">--install=fake</span>). | |
| </p> | |
| </li> | |
| <li> <p><code>prop.table(x)</code> now accepts a one-dimensional table for | |
| <code>x</code>. | |
| </p> | |
| </li> | |
| <li><p> A new function <code>vapply()</code> has been added, based on a | |
| suggestion from Bill Dunlap. It requires that a template for the | |
| function value be specified, and uses it to determine the output | |
| type and to check for consistency in the function values. | |
| </p> | |
| </li> | |
| <li><p> The main HTML help page now links to a reformatted copy of | |
| this ‘<span class="file">NEWS</span>’ file. (Suggested by Henrik Bengtsson.) Package | |
| index files link to the package ‘<span class="file">DESCRIPTION</span>’ and | |
| ‘<span class="file">NEWS</span>’ files and a list of demos when using dynamic help. | |
| </p> | |
| </li> | |
| <li><p> The <code>[</code> method for class <code>"AsIs"</code> allows the next | |
| method to change the underlying class. (Wish of Jens | |
| Oehlschlägel.) | |
| </p> | |
| </li> | |
| <li> <p><code>write.csv[2]</code> no longer allow argument <code>append</code> | |
| to be changed: as ever, direct calls to <code>write.table()</code> give | |
| more flexibility as well as more room for error. | |
| </p> | |
| </li> | |
| <li><p> The index page for HTML help for a package now collapses | |
| multiple signatures for S4 methods into a single entry. | |
| </p> | |
| </li> | |
| <li><p> The use of <code>.required</code> by <code>require()</code> and | |
| <code>detach()</code> has been replaced by <code>.Depends</code> which is set | |
| from the <code>Depends</code> field of a package (even in packages with | |
| namespaces). By default <code>detach()</code> prevents such | |
| dependencies from being detached: this can be overridden by the | |
| argument <code>force</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>bquote()</code> has been extended to work on function | |
| definitions. (Wish of | |
| <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14031">PR#14031</a>). | |
| </p> | |
| </li> | |
| <li> <p><code>detach()</code> when applied to an object other than a | |
| package returns the environment that has been detached, to | |
| parallel <code>attach()</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>readline()</code> in non-interactive use returns <code>""</code> | |
| and does not attempt to read from the ‘terminal’. | |
| </p> | |
| </li> | |
| <li><p> New function <code>file_ext()</code> in package <span class="pkg">tools</span>. | |
| </p> | |
| </li> | |
| <li> <p><code>xtfrm()</code> is now primitive and internally generic, as | |
| this allows S4 methods to be set on it without name-space scoping | |
| issues. | |
| </p> | |
| <p>There are now <code>"AsIs"</code> and <code>"difftime"</code> methods, and | |
| the default method uses <code>unclass(x)</code> if <code>is.numeric(x)</code> | |
| is true (which will be faster but relies on <code>is.numeric()</code> | |
| having been set correctly for the class). | |
| </p> | |
| </li> | |
| <li> <p><code>is.numeric(x)</code> is now false for a <code>"difftime"</code> | |
| object (multiplication and division make no sense for such | |
| objects). | |
| </p> | |
| </li> | |
| <li><p> The default method of <code>weighted.mean(x, w)</code> coerces | |
| <code>w</code> to be numeric (aka double); previously only integer | |
| weights were coerced. Zero weights are handled specially so an | |
| infinite value with zero weight does not force an <code>NaN</code> | |
| result. | |
| </p> | |
| <p>There is now a <code>"difftime"</code> method. | |
| </p> | |
| </li> | |
| <li> <p><code>bug.report()</code> now has arguments <code>package</code> and | |
| <code>lib.loc</code> to generate bug reports about packages. When | |
| this is used, it looks for a <code>BugReports</code> field in the | |
| package ‘<span class="file">DESCRIPTION</span>’ file, which will be assumed to be a | |
| URL at which to submit the report, and otherwise generates an | |
| email to the package maintainer. (Suggested by Barry | |
| Rowlingson.) | |
| </p> | |
| </li> | |
| <li> <p><code>quantile()</code> now has a method for the date-time class | |
| <code>"POSIXt"</code>, and types 1 and 3 (which never interpolate) work | |
| for Dates and ordered factors. | |
| </p> | |
| </li> | |
| <li> <p><code>length(<POSIXlt>)</code> now returns the length of the | |
| corresponding abstract timedate-vector rather than always 9 (the | |
| length of the underlying list structure). (Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14073">PR#14073</a> | |
| and <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=10507">PR#10507</a>.) | |
| </p> | |
| </li> | |
| <li><p> The <code>readline</code> completion backend no longer sorts | |
| possible completions alphabetically (e.g., function argument | |
| names) if <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> was built with <code>readline >= 6</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>select.list()</code> gains a <code>graphics</code> argument to | |
| allow Windows/Mac users to choose the text interface. This | |
| changes the behaviour of <code>new.packages(ask=TRUE)</code> to be like | |
| <code>update.packages(ask=TRUE)</code> on those platforms in using a | |
| text menu: use ask=<code>"graphics"</code> for a graphical menu. | |
| </p> | |
| </li> | |
| <li><p> New function <code>chooseBioCmirror()</code> to set the | |
| <code>"BioC_mirror"</code> option. | |
| </p> | |
| </li> | |
| <li><p> The <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> grammar now prevents using the argument <code>name</code> | |
| in signatures of S4 methods for <code>$</code> and <code>$<-</code>, since | |
| they will always be called with a character string value for | |
| <code>name</code>. The implicit S4 generic functions have been | |
| changed to reflect this: packages which included <code>name</code> in | |
| the signature of their methods need to be updated and | |
| re-installed. | |
| </p> | |
| </li> | |
| <li><p> The handling of the <code>method</code> argument of <code>glm()</code> | |
| has been refined following suggestions by Ioannis Kosmidis and | |
| Heather Turner. | |
| </p> | |
| </li> | |
| <li> <p><code>str()</code> gains a new argument <code>list.len</code> with | |
| default 99, limiting the number of <code>list()</code> items (per | |
| level), thanks to suggestions from David Winsenius. | |
| </p> | |
| </li> | |
| <li><p> Having formal arguments of an S4 method in a different order | |
| from the generic is now an error (the warning having been | |
| ignored by some package maintainers for a long time). | |
| </p> | |
| </li> | |
| <li><p> New functions <code>enc2native()</code> and <code>enc2utf8()</code> | |
| convert character vectors with possibly marked encodings to the | |
| current locale and UTF-8 respectively. | |
| </p> | |
| </li> | |
| <li><p> Unrecognized escapes and embedded nuls in character strings are | |
| now an error, not just a warning. Thus option <code>"warnEscapes"</code> | |
| is no longer needed. <code>rawToChar()</code> now removes trailing nuls | |
| silently, but other embedded nuls become errors. | |
| </p> | |
| </li> | |
| <li><p> Informational messages about masked objects displayed when a | |
| package is attached are now more compact, using <code>strwrap()</code> | |
| instead of one object per line. | |
| </p> | |
| </li> | |
| <li> <p><code>print.rle()</code> gains argument <code>prefix</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>download.file()</code> gains a <code>"curl"</code> method, mainly | |
| for use on platforms which have <code>curl</code> but not | |
| <code>wget</code>, but also for some hard-to-access URLs. | |
| </p> | |
| </li> | |
| <li><p> In <code>Rd</code>, <span class="samp">\eqn</span> and <span class="samp">\deqn</span> will render in | |
| HTML (and convert to text) upper- and lower-case Greek letters | |
| (entered as <span class="samp">\alpha</span> ...), <span class="samp">\ldots</span>, <span class="samp">\dots</span>, | |
| <span class="samp">\ge</span> and <span class="samp">\le</span>. | |
| </p> | |
| </li> | |
| <li> <p><code>utf8ToInt()</code> and <code>intToUtf8()</code> now map <code>NA</code> inputs | |
| to <code>NA</code> outputs. | |
| </p> | |
| </li> | |
| <li> <p><code>file()</code> has a new argument <code>raw</code> which may help | |
| if it is used with something other than a regular file, e.g. a | |
| character device. | |
| </p> | |
| </li> | |
| <li><p> New function <code>strtoi()</code>, a wrapper for the C function | |
| <code>strtol</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>as.octmode()</code> and <code>as.hexmode()</code> now allow inputs | |
| of length other than one. | |
| </p> | |
| <p>The <code>format()</code> and <code>print()</code> methods for | |
| <code>"octmode"</code> now preserve names and dimensions (as those for | |
| <code>"hexmode"</code> did). | |
| </p> | |
| <p>The <code>format()</code> methods for classes <code>"octmode"</code> and | |
| <code>"hexmode"</code> gain a <code>width</code> argument. | |
| </p> | |
| </li> | |
| <li> <p><code>seq.int()</code> returns an integer result in some further cases | |
| where <code>seq()</code> does, e.g. <code>seq.int(1L, 9L, by = 2L)</code>. | |
| </p> | |
| </li> | |
| <li><p> Added <span class="samp">\subsection{}{}</span> macro to Rd syntax, for | |
| subsections within sections. | |
| </p> | |
| </li> | |
| <li><p> n-dimensional arrays with dimension names can now be indexed | |
| by an n-column character matrix. The indices are matched against | |
| the dimension names. <code>NA</code> indices are propagated to the | |
| result. Unmatched values and <code>""</code> are not allowed and | |
| result in an error. | |
| </p> | |
| </li> | |
| <li> <p><code>interaction(drop=TRUE)</code> uses less memory (related to | |
| <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14121">PR#14121</a>). | |
| </p> | |
| </li> | |
| <li> <p><code>summary()</code> methods have been added to the | |
| <code>"srcref"</code> and <code>"srcfile"</code> classes, and various | |
| encoding issues have been cleaned up. | |
| </p> | |
| </li> | |
| <li><p> If option <code>"checkPackageLicense"</code> is set to <code>TRUE</code> (not | |
| currently the default), users will be asked to agree to | |
| non-known-to-be-FOSS package licences at first use. | |
| </p> | |
| </li> | |
| <li><p> Checking <code>setAs(a, b)</code> methods only gives a message | |
| instead of a warning, when one of <code>a</code> or <code>b</code> is | |
| unknown. | |
| </p> | |
| </li> | |
| <li><p> New function <code>norm()</code> to compute a matrix norm. | |
| <code>norm()</code> and also <code>backsolve()</code> and <code>sample()</code> | |
| have implicit S4 generics. | |
| </p> | |
| </li> | |
| <li><p> Files ‘<span class="file">Renviron.site</span>’ and ‘<span class="file">Rprofile.site</span>’ can have | |
| architecture-specific versions on systems with sub-architectures. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> now (by default) also checks Rd files | |
| for auto-generated content in need of editing, and missing | |
| argument descriptions. | |
| </p> | |
| </li> | |
| <li> <p><code>aggregate()</code> gains a formula method thanks to a | |
| contribution by Arni Magnusson. The data frame method now allows | |
| summary functions to return arbitrarily many values. | |
| </p> | |
| </li> | |
| <li> <p><code>path.expand()</code> now propagates <code>NA</code> values rather | |
| than converting them to <code>"NA"</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>file.show()</code> now disallows <code>NA</code> values for file names, | |
| headers, and pager. | |
| </p> | |
| </li> | |
| <li><p> The ‘fuzz’ used by <code>seq()</code> and <code>seq.int()</code> has | |
| been reduced from <code>1e-7</code> to <code>1e-10</code>, which should be | |
| ample for the double-precision calculations used in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>. It | |
| ensures that the fuzz never comes into play with sequences of | |
| integers (wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14169">PR#14169</a>). | |
| </p> | |
| </li> | |
| <li><p> The default value of <code>RSiteSearch(restrict=)</code> has been | |
| changed to include vignettes but to exclude R-help. The R-help | |
| archives available have been split, with a new option of | |
| <code>"Rhelp10"</code> for those from 2010. | |
| </p> | |
| </li> | |
| <li><p> New function <code>rasterImage()</code> in the <code>graphics</code> | |
| package for drawing raster images. | |
| </p> | |
| </li> | |
| <li> <p><code>stats:::extractAIC.coxph()</code> now omits aliased terms | |
| when computing the degrees of freedom (suggestion of Terry | |
| Therneau). | |
| </p> | |
| </li> | |
| <li> <p><code>cor()</code> and <code>cov()</code> now test for misuse with | |
| non-numeric arguments, such as the non-bug report <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14207">PR#14207</a>. | |
| </p> | |
| </li> | |
| <li> <p><code>pchisq(ncp =, log.p = TRUE)</code> is more accurate for | |
| probabilities near one. E.g., <code>pchisq(80, 4, ncp=1, | |
| log.p=TRUE)</code>. (Maybe what was meant in <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14216">PR#14216</a>.) | |
| </p> | |
| </li> | |
| <li> <p><code>maintainer()</code> has been added, to give convenient | |
| access to the name of the maintainer of a package (contributed by | |
| David Scott). | |
| </p> | |
| </li> | |
| <li> <p><code>sample()</code> and <code>sample.int()</code> allow zero items to | |
| be sampled from a zero-length input. <code>sample.int()</code> gains a | |
| default value <code>size=n</code> to be more similar to | |
| <code>sample()</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>switch()</code> returned <code>NULL</code> on error (not | |
| previously documented on the help page): it now does so | |
| invisibly, analogously to if-without-else. | |
| </p> | |
| <p>It is now primitive: this means that argument <code>EXPR</code> is | |
| always matched to the first argument and there is no danger of | |
| partial matching to later named arguments. | |
| </p> | |
| </li> | |
| <li><p> Primitive functions <code>UseMethod()</code>, <code>attr()</code>, | |
| <code>attr<-()</code>, <code>on.exit()</code>, <code>retracemem()</code> and | |
| <code>substitute()</code> now use standard argument matching (rather | |
| than positional matching). This means that all multi-argument | |
| primitives which are not internal now use standard argument | |
| matching except where positional matching is desirable (as for | |
| <code>switch()</code>, <code>call()</code>, <code>.C()</code> ...). | |
| </p> | |
| </li> | |
| <li><p> All the one-argument primitives now check that any name | |
| supplied for their first argument is a partial match to the | |
| argument name as documented on the help page: this also | |
| applies to replacement functions of two arguments. | |
| </p> | |
| </li> | |
| <li> <p><code>base::which()</code> uses a new <code>.Internal</code> function | |
| when <code>arr.ind</code> is <code>FALSE</code> resulting in a 10x speedup. | |
| Thanks to Patrick Aboyoun for implementation suggestions. | |
| </p> | |
| </li> | |
| <li><p> Help conversion to text now uses the first part of | |
| <span class="samp">\enc{}{}</span> markup if it is representable in the current | |
| output encoding. On the other hand, conversion to LaTeX with the | |
| default <code>outputEncoding = "ASCII"</code> uses the second part. | |
| </p> | |
| </li> | |
| <li><p> A new class <code>"listOfMethods"</code> has been introduced to | |
| represent the methods in a methods table, to replace the | |
| deprecated class <code>"MethodsList"</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>any()</code> and <code>all()</code> return early if possible. | |
| This may speed up operations on long vectors. | |
| </p> | |
| </li> | |
| <li> <p><code>strptime()</code> now accepts <code>"%z"</code> (for the offset | |
| from UTC in the RFC822 format of <code>+/-hhmm</code>). | |
| </p> | |
| </li> | |
| <li><p> The PCRE library has been updated to version 8.02, a bug-fix | |
| release which also updates tables to Unicode 5.02. | |
| </p> | |
| </li> | |
| <li><p> Functions which may use a graphical <code>select.list()</code> | |
| (including <code>menu()</code> and <code>install.packages()</code>) now check | |
| on a Unix-alike that Tk can be started (and not just | |
| <code>capabilities("tcltk") && capabilities("X11")</code>). | |
| </p> | |
| </li> | |
| <li><p> The parser no longer marks strings containing octal or hex | |
| escapes as being in UTF-8 when entered in a UTF-8 locale. | |
| </p> | |
| </li> | |
| <li><p> On platforms with cairo but not Pango (notably Mac OS X) the | |
| initial default <code>X11()</code> type is set to <code>"Xlib"</code>: this avoids | |
| several problems with font selection when done by cairo rather | |
| than Pango (at least on Mac OS X). | |
| </p> | |
| </li> | |
| <li><p> New function <code>arrayInd()</code> such that <code>which(x, | |
| arr.ind = TRUE)</code> for an array 'x' is now equivalent to | |
| <code>arrayInd(which(x), dim(x), dimnames(x))</code>. | |
| </p> | |
| </li></ul> | |
| <h4>DEPRECATED & DEFUNCT</h4> | |
| <ul> | |
| <li><p> Bundles of packages are defunct. | |
| </p> | |
| </li> | |
| <li> <p><code>stats::clearNames()</code> is defunct: use <code>unname()</code>. | |
| </p> | |
| </li> | |
| <li><p> Basic regular expressions are defunct, and | |
| <code>strsplit()</code>, <code>grep()</code>, <code>grepl()</code>, <code>sub()</code>, | |
| <code>gsub()</code>, <code>regexpr()</code> and <code>gregexpr()</code> no longer | |
| have an <code>extended</code> argument. | |
| </p> | |
| </li> | |
| <li> <p><code>methods::trySilent()</code> is defunct. | |
| </p> | |
| </li> | |
| <li> <p><code>index.search()</code> (which was deprecated in 2.10.0) is no | |
| longer exported and has a different argument list. | |
| </p> | |
| </li> | |
| <li><p> Use of multiple arguments to <code>return()</code> is now defunct. | |
| </p> | |
| </li> | |
| <li><p> The use of <code>UseMethod()</code> with more than two arguments | |
| is now defunct. | |
| </p> | |
| </li> | |
| <li><p> In the <span class="pkg">methods</span> package, the <code>"MethodsList"</code> | |
| metadata objects which had been superseded by hash tables | |
| (environments) since <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.8.0 are being phased out. Objects of | |
| this class are no longer assigned or used as metadata by the | |
| package. | |
| </p> | |
| <p><code>getMethods()</code> is now deprecated, with its internal use replaced | |
| by <code>findMethods()</code> and other changes. Creating objects from the | |
| <code>"MethodsList"</code> class is also deprecated. | |
| </p> | |
| </li> | |
| <li><p> Parsing strings containing both octal/hex and Unicode escapes | |
| now gives a warning and will become an error in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.12.0. | |
| </p> | |
| </li></ul> | |
| <h4>INSTALLATION</h4> | |
| <ul> | |
| <li><p> UTF-8 is now used for the reference manual and package | |
| manuals. This requires LaTeX ‘2005/12/01’ or later. | |
| </p> | |
| </li> | |
| <li> <p><code>configure</code> looks for a POSIX compliant | |
| <code>tr</code>, Solaris's <code>/usr/ucb/tr</code> having been found | |
| to cause <code>Rdiff</code> to malfunction. | |
| </p> | |
| </li> | |
| <li> <p><code>configure</code> is now generated with <code>autoconf | |
| 2.65</code>, which works better on recent systems and on Mac OS X. | |
| </p> | |
| </li></ul> | |
| <h4>PACKAGE INSTALLATION</h4> | |
| <ul> | |
| <li><p> Characters in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> source which are not translatable to the | |
| current locale are now handled more tolerantly: these will be | |
| converted to hex codes with a warning. Such characters are | |
| only really portable if they appear in comments. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD INSTALL</code> now tests that the installed package | |
| can be loaded (and backs out the installation if it cannot): this | |
| can be suppressed by <span class="option">--no-test-load</span>. This avoids | |
| installing/updating a package that cannot be used: common causes | |
| of failures to load are missing/incompatible external software | |
| and missing/broken dependent packages. | |
| </p> | |
| </li> | |
| <li><p> Package installation on Windows for a package with a | |
| ‘<span class="file">src</span>’ directory now checks if a DLL is created unless there | |
| is a ‘<span class="file">src/Makefile.win</span>’ file: this helps catch broken | |
| installations where the toolchain has not reported problems in | |
| building the DLL. (Note: this can be any DLL, not just one named | |
| ‘<span class="file"><pkg-name>.dll</span>’.) | |
| </p> | |
| </li></ul> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li><p> Using <code>with()</code>, <code>eval()</code> etc with a list with some | |
| unnamed elements now works. | |
| (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14035">PR#14035</a>) | |
| </p> | |
| </li> | |
| <li><p> The <code>"quick"</code> dispatch of S4 methods for primitive | |
| functions was not happening, forcing a search each time. | |
| (Dispatch for closures was not affected.) A side effect is that | |
| default values for arguments in a method that do not have | |
| defaults in the generic will now be ignored. | |
| </p> | |
| </li> | |
| <li><p> Trying to dispatch S4 methods for primitives during the search | |
| for inherited methods slows that search down and potentially | |
| could cause an infinite recursion. An internal switch was | |
| added to turn off all such methods from | |
| <code>findInheritedMethods()</code>. | |
| </p> | |
| </li> | |
| <li> <p><span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> framework installation (on Mac OS X) would not work | |
| properly if a rogue <code>Resources</code> directory was present at the | |
| top level. Such a non-symlink will now be renamed to | |
| <code>Resources.old</code> (and anything previously named | |
| <code>Resources.old</code> removed) as part of the framework | |
| installation process. | |
| </p> | |
| </li> | |
| <li><p> The checks for conforming S4 method arguments could fail | |
| when the signature of the generic function omitted some of the | |
| formal arguments (in addition to <code>...</code>). Arguments omitted | |
| from the method definition but conforming (per the documentation) | |
| should now be ignored (treated as <code>"ANY"</code>) in dispatching. | |
| </p> | |
| </li> | |
| <li><p> The computations for S4 method evaluation when <code>...</code> | |
| was in the signature could fail, treating <code>...</code> as an | |
| ordinary symbol. This has been fixed, for the known cases. | |
| </p> | |
| </li> | |
| <li><p> Various <code>ar()</code> fitting methods have more protection for | |
| singular fits. | |
| </p> | |
| </li> | |
| <li> <p><code>callNextMethod</code> now works again with the <code>drop=</code> | |
| argument in <span class="samp">[</span> | |
| </p> | |
| </li> | |
| <li> <p><code>parse()</code> and <code>parse_Rd()</code> miscounted columns when | |
| multibyte UTF-8 characters were present. | |
| </p> | |
| </li> | |
| <li><p> Formatting of help pages has had minor improvements: extra | |
| blank lines have been removed from the text format, and empty | |
| package labels removed from HTML. | |
| </p> | |
| </li> | |
| <li> <p><code>cor(A, B)</code> where <code>A</code> is <i>n x 1</i> | |
| and <code>B</code> a 1-dimensional array segfaulted or gave an internal | |
| error. (The case <code>cor(B, A)</code> was | |
| <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=7116">PR#7116</a>.) | |
| </p> | |
| </li> | |
| <li> <p><code>cut.POSIXt()</code> applied to a start value after the DST | |
| transition on a DST-change day could give the wrong time for | |
| argument <code>breaks</code> in units of days or longer. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14208">PR#14208</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>do_par()</code> <code>UNPROTECT</code>ed too early (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14214">PR#14214</a>) | |
| </p> | |
| </li> | |
| <li><p> Subassignment <code>x[[....]] <- y</code> didn't check for a | |
| zero-length right hand side, and inserted a rubbish | |
| value. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14217">PR#14217</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>fisher.test()</code> no longer gives a P-value <strong>very</strong> | |
| slightly > 1, in some borderline cases. | |
| </p> | |
| </li> | |
| <li><p> Internal function <code>matchArgs()</code> no longer modifies the | |
| general purpose bits of the <code>SEXP</code>s that make up the formals | |
| list of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> functions. This fixes an invalid error message that | |
| would occur when a garbage collection triggered a second call to | |
| <code>matchArgs</code> for the same function <em>via</em> a finalizer. | |
| </p> | |
| </li> | |
| <li> <p><code>gsub()</code> in 2.10.x could fail from stack overflow for | |
| extremely long strings due to temporary data being allocated on | |
| the stack. Also, <code>gsub()</code> with <code>fixed=TRUE</code> is in some | |
| circumstances considerably faster. | |
| </p> | |
| </li> | |
| <li><p> Several primitives, including <code>attributes()</code>, | |
| <code>attr<-()</code> <code>interactive()</code>, <code>nargs()</code> and | |
| <code>proc.time()</code>, did not check that they were called with the | |
| correct number of arguments. | |
| </p> | |
| </li> | |
| <li><p> A potential race condition in <code>list.files()</code> when other | |
| processes are operating on the directory has been fixed; the code | |
| now dynamically allocates memory for file listings in a single | |
| pass instead of making an initial count pass. | |
| </p> | |
| </li> | |
| <li> <p><code>mean(x, trim=, na.rm = FALSE)</code> failed to return <code>NA</code> if | |
| <code>x</code> contained missing values. (Reported by Bill Dunlap.) | |
| </p> | |
| </li> | |
| <li><p> Extreme tail behavior of, <code>pbeta()</code> {and hence | |
| <code>pf()</code>}, e.g., <code>pbeta(x, 3, 2200, lower.tail=FALSE, | |
| log.p=TRUE)</code> now returns finite values instead of jumping to | |
| <code>-Inf</code> too early. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14230">PR#14230</a>). | |
| </p> | |
| </li> | |
| <li> <p><code>parse(text=x)</code> misbehaved for objects <code>x</code> that | |
| were not coerced internally to character, notably symbols. | |
| (Reported to R-devel by Bill Dunlap.) | |
| </p> | |
| </li> | |
| <li><p> The internal C function <code>coerceSymbol</code> now handles | |
| coercion to character, and warns if coercion fails (rather than | |
| silently returning <code>NULL</code>). This allows a name to be given | |
| where a character vector is required in functions which coerce | |
| internally. | |
| </p> | |
| </li> | |
| <li><p> The interpretation by <code>strptime()</code> of <code>"%c"</code> was | |
| non-standard (not that it is ever advisable to use locale- and | |
| system-specific input formats). | |
| </p> | |
| </li> | |
| <li><p> capabilities(<code>"X11"</code>) now works the same way on Mac OS X as on | |
| other platforms (and as documented: it was always true for R | |
| built with <span class="option">--with-aqua</span>, as the CRAN builds are). | |
| </p> | |
| </li> | |
| <li><p> The <code>X11()</code> device with cairo but not Pango (notably Mac OS X) | |
| now checks validity of text strings in UTF-8 locales (since | |
| Pango does but cairo it seems does not). | |
| </p> | |
| </li> | |
| <li> <p><code>read.fwf()</code> misread multi-line records when n was specified. | |
| (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14241">PR#14241</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>all.equal(tolerance = e)</code> passes the numeric | |
| tolerance also to the comparison of the attributes. | |
| </p> | |
| </li> | |
| <li> <p><code>pgamma(0, 0)</code>, a boundary case, now returns 0, its | |
| limit from the left, rather than the limit from the right. | |
| </p> | |
| </li> | |
| <li><p> Issuing <code>POST</code> requests to the internal web server could stall | |
| the request under certain circumstances. | |
| </p> | |
| </li> | |
| <li> <p><code>gzcon( <textConnection> )</code>, an error, no longer | |
| damages the connection (in a way to have it | |
| segfault). (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14237">PR#14237</a>) | |
| </p> | |
| </li> | |
| <li><p> All the results from <code>hist()</code> now use the nominal | |
| <code>breaks</code> not those adjusted by the numeric ‘fuzz’: | |
| in recent versions the nominal <code>breaks</code> were reported but | |
| the 'density' referred to the intervals used in the calculation | |
| – which mattered very slightly for one of the extreme bins. | |
| (Based on a report by Martin Becker.) | |
| </p> | |
| </li> | |
| <li><p> If <code>xy[z].coords</code> (used internally by many graphics | |
| functions) are given a list as <code>x</code>, they now check that | |
| the list has suitable names and give a more informative error | |
| message. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=13936">PR#13936</a>) | |
| </p> | |
| </li></ul> | |
| <h3><img class="toplogo" src="../help/figures/../../html/Rlogo.svg" alt="[R logo]" /> CHANGES IN R VERSION 2.10.1 patched</h3> | |
| <h4>NEW FEATURES</h4> | |
| <ul> | |
| <li><p> The handling of line textures in the <code>postscript()</code> and | |
| <code>pdf()</code> devices was set up for round end caps (the only type | |
| which existed at the time): it has now been adjusted for butt | |
| endcaps. | |
| </p> | |
| </li> | |
| <li> <p><code>lchoose(a, k)</code> is now defined as | |
| <code>log(abs(choose(a,k)))</code>, analogously to <code>lfactorial()</code>. | |
| </p> | |
| </li> | |
| <li><p> Although <code>\eqn{}</code> in Rd files is defined as a | |
| ‘verbatim’ macro, many packages expected <code>\dots</code> and | |
| <code>\ldots</code> to be interpreted there (as was the case in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> < | |
| 2.10.0), so this is now done (using an ellipsis in HTML | |
| rendering). | |
| </p> | |
| </li> | |
| <li><p> Escaping of braces in quoted strings in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>-code sections of | |
| Rd files is allowed again. This had been changed for the new Rd | |
| format in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.10.0 but was only documented on the developer site | |
| and was handled inconsistently by the converters: text and | |
| example conversion removed the escapes but HTML conversion did | |
| not. | |
| </p> | |
| </li> | |
| <li><p> The PCRE library has been updated to version 8.01, a bug-fix | |
| release. | |
| </p> | |
| </li> | |
| <li> <p><code>tools::readNEWS()</code> now accepts a digit as the first | |
| character of a news section. | |
| </p> | |
| </li></ul> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li><p> Using <code>read.table(header=TRUE)</code> on a header with an | |
| embedded new line would copy part of the header into the data. | |
| (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14103">PR#14103</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>qpois(p = 1, lambda = 0)</code> now gives 0 as for all other | |
| <code>p</code>. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14135">PR#14135</a>) | |
| </p> | |
| </li> | |
| <li><p> Functions related to string comparison | |
| (e.g., <code>unique()</code>, <code>match()</code>) could cause crashes when | |
| used with strings not in the native encoding, e.g., UTF-8 strings | |
| on Windows. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14114">PR#14114</a> and <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14125">PR#14125</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>x[ , drop=TRUE]</code> dropped an <code>NA</code> level even if it | |
| was in use. | |
| </p> | |
| </li> | |
| <li><p> The dynamic HTML help system reported the wrong MIME type | |
| for the style sheet. | |
| </p> | |
| </li> | |
| <li> <p><code>tools::codoc()</code> (used by <code>R CMD check</code>) was | |
| missing cases where the function had no arguments but was | |
| documented to have some. | |
| </p> | |
| </li> | |
| <li><p> Help links containing special characters (e.g., <code>"?"</code>) | |
| were not generated correctly when rendered in | |
| HTML. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14155">PR#14155</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>lchoose(a, k)</code> no longer wrongly gives <code>NaN</code> for | |
| negative <code>a</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>ks.test()</code> could give a p-value that was off by one | |
| observation due to rounding error. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14145">PR#14145</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>readBin()</code>/<code>readChar()</code> when reading millions of | |
| character strings in a single call used excessive amounts of | |
| memory (which also slowed them down). | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD SHLIB</code> could fail if used with paths that | |
| were not alphanumeric, e.g. contained <code>+</code>. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14168">PR#14168</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>sprintf()</code> was not re-entrant, which potentially | |
| caused problems if an <code>as.character()</code> method called it. | |
| </p> | |
| </li> | |
| <li><p> The <code>quartz()</code> device did not restore the clipping | |
| region when filling the background for a new page. This could be | |
| observed in multi-page bitmap output as stale outer regions of | |
| the plot. | |
| </p> | |
| </li> | |
| <li> <p><code>p.adjust(method, n)</code> now works correctly for the | |
| rare case <code>n > length(p)</code>, also when method differs from | |
| <code>"bonferroni"</code> or <code>"none"</code>, thanks to a patch from | |
| Gordon Smyth. | |
| </p> | |
| </li> | |
| <li> <p><code>tools::showNonASCII()</code> failed to detect non-ASCII characters | |
| if <code>iconv()</code> (incorrectly) converted them to different ASCII | |
| characters. (Seen on Windows only.) | |
| </p> | |
| </li> | |
| <li> <p><code>tcrossprod()</code> wrongly failed in some cases when one of the | |
| arguments was a vector and the other a matrix. | |
| </p> | |
| </li> | |
| <li> <p><code>[cr]bind(..., deparse.level=2)</code> was not always giving | |
| names when documented to do so. (Discovered whilst investigating | |
| <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14189">PR#14189</a>.) | |
| </p> | |
| </li> | |
| <li> <p><code>match(incomparables=<non-NULL>)</code> could in rare cases | |
| infinite-loop. | |
| </p> | |
| </li> | |
| <li> <p><code>poisson.test()</code> needed to pass argument | |
| <code>conf.level</code> to <code>binom.test()</code>. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14195">PR#14195</a>) | |
| </p> | |
| </li> | |
| <li><p> The <code>"nls"</code> method for <code>df.residual()</code> gave | |
| incorrect results for models fitted with <code>na.action = | |
| na.exclude</code>. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14194">PR#14194</a>) | |
| </p> | |
| </li> | |
| <li><p> A change to <code>options(scipen=)</code> was only implemented | |
| when printing next occurred, even though it should have affected | |
| intervening calls to <code>axis()</code>, <code>contour()</code> and | |
| <code>filledcontour()</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>prettyNum(drop0trailing=TRUE)</code> did not handle signs of | |
| imaginary parts of complex numbers correctly (and this was used | |
| by <code>str()</code>: <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14201">PR#14201</a>). | |
| </p> | |
| </li> | |
| <li> <p><code>system.time()</code> had the <code>sys.child</code> component | |
| wrong (copied <code>user.child</code> instead) on systems with | |
| <code>HAVE_GETRUSAGE</code>. | |
| (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14210">PR#14210</a>) | |
| </p> | |
| </li> | |
| <li><p> Changing both line texture and line cap (end) resulted in the | |
| latter to be omitted form the PDF code. In addition, line cap | |
| (end) and join are now set explicitly in PDF output to ensure | |
| correct defaults. | |
| </p> | |
| </li> | |
| <li><p> The suppression of auto-rotation in <code>bitmap()</code> and | |
| <code>dev2bitmap()</code> with the <code>"pdfwrite"</code> device was not | |
| working correctly. | |
| </p> | |
| </li> | |
| <li> <p><code>plot(ecdf(), log="x")</code> no longer gives an incorrect | |
| warning. | |
| </p> | |
| </li> | |
| <li> <p><code>read.fwf()</code> works again when argument <code>file</code> is | |
| a connection. | |
| </p> | |
| </li> | |
| <li><p> Startup files will now be found if their paths exceed 255 | |
| bytes. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14228">PR#14228</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>contrasts<-</code> (in the <span class="pkg">stats</span> package) no longer has an | |
| undeclared dependence on <span class="pkg">methods</span> (introduced in 2.10.0). | |
| </p> | |
| </li></ul> | |
| <h3><img class="toplogo" src="../help/figures/../../html/Rlogo.svg" alt="[R logo]" /> CHANGES IN R VERSION 2.10.1</h3> | |
| <h4>NEW FEATURES</h4> | |
| <ul> | |
| <li><p> The PCRE library has been updated to version 8.00. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD INSTALL</code> has new options <span class="option">--no-R</span>, | |
| <span class="option">--no-libs</span>, <span class="option">--no-data</span>, <span class="option">--no-help</span>, | |
| <span class="option">--no-demo</span>, <span class="option">--no-exec</span>, and <span class="option">--no-inst</span> to | |
| suppress installation of the specified part of the package. | |
| These are intended for special purposes (e.g., building a database | |
| of help pages without fully installing all packages). | |
| </p> | |
| </li> | |
| <li><p> The documented line-length limit of 4095 bytes when reading | |
| from the console now also applies also to <code>parse(file="")</code> | |
| (which previously had a limit of around 1024 bytes). | |
| </p> | |
| </li> | |
| <li><p> A Bioconductor mirror can be set for use by | |
| <code>setRepositories()</code> <em>via</em> the option <code>"BioC_mirror"</code>, | |
| e.g. the European mirror can be selected by | |
| <code>options(BioC_mirror="http://bioconductor.statistik.tu-dortmund.de")</code>. | |
| </p> | |
| </li> | |
| <li><p> Double-clicking in a <code>tk_select.list()</code> list box now | |
| selects the item and closes the list box (as happens on the | |
| Windows <code>select.list()</code> widget). | |
| </p> | |
| </li></ul> | |
| <h4>INSTALLATION</h4> | |
| <ul> | |
| <li> <p><code>configure</code> will be able to find a usable | |
| <code>libtiff</code> in some rare circumstances where it did not | |
| previously (where <code>libtiff</code> needed to be linked explicitly against | |
| <code>-ljpeg</code>). | |
| </p> | |
| </li> | |
| <li><p> Making <code>refman.pdf</code> works around a problem with the indexing | |
| with <code>hyperref 6.79d</code> and later. | |
| </p> | |
| </li></ul> | |
| <h4>DEPRECATED & DEFUNCT</h4> | |
| <ul> | |
| <li><p> The <code>extended</code> argument is deprecated in | |
| <code>strsplit()</code>, <code>grep()</code>, <code>grepl()</code>, <code>sub()</code>, | |
| <code>gsub()</code>, <code>regexpr()</code> and <code>gregexpr()</code> (not just | |
| the value <code>extended = FALSE</code>) and will be removed in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> | |
| 2.11.0. | |
| </p> | |
| </li></ul> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li> <p><code>trigamma(x)</code> and other <code>psigamma(x, n)</code> calls | |
| are now accurate for very large <code>abs(x)</code>. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14020">PR#14020</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>[g]sub(perl=FALSE, fixed=FALSE)</code> could use excessive | |
| stack space when used with a very long vector containing some | |
| non-ASCII strings. | |
| </p> | |
| </li> | |
| <li><p> The default method of <code>weighted.mean(na.rm = TRUE)</code> | |
| did not omit weights for <code>NA</code> observations in 2.10.0. | |
| (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14032">PR#14032</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>[g]regexpr(pattern, fixed = TRUE)</code> returned match | |
| positions in bytes (not characters) in an MBCS locale if | |
| <code>pattern</code> was a single byte. | |
| </p> | |
| <p><code>[g]sub(fixed = TRUE)</code> with a single-byte pattern could | |
| conceivably have matched part of a multibyte character in a | |
| non-UTF-8 MBCS. | |
| </p> | |
| </li> | |
| <li> <p><code>findLineNum()</code> and <code>setBreakpoint()</code> would | |
| sometimes fail if the specified file was not in the current | |
| directory. | |
| </p> | |
| </li> | |
| <li><p> Package <span class="pkg">tcltk</span>'s <code>demo(tkdensity)</code> was broken in | |
| 2.9.0 when <code>demo()</code> was changed to set <code>par(ask = TRUE)</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>gsub()</code> with backrefs could fail on extremely long strings | |
| (hundreds of thousands of characters) due to integer overflow | |
| in a length calculation. | |
| </p> | |
| </li> | |
| <li> <p><code>abline(untf=TRUE)</code> now uses a better x-grid in | |
| log-scale, e.g., for <code>plot(c(1,300), c(1,300), log="xy"); | |
| abline(4,1, untf=TRUE)</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>detach()</code>/<code>unloadNamespace()</code> arrange to flush | |
| the package's lazyload cache of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> objects once the | |
| package/namespace is no longer needed. | |
| </p> | |
| </li> | |
| <li><p> There have been small fixes to the rendering of help, | |
| e.g. <code>\command</code> is now rendered verbatim | |
| (so e.g. <code>--</code> is not interpreted, <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14045">PR#14045</a>). | |
| </p> | |
| <p>Also, there are many small changes to help files where the new | |
| converters were not rendering them in the same way as before. | |
| </p> | |
| </li> | |
| <li> <p><code>available.packages()</code> would fail when run on a | |
| repository with no packages meeting the filtering conditions. | |
| (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14042">PR#14042</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>rep(x, times, each = 2)</code> gave invalid results when the | |
| <code>times</code> argument was a vector longer than <code>x</code>. | |
| Reported by Bill Dunlap. | |
| </p> | |
| </li> | |
| <li><p> An error when <code>unloadNamespace()</code> attempted to run the | |
| <code>.onUnload()</code> function gave an error in the reporting | |
| function and so was not reported properly. | |
| </p> | |
| </li> | |
| <li><p> Text help rendering did not handle very long input lines | |
| properly. | |
| </p> | |
| </li> | |
| <li> <p><code>promptMethods()</code> generated signature documentation | |
| improperly. | |
| </p> | |
| </li> | |
| <li> <p><code>pgamma(x, a, lower.tail=FALSE)</code> and | |
| <code>qgamma(...)</code> are now considerably more accurate in some | |
| regions for very small <code>a</code>. <code>qgamma()</code> now correctly | |
| returns <code>0</code> instead of <code>NaN</code> in similar extreme cases, | |
| and <code>qgamma()</code> no longer warns in the case of small | |
| <code>a</code>, see (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=12324">PR#12324</a>). | |
| </p> | |
| </li> | |
| <li> <p><code>unname()</code> now also removes names from a zero length vector. | |
| </p> | |
| </li> | |
| <li><p> Printing results from <code>ls.str()</code> no longer evaluates | |
| unevaluated calls. | |
| </p> | |
| </li> | |
| <li> <p><code>complete.cases()</code> failed on a 0-column data frame | |
| argument. (Underlies <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14066">PR#14066</a>.) | |
| </p> | |
| <p>It could return nonsensical results if no input determined the | |
| number of cases (seen in the no-segfault tests). | |
| </p> | |
| </li> | |
| <li><p> An error in <code>nls()</code> with a long formula could cause a | |
| segfault. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14059">PR#14059</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>qchisq(p, df, ncp, lower.tail = FALSE)</code> with | |
| <code>ncp >= 80</code> was inaccurate for small <code>p</code> (as the help page | |
| said): it is now less inaccurate. (In part, | |
| <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=13999">PR#13999</a>.) | |
| </p> | |
| <p>For <code>ncp</code> less than but close to 80, <code>pchisq()</code> and | |
| <code>qchisq()</code> are more accurate for probabilities very close | |
| to 1 (a series expansion was truncated slightly too early). | |
| </p> | |
| <p><code>pchisq(x, df, ncp)</code> can no longer return values just larger | |
| than one for large values of <code>ncp</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>intToUtf8()</code> could fail when asked to produce 10Mb or more | |
| strings, something it was never intended to do: unfortunately | |
| Windows crashed <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> (other OSes reported a lack of resources). | |
| (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14068">PR#14068</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>chisq.test()</code> could fail when given argument | |
| <code>x</code> or <code>y</code> which deparsed to more than one line. | |
| (Reported by Laurent Gauthier.) | |
| </p> | |
| </li> | |
| <li><p> S4 methods are uncached whenever the namespace containing | |
| them is unloaded (by <code>unloadNamespace()</code> as well as by | |
| <code>detach(unload = TRUE))</code>. | |
| </p> | |
| </li> | |
| <li><p> The internal record-keeping by | |
| <code>dyn.load</code>/<code>dyn.unload</code> was incomplete, which could | |
| crash <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> if a DLL that registered <code>.External</code> routines had | |
| earlier been unloaded. | |
| </p> | |
| </li> | |
| <li> <p><code>bessel[JY](x, nu)</code> with <code>nu</code> a negative integer (a | |
| singular case) is now correct, analogously to <code>besselI()</code>, | |
| see <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=13556">PR#13556</a>. | |
| </p> | |
| </li> | |
| <li> <p><code>tools::file_path_as_absolute()</code> doubled the file | |
| separator when applied to a file such as ‘<span class="file">"/vmunix"</span>’ or (on | |
| Windows) ‘<span class="file">"d:/afile"</span>’ in a directory for which | |
| <code>getwd()</code> would return a path with a trailing separator | |
| (largely cosmetic, as reasonable file systems handle such a path | |
| correctly). (Perhaps what was meant by <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14078">PR#14078</a>.) | |
| </p> | |
| </li> | |
| <li> <p><code>unsplit(drop = TRUE)</code> applied to a data frame failed | |
| to pass <code>drop</code> to the computation of row names. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14084">PR#14084</a>) | |
| </p> | |
| </li> | |
| <li><p> The <code>"difftime"</code> method of <code>mean()</code> ignored its | |
| <code>na.rm</code> argument. | |
| </p> | |
| </li> | |
| <li> <p><code>tcltk::tk_select.list()</code> is now more likely to remove the | |
| widget immediately after selection is complete. | |
| </p> | |
| </li> | |
| <li><p> Adding/subtracting a <code>"difftime"</code> object to/from a | |
| <code>"POSIXt"</code> or <code>"Date"</code> object works again (it was | |
| broken by the addition of <code>Ops.difftime</code>). | |
| </p> | |
| </li> | |
| <li><p> Conversion to latex of an Rd file with no aliases failed. | |
| </p> | |
| </li> | |
| <li> <p><code>wilcox.test(conf.int=TRUE)</code> has achieved.level | |
| corrected and, for <code>exact=FALSE</code>, now returns a | |
| <code>estimate</code> component which does not depend on the | |
| alternative used. | |
| </p> | |
| </li> | |
| <li> <p><code>help.search()</code> failed when the package argument was | |
| specified. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14113">PR#14113</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>switch(EXPR = "A")</code> now returns <code>NULL</code>, as does | |
| <code>switch(1)</code> (which used to signal an error). | |
| </p> | |
| </li></ul> | |
| <h3><img class="toplogo" src="../help/figures/../../html/Rlogo.svg" alt="[R logo]" /> CHANGES IN R VERSION 2.10.0</h3> | |
| <h4>SIGNIFICANT USER-VISIBLE CHANGES</h4> | |
| <ul> | |
| <li><p> Package help is now converted from <code>Rd</code> by the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>-based | |
| converters that were first introduced in 2.9.0. This means | |
| </p> | |
| <ul> | |
| <li><p> Packages that were installed by R-devel after 2009-08-09 | |
| should not be used with earlier versions of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>, and most | |
| aspects of package help (including the runnable examples) | |
| will be missing if they are so used. | |
| </p> | |
| </li> | |
| <li><p> Text, HTML and latex help and examples for packages | |
| installed under the new system are converted on-demand from | |
| stored parsed Rd files. (Conversions stored in packages | |
| installed under <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> < 2.10.0 are used if no parsed Rd files | |
| are found. It is recommended that such packages be | |
| re-installed.) | |
| </p> | |
| </li></ul> | |
| </li> | |
| <li><p> HTML help is now generated dynamically using an HTTP server | |
| running in the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> process and listening on the loopback | |
| interface. | |
| </p> | |
| <ul> | |
| <li><p> Those worried about security implications of such | |
| a server can disable it by setting the environment variable | |
| <span class="env">R_DISABLE_HTTPD</span> to a non-empty value. This disables | |
| <code>help.start()</code> and HTML help (so text help is shown | |
| instead). | |
| </p> | |
| </li> | |
| <li><p> The Java/Javascript search engine has been replaced by an | |
| HTML interface to <code>help.search()</code>. <code>help.start()</code> no | |
| longer has an argument <code>searchEngine</code> as it is no longer | |
| needed. | |
| </p> | |
| </li> | |
| <li><p> The HTML help can now locate cross-references of the form | |
| <code>\link[pkg]{foo}</code> and <code>\link[pkg:foo]{bar}</code> | |
| where <code>foo</code> is an alias in the package, rather than the | |
| documented (basename of a) filename (since the documentation | |
| has been much ignored). | |
| </p> | |
| </li></ul> | |
| </li></ul> | |
| <h4>NEW FEATURES</h4> | |
| <ul> | |
| <li> <p><code>polygon()</code>, <code>pdf()</code> and <code>postscript()</code> now | |
| have an argument <code>fillOddEven</code> (default <code>FALSE</code>), | |
| which controls the mode used for polygon fills of | |
| self-intersecting shapes. | |
| </p> | |
| </li> | |
| <li><p> New <code>debugonce()</code> function; further, | |
| <code>getOption("deparse.max.lines")</code> is now observed when | |
| debugging, from a code suggestion by John Brzustowski. | |
| (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=13647">PR#13647</a>/8) | |
| </p> | |
| </li> | |
| <li> <p><code>plot()</code> methods for <code>"stepfun"</code> and hence | |
| <code>"ecdf"</code> no longer plot points by default for <code>n >= 1000</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>[g]sub(perl=TRUE)</code> now also supports <code>"\E"</code> | |
| in order to <strong>end</strong> <code>"\U"</code> and <code>"\L"</code> case changes, | |
| thanks to a patch from Bill Dunlap. | |
| </p> | |
| </li> | |
| <li> <p><code>factor()</code>, <code>levels()<-</code>, etc, now ensure that | |
| the resulting factor levels are unique (as was always the implied | |
| intention). Factors with duplicated levels are still | |
| constructible by low-level means, but are now declared illegal. | |
| </p> | |
| </li> | |
| <li><p> New <code>print()</code> (S3) method for class <code>"function"</code>, | |
| also used for auto-printing. Further, <code>.Primitive</code> | |
| functions now print and auto-print identically. The new method | |
| is based on code suggestions by Romain François. | |
| </p> | |
| </li> | |
| <li><p> The <code>print()</code> and <code>toLatex()</code> methods for class | |
| <code>"sessionInfo"</code> now show the locale in a nicer format and | |
| have arguments to suppress locale information. | |
| </p> | |
| </li> | |
| <li><p> In addition to previously only <code>round()</code>, there are | |
| other <code>Math</code> group (S3) methods for <code>"difftime"</code>, | |
| such as <code>floor()</code>, <code>signif()</code>, <code>abs()</code>, etc. | |
| </p> | |
| </li> | |
| <li><p> For completeness, <code>old.packages()</code> and | |
| <code>available.packages()</code> allow arguments <code>type</code> to be | |
| specified (you could always specify arguments <code>available</code> | |
| or <code>contriburl</code>). | |
| </p> | |
| </li> | |
| <li> <p><code>available.packages()</code> by default only returns | |
| information on the latest versions of packages whose version | |
| requirements are satisfied by the currently running <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>. | |
| </p> | |
| </li> | |
| <li> <p><code>tools::write_PACKAGES()</code> has a new argument | |
| <code>latestOnly</code>, which defaults to <code>TRUE</code> when only the | |
| latest versions in the repository will be listed in the index. | |
| </p> | |
| </li> | |
| <li> <p><code>getOption()</code> has a new argument <code>default</code> that | |
| is returned if the specified option is not set. This simplifies | |
| querying a value and checking whether it is <code>NULL</code> or not. | |
| </p> | |
| </li> | |
| <li> <p><code>parse()</code> now warns if the requested encoding is not supported. | |
| </p> | |
| </li> | |
| <li><p> The <code>"table"</code> method of <code>as.data.frame()</code> gains a | |
| <code>stringsAsFactors</code> argument to allow the classifying | |
| factors to be returned as character vectors rather than the | |
| default factor type. | |
| </p> | |
| </li> | |
| <li><p> If <code>model.frame.default()</code> encounters a character | |
| variable where <code>xlev</code> indicates a factor, it now converts | |
| the variable to a factor (with a warning). | |
| </p> | |
| </li> | |
| <li> <p><code>curve()</code> now returns a list containing the points that | |
| w§ere drawn. | |
| </p> | |
| </li> | |
| <li> <p><code>spineplot()</code> now accepts <code>axes = FALSE</code>, for | |
| consistency with other functions called by <code>plot.factor()</code>. | |
| </p> | |
| </li> | |
| <li><p> The Kendall and Spearman methods of <code>cor.test()</code> can | |
| optionally use continuity correction when not computing exact | |
| p-values. (The Kendall case is the wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=13691">PR#13691</a>.) | |
| </p> | |
| </li> | |
| <li> <p><span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> now keeps track of line numbers during execution for code | |
| sourced with <code>options(keep.source = TRUE)</code>. The source | |
| reference is displayed by debugging functions such as | |
| <code>traceback()</code>, <code>browser()</code>, <code>recover()</code>, and | |
| <code>dump.frames()</code>, and is stored as an attribute on each | |
| element returned by <code>sys.calls()</code>. | |
| </p> | |
| </li> | |
| <li><p> More functions now have an implicit (S4) generic definition. | |
| </p> | |
| </li> | |
| <li> <p><code>quantile.default()</code> now disallows factors (wish of | |
| <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=13631">PR#13631</a>) and its help | |
| documents what numeric-like properties its input need to have to | |
| work correctly. | |
| </p> | |
| </li> | |
| <li> <p><code>weighted.mean()</code> is now generic and has <code>"Date"</code>, | |
| <code>"POSIXct"</code> and <code>"POSIXlt"</code> methods. | |
| </p> | |
| </li> | |
| <li><p> Naming subscripts (e.g., <code>x[i=1, j=2]</code>) in | |
| <code>data.frame</code> methods for <code>[</code> and <code>[[</code> now gives a | |
| warning. (Names are ignored in the default method, but could | |
| have odd semantics for other methods, and do for the data.frame | |
| ones.) | |
| </p> | |
| </li> | |
| <li> <p><code>as.data.frame()</code> has an <code>"aovproj"</code> method. | |
| (Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=13505">PR#13505</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>as.character(x)</code> for numeric <code>x</code> no longer | |
| produces strings such as <code>"0.30"</code>, i.e., with trailing | |
| zeros. This change also renders levels construction in | |
| <code>factor()</code> more consistent. | |
| </p> | |
| </li> | |
| <li> <p><code>codocClasses()</code>, which checks consistency of the | |
| documentation of S4 class slots, now does so in considerably more | |
| cases. The documentation of inherited slots (from superclasses) | |
| is now optional. This affects <code>R CMD check <pkg></code> when | |
| the package defines S4 classes. | |
| </p> | |
| </li> | |
| <li> <p><code>codoc()</code> now also checks S4 methods for code/documentation | |
| mismatches. | |
| </p> | |
| </li> | |
| <li> <p><code>for()</code>, <code>while()</code>, and <code>repeat()</code> loops now | |
| always return NULL as their (invisible) value. This change was | |
| needed to address a reference counting bug without creating | |
| performance penalties for some common use cases. | |
| </p> | |
| </li> | |
| <li><p> The <code>print()</code> method for <code>ls.str()</code> results now | |
| obeys an optional <code>digits</code> argument. | |
| </p> | |
| </li> | |
| <li><p> The <code>method</code> argument of <code>glm()</code> now allows | |
| user-contributed methods. | |
| </p> | |
| </li> | |
| <li><p> More general <code>reorder.default()</code> replaces functionality of | |
| <code>reorder.factor()</code> and <code>reorder.character()</code>. | |
| </p> | |
| </li> | |
| <li><p> The function <code>aspell()</code> has been added to provide an | |
| interface to the <code>Aspell</code> spell-checker. | |
| </p> | |
| </li> | |
| <li><p> Filters <code>RdTextFilter()</code> and <code>SweaveTeXFilter()</code> | |
| have been added to the tools package to provide support for | |
| <code>aspell()</code> or other spell checkers. | |
| </p> | |
| </li> | |
| <li> <p><code>xtabs()</code> with the new argument <code>sparse = TRUE</code> | |
| now returns a sparse Matrix, using package <a href="https://CRAN.R-project.org/package=Matrix"><span class="pkg">Matrix</span></a>. | |
| </p> | |
| </li> | |
| <li> <p><code>contr.sum()</code> etc gain an argument <code>sparse</code> | |
| which allows sparse matrices to be returned. | |
| </p> | |
| <p><code>contrasts()</code> also gains a <code>sparse</code> argument which it | |
| passes to the actual contrast function if that has a formal | |
| argument <code>sparse</code>. | |
| </p> | |
| <p><code>contrasts(f, .) <- val</code> now also works when <code>val</code> | |
| is a sparse Matrix. It is planned that <code>model.matrix()</code> | |
| will work with such factors <code>f</code> in the future. | |
| </p> | |
| </li> | |
| <li> <p><code>readNEWS()</code> will recognize a UTF-8 byte-order mark | |
| (BOM) in the ‘<span class="file">NEWS</span>’ file. However, it is safer to use only | |
| ASCII code there because not all editors recognize BOMs. | |
| </p> | |
| </li> | |
| <li><p> New utility function <code>inheritedSlotNames()</code> for S4 | |
| class programming. | |
| </p> | |
| </li> | |
| <li> <p><code>tabulate()</code> now allows NAs to pass through (and be ignored). | |
| </p> | |
| </li> | |
| <li><p> If <code>debug()</code> is called on an S3 generic function then | |
| all methods are debugged as well. | |
| </p> | |
| </li> | |
| <li><p> Outlier symbols drawn by <code>boxplot()</code> now obey the | |
| <code>outlwd</code> argument. Reported by Jurgen Kluge. | |
| </p> | |
| </li> | |
| <li> <p><code>svd(x)</code> and <code>eigen(x)</code> now behave analogously to | |
| <code>qr(x)</code> in accepting logical matrices <code>x</code>. | |
| </p> | |
| </li> | |
| <li><p> File ‘<span class="file">NEWS</span>’ is now in UTF-8, and has a BOM (often | |
| invisible) on the first line, and <code>Emacs</code> local variables | |
| set for UTF-8 at the end. <code>RShowDoc("NEWS")</code> should display | |
| this correctly, given suitable fonts. | |
| </p> | |
| </li> | |
| <li> <p><code>terms.formula(simplify = TRUE)</code> now does not deparse | |
| the LHS and so preserves non-standard responses such as <code>`a: | |
| b`</code> (requested by Sundar Dorai-Raj). | |
| </p> | |
| </li> | |
| <li><p> New function <code>news()</code> for building and querying <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> or | |
| package news information. | |
| </p> | |
| </li> | |
| <li> <p><code>z^n</code> for integer <code>n</code> and complex <code>z</code> is more | |
| accurate now if <code>|n| <= 65536</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>factor(NULL)</code> now returns the same as | |
| <code>factor(character(0))</code> instead of an error, and | |
| <code>table(NULL)</code> consequently does analogously. | |
| </p> | |
| </li> | |
| <li> <p><code>as.data.frame.vector()</code> (and its copies) is slightly faster | |
| by avoiding a copy if there are no names (following a | |
| suggestion of Tim Hesterberg). | |
| </p> | |
| </li> | |
| <li> <p><code>writeLines()</code>, <code>writeBin()</code> and | |
| <code>writeChar()</code> have a new argument <code>useBytes</code>. If | |
| false, character strings with marked encodings are translated to | |
| the current locale (as before) but if true they are written | |
| byte-by-byte. | |
| </p> | |
| </li> | |
| <li> <p><code>iconv()</code> has a new argument <code>mark</code> which can be | |
| used (by experts) to suppress the declaration of encodings. | |
| </p> | |
| </li> | |
| <li> <p>‘<span class="file">DESCRIPTION</span>’ file's <code>LinkingTo</code> specs are now | |
| recognized as installation dependencies, and included in package | |
| management computations. | |
| </p> | |
| </li> | |
| <li><p> Standardized ‘<span class="file">DESCRIPTION</span>’ file <code>License</code> specs | |
| are now available for package management computations. | |
| </p> | |
| </li> | |
| <li> <p><code>"\uxxxx"</code> and <code>"\Uxxxxxxxx"</code> escapes can now be | |
| parsed to a UTF-8 encoded string even in non-UTF-8 locales (this | |
| has been implemented on Windows since <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.7.0). The semantics | |
| have been changed slightly: a string containing such escapes is | |
| always stored in UTF-8 (and hence is suitable for portably | |
| including Unicode text in packages). | |
| </p> | |
| </li> | |
| <li><p> New <code>as.raw()</code> method for <code>"tclObj"</code> objects (wish | |
| of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=13758">PR#13758</a>). | |
| </p> | |
| </li> | |
| <li> <p><code>Rd.sty</code> now makes a better job of setting email addresses, | |
| including using a monospaced font. | |
| </p> | |
| </li> | |
| <li> <p><code>textConnection()</code> gains an <code>encoding</code> argument | |
| to determine how input strings with marked encodings will be | |
| handled. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD Rd2pdf</code> is available as a shortcut for | |
| <code>R CMD Rd2dvi --pdf</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> now checks links where a package is | |
| specified (<code>\link[pkg]{file}</code> or | |
| <code>\link[pkg:file]{topic}</code>), if the package is available. | |
| It notes if the package is not available, as in many cases this | |
| is an error in the link. | |
| </p> | |
| </li> | |
| <li> <p><code>identical()</code> gains three logical arguments, which | |
| allow for even more differentiation, notably <code>-0</code> and | |
| <code>0</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>legend()</code> now can specify the <code>border</code> color of | |
| filled boxes, thanks to a patch from Frederic Schutz. | |
| </p> | |
| </li> | |
| <li><p> Indexing with a vector index to <code>[[ ]]</code> has now been | |
| extended to all recursive types. | |
| </p> | |
| </li> | |
| <li><p> Pairlists may now be assigned as elements of lists. (Lists | |
| could always be created with pairlist elements, but <code>[[<-</code> | |
| didn't support assigning them.) | |
| </p> | |
| </li> | |
| <li><p> The parser now supports C-preprocessor-like <code>#line</code> | |
| directives, so error messages and source references may refer to | |
| the original file rather than an intermediate one. | |
| </p> | |
| </li> | |
| <li><p> New functions <code>findLineNum()</code> and | |
| <code>setBreakpoint()</code> work with the source references to find | |
| the location of source lines and set breakpoints (using | |
| <code>trace()</code>) at those lines. | |
| </p> | |
| </li> | |
| <li><p> Namespace importing is more careful about warning on masked | |
| generics, thanks to a patch by Yohan Chalabi. | |
| </p> | |
| </li> | |
| <li> <p><code>detach()</code> now has an argument <code>character.only</code> | |
| with the same meaning as for <code>library()</code> or | |
| <code>require()</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>available.packages()</code> gains a <code>filters</code> | |
| argument for specifying the filtering operations performed on the | |
| packages found in the repositories. A new built-in | |
| <code>"license/FOSS"</code> filter only retains packages for which | |
| installation can proceed solely based on packages which can be | |
| verified as Free or Open Source Software (FOSS) employing the | |
| available license specifications. | |
| </p> | |
| </li> | |
| <li><p> In registering an S3 class by a call to | |
| <code>setOldClass()</code>, the data part (e.g., the object type) | |
| required for the class can be included as one of the superclasses | |
| in the Classes argument. | |
| </p> | |
| </li> | |
| <li><p> The argument <code>f</code> to <code>showMethods()</code> can be an | |
| expression evaluating to a generic function, allowing methods to | |
| be shown for non-exported generics and other nonstandard cases. | |
| </p> | |
| </li> | |
| <li> <p><code>sprintf()</code> now supports <code>%o</code> for octal | |
| conversions. | |
| </p> | |
| </li> | |
| <li><p> New function <code>Sys.readlink()</code> for information about symbolic | |
| links, including if a file is a symbolic link. | |
| </p> | |
| </li> | |
| <li><p> Package <span class="pkg">tools</span> has new functions | |
| <code>checkRdaFiles()</code> and <code>resaveRdaFiles()</code> to report on | |
| the format of ‘<span class="file">.rda</span>’/‘<span class="file">.RData</span>’ data files, and to | |
| re-save them in a different compressed format, including choosing | |
| the most compact format available. | |
| </p> | |
| <p>A new <code>INSTALL</code> option, <span class="option">--resave-data</span>, makes use | |
| of this. | |
| </p> | |
| </li> | |
| <li><p> File ‘<span class="file">~/.R/config</span>’ is used in preference to | |
| ‘<span class="file">~/.Rconfig</span>’, and these are now documented in ‘R | |
| Installation and Administration’. | |
| </p> | |
| </li> | |
| <li><p> Logic operations with complex numbers now work, as they were always | |
| documented to, and as in S. | |
| </p> | |
| </li> | |
| <li> <p><code>arrows()</code> and <code>segments()</code> allow one of <code>x1</code> | |
| or <code>y1</code> to be omitted to simplify the specification of | |
| vertical or horizontal lines (suggestion of Tim Hesterberg). | |
| </p> | |
| </li> | |
| <li> <p><code>approxfun()</code> is faster by avoiding repeated <code>NA</code> | |
| checks (diagnosis and patch by Karline Soetaert & Thomas | |
| Petzoldt). | |
| </p> | |
| </li> | |
| <li><p> There are the beginnings of a Nynorsk translation by Karl Ove | |
| Hufthammer. | |
| </p> | |
| </li> | |
| <li> <p><code>stripchart()</code> allows <code>par</code> <code>bg</code> to be | |
| passed in for the background colour for <code>pch = 21</code> (wish of | |
| <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=13984">PR#13984</a>). | |
| </p> | |
| </li> | |
| <li><p> New generic function <code>.DollarNames()</code> to enable class authors | |
| to customize completion after the <code>$</code> extractor. | |
| </p> | |
| </li> | |
| <li> <p><code>load()</code>, <code>save()</code>, <code>dput()</code> and | |
| <code>dump()</code> now open a not-yet-open connection in the | |
| appropriate mode (as other functions using connections directly | |
| already did). | |
| </p> | |
| </li></ul> | |
| <h4>REGULAR EXPRESSIONS</h4> | |
| <ul> | |
| <li><p> A different regular expression engine is used for basic and | |
| extended regexps and is also for approximate matching. This is | |
| based on the TRE library of Ville Laurikari, a modified copy of | |
| which is included in the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> sources. | |
| </p> | |
| <p>This is often faster, especially in a MBCS locale. | |
| </p> | |
| <p>Some known differences are that it is less tolerant of invalid | |
| inputs in MBCS locales, and in its interpretation of undefined | |
| (extended) regexps such as <code>"^*"</code>. Also, the interpretation of | |
| ranges such as <code>[W-z]</code> in caseless matching is no longer to map | |
| the range to lower case. | |
| </p> | |
| <p>This engine may in future be used in ‘literal’ mode for | |
| <code>fixed = TRUE</code>, and there is a compile-time option in | |
| <code>src/main/grep.c</code> to do so. | |
| </p> | |
| </li> | |
| <li><p> The use of repeated boundary regexps in <code>gsub()</code> and | |
| <code>gregexpr()</code> as warned about in the help page does not work | |
| in this engine (it did in the previous one since 2005). | |
| </p> | |
| </li> | |
| <li><p> Extended (and basic) regexps now support same set of options | |
| as for <code>fixed = TRUE</code> and <code>perl = TRUE</code>, including | |
| <code>useBytes</code> and support for UTF-8-encoded strings in | |
| non-UTF-8 locales. | |
| </p> | |
| </li> | |
| <li> <p><code>agrep()</code> now has full support for MBCS locales with a modest | |
| speed penalty. This enables <code>help.search()</code> to use approximate | |
| matching character-wise rather than byte-wise. | |
| </p> | |
| </li> | |
| <li> <p><code>[g]sub</code> use a single-pass algorithm instead of | |
| matching twice and so is usually faster. | |
| </p> | |
| </li> | |
| <li><p> The <code>perl = TRUE</code> versions now work correctly in a | |
| non-UTF-8 MBCS locale, by translating the inputs to UTF-8. | |
| </p> | |
| </li> | |
| <li> <p><code>useBytes = TRUE</code> now inhibits the translation of inputs with | |
| marked encodings. | |
| </p> | |
| </li> | |
| <li> <p><code>strsplit()</code> gains a <code>useBytes</code> argument. | |
| </p> | |
| </li> | |
| <li><p> The algorithm used by <code>strsplit()</code> has been reordered | |
| to batch by elements of <code>split</code>: this can be much faster for | |
| <code>fixed = FALSE</code> (as multiple compilation of regexps is avoided). | |
| </p> | |
| </li> | |
| <li><p> The help pages, including <code>?regexp</code>, have been updated | |
| and should be consulted for details of the new implementations. | |
| </p> | |
| </li></ul> | |
| <h4>HELP & Rd FILE CHANGES</h4> | |
| <ul> | |
| <li><p> A new dynamic HTML help system is used by default, and may be | |
| controlled using <code>tools::startDynamicHelp()</code>. With this enabled, | |
| HTML help pages will be generated on request, resolving links | |
| by searching through the current <code>.libPaths()</code>. The user | |
| may set options(<code>"help.ports"</code>) to control which IP port is used | |
| by the server. | |
| </p> | |
| </li> | |
| <li> <p><code>help.start()</code> no longer sets <code>options(htmlhelp = | |
| TRUE)</code> (it used to on Unix but not on Windows). Nor does it on | |
| Unix reset the <code>"browser"</code> option if given an argument of | |
| that name. | |
| </p> | |
| <p>Arguments <code>update</code> and <code>remote</code> are now available | |
| on all platforms: the default is <code>update = FALSE</code> since the | |
| http server will update the package index at first use. | |
| </p> | |
| </li> | |
| <li> <p><code>help()</code> has a new argument <code>help_type</code> (with | |
| default set by the option of that name) to supersede arguments | |
| <code>offline</code>, <code>htmlhelp</code> and <code>chmhelp</code> | |
| (although for now they still work if <code>help_type</code> is | |
| unset). There is a new type, <code>"PDF"</code> to allow offline PDF | |
| (rather than PostScript). | |
| </p> | |
| <p>A function <code>offline_help_helper()</code> will be used if this exists | |
| in the workspace or further down the search path, otherwise | |
| the function of that name in the <span class="pkg">utils</span> namespace is used. | |
| </p> | |
| </li> | |
| <li><p> Plain text help is now used as the fallback for HTML help (as | |
| it always was for Compiled HTML help on Windows). | |
| </p> | |
| </li> | |
| <li><p> It is possible to ask for static HTML pages to be prebuilt | |
| <em>via</em> the configure option <span class="option">--enable-prebuilt-html</span>. This | |
| may be useful for those who wish to make HTML help available | |
| outside R, e.g. on a local web site. | |
| </p> | |
| </li> | |
| <li><p> An experimental tag <code>\Sexpr</code> has been added to Rd | |
| files, to evaluate expressions at build, install, or render time. | |
| Currently install time and render time evaluation are supported. | |
| </p> | |
| </li> | |
| <li><p> Tags <code>\if</code>, <code>\ifelse</code> and <code>\out</code> have been | |
| added to allow format-specific (or more general, using | |
| <code>\Sexpr</code>) conditional text in man pages. | |
| </p> | |
| </li> | |
| <li><p> The <code>parse_Rd()</code> parser has been made more tolerant of coding | |
| errors in Rd files: now all syntax errors are reported as | |
| warnings, and an attempt is made to continue parsing. | |
| </p> | |
| </li> | |
| <li> <p><code>parse_Rd()</code> now has an argument <code>fragment</code> | |
| (default <code>FALSE</code>) to accept small fragments of Rd files (so | |
| that <code>\Sexpr</code> can output Rd code which is then parsed). | |
| </p> | |
| </li> | |
| <li> <p><code>parse_Rd()</code> now always converts its input to UTF-8. | |
| The <code>Rd2*</code> rendering functions have a new argument, | |
| <code>outputEncoding</code>, which controls how their output is | |
| encoded. | |
| </p> | |
| </li> | |
| <li> <p><code>parse_Rd()</code> no longer includes the newline as part of | |
| a <code>"%"</code>-style comment. | |
| </p> | |
| </li> | |
| <li><p> There have been various bug fixes and code reorganization in | |
| the Rd renderers <code>Rd2HTML</code>, <code>Rd2latex</code>, <code>Rd2txt</code>, | |
| and <code>Rd2ex</code>. | |
| </p> | |
| <p>All example files are now created with either ASCII or UTF-8 | |
| encoding, and the encoding is only marked in the file if there | |
| is any non-UTF-8 code (previously it was marked if the help | |
| file had non-ASCII contents, possibly in other sections). | |
| </p> | |
| </li> | |
| <li> <p><code>print.Rd()</code> now adds necessary escape characters so that | |
| printing and re-parsing an Rd object should produce an | |
| equivalent object. | |
| </p> | |
| </li> | |
| <li> <p><code>parse_Rd()</code> was incorrectly handling multiple backslashes in | |
| <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> code strings, converting 4n+3 backslashes to 2n+1 instead | |
| of 2n+2. | |
| </p> | |
| </li> | |
| <li> <p><code>parse_Rd()</code> now recognizes the <code>\var</code> tag within | |
| a quoted string in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>-like text. | |
| </p> | |
| </li> | |
| <li> <p><code>parse_Rd()</code> now treats the argument of | |
| <code>\command</code> as LaTeX-like, rather than verbatim. | |
| </p> | |
| </li></ul> | |
| <h4>COMPRESSION</h4> | |
| <ul> | |
| <li><p> New function <code>untar()</code> to list or unpack tar archives, | |
| possibly compressed. This uses either an external <code>tar</code> | |
| command or an internal implementation. | |
| </p> | |
| </li> | |
| <li><p> New function <code>tar()</code> to create (possibly compressed) | |
| tar archives. | |
| </p> | |
| </li> | |
| <li><p> New functions <code>memCompress()</code> and | |
| <code>memDecompress()</code> for in-memory compression and | |
| decompression. | |
| </p> | |
| </li> | |
| <li> <p><code>bzfile()</code> has a <code>compress</code> argument to select | |
| the amount of effort put into compression when writing. | |
| </p> | |
| </li> | |
| <li><p> New function <code>xzfile()</code> for use with | |
| <code>xz</code>-compressed files. (This can also read files | |
| compressed by some versions of <code>lzma</code>.) | |
| </p> | |
| </li> | |
| <li> <p><code>gzfile()</code> looks at the file header and so can now also | |
| read <code>bzip2</code>-ed files and <code>xz</code>-compressed files. | |
| </p> | |
| </li> | |
| <li><p> There are the new options of <code>save(compress = "bzip2")</code> | |
| and <code>"xz"</code> to use <code>bzip2</code> or <code>xz</code> | |
| compression (which will be slower, but can give substantially | |
| smaller files). Argument <code>compression_level</code> gives finer | |
| control over the space/time tradeoffs. | |
| </p> | |
| <p><code>load()</code> can read such saves (but only as from this version of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>). | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD INSTALL</code>/<code>check</code> and | |
| <code>tools::writePACKAGES</code> accept a wider range of compressed | |
| tar archives. Precisely how wide depends on the capabilities of | |
| the host system's <code>tar</code> command: they almost always | |
| include <code>.tar.bz2</code> archives, and with modern versions of | |
| <code>tar</code> other forms of compression such as <code>lzma</code> | |
| and <code>xz</code>, and arbitrary extensions. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD INSTALL</code> has a new option | |
| <span class="option">--data-compress</span> to control the compression used when | |
| lazy-loading data. New possibilities are | |
| <span class="option">--data-compress=bzip2</span> which will give ca 15% better | |
| compression at the expense of slower installation times, and | |
| <span class="option">--data-compress=xz</span>, often giving even better compression | |
| on large datasets at the expense of much longer installation | |
| times. (The latter is used for the recommended packages: it is | |
| particularly effective for <a href="https://CRAN.R-project.org/package=survival"><span class="pkg">survival</span></a>.) | |
| </p> | |
| </li> | |
| <li> <p><code>file()</code> for open = <code>""</code>, <code>"r"</code> or | |
| <code>"rt"</code> will automagically detect compressed files (from | |
| <code>gzip</code>, <code>bzip2</code> or <code>xz</code>). This means | |
| that compressed files can be specified by file name (rather than | |
| <em>via</em> a <code>gzfile()</code> connection) to <code>read.table()</code>, | |
| <code>readlines()</code>, <code>scan()</code> and so on. | |
| </p> | |
| </li> | |
| <li> <p><code>data()</code> can handle compressed text files with extensions | |
| ‘<span class="file">.{txt,tab,csv}.{gz,bz2,xz}</span>’ . | |
| </p> | |
| </li></ul> | |
| <h4>DEPRECATED & DEFUNCT</h4> | |
| <ul> | |
| <li> <p><code>png(type="cairo1")</code> is defunct: the value is no longer | |
| recognized. | |
| </p> | |
| </li> | |
| <li> <p><code>tools::Rd_parse()</code> is defunct (as this version of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> | |
| uses only Rd version 2). | |
| </p> | |
| </li> | |
| <li><p> Use of file ‘<span class="file">~/.Rconf</span>’ (which was deprecated in favour | |
| of ‘<span class="file">~/.Rconfig</span>’ in 2004) has finally been removed. | |
| </p> | |
| </li> | |
| <li><p> Bundles of packages are deprecated. See ‘Writing R | |
| Extensions’ for the steps needed to unbundle a bundle. | |
| </p> | |
| </li> | |
| <li> <p><code>help()</code> arguments <code>offline</code>, <code>htmlhelp</code> and | |
| <code>chmhelp</code> are deprecated in favour of <code>help_type</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>clearNames()</code> (in package <span class="pkg">stats</span>) is deprecated | |
| for <code>unname()</code>. | |
| </p> | |
| </li> | |
| <li><p> Basic regular expressions (<code>extended = FALSE</code>) are | |
| deprecated in <code>strsplit</code>, <code>grep</code> and friends. There is | |
| a precise POSIX standard for them, but it is not what recent RE | |
| engines implement, and it seems that in almost all cases package | |
| authors intended <code>fixed = TRUE</code> when using <code>extended = | |
| FALSE</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>methods::trySilent()</code> is deprecated in favour of | |
| <code>try(silent=TRUE)</code> or – more efficiently and flexibly – | |
| something like <code>tryCatch(error = function(e) e)</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>index.search()</code> is deprecated: there are no longer | |
| directories of types other than <code>help</code>. | |
| </p> | |
| </li></ul> | |
| <h4>INSTALLATION</h4> | |
| <ul> | |
| <li><p> cairo >= 1.2 is now required (1.2.0 was released in July 2006) | |
| for cairo-based graphics devices (which remain optional). | |
| </p> | |
| </li> | |
| <li><p> A suitable <code>iconv()</code> is now required: support for | |
| configure option <span class="option">--without-iconv</span> has been withdrawn (it | |
| was deprecated in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.5.0). | |
| </p> | |
| </li> | |
| <li><p> Perl is no longer ‘essential’. <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> can be built | |
| without it, but scripts <code>R CMD build</code>, <code>check</code>, | |
| <code>Rprof</code> and <code>Sd2d</code> currently require it. | |
| </p> | |
| </li> | |
| <li><p> A system <code>glob</code> function is now essential (a working | |
| <code>Sys.glob()</code> has been assumed since <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.9.0 at least). | |
| </p> | |
| </li> | |
| <li><p> C99 support for MBCS is now required, and configure option | |
| <span class="option">--disable-mbcs</span> has been withdrawn. | |
| </p> | |
| </li> | |
| <li><p> Having a version of <code>tar</code> capable of automagically | |
| detecting compressed archives is useful for | |
| <code>utils::untar()</code>, and so <code>gtar</code> (a common name for | |
| GNU <code>tar</code>) is preferred to <code>tar</code>: set environment | |
| variable <span class="env">TAR</span> to specify a particular <code>tar</code> command. | |
| </p> | |
| </li></ul> | |
| <h4>INTERNATIONALIZATION</h4> | |
| <ul> | |
| <li><p> There is some makefile support for adding/updating translations | |
| in packages: see <code>po/README</code> and ‘Writing R Extensions’. | |
| </p> | |
| <p>There is support for the use of <code>dngettext</code> for C-level | |
| translations in packages: see ‘Writing R Extensions’. | |
| </p> | |
| </li></ul> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li><p> Assigning an extra 0-length column to a data frame by | |
| <code>DF[, "foo"] <- value</code> now works in most cases (by filling | |
| with <code>NA</code>s) or fails. (It used to give a corrupt data | |
| frame.) | |
| </p> | |
| </li> | |
| <li> <p><code>validObject()</code> avoids an error during evaluation in the case | |
| of various incorrect slot definitions. | |
| </p> | |
| </li> | |
| <li> <p><code>n:m</code> now returns a result of type <code>"integer"</code> in | |
| a few more boundary cases. | |
| </p> | |
| </li> | |
| <li><p> The <code>zap.ind</code> argument to <code>printCoefmat()</code> did | |
| not usually work as other code attempted to ensure that non-zero | |
| values had a non-zero representation. | |
| </p> | |
| </li> | |
| <li> <p><code>printCoefmat()</code> formatted groups of columns together, | |
| not just the <code>cs.ind</code> group but also the <code>zap.ind</code> | |
| group and a residual group. It now formats all columns except | |
| the <code>cs.ind</code> group separately (and zaps the <code>zap.ind</code> | |
| group column-by-column). The main effect will be see in the | |
| output from <code>print.anova()</code>, as this grouped SS-like columns | |
| in the <code>zap.ind</code> group. | |
| </p> | |
| </li> | |
| <li> <p><code>R_ReplDLLinit()</code> initializes the top-level jump so | |
| that some embedded applications on Windows no longer crash on | |
| error. | |
| </p> | |
| </li> | |
| <li> <p><code>identical()</code> failed to take the encoding of character | |
| strings into account, so identical byte patterns are not | |
| necessarily identical strings, and similarly Latin-1 and UTF-8 | |
| versions of the same string differ in byte pattern. | |
| </p> | |
| </li> | |
| <li> <p><code>methods(f)</code> used to warn unnecessarily for an S4 | |
| generic <code>f</code> which had been created based on an existing S3 | |
| generic. | |
| </p> | |
| </li> | |
| <li><p> The check for consistent ordering of superclasses was not | |
| ignoring all conditional relations (the symptom was usually | |
| spurious warnings for classes extending <code>"array"</code>). | |
| </p> | |
| </li> | |
| <li><p> Trying to assign into a raw vector with an index vector | |
| containing <code>NA</code>s could cause a segfault. Reported by Hervé | |
| Pagès. | |
| </p> | |
| </li> | |
| <li> <p><code>Rscript</code> could segfault if (by user error) its | |
| filename argument was missing. Reported by Martin Morgan. | |
| </p> | |
| </li> | |
| <li> <p><code>getAnywhere()</code> (and functions that use it, including argument | |
| completion in the console) did not handle special built-in | |
| functions. Reported by Romain Francois. | |
| </p> | |
| </li> | |
| <li> <p><code>order()</code> was missing a <code>PROTECT()</code> call and so | |
| could segfault when called on character data under certain (rare) | |
| circumstances involving marked non-native encodings. | |
| </p> | |
| </li> | |
| <li> <p><code>prettyNum(z, drop0trailing=TRUE)</code> did not work | |
| correctly when <code>z</code> was a complex vector. Consequently, | |
| <code>str(z, ...)</code> also did not. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=13985">PR#13985</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>make distclean</code> removed too many files in | |
| <code>etc/</code> if builddir = srcdir. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD</code> replaced <code>TEXINPUTS</code> rather than | |
| appending to it (as documented and intended). | |
| </p> | |
| </li> | |
| <li> <p><code>help.start()</code> no longer fails on unix when | |
| <code>"browser"</code> is a function. | |
| </p> | |
| </li> | |
| <li> <p><code>pbeta(x, ..., log.p = TRUE)</code> is sometimes more accurate, | |
| e.g., for very small <code>x</code>. | |
| </p> | |
| </li> | |
| <li><p> Unserializing a pre-2.8 workspace containing pure ASCII | |
| character objects with a Latin-1 or UTF-8 encoding would corrupt | |
| the <code>CHARSXP</code> cache. | |
| </p> | |
| </li></ul> | |
| <h3>OLDER NEWS</h3> | |
| <p>News for <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.9.2 patched and earlier can be found in files | |
| such as ‘<span class="file">NEWS.2</span>’ in the ‘<span class="file">doc</span>’ directory. | |
| </p> | |
| </body></html> |