| <!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" /> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" /> | |
| <link rel="stylesheet" type="text/css" href="R.css" /> | |
| </head><body><div class="container"> | |
| <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> | |
| <ul> | |
| <li><p> News for <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 4.x.y can be found in HTML format at | |
| <a href="NEWS.html">NEWS.html</a>, | |
| and in text format in file | |
| <a href="../NEWS">NEWS</a> | |
| in the ‘<span class="file">doc</span>’ directory. | |
| </p> | |
| </li></ul> | |
| <h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.6.3</h3> | |
| <h4>NEW FEATURES</h4> | |
| <ul> | |
| <li><p> The included LAPACK has been updated to version 3.9.0 (for | |
| the included routines, just bug fixes). | |
| </p> | |
| </li></ul> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li><p> Fixed a C level integer overflow in <code>rhyper()</code>; reported | |
| by Benjamin Tyner in <a href="https://bugs.R-project.org/show_bug.cgi?id=17694">PR#17694</a>. | |
| </p> | |
| </li> | |
| <li><p> Uses of <code>url(gzcon(.))</code> needing to extend buffer size | |
| have failed (with HTTP/2 servers), reported by Gábor Csárdi. | |
| </p> | |
| </li> | |
| <li> <p><code>predict(loess(..), se=TRUE)</code> now errors out (instead of | |
| seg.faulting etc) for large sample sizes, thanks to a report and | |
| patch by Benjamin Tyner in <a href="https://bugs.R-project.org/show_bug.cgi?id=17121">PR#17121</a>. | |
| </p> | |
| </li> | |
| <li> <p><code>tools:assertCondition(., "error")</code> and hence | |
| <code>assertError()</code> no longer return errors twice (invisibly). | |
| </p> | |
| </li> | |
| <li> <p><code>update(form, new)</code> in the case of a long <code>new</code> | |
| formula sometimes wrongly eliminated the intercept from <code>form</code>, | |
| or (more rarely) added a garbage term (or seg.faulted !); the fix | |
| happened by simplifying the C-level logic of <code>terms.formula()</code>. | |
| Reported by Mathias Ambühl in <a href="https://bugs.R-project.org/show_bug.cgi?id=16326">PR#16326</a>. | |
| </p> | |
| </li> | |
| <li><p> The error message from <code>stopifnot(.., <error producing call>)</code> | |
| again contains the full <code>"stopifnot(.......)"</code> call: Its | |
| attempted suppression did not work consistently. | |
| </p> | |
| </li> | |
| <li><p> On Windows, <code>download.file(., , "wininet", headers=character())</code> | |
| would fail; reported with patch proposal by Kevin Ushey in <a href="https://bugs.R-project.org/show_bug.cgi?id=17710">PR#17710</a>. | |
| </p> | |
| </li></ul> | |
| <h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.6.2</h3> | |
| <h4>NEW FEATURES</h4> | |
| <ul> | |
| <li> <p><code>runmed(x, *)</code> gains a new option <code>na.action</code> | |
| determining <em>how</em> to handle <code>NaN</code> or <code>NA</code> in <code>x</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>dotchart()</code> gains new options <code>ann</code>, <code>xaxt</code>, | |
| <code>frame.plot</code> and <code>log</code>. | |
| </p> | |
| </li></ul> | |
| <h4>INSTALLATION on a UNIX-ALIKE</h4> | |
| <ul> | |
| <li><p> Detection of the C stack direction has been moved from | |
| run-time to <code>configure</code>: this is safer with LTO builds and | |
| allows the detection to be overridden – see file | |
| ‘<span class="file">config.site</span>’. | |
| </p> | |
| </li> | |
| <li><p> Source-code changes enable installation on platforms using | |
| <code>gcc -fno-common</code> (the expected default for | |
| <code>gcc 10.x</code>). | |
| </p> | |
| </li></ul> | |
| <h4>C-LEVEL FACILITIES</h4> | |
| <ul> | |
| <li> <p><code>installTrChar</code> (which is nowadays is wrapped by | |
| <code>installChar</code>) is defined in ‘<span class="file">Rinternals.h</span>’. (Neither | |
| are part of the API.) | |
| </p> | |
| </li></ul> | |
| <h4>PACKAGE INSTALLATION</h4> | |
| <ul> | |
| <li><p> Header ‘<span class="file">Rconfig.h</span>’ contains the value of | |
| <code>FC_LEN_T</code> deduced at installation which is used by the | |
| prototypes in headers ‘<span class="file">R_ext/BLAS.h</span>’ and | |
| ‘<span class="file">R_ext/Lapack.h</span>’ but to avoid extensive breakage this is | |
| only exposed when <code>USE_FC_LEN_T</code> is defined. | |
| </p> | |
| <p>If a package's C/C++ calls to BLAS/LAPACK allow for the | |
| ‘hidden’ arguments used by most Fortran compilers to pass | |
| the lengths of Fortran character arguments, define | |
| <code>USE_FC_LEN_T</code> and include ‘<span class="file">Rconfig.h</span>’ (possibly | |
| <em>via</em> ‘<span class="file">R.h</span>’) before including ‘<span class="file">R_ext/BLAS.h</span>’ or | |
| ‘<span class="file">R_ext/Lapack.h</span>’. | |
| </p> | |
| </li> | |
| <li><p> A package with Fortran source code and perhaps C (but not | |
| C++) sources can request for its shared object/DLL to be linked by | |
| the Fortran compiler by including a line <code>USE_FC_TO_LINK=</code> in | |
| ‘<span class="file">src/Makevars[.win]</span>’ and using <code>$(SHLIB_OPENMP_FFLAGS)</code> | |
| as part of <code>PKG_LIBS</code>. | |
| </p> | |
| <p>The known reason for doing so is a package which uses Fortran | |
| (only) OpenMP on a platform where the Fortran OpenMP runtime is | |
| incompatible with the C one (e.g. <code>gfortran</code> 9.x | |
| with <code>clang</code>). | |
| </p> | |
| </li></ul> | |
| <h4>UTILITIES</h4> | |
| <ul> | |
| <li> <p><code>R CMD check</code> has a new option to mitigate checks | |
| leaving files/directories in ‘<span class="file">/tmp</span>’. See the ‘R | |
| Internals’ manual – this is part of <code>--as-cran</code>. | |
| </p> | |
| </li></ul> | |
| <h4>Windows</h4> | |
| <ul> | |
| <li><p> The default standard for C++ in package installation is | |
| C++11 (as it has been on other platforms where available since <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> | |
| 3.6.0: the default toolchain on Windows was defaulting to C++98). | |
| </p> | |
| </li></ul> | |
| <h4>DEPRECATED AND DEFUNCT</h4> | |
| <ul> | |
| <li><p> Support for specifying C++98 in package installation is | |
| deprecated. | |
| </p> | |
| </li> | |
| <li><p> Support in <code>R CMD config</code> for <span class="samp">F77</span>, | |
| <span class="samp">FCPIFCPLAGS</span>, <span class="samp">CPP</span>, <span class="samp">CXXCPP</span> and <span class="samp">CXX98</span> and | |
| similar is deprecated. (<span class="samp">CPP</span> is found from the system | |
| <code>make</code> and may well not be set.) | |
| </p> | |
| <p>Use <span class="samp">$CC -E</span> and <span class="samp">$CXX -E</span> instead of <span class="samp">CPP</span> and | |
| <span class="samp">CXXCPP</span>. | |
| </p> | |
| </li></ul> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li> <p><code>runmed(x, *)</code> when <code>x</code> contains missing values | |
| now works consistently for both <code>algorithm="Stuetzle"</code> and | |
| <code>"Turlach"</code>, and no longer segfaults for <code>"Turlach"</code>, as | |
| reported by Hilmar Berger. | |
| </p> | |
| </li> | |
| <li> <p><code>apply(diag(3), 2:3, mean)</code> now gives a helpful error message. | |
| </p> | |
| </li> | |
| <li> <p><code>dgamma(x, shape, log=TRUE)</code> now longer overflows | |
| to <code>Inf</code> for shape < 1 and very small <code>x</code>, fixing | |
| <a href="https://bugs.R-project.org/show_bug.cgi?id=17577">PR#17577</a>, reported by Jonathan Rougier. | |
| </p> | |
| </li> | |
| <li><p> Buffer overflow in building error messages fixed. Reported | |
| by Benjamin Tremblay. | |
| </p> | |
| </li> | |
| <li> <p><code>options(str = .)</code> is correctly initialized at | |
| package <span class="pkg">utils</span> load time, now. A consequence is that | |
| <code>str()</code> in scripts now is more consistent to interactive use, | |
| e.g., when displaying function(**) argument lists. | |
| </p> | |
| </li> | |
| <li> <p><code>as.numeric(<call>)</code> now gives correct error message. | |
| </p> | |
| </li> | |
| <li><p> Printing <code>ls.str()</code> no longer wrongly shows | |
| <code>"<missing>"</code> in rare cases. | |
| </p> | |
| </li> | |
| <li><p> Auto-printing S4 objects no longer duplicates the object, | |
| for faster speed and reduced memory consumption. Reported by Aaron | |
| Lun. | |
| </p> | |
| </li> | |
| <li> <p><code>pchisq(<LRG>, <LRG>, ncp=100)</code> no longer takes | |
| practically forever in some cases. Hence ditto for corresponding | |
| <code>qchisq()</code> calls. | |
| </p> | |
| </li> | |
| <li> <p><code>x %% L</code> for finite <code>x</code> no longer returns | |
| <code>NaN</code> when <code>L</code> is infinite, nor suffers from cancellation | |
| for large finite <code>L</code>, thanks to Long Qu's <a href="https://bugs.R-project.org/show_bug.cgi?id=17611">PR#17611</a>. | |
| </p> | |
| <p>Analogously, <code>x %/% L</code> and <code>L %/% x</code> suffer less from | |
| cancellation and return values corresponding to limits for large | |
| <code>L</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>grepl(NA, *)</code> now returns <code>logical</code> as documented. | |
| </p> | |
| </li> | |
| <li> <p><code>options(warn=1e11)</code> is an error now, instead of later | |
| leading to C stack overflow because of infinite recursion. | |
| </p> | |
| </li> | |
| <li> <p><code>R_tryCatch</code> no longer transfers control for all | |
| conditions. Reported and patch provided by Lionel Henry in | |
| <a href="https://bugs.R-project.org/show_bug.cgi?id=17617">PR#17617</a>. | |
| </p> | |
| </li> | |
| <li> <p><code>format(object.size(.), digits=NULL)</code> now works, fixing | |
| <a href="https://bugs.R-project.org/show_bug.cgi?id=17628">PR#17628</a> reported by Jonathan Carroll. | |
| </p> | |
| </li> | |
| <li> <p><code>get_all_vars(f, d)</code> now also works for cases, e.g. where | |
| <code>d</code> contains a matrix. Reported by Simon Wood in 2009 and patch | |
| provided by Ben Bolker in <a href="https://bugs.R-project.org/show_bug.cgi?id=13624">PR#13624</a>. | |
| </p> | |
| <p>Additionally, it now also works when some variables are data frames, | |
| fixing <a href="https://bugs.R-project.org/show_bug.cgi?id=14905">PR#14905</a>, reported by Patrick Breheny. | |
| </p> | |
| </li> | |
| <li> <p><code>barplot()</code> could get spacings wrong if there were exactly two | |
| bars <a href="https://bugs.R-project.org/show_bug.cgi?id=15522">PR#15522</a>. Patch by Michael Chirico. | |
| </p> | |
| </li> | |
| <li> <p><code>power.t.test()</code> works in more cases when returning values | |
| of n smaller than 2. | |
| </p> | |
| </li> | |
| <li> <p><code>dotchart(*, pch=., groups=.)</code> now works better. Reported | |
| by Robert and confirmed by Nic Rochette in <a href="https://bugs.R-project.org/show_bug.cgi?id=16953">PR#16953</a>. | |
| </p> | |
| </li> | |
| <li> <p><code>canCoerce(obj, cl)</code> no longer assumes | |
| <code>length(class(obj)) == 1</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>plot.formula(*, subset = *)</code> now also works in a boundary | |
| case reported by Robert Schlicht (TU Dresden). | |
| </p> | |
| </li> | |
| <li> <p><code>readBin()</code> and <code>writeBin()</code> of a | |
| <code>rawConnection()</code> now also work in large cases, thanks to a | |
| report and proposal by Taeke Harkema in <a href="https://bugs.R-project.org/show_bug.cgi?id=17665">PR#17665</a>. | |
| </p> | |
| </li></ul> | |
| <h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.6.1</h3> | |
| <h4>INSTALLATION on a UNIX-ALIKE</h4> | |
| <ul> | |
| <li><p> The default detection of the shell variable <code>libNN</code> is | |
| overridden for derivatives of Debian Linux, some of which have | |
| started to have a ‘<span class="file">/usr/lib64</span>’ directory. | |
| (E.g. Ubuntu 19.04.) As before, it can be specified in | |
| ‘<span class="file">config.site</span>’. | |
| </p> | |
| </li></ul> | |
| <h4>UTILITIES</h4> | |
| <ul> | |
| <li> <p><code>R CMD config</code> knows the values of <code>AR</code> and | |
| <code>RANLIB</code>, often set for LTO builds. | |
| </p> | |
| </li></ul> | |
| <h4>DEPRECATED AND DEFUNCT</h4> | |
| <ul> | |
| <li><p> The use of a character vector with <code>.Fortran()</code> is | |
| formally deprecated and gives a non-portability warning. (It has | |
| long been strongly discouraged in ‘Writing R Extensions’.) | |
| </p> | |
| </li></ul> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li><p> On Windows, GUI package installation via <code>menuInstallPkgs()</code> | |
| works again, thanks to Len Weil's and Duncan Murdoch's <a href="https://bugs.R-project.org/show_bug.cgi?id=17556">PR#17556</a>. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> on <code>data()</code> fixing <a href="https://bugs.R-project.org/show_bug.cgi?id=17558">PR#17558</a> | |
| thanks to Duncan Murdoch. | |
| </p> | |
| </li> | |
| <li> <p><code>quasi(*, variance = list(..))</code> now works more | |
| efficiently, and should work in all cases fixing <a href="https://bugs.R-project.org/show_bug.cgi?id=17560">PR#17560</a>. | |
| Further, <code>quasi(var = mu(1-mu))</code> and <code>quasi(var = "mu ^ 3")</code> | |
| now work, and <code>quasi(variance = "log(mu)")</code> now gives a correct | |
| error message. | |
| </p> | |
| </li> | |
| <li><p> Creation of lazy loading database during package installation is | |
| again robust to Rprofile changing the current working directory | |
| (<a href="https://bugs.R-project.org/show_bug.cgi?id=17559">PR#17559</a>). | |
| </p> | |
| </li> | |
| <li> <p><code>boxplot(y ~ f, horizontal=TRUE)</code> now produces correct x- | |
| and y-labels. | |
| </p> | |
| </li> | |
| <li> <p><code>rbind.data.frame()</code> allows to keep <code><NA></code> levels | |
| from factor columns (<a href="https://bugs.R-project.org/show_bug.cgi?id=17562">PR#17562</a>) via new option <code>factor.exclude</code>. | |
| </p> | |
| <p>Additionally, it works in one more case with matrix-columns which | |
| had been reported on 2017-01-16 by Krzysztof Banas. | |
| </p> | |
| </li> | |
| <li><p> Correct messaging in C++ pragma checks in <span class="pkg">tools</span> code for | |
| <code>R CMD check</code>, fixing <a href="https://bugs.R-project.org/show_bug.cgi?id=17566">PR#17566</a> thanks to Xavier Robin. | |
| </p> | |
| </li> | |
| <li><p>print()ing and auto-printing no longer differs for | |
| <code>function</code>s with a user defined <code>print.function</code>, thanks to | |
| Bill Dunlap's report. | |
| </p> | |
| </li> | |
| <li><p> On Windows, <code>writeClipboard(.., format = <n>)</code> now | |
| does correctly pass <code>format</code> to the underlying C code, thanks to | |
| a bug report (with patch) by Jenny Bryan. | |
| </p> | |
| </li> | |
| <li> <p><code>as.data.frame()</code> treats 1D arrays the same as vectors, | |
| <a href="https://bugs.R-project.org/show_bug.cgi?id=17570">PR#17570</a>. | |
| </p> | |
| </li> | |
| <li><p> Improvements in <code>smoothEnds(x, *)</code> working with | |
| <code>NA</code>s (towards <code>runmed()</code> working in that case, in the next | |
| version of R). | |
| </p> | |
| </li> | |
| <li> <p><code>vcov(glm(<quasi>), dispersion = *)</code> works correctly | |
| again, fixing <a href="https://bugs.R-project.org/show_bug.cgi?id=17571">PR#17571</a> thanks to Pavel Krivitsky. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD INSTALL</code> of binary packages on Windows now | |
| works also with per-directory locking. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD INSTALL</code> and <code>install.packages()</code> on Windows | |
| are now more robust against a locked file in an earlier installation | |
| of the package to be installed. The default value of option | |
| <code>install.lock</code> on Windows has been changed to <code>TRUE</code>. | |
| </p> | |
| </li> | |
| <li><p> On Unix alikes (when <code>readline</code> is active), only | |
| expand tilde (<code>~</code>) file names starting with a tilde, instead of | |
| almost all tildes. | |
| </p> | |
| </li> | |
| <li><p> In R documentation (‘<span class="file">*.Rd</span>’) files, <span class="samp">\item [..]</span> is no | |
| longer treated specially when rendered in LaTeX and hence pdf, but | |
| rather shows the brackets in all cases. | |
| </p> | |
| </li></ul> | |
| <h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.6.0</h3> | |
| <h4>SIGNIFICANT USER-VISIBLE CHANGES</h4> | |
| <ul> | |
| <li><p> Serialization format version 3 becomes the default for | |
| serialization and saving of the workspace (<code>save()</code>, | |
| <code>serialize()</code>, <code>saveRDS()</code>, <code>compiler::cmpfile()</code>). | |
| Serialized data in format 3 cannot be read by versions of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> prior | |
| to version 3.5.0. Serialization format version 2 is still | |
| supported and can be selected by <code>version = 2</code> in the | |
| save/serialization functions. The default can be changed back for | |
| the whole <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> session by setting environment variables | |
| <span class="env">R_DEFAULT_SAVE_VERSION</span> and <span class="env">R_DEFAULT_SERIALIZE_VERSION</span> | |
| to <code>2</code>. For maximal back-compatibility, files | |
| ‘<span class="file">vignette.rds</span>’ and ‘<span class="file">partial.rdb</span>’ generated by <code>R | |
| CMD build</code> are in serialization format version 2, and resave by | |
| default produces files in serialization format version 2 (unless | |
| the original is already in format version 3). | |
| </p> | |
| </li> | |
| <li><p> The default method for generating from a discrete uniform | |
| distribution (used in <code>sample()</code>, for instance) has been | |
| changed. This addresses the fact, pointed out by Ottoboni and | |
| Stark, that the previous method made <code>sample()</code> noticeably | |
| non-uniform on large populations. See <a href="https://bugs.R-project.org/show_bug.cgi?id=17494">PR#17494</a> for a | |
| discussion. The previous method can be requested using | |
| <code>RNGkind()</code> or <code>RNGversion()</code> if necessary for | |
| reproduction of old results. Thanks to Duncan Murdoch for | |
| contributing the patch and Gabe Becker for further assistance. | |
| </p> | |
| <p>The output of <code>RNGkind()</code> has been changed to also return the | |
| ‘kind’ used by <code>sample()</code>. | |
| </p> | |
| </li></ul> | |
| <h4>NEW FEATURES</h4> | |
| <ul> | |
| <li> <p><code>Sys.setFileTime()</code> has been vectorized so arguments | |
| <code>path</code> and <code>time</code> of length greater than one are now | |
| supported. | |
| </p> | |
| </li> | |
| <li> <p><code>axis()</code> gets new option <code>gap.axis = NA</code> for | |
| specifying a multiplication factor for the minimal “gap” | |
| (distance) between axis labels drawn. Its default is <code>1</code> | |
| for labels <em>parallel</em> to the axis, and <code>0.25</code> for | |
| perpendicular ones. | |
| </p> | |
| <p>Perpendicular labels no longer overlap, fixing bug <a href="https://bugs.R-project.org/show_bug.cgi?id=17384">PR#17384</a>. | |
| </p> | |
| </li> | |
| <li><p> The default method of <code>plot()</code> gains new arguments | |
| <code>xgap.axis = NA</code> and <code>ygap.axis = NA</code> to be passed to | |
| the x– and y– <code>axis(.., gap.axis=*)</code> calls. | |
| </p> | |
| </li> | |
| <li> <p><code>removeSource()</code> now works not only for functions but | |
| also for some language objects. | |
| </p> | |
| </li> | |
| <li> <p><code>as.call()</code>, <code>rep.int()</code>, <code>rep_len()</code> and | |
| <code>nchar()</code> dispatch internally. | |
| </p> | |
| </li> | |
| <li> <p><code>is(object, class2)</code> looks for <code>class2</code> in the | |
| calling namespace after looking in the namespace of | |
| <code>class(object)</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>extendrange(.., f)</code> with a length-2 <code>f</code> now | |
| extends separately to the left and the right. | |
| </p> | |
| </li> | |
| <li> <p><code>lengths()</code> dispatches internally to S4 methods. | |
| </p> | |
| </li> | |
| <li> <p><code>download.file()</code> on Windows now uses <code>URLdecode()</code> | |
| to determine the file extension, and uses binary transfer | |
| (<code>mode = "wb"</code>) also for file extension ‘<span class="file">.rds</span>’. | |
| </p> | |
| <p>The help page for <code>download.file()</code> now contains the same | |
| information on all platforms. | |
| </p> | |
| </li> | |
| <li><p> Setting <span class="samp">C</span> locale for collation <em>via</em> environment | |
| variables <span class="env">LC_ALL</span> and <span class="env">LC_COLLATE</span> and <em>via</em> a call | |
| to <code>Sys.setlocale()</code> now takes precedence over environment | |
| variable <span class="env">R_ICU_LOCALE</span>. | |
| </p> | |
| </li> | |
| <li><p> There is a new function, <code>nullfile()</code>, to give the file | |
| name of the null system device (e.g., ‘<span class="file">/dev/null</span>’) on the | |
| current platform. | |
| </p> | |
| </li> | |
| <li><p> There are two new options, <code>keep.parse.data</code> and | |
| <code>keep.parse.data.pkgs</code>, which control whether parse data are | |
| included into sources when <code>keep.source</code> or | |
| <code>keep.source.pkgs</code> is <code>TRUE</code>. By default, | |
| <code>keep.parse.data.pkgs</code> is now <code>FALSE</code>, which changes | |
| previous behavior and significantly reduces space and time overhead | |
| when sources are kept when installing packages. | |
| </p> | |
| </li> | |
| <li><p> In <code>rapply(x, ..)</code>, <code>x</code> can also be | |
| “list-like” and of length <i>>= 2^{31}</i>. | |
| </p> | |
| </li> | |
| <li> <p><code>trimws()</code> gets new optional <code>whitespace</code> | |
| argument, allowing more extensive definitions of “space”, | |
| such as including Unicode spaces (as wished in <a href="https://bugs.R-project.org/show_bug.cgi?id=17431">PR#17431</a>). | |
| </p> | |
| </li> | |
| <li> <p><code>weighted.mean()</code> no longer coerces the weights to a | |
| double/numeric vector, since <code>sum()</code> now handles integer | |
| overflow. This makes <code>weighted.mean()</code> more polymorphic and | |
| endomorphic, but be aware that the results are no longer | |
| guaranteed to be a vector of type <span class="samp">double</span>. | |
| </p> | |
| </li> | |
| <li><p> When loading namespaces, S3 method registrations which | |
| overwrite previous registrations are now noted by default (using | |
| <code>packageStartupMessage()</code>). | |
| </p> | |
| </li> | |
| <li> <p><code>compiler::cmpfile()</code> gains a <code>version</code> argument, for | |
| use when the output file should be saved in serialization format 2. | |
| </p> | |
| </li> | |
| <li><p> The axis labeling in the default method of <code>pairs()</code> | |
| may now be toggled by new options <code>horOdd</code> and <code>verOdd</code>. | |
| </p> | |
| </li> | |
| <li><p> (Not Windows nor macOS.) Package <span class="pkg">tcltk</span> now supports an | |
| environment variable <span class="env">R_DONT_USE_TK</span> which if set disables Tk | |
| initialization. This is intended for use to circumvent errors in | |
| loading the package, e.g. with recent Linux running under | |
| an address sanitizer. | |
| </p> | |
| </li> | |
| <li><p> The <code>numeric</code> method of <code>all.equal()</code> gets | |
| optional arguments <code>countEQ</code> and <code>formatFUN</code>. If | |
| <code>countEQ</code> is true, the mean error is more sensible when many | |
| entries are <b>eq</b>ual. | |
| </p> | |
| </li> | |
| <li> <p><code>outer(x,y, FUN = "*")</code> is more efficient using | |
| <code>tcrossprod(u,v)</code> instead of <code>u %*% t(v)</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>vcov(<mlm>)</code> is more efficient via new optional | |
| arguments in <code>summary.mlm()</code>. | |
| </p> | |
| </li> | |
| <li><p> The default method of <code>summary()</code> gets an option to | |
| choose the <em>kind</em> of <code>quantile()</code>s to use; wish of | |
| <a href="https://bugs.R-project.org/show_bug.cgi?id=17438">PR#17438</a>. | |
| </p> | |
| </li> | |
| <li><p> Fitting multiple linear models <em>via</em> <code>lm()</code> does | |
| work with <em>matrix</em> offsets, as suggested in <a href="https://bugs.R-project.org/show_bug.cgi?id=17407">PR#17407</a>. | |
| </p> | |
| </li> | |
| <li><p> The new functions <code>mem.maxVSize()</code> and | |
| <code>mem.maxMSize()</code> allow the maximal size of the vector heap | |
| and the maximal number of nodes allowed in the current <code>R</code> | |
| process to be queried and set. | |
| </p> | |
| </li> | |
| <li> <p><code>news()</code> gains support for ‘<span class="file">NEWS.md</span>’ files. | |
| </p> | |
| </li> | |
| <li><p> An effort has been started to have our reference manuals, | |
| i.e., all help pages. show platform-independent information (rather | |
| than Windows or Unix-alike specifics visible only on that platform). | |
| Consequently, the Windows version of <code>X11()</code> / <code>x11()</code> | |
| got identical formal arguments to the Unix one. | |
| </p> | |
| </li> | |
| <li> <p><code>sessionInfo()$running</code> has been factored out in a new | |
| variable <code>osVersion</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>slice.index()</code> now also works for multi-dimensional | |
| margins. | |
| </p> | |
| </li> | |
| <li> <p><code>untar()</code> used with an external <code>tar</code> command | |
| assumes this supports decompression including <code>xz</code> and | |
| automagically detecting the compression type. This has been true | |
| of all mainstream implementations since 2009 (for GNU | |
| <code>tar</code>, since version 1.22): older implementations are | |
| still supported <em>via</em> the new argument | |
| <code>support_old_tars</code> whose default is controlled by environment | |
| variable <span class="env">R_SUPPORT_OLD_TARS</span>. (It looks like NetBSD and | |
| OpenBSD have ‘older’ <code>tar</code> commands for this | |
| purpose.) | |
| </p> | |
| </li> | |
| <li><p> The new function <code>asplit()</code> allow splitting an array or | |
| matrix by its margins. | |
| </p> | |
| </li> | |
| <li><p> New functions <code>errorCondition()</code> and | |
| <code>warningCondition()</code> provide a convenient way to create | |
| structured error and warning objects. | |
| </p> | |
| <p><code>.Deprecated()</code> now signals a warning of class | |
| <code>"deprecatedWarning"</code>, and <code>.Defunct()</code> now signals an | |
| error of class <code>"defunctError"</code>. | |
| </p> | |
| </li> | |
| <li><p> Many ‘package not found’ errors are now signaled as | |
| errors of class <code>"packageNotFoundError"</code>. | |
| </p> | |
| </li> | |
| <li><p> As an experimental feature, when <code>loadNamespace()</code> fails | |
| because the requested package is not available the error is | |
| initially signaled with a <code>retry_loadNamespace</code> restart | |
| available. This allows a calling handler to try to install the | |
| package and continue. | |
| </p> | |
| </li> | |
| <li> <p><code>S3method()</code> directives in ‘<span class="file">NAMESPACE</span>’ can now | |
| also be used to perform <em>delayed</em> S3 method registration. | |
| </p> | |
| </li> | |
| <li><p> Experimentally, setting environment variable | |
| <span class="env">_R_CHECK_LENGTH_1_LOGIC2_</span> will lead to warnings (or errors | |
| if the variable is set to a ‘true’ value) when <code>&&</code> or | |
| <code>||</code> encounter and use arguments of length more than one. | |
| </p> | |
| </li> | |
| <li><p> Added <code>"lines"</code> and <code>"chars"</code> coordinate systems | |
| to <code>grconvertX()</code> and <code>grconvertY()</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>getOption()</code> is more efficient notably for the rare | |
| case when called with two arguments, from several contributors in | |
| <a href="https://bugs.R-project.org/show_bug.cgi?id=17394">PR#17394</a>. | |
| </p> | |
| </li> | |
| <li><p> In <code>.col(dim)</code> and <code>.row(dim)</code>, <code>dim</code> now may | |
| also be an integer-valued <code>"double"</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>sQuote()</code> and <code>dQuote()</code> get an explicit <code>q</code> | |
| argument with obvious default instead of using | |
| <code>getOption("fancyQuotes")</code> implicitly and unconditionally. | |
| </p> | |
| </li> | |
| <li> <p><code>unzip()</code> can list archives with comments and with | |
| spaces in file names even using an external <code>unzip</code> command. | |
| </p> | |
| </li> | |
| <li><p> Command line completion has a new setting | |
| <code>rc.settings(dots = FALSE)</code> to remove <code>...</code> from the | |
| list of possible function arguments. | |
| </p> | |
| </li> | |
| <li> <p><code>library()</code> no longer checks packages with compiled | |
| code match <span class="samp">R.version$platform</span>. <code>loadNamespace()</code> | |
| never has, and increasingly the ‘canonical name’ does not | |
| reflect the important characteristics of compiled code. | |
| </p> | |
| </li> | |
| <li><p> The primitive functions <code>drop()</code> and <code>unclass()</code> | |
| now avoid duplicating their data for atomic vectors that are large | |
| enough, by returning <code>ALTREP</code> wrapper objects with adjusted | |
| attributes. <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>-level assignments to change attributes will also | |
| use wrapper objects to avoid duplicating data for larger atomic | |
| vectors. <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> functions like <code>structure()</code> and <code>unname()</code> | |
| will therefore not duplicate data in these settings. Generic | |
| vectors as produced by <code>list()</code> are not yet covered by this | |
| optimization but may be in due course. | |
| </p> | |
| </li> | |
| <li><p> In <code>formals()</code>, <code>envir</code> becomes an optional | |
| argument instead of being hardwired. | |
| </p> | |
| </li> | |
| <li><p> Instead of signalling an error for an invalid S4 object | |
| <code>x</code>, <code>str(x)</code> now gives a warning and subsequently still | |
| shows most parts of <code>x</code>, e.g., when slots are missing. | |
| </p> | |
| </li> | |
| <li> <p><code>gamma(x)</code> and <code>lgamma(x)</code> no longer warn when | |
| correctly returning <code>Inf</code> or underflowing to zero. This | |
| helps maximum likelihood and similar computations. | |
| </p> | |
| </li> | |
| <li> <p><code>convertColor()</code> is now vectorized, so a lot faster for | |
| converting many colours at once. The new argument | |
| <code>vectorized</code> to <code>colorConverter()</code> ensures that | |
| non-vectorized colour converters still work. (Thanks to Brodie | |
| Gaslam.) | |
| </p> | |
| </li> | |
| <li> <p><code>download.file()</code> and <code>url()</code> get new argument | |
| <code>headers</code> for custom HTTP headers, e.g., allowing to perform | |
| basic http authentication, thanks to a patch contributed by Gábor | |
| Csárdi. | |
| </p> | |
| </li> | |
| <li><p> File-based connection functions <code>file()</code>, | |
| <code>gzfile()</code>, <code>bzfile()</code> and <code>xzfile()</code> now signal an | |
| error when used on a directory. | |
| </p> | |
| </li> | |
| <li><p> For <code>approx()</code>, <code>splinefun()</code> <em>etc</em>, a new | |
| setting <code>ties = c("ordered", <fun>)</code> allows skipping the | |
| sorting and still treat ties. | |
| </p> | |
| </li> | |
| <li> <p><code>format(x)</code> gives a more user friendly error message in | |
| the case where no method is defined. A minimal method is provided | |
| in <code>format.default(x)</code> when <code>isS4(x)</code> is true. | |
| </p> | |
| </li> | |
| <li> <p><code>which(x)</code> now also works when <code>x</code> is a long | |
| vector, thanks to Suharto Anggono's <a href="https://bugs.R-project.org/show_bug.cgi?id=17201">PR#17201</a>. <strong>NB</strong>: this | |
| may return a double result, breaking the previous guarantee of an | |
| integer result. | |
| </p> | |
| </li> | |
| <li> <p><code>seq.default()</code> is more careful to return an | |
| <code>integer</code> (as opposed to <code>double</code>) result when its | |
| arguments are large and/or classed objects; see comment #9 of | |
| Suharto Anggono's <a href="https://bugs.R-project.org/show_bug.cgi?id=17497">PR#17497</a>. | |
| </p> | |
| </li> | |
| <li><p> The <code>plot()</code> method for <code>lm</code> and <code>glm</code> fits, | |
| <code>plot.lm()</code>, gains a new option <code>iter.smooth</code> with a | |
| default of <code>0</code> for binomial fits, no longer down-weighting | |
| when smoothing the residuals. | |
| </p> | |
| </li> | |
| <li> <p><code>zip()</code> passes its list of files <em>via</em> standard | |
| input to the external command when too long for the command line | |
| (on some platforms). | |
| </p> | |
| </li> | |
| <li> <p><code>data()</code> gains an <code>overwrite</code> argument. | |
| </p> | |
| </li> | |
| <li> <p><code>t.test()</code> now also returns the standard error (in | |
| list component <code>stderr</code>). | |
| </p> | |
| </li> | |
| <li> <p><code>model.matrix(*, contrasts.arg = CC)</code> now warns about | |
| invalid <code>contrasts.arg</code>s. | |
| </p> | |
| </li> | |
| <li><p> Performance of <code>substr()</code> and <code>substring()</code> has been | |
| improved. | |
| </p> | |
| </li> | |
| <li> <p><code>stopifnot()</code> has been simplified thanks to Suharto | |
| Anggono's proposals to become considerably faster for cheap | |
| expressions. | |
| </p> | |
| </li> | |
| <li><p> The default ‘user agent’ has been changed when | |
| accessing <span class="samp">http://</span> and <span class="samp">https://</span> sites using | |
| <span class="samp">libcurl</span>. (A site was found which caused <span class="samp">libcurl</span> to | |
| infinite-loop with the previous default.) | |
| </p> | |
| </li> | |
| <li> <p><code>sessionInfo()</code> now also contains <code>RNGkind()</code> and | |
| prints it when it differs from the default; based on a proposal and | |
| patch by Gabe Becker in <a href="https://bugs.R-project.org/show_bug.cgi?id=17535">PR#17535</a>. | |
| Also, <code>RNGversion(getRversion())</code> works directly. | |
| </p> | |
| </li> | |
| <li> <p><code>library()</code> and <code>require()</code> now allow more control | |
| over handling search path conflicts when packages are | |
| attached. The policy is controlled by the new | |
| <code>conflicts.policy</code> option. | |
| </p> | |
| </li> | |
| <li> <p><code>barplot()</code> gets a formula method, thanks to a patch | |
| proposal by Arni Magnusson in <a href="https://bugs.R-project.org/show_bug.cgi?id=17521">PR#17521</a>. | |
| </p> | |
| </li> | |
| <li> <p><code>pmax()</code> and <code>pmin(x)</code> now also work for long | |
| vectors, thanks to Suharto Anggono's <a href="https://bugs.R-project.org/show_bug.cgi?id=17533">PR#17533</a>. | |
| </p> | |
| </li> | |
| <li> <p><code>bxp()</code> now warns when omitting duplicated arguments. | |
| </p> | |
| </li> | |
| <li><p> New <code>hcl.colors()</code> function to provide wide range of | |
| HCL-based colour palettes with much better perceptual properties | |
| than the existing RGB/HSV-based palettes like <code>rainbow()</code>. | |
| </p> | |
| <p>Also a new <code>hcl.pals()</code> function to list available palette | |
| names for <code>hcl.colors()</code>. | |
| </p> | |
| <p>Contributed by Achim Zeileis. | |
| </p> | |
| </li> | |
| <li><p> The default colours for <code>image()</code> and | |
| <code>filled.contour()</code> are now based on <code>hcl.colors()</code>. | |
| </p> | |
| </li> | |
| <li><p> The palette-generating functions <code>rainbow()</code>, | |
| <code>gray.colors()</code>, etc. get a new <code>rev</code> argument | |
| to facilitate reversing the order of colors. | |
| </p> | |
| </li> | |
| <li><p> New <code>str2lang()</code> and <code>str2expression()</code> as streamlined | |
| versions of <code>parse(text=., keep.source=FALSE)</code> allow to abstract | |
| typical call constructions, e.g., in <code>formula</code> manipulations. | |
| (Somewhat experimental) | |
| </p> | |
| </li> | |
| <li><p> Add <code>update_PACKAGES()</code> for incrementally updating a | |
| package repository index, instead of rebuilding the index from | |
| scratch. Thanks to Gabe Becker in <a href="https://bugs.R-project.org/show_bug.cgi?id=17544">PR#17544</a> for the patch, based | |
| on part of his <span class="pkg">switchr</span> package. | |
| </p> | |
| </li></ul> | |
| <h4>INSTALLATION on a UNIX-ALIKE</h4> | |
| <ul> | |
| <li><p> The options selected for the C++ compiler default to the | |
| C++11 standard if supported, otherwise to the C++98 standard. | |
| </p> | |
| </li> | |
| <li><p> Visibility macros such as <span class="samp">C_VISIBILITY</span> can now be | |
| user-set (including to empty), e.g. in ‘<span class="file">config.site</span>’. | |
| </p> | |
| </li> | |
| <li><p> Macro <span class="samp">FCLIBS</span>, which has sometimes been needed on | |
| Solaris, has been renamed to <span class="samp">FCLIBS_XTRA</span>. | |
| </p> | |
| </li> | |
| <li><p> Macro <span class="samp">F77</span> is always set to the value of <span class="samp">FC</span>, so | |
| the latter should be set to user-select the Fortran compiler for | |
| both fixed-form and free-form Fortran. In particular, | |
| <code>gfortran</code> is now the first choice for <span class="samp">F77</span>, not | |
| <code>f95</code>. | |
| </p> | |
| <p>Macros <span class="samp">FFLAGS</span> and <span class="samp">FCFLAGS</span> remain distinct to allow | |
| for a compiler which needs a flag to select free- or fixed-form | |
| Fortran (most use the source-file extension to choose: ‘<span class="file">.f</span>’ | |
| is fixed-form and ‘<span class="file">.f90</span>’ and ‘<span class="file">.f95</span>’ are free-form). | |
| </p> | |
| <p>If only one of them is set, its value is used for both. | |
| </p> | |
| </li> | |
| <li><p> The special-casing of <span class="samp">CFLAGS</span>, <span class="samp">CXXFLAGS</span> and | |
| <span class="samp">FFLAGS</span> for Intel compilers on Linux has been removed: we do | |
| not have recent experience but the generic defaults now chosen are | |
| the same as those previously special-cased for <span class="samp">x86_64</span>. | |
| </p> | |
| <p>If necessary, override the defaults on the <code>configure</code> | |
| command line or in file ‘<span class="file">config.site</span>’. | |
| </p> | |
| </li> | |
| <li><p> Long-untested <code>configure</code> support for HP-UX and very | |
| old versions of Linux has been removed. | |
| </p> | |
| </li> | |
| <li> <p><code>configure --with-blas</code> (without specifying a value) | |
| includes OpenBLAS in its search (before ATLAS and a generic | |
| BLAS). This follows recent versions of the <span class="samp">ax_blas</span> | |
| autoconf macro. | |
| </p> | |
| </li> | |
| <li><p> The <code>configure</code> macro <span class="samp">MAKEINFO</span> has been | |
| updated to <span class="samp">TEXI2ANY</span>. | |
| </p> | |
| </li> | |
| <li><p> Support for <code>make install-strip</code> has been enhanced. | |
| </p> | |
| </li></ul> | |
| <h4>PACKAGE INSTALLATION</h4> | |
| <ul> | |
| <li><p> Source package installation is by default ‘staged’: | |
| the package is installed into a temporary location under the final | |
| library directory and moved into place once the installation is | |
| complete. The benefit is that partially-installed packages are | |
| hidden from other <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> sessions. | |
| </p> | |
| <p>The overall default is set by environment variable | |
| <span class="env">R_INSTALL_STAGED</span>. <code>R CMD INSTALL</code> has new options | |
| <span class="option">--staged-install</span> and <span class="option">--no-staged-install</span>, and | |
| packages can use the <span class="samp">StagedInstall</span> field in their | |
| ‘<span class="file">DESCRIPTION</span>’ file to opt out. (That opt-out is a temporary | |
| measure which may be withdrawn in future.) | |
| </p> | |
| <p>Staged installation requires either <span class="option">--pkglock</span> or | |
| <span class="option">--lock</span>, one of which is used by default. | |
| </p> | |
| </li> | |
| <li><p> The interpretation of source code with extension ‘<span class="file">.f</span>’ | |
| is changing. Previously this denoted FORTRAN 77 code, but current | |
| compilers no longer have a FORTRAN 77 mode and interpret it as | |
| ‘fixed-form’ Fortran 90 (or later where supported) code. | |
| Extensions ‘<span class="file">.f90</span>’ and ‘<span class="file">.f95</span>’ continue to indicate | |
| ‘free-form’ Fortran code. | |
| </p> | |
| <p>Legal FORTRAN 77 code is also legal fixed-form Fortran 9x; however | |
| this change legitimizes the use of later features, in particular | |
| to replace features marked ‘obsolescent’ in Fortran 90 and | |
| ‘deleted’ in Fortran 2018 which <code>gfortran</code> 8.x and | |
| later warn about. | |
| </p> | |
| </li> | |
| <li><p> Packages containing files in the ‘<span class="file">src</span>’ directory with | |
| extensions ‘<span class="file">.f90</span>’ or ‘<span class="file">.f95</span>’ are now linked using the C | |
| or C++ compiler rather than the Fortran 9x compiler. This is | |
| consistent with fixed-form Fortran code and allows mixing of C++ | |
| and free-form Fortran on most platforms. | |
| </p> | |
| <p>Consequentially, a package which includes free-form Fortran 9x | |
| code which uses OpenMP should include <span class="samp">SHLIB_OPENMP_CFLAGS</span> | |
| (or the <span class="samp">CXXFLAGS</span> version if they also include C++ code) in | |
| <span class="samp">PKG_LIBS</span> rather than <span class="samp">SHLIB_OPENMP_FCFLAGS</span> — | |
| fortunately on almost all current platforms they are the same | |
| flag. | |
| </p> | |
| </li> | |
| <li><p> Macro <span class="samp">PKG_FFLAGS</span> will be used for the compilation of | |
| both fixed-form and free-form Fortran code unless | |
| <span class="samp">PKG_FCFLAGS</span> is also set (in ‘<span class="file">src/Makevars</span>’ or | |
| ‘<span class="file">src/Makevars.win</span>’). | |
| </p> | |
| </li> | |
| <li><p> The make macro <span class="samp">F_VISIBILITY</span> is now preferred for | |
| both fixed-form and free-form Fortran, for use in | |
| ‘<span class="file">src/Makevars</span>’ and similar. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD INSTALL</code> gains a new option <span class="option">--strip</span> | |
| which (where supported) strips installed shared object(s): this | |
| can also be achieved by setting the environment variable | |
| <span class="env">_R_SHLIB_STRIP_</span> to a true value. | |
| </p> | |
| <p>The new option <span class="option">--strip-lib</span> attempts stripping of | |
| static and shared libraries installed under ‘<span class="file">lib</span>’. | |
| </p> | |
| <p>These are most useful on platforms using GNU <code>binutils</code> (such | |
| as Linux) and compiling with <span class="option">-g</span> flags. | |
| </p> | |
| </li> | |
| <li><p> There is more support for installing UTF-8-encoded packages | |
| in a strict Latin-1 locale (and probably for other Latin locales): | |
| non-ASCII comments in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> code (and ‘<span class="file">NAMESPACE</span>’ files) are | |
| worked around better. | |
| </p> | |
| </li></ul> | |
| <h4>UTILITIES</h4> | |
| <ul> | |
| <li> <p><code>R CMD check</code> now optionally checks makefiles for | |
| correct and portable use of the <span class="samp">SHLIB_OPENMP_*FLAGS</span> macros. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> now evaluates <code>\Sexpr{}</code> | |
| expressions (including those in macros) before checking the | |
| contents of ‘<span class="file">Rd</span>’ files and so detects issues both in | |
| evaluating the expressions and in the expanded contents. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> now lists missing packages separated | |
| by commas and with regular quotes such as to be useful as argument | |
| in calling <code>install.packages(c(..))</code>; from a suggestion by | |
| Marcel Ramos. | |
| </p> | |
| </li> | |
| <li> <p><code>tools::Rd2latex()</code> now uses UTF-8 as its default | |
| output encoding. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> now checks line endings of files with | |
| extension ‘<span class="file">.hpp</span>’ and those under ‘<span class="file">inst/include</span>’. The | |
| check now includes that a non-empty file is terminated with a | |
| newline. | |
| </p> | |
| <p><code>R CMD build</code> will correct line endings in such files. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> now tries re-building all vignettes | |
| rather than stopping at the first error: whilst doing so it adds | |
| ‘bookmarks’ to the log. By default (see the ‘R | |
| Internals’ manual) it re-builds each vignette in a separate | |
| process. | |
| </p> | |
| <p>It now checks for duplicated vignette titles (also known as | |
| ‘index entries’): they are used as hyperlinks on | |
| <acronym><span class="acronym">CRAN</span></acronym> package pages and so do need to be unique. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> has more comprehensive checks on the | |
| ‘<span class="file">data</span>’ directory and the functioning of <code>data()</code> in a | |
| package. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> now checks | |
| <code>autoconf</code>-generated ‘<span class="file">configure</span>’ files have their | |
| corresponding source files, including optionally attempting to | |
| regenerate them on platforms with <code>autoreconf</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD build</code> has a new option | |
| <span class="option">--compression</span> to select the compression used for the tarball. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD build</code> now removes ‘<span class="file">src/*.mod</span>’ files on | |
| all platforms. | |
| </p> | |
| </li></ul> | |
| <h4>C-LEVEL FACILITIES</h4> | |
| <ul> | |
| <li><p> New pointer protection C functions <code>R_PreserveInMSet</code> and | |
| <code>R_ReleaseFromMSet</code> have been introduced to replace | |
| <code>UNPROTECT_PTR</code>, which is not safe to mix with <code>UNPROTECT</code> | |
| (and with <code>PROTECT_WITH_INDEX</code>). Intended for use in parsers | |
| only. | |
| </p> | |
| </li> | |
| <li> <p><code>NAMEDMAX</code> has been raised to 7 to allow further | |
| protection of intermediate results from (usually ill-advised) | |
| assignments in arguments to <code>BUILTIN</code> functions. Properly | |
| written package code should not be affected. | |
| </p> | |
| </li> | |
| <li> <p><code>R_unif_index</code> is now considered to be part of the C API. | |
| </p> | |
| </li> | |
| <li> <p><code>R_GetCurrentEnv()</code> allows C code to retrieve the current | |
| environment. | |
| </p> | |
| </li></ul> | |
| <h4>DEPRECATED AND DEFUNCT</h4> | |
| <ul> | |
| <li><p> Argument <code>compressed</code> of <code>untar()</code> is | |
| deprecated — it is only used for external <code>tar</code> commands | |
| which increasingly for extraction auto-detect compression and | |
| ignore their <span class="option">zjJ</span> flags. | |
| </p> | |
| </li> | |
| <li> <p><code>var(f)</code> and hence <code>sd(f)</code> now give an error for | |
| <code>factor</code> arguments; they gave a deprecation warning since <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> | |
| 3.2.3, <a href="https://bugs.R-project.org/show_bug.cgi?id=16564">PR#16564</a>. | |
| </p> | |
| </li> | |
| <li><p> Package <span class="pkg">tools</span>' <code>vignetteDepends()</code> has been | |
| deprecated (it called a function deprecated since Feb 2016), being | |
| partly replaced by newly exported <code>vignetteInfo()</code>. | |
| </p> | |
| </li> | |
| <li><p> The <code>f77_f2c</code> script has been removed: it | |
| no longer sufficed to compile the ‘<span class="file">.f</span>’ files in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>. | |
| </p> | |
| </li> | |
| <li><p> The deprecated legacy support of <code>make</code> macros such | |
| as <span class="samp">CXX1X</span> has been removed: use the <span class="samp">CXX11</span> forms | |
| instead. | |
| </p> | |
| </li> | |
| <li><p> Make macro <span class="samp">F77_VISIBILITY</span> is deprecated in favour of | |
| <span class="samp">F_VISIBILITY</span>. | |
| </p> | |
| </li> | |
| <li><p> Make macros <span class="samp">F77</span>, <span class="samp">FCPIFCPLAGS</span> and | |
| <span class="samp">SHLIB_OPENMP_FCFLAGS</span> are deprecated in favour of <span class="samp">FC</span>, | |
| <span class="samp">FPICFLAGS</span> and <span class="samp">SHLIB_OPENMP_FFLAGS</span> respectively. | |
| </p> | |
| </li> | |
| <li> <p><code>$.data.frame</code> had become an expensive version of | |
| the default method, so has been removed. (Thanks to Radford Neal | |
| for picking this up and to Duncan Murdoch for providing a patch.) | |
| </p> | |
| </li></ul> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li> <p><code>replayPlot(r)</code> now also works in the same <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> session | |
| when <code>r</code> has been “reproduced” from serialization, | |
| typically after saving to and reading from an RDS file. | |
| </p> | |
| </li> | |
| <li> <p><code>substr()</code> and <code>substring()</code> now signal an error | |
| when the input is invalid UTF-8. | |
| </p> | |
| </li> | |
| <li> <p><code>file.copy()</code> now works also when its argument <code>to</code> | |
| is of length greater than one. | |
| </p> | |
| </li> | |
| <li> <p><code>mantelhaen.test()</code> no longer suffers from integer | |
| overflow in largish cases, thanks to Ben Bolker's <a href="https://bugs.R-project.org/show_bug.cgi?id=17383">PR#17383</a>. | |
| </p> | |
| </li> | |
| <li><p> Calling <code>setGeneric("foo")</code> in a package no longer | |
| fails when the enclosing environment of the implicit generic | |
| <code>foo()</code> is <code>.GlobalEnv</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>untar(file("<some>.tar.gz"), *)</code> now gives a better | |
| error message, suggesting to use <code>gzfile()</code> instead. | |
| </p> | |
| </li> | |
| <li><p> Method dispatch uses more relevant environments when looking | |
| up class definitions. | |
| </p> | |
| </li> | |
| <li><p> The documentation for <code>identify()</code> incorrectly claimed | |
| that the indices of identified points were returned in the order | |
| that the points were selected. <code>identify()</code> now has a new | |
| argument <code>order</code> to allow the return value to include the | |
| order in which points were identified; the documentation has been | |
| updated. Reported by Richard Rowe and Samuel Granjeaud. | |
| </p> | |
| </li> | |
| <li> <p><code>order(...., decreasing=c(TRUE, FALSE))</code> could fail in | |
| some cases. Reported from StackOverflow via Karl Nordström. | |
| </p> | |
| </li> | |
| <li><p> User macros in Rd files now accept empty and multi-line | |
| arguments. | |
| </p> | |
| </li> | |
| <li><p> Changes in <code>print.*()</code>, thanks to Lionel Henry's | |
| patches in <a href="https://bugs.R-project.org/show_bug.cgi?id=17398">PR#17398</a>: | |
| </p> | |
| <ul> | |
| <li><p> Printing lists, pairlists or attributes containing calls | |
| with S3 class no longer evaluate those. | |
| </p> | |
| </li> | |
| <li><p> Printing S4 objects within lists and pairlists dispatches | |
| with <code>show()</code> rather than <code>print()</code>, as with | |
| auto-printing. | |
| </p> | |
| </li> | |
| <li><p> The indexing tags (names or <code>[[<n>]]</code>) of recursive | |
| data structures are now printed correctly in complex cases. | |
| </p> | |
| </li> | |
| <li><p> Arguments supplied to <code>print()</code> are now properly | |
| forwarded to methods when printing lists, pairlists or | |
| attributes containing S3 objects. | |
| </p> | |
| </li> | |
| <li><p> The print parameters are now preserved when printing S3 | |
| objects or deparsing symbols and calls. Previously, printing | |
| lists containing S3 objects or expressions would reset these | |
| parameters. | |
| </p> | |
| </li> | |
| <li><p> Printing lists, pairlists or attributes containing | |
| functions now uses <code>srcref</code> attributes if present. | |
| </p> | |
| </li></ul> | |
| </li> | |
| <li><p> Calling <code>install.packages()</code> with a length zero | |
| <code>pkgs</code> argument now is a no-op (<a href="https://bugs.R-project.org/show_bug.cgi?id=17422">PR#17422</a>). | |
| </p> | |
| </li> | |
| <li> <p><code>unlist(x)</code> now returns a correct <code>factor</code> when | |
| <code>x</code> is a nested list with factor leaves, fixing <a href="https://bugs.R-project.org/show_bug.cgi?id=12572">PR#12572</a> | |
| and <a href="https://bugs.R-project.org/show_bug.cgi?id=17419">PR#17419</a>. | |
| </p> | |
| </li> | |
| <li><p> The documentation <code>help(family)</code> gives more details | |
| about the <code>aic</code> component, thanks to Ben Bolker's prompting. | |
| </p> | |
| </li> | |
| <li><p> The documentation for <code>attributes</code> and | |
| <code>`attributes<-`</code> now gives <code>x</code> as name of the first and | |
| main argument which the implementation has been requiring, fixing | |
| <a href="https://bugs.R-project.org/show_bug.cgi?id=17434">PR#17434</a>. For consistency, the first argument name is also | |
| changed from <code>obj</code> to <code>x</code> for <code>`mostattributes<-`</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>strwidth()</code> now uses <code>par("font")</code> as default | |
| font face (<a href="https://bugs.R-project.org/show_bug.cgi?id=17352">PR#17352</a>). | |
| </p> | |
| </li> | |
| <li> <p><code>plot(<table>, log="x")</code> no longer warns about <code>log</code>. | |
| </p> | |
| </li> | |
| <li><p> The <code>print()</code> method for <code>"htest"</code> objects now | |
| formats the test statistic and parameter directly and hence no | |
| longer rounds to units <em>before</em> the decimal point. Consequently, | |
| printing of <code>t.test()</code> results with a small number of digits | |
| now shows non-large <code>df</code>'s to the full precision (<a href="https://bugs.R-project.org/show_bug.cgi?id=17444">PR#17444</a>). | |
| </p> | |
| </li> | |
| <li> <p><code>kruskal.test()</code> and <code>fligner.test()</code> no longer | |
| erroneously insist on numeric <code>g</code> group arguments (<a href="https://bugs.R-project.org/show_bug.cgi?id=16719">PR#16719</a>). | |
| </p> | |
| </li> | |
| <li><p> Printing a news db via the browser now does a much better | |
| job (<a href="https://bugs.R-project.org/show_bug.cgi?id=17433">PR#17433</a>). | |
| </p> | |
| </li> | |
| <li> <p><code>print.aov()</code> missed column names in the multivariate case | |
| due to misspelling (reported by Chris Andrews). | |
| </p> | |
| </li> | |
| <li> <p><code>axis()</code> now creates valid <code>at</code> locations also for | |
| small subnormal number ranges in log scale plots. | |
| </p> | |
| </li> | |
| <li> <p><code>format.POSIXlt()</code> now also recycles the <code>zone</code> | |
| and <code>gmtoff</code> list components to full length when needed, | |
| and its internal C code detects <code>have_zone</code> in more cases. | |
| In some cases, this changes its output to become compatible with | |
| <code>format.POSIXct()</code>. | |
| </p> | |
| </li> | |
| <li><p> On Windows, <code>detectCores()</code> in package <span class="pkg">parallel</span> | |
| now detects processors in all processor groups, not just the group | |
| <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> is running in (impacts particularly systems with more than 64 | |
| logical processors). Reported by Arunkumar Srinivasan. | |
| </p> | |
| </li> | |
| <li><p> On Windows, <code>socketSelect()</code> would hang with more than | |
| 64 sockets, and hence <code>parallel::clusterApplyLB()</code> would hang | |
| with more than 64 workers. Reported by Arunkumar Srinivasan. | |
| </p> | |
| </li> | |
| <li> <p><code>as(1L, "double")</code> now does coerce (<a href="https://bugs.R-project.org/show_bug.cgi?id=17457">PR#17457</a>). | |
| </p> | |
| </li> | |
| <li> <p><code>lm.influence()</code>, <code>influence.measures()</code>, | |
| <code>rstudent()</code> etc now work (more) correctly for multivariate | |
| models (<code>"mlm"</code>), thanks to (anonymous) stackoverflow remarks. | |
| </p> | |
| </li> | |
| <li> <p><code>sample.int(2.9, *, replace=TRUE)</code> again behaves as | |
| documented and as in R < 3.0.0, namely identically to | |
| <code>sample.int(2, ..)</code>. | |
| </p> | |
| </li> | |
| <li><p> Fixes to <code>convertColor()</code> for chromatic adaptation; | |
| thanks to Brodie Gaslam <a href="https://bugs.R-project.org/show_bug.cgi?id=17473">PR#17473</a>. | |
| </p> | |
| </li> | |
| <li><p> Using <code>\Sexpr[stage=install]{..}</code> to create an | |
| ‘<span class="file">Rd</span>’ section no longer gives a warning in <code>R CMD | |
| check</code>; problem originally posted by Gábor Csárdi, then reported | |
| as <a href="https://bugs.R-project.org/show_bug.cgi?id=17479">PR#17479</a> with a partial patch by Duncan Murdoch. | |
| </p> | |
| </li> | |
| <li><p> Parse data now include a special node for equal assignment. | |
| </p> | |
| </li> | |
| <li> <p><code>split.default()</code> no longer relies on <code>[[<-()</code>, so | |
| it behaves as expected when splitting an object by a factor with | |
| the empty string as one of its levels. Thanks to Brad Friedman for | |
| the report. | |
| </p> | |
| </li> | |
| <li><p> Line numbers in messages about ‘<span class="file">.Rd</span>’ files are now more | |
| reliable, thanks to a patch from Duncan Murdoch. | |
| </p> | |
| </li> | |
| <li><p> In the <code>numeric</code> method for <code>all.equal()</code>, a | |
| numeric <code>scale</code> argument is now checked to be positive and | |
| allowed to be of length > 1. (The latter worked originally and | |
| with a warning in recent years). | |
| </p> | |
| </li> | |
| <li><p> Deferred string conversions now record the <code>OutDec</code> | |
| option setting when not equal to the default. Reported by Michael | |
| Sannella. | |
| </p> | |
| </li> | |
| <li><p> When <code>y</code> is numeric and <code>f</code> a <code>factor</code>, | |
| <code>plot(y ~ f)</code> nicely uses "y" and "f" as y- and x-labels. | |
| The more direct <code>boxplot(y ~ f)</code> now does too. The new | |
| argument <code>ann = FALSE</code> may be used to suppress these. | |
| </p> | |
| </li> | |
| <li><p> Subassignment to no/empty rows of a data frame is more | |
| consistent and typically a no-op in all cases instead of sometimes | |
| an error; part of Emil Bode's <a href="https://bugs.R-project.org/show_bug.cgi?id=17483">PR#17483</a>. | |
| </p> | |
| </li> | |
| <li><p> Calls like <code>formatC(*, zero.print = "< 0.001")</code> no | |
| longer give an error and are further improved via new optional | |
| argument <code>replace.zero</code>. Reported by David Hugh-Jones. | |
| </p> | |
| </li> | |
| <li> <p><code>methods::formalArgs("<fn>")</code> now finds the same | |
| function as <code>formals("<fn>")</code>, fixing Emil Bode's <a href="https://bugs.R-project.org/show_bug.cgi?id=17499">PR#17499</a>. | |
| </p> | |
| </li> | |
| <li><p> The <span class="pkg">methods</span> package better handles duplicated class | |
| names across packages. | |
| </p> | |
| </li> | |
| <li><p> The default method of <code>seq()</code> now avoids integer | |
| overflow, thanks to the report and "cumsum" patch of Suharto | |
| Anggono's <a href="https://bugs.R-project.org/show_bug.cgi?id=17497">PR#17497</a>. | |
| </p> | |
| </li> | |
| <li> <p><code>sub()</code> no longer loses encodings for non-ASCII | |
| replacements (<a href="https://bugs.R-project.org/show_bug.cgi?id=17509">PR#17509</a>). | |
| </p> | |
| </li> | |
| <li><p> Fix for rotated raster image on X11 device. (Partial | |
| fix for <a href="https://bugs.R-project.org/show_bug.cgi?id=17148">PR#17148</a>; thanks to Mikko Korpela). | |
| </p> | |
| </li> | |
| <li> <p><code>formula(model.frame(frml, ..))</code> now returns <code>frml</code> | |
| in all cases, thanks to Bill Dunlap. The previous behavior is | |
| available as <code>DF2formula(<model.frame>)</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>ar.ols()</code> also returns scalar <code>var.pred</code> in | |
| univariate case (<a href="https://bugs.R-project.org/show_bug.cgi?id=17517">PR#17517</a>). | |
| </p> | |
| </li> | |
| <li> <p><code>normalizePath()</code> now treats <code>NA</code> path as non-existent | |
| and normalizes it to <code>NA</code>. <code>file.access()</code> treats <code>NA</code> | |
| file name as non-existent. <code>file.edit()</code> and connection | |
| functions such as <code>file()</code> now treat <code>NA</code> file names as | |
| errors. | |
| </p> | |
| </li> | |
| <li><p> The internal <code>regularize.values()</code> auxiliary of | |
| <code>approx()</code>, <code>splinefun()</code> etc now warns again when there | |
| are ties and the caller did not specify <code>ties</code>. Further, it no | |
| longer duplicates <code>x</code> and <code>y</code> unnecessarily when <code>x</code> | |
| is already sorted (<a href="https://bugs.R-project.org/show_bug.cgi?id=17515">PR#17515</a>). | |
| </p> | |
| </li> | |
| <li> <p><code>strtoi("", base)</code> now gives <code>NA</code> on all platforms, | |
| following its documentation. Reported by Michael Chirico. | |
| </p> | |
| </li> | |
| <li><p> In the definition of an S4 class, prototype elements are | |
| checked against the slots of the class, with giving a prototype | |
| for an undefined slot now being an error. (Reported by Bill | |
| Dunlap.) | |
| </p> | |
| </li> | |
| <li><p> From <code>setClassUnion()</code>, if environment variable | |
| <span class="env">_R_METHODS_SHOW_CHECKSUBCLASSES</span> is set | |
| to true, the internal <code>.checkSubclasses()</code> utility prints | |
| debugging info to see where it is used. | |
| </p> | |
| </li> | |
| <li> <p><code>max.col(m)</code> with an <code>m</code> of zero columns now | |
| returns integer <code>NA</code> (instead of <code>1</code>). | |
| </p> | |
| </li> | |
| <li> <p><code>axTicks()</code> no longer returns small “almost zero” | |
| numbers (in exponential format) instead of zero, fixing Ilario | |
| Gelmetti's <a href="https://bugs.R-project.org/show_bug.cgi?id=17534">PR#17534</a>. | |
| </p> | |
| </li> | |
| <li> <p><code>isSymmetric(matrix(0, dimnames=list("A","b")))</code> is | |
| <code>FALSE</code> again, as always documented. | |
| </p> | |
| </li> | |
| <li><p> The <code>cairo_pdf</code> graphics device (and other Cairo-based | |
| devices) now clip correctly to the right and bottom border. | |
| </p> | |
| <p>There was an off-by-one-pixel bug, reported by Lee Kelvin. | |
| </p> | |
| </li> | |
| <li> <p><code>as.roman(3) <= 2:4</code> and all other comparisons now work, | |
| as do group <code>"Summary"</code> function calls such as | |
| <code>max(as.roman(sample(20)))</code> and <code>as.roman(NA)</code>. | |
| (Partly reported by Bill Dunlap in <a href="https://bugs.R-project.org/show_bug.cgi?id=17542">PR#17542</a>.) | |
| </p> | |
| </li> | |
| <li> <p><code>reformulate("x", response = "sin(y)")</code> no longer produces | |
| extra back quotes, <a href="https://bugs.R-project.org/show_bug.cgi?id=17359">PR#17359</a>, and gains new optional argument | |
| <code>env</code>. | |
| </p> | |
| </li> | |
| <li><p> When reading console input from ‘<span class="file">stdin</span>’ with re-encoding | |
| (<code>R --encoding=enc < input</code>) the code on a Unix-alike now | |
| ensures that each converted input line is terminated with a | |
| newline even if re-encoding fails. | |
| </p> | |
| </li> | |
| <li> <p><code>as.matrix.data.frame()</code> now produces better strings from | |
| logicals, thanks to <a href="https://bugs.R-project.org/show_bug.cgi?id=17548">PR#17548</a> from Gabe Becker. | |
| </p> | |
| </li> | |
| <li><p> The S4 generic signature of <code>rowSums()</code>, | |
| <code>rowMeans()</code>, <code>colSums()</code> and <code>colMeans()</code> is | |
| restricted to <code>"x"</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>match(x, tab)</code> now works for long <em>character</em> | |
| vectors <code>x</code>, thanks to <a href="https://bugs.R-project.org/show_bug.cgi?id=17552">PR#17552</a> by Andreas Kersting. | |
| </p> | |
| </li> | |
| <li><p> Class unions are unloaded when their namespace is | |
| unloaded (<a href="https://bugs.R-project.org/show_bug.cgi?id=17531">PR#17531</a>, adapted from a patch by Brodie Gaslam). | |
| </p> | |
| </li> | |
| <li> <p><code>selectMethod()</code> is robust to ANY-truncation of method | |
| signatures (thanks to Herve Pages for the report). | |
| </p> | |
| </li></ul> | |
| <h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.5.3</h3> | |
| <h4>INSTALLATION on a UNIX-ALIKE</h4> | |
| <ul> | |
| <li><p> Detection of flags for C++98/11/14/17 has been improved: in | |
| particular if CXX??STD is set, it is tried first with no | |
| additional flags. | |
| </p> | |
| </li></ul> | |
| <h4>PACKAGE INSTALLATION</h4> | |
| <ul> | |
| <li><p> New macro <span class="samp">F_VISIBILITY</span> as an alternative to | |
| <span class="samp">F77_VISIBILITY</span>. This will become the preferred form in | |
| <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.6.0. | |
| </p> | |
| </li></ul> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li> <p><code>writeLines(readLines(fnam), fnam)</code> now works as expected, | |
| thanks to Peter Meissner's <a href="https://bugs.R-project.org/show_bug.cgi?id=17528">PR#17528</a>. | |
| </p> | |
| </li> | |
| <li> <p><code>setClassUnion()</code> no longer warns, but uses <code>message()</code> | |
| for now, when encountering “non local” subclasses of class members. | |
| </p> | |
| </li> | |
| <li> <p><code>stopifnot(exprs = T)</code> no longer fails. | |
| </p> | |
| </li></ul> | |
| <h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.5.2</h3> | |
| <h4>PACKAGE INSTALLATION</h4> | |
| <ul> | |
| <li><p> New macro <span class="samp">CXX_VISIBILITY</span> analogous to | |
| <span class="samp">C_VISIBILITY</span> (which several packages have been misusing for | |
| C++ code) for the default C++ compiler (but not necessarily one used | |
| for non-default C++ dialects like C++14). | |
| </p> | |
| </li></ul> | |
| <h4>TESTING</h4> | |
| <ul> | |
| <li><p> The random number generator tests in | |
| ‘<span class="file">tests/p-r-random-tests.R</span>’ no longer fail occasionally as | |
| they now randomly sample from “certified” random seeds. | |
| </p> | |
| </li></ul> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li><p> The <code>"glm"</code> method of <code>drop1()</code> miscalculated the | |
| score test (<code>test="Rao"</code>) when the model contained an offset. | |
| </p> | |
| </li> | |
| <li><p> Linear multiple empty models such as <code>lm(y ~ 0)</code> | |
| now have a correctly dimensioned empty coefficient matrix; | |
| reported by Brett Presnell. | |
| </p> | |
| </li> | |
| <li> <p><code>vcov(<empty mlm>)</code> and hence <code>confint()</code> now | |
| work (via a consistency change in <code>summary.lm()</code>). | |
| </p> | |
| </li> | |
| <li> <p><code>confint(<multiple lm()>)</code> now works correctly; | |
| reported on R-devel by Steven Pav. | |
| </p> | |
| </li> | |
| <li> <p><code>quade.test()</code> now also works correctly when its | |
| arguments are not yet sorted along <code>groups</code>, fixing <a href="https://bugs.R-project.org/show_bug.cgi?id=15842">PR#15842</a>. | |
| </p> | |
| </li> | |
| <li><p> Installation on a Unix-alike tries harder to link to the | |
| <span class="samp">pthread</span> library where required (rather than relying on | |
| OpenMP to provide it: configuring with <span class="option">--disable-openmp</span> | |
| was failing on some Linux systems). | |
| </p> | |
| </li> | |
| <li><p> The <code>data.frame</code> method for <code>print(x)</code> is fast now | |
| also for large data frames <code>x</code> and got an optional argument | |
| <code>max</code>, thanks to suggestions by Juan Telleria. | |
| </p> | |
| </li> | |
| <li> <p><code>hist()</code> no longer integer overflows in very rare | |
| cases, fixing <a href="https://bugs.R-project.org/show_bug.cgi?id=17450">PR#17450</a>. | |
| </p> | |
| </li> | |
| <li> <p><code>untar()</code> ignored a character <code>compressed</code> | |
| argument: however many external <code>tar</code> programs ignore | |
| the flags which should have been set and automagically choose the | |
| compression type, and if appropriate <code>gzip</code> or | |
| <code>bzip2</code> compression would have been chosen from the magic | |
| header of the tarball. | |
| </p> | |
| </li> | |
| <li> <p><code>zapsmall(x)</code> now works for more “number-like” objects. | |
| </p> | |
| </li> | |
| <li><p> The tools-internal function called from <code>R CMD | |
| INSTALL</code> now gets a <code>warnOption = 1</code> argument and only sets | |
| <code>options(warn = warnOption)</code> when that increases the warning | |
| level (<a href="https://bugs.R-project.org/show_bug.cgi?id=17453">PR#17453</a>). | |
| </p> | |
| </li> | |
| <li><p> Analogously, the tools-internal function called from <code>R CMD | |
| check</code> gets a <code>warnOption = 1</code> argument and uses the larger | |
| of that and <code>getOption("warn")</code>, also allowing to be run with | |
| increased warning level. | |
| </p> | |
| </li> | |
| <li><p> Parse data now have deterministic parent nodes (<a href="https://bugs.R-project.org/show_bug.cgi?id=16041">PR#16041</a>). | |
| </p> | |
| </li> | |
| <li><p> Calling <code>match()</code> with length one <code>x</code> and POSIXlt | |
| <code>table</code> gave a segfault (<a href="https://bugs.R-project.org/show_bug.cgi?id=17459">PR#17459</a>). | |
| </p> | |
| </li> | |
| <li><p> Fork clusters could hang due to a race condition in cluster | |
| initialization (<code>makeCluster()</code>). | |
| </p> | |
| </li> | |
| <li> <p><code>nextn(n)</code> now also works for larger <code>n</code> and no | |
| longer loops infinitely for e.g, <code>n <- 214e7</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>cooks.distance()</code> and <code>rstandard()</code> now work | |
| correctly for multiple linear models (<code>"mlm"</code>). | |
| </p> | |
| </li> | |
| <li> <p><code>polym()</code> and corresponding <code>lm()</code> prediction now | |
| also work for a boundary "vector" case fixing <a href="https://bugs.R-project.org/show_bug.cgi?id=17474">PR#17474</a>, | |
| reported by Alexandre Courtiol. | |
| </p> | |
| </li> | |
| <li><p> With a very large number of variables <code>terms()</code> could | |
| segfault (<a href="https://bugs.R-project.org/show_bug.cgi?id=17480">PR#17480</a>). | |
| </p> | |
| </li> | |
| <li> <p><code>cut(rep(0, 7))</code> now works, thanks to Joey Reid and | |
| Benjamin Tyner (<a href="https://bugs.R-project.org/show_bug.cgi?id=16802">PR#16802</a>). | |
| </p> | |
| </li> | |
| <li> <p><code>download.file(*, method = "curl", cacheOK = FALSE)</code> | |
| should work now on Windows, thanks to Kevin Ushey's patch in | |
| <a href="https://bugs.R-project.org/show_bug.cgi?id=17323">PR#17323</a>. | |
| </p> | |
| </li> | |
| <li> <p><code>duplicated(<dataframe with 'f'>)</code> now works, too, | |
| thanks to Andreas Kersting's <a href="https://bugs.R-project.org/show_bug.cgi?id=17485">PR#17485</a>; ditto for | |
| <code>anyDuplicated()</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>legend(*, cex = 1:2)</code> now works less badly. | |
| </p> | |
| </li> | |
| <li><p> The <code>print()</code> method for <code>POSIXct</code> and | |
| <code>POSIXlt</code> now correctly obeys <code>getOption("max.print")</code>, | |
| fixing a long-standing typo, and it also gets a corresponding | |
| optional <code>max</code> argument. | |
| </p> | |
| </li> | |
| <li><p> Unserialization of raw vectors serialized in ASCII | |
| representation now works correctly. | |
| </p> | |
| </li> | |
| <li> <p><code><data frame>[TRUE, <new>] <- list(c1, c2)</code> now works | |
| correctly, thanks to Suharto Anggono's <a href="https://bugs.R-project.org/show_bug.cgi?id=15362">PR#15362</a> and Emil Bode's | |
| patch in <a href="https://bugs.R-project.org/show_bug.cgi?id=17504">PR#17504</a>. | |
| </p> | |
| </li> | |
| <li> <p><code>seq.int(*, by=by, length=n)</code> no longer wrongly | |
| “drops fractional parts” when <code>by</code> is integer, thanks | |
| to Suharto Anggono's report <a href="https://bugs.R-project.org/show_bug.cgi?id=17506">PR#17506</a>. | |
| </p> | |
| </li> | |
| <li><p> Buffering is disabled for <code>file()</code> connections to | |
| non-regular files (like sockets), as well as <code>fifo()</code> and | |
| <code>pipe()</code> connections. Fixes <a href="https://bugs.R-project.org/show_bug.cgi?id=17470">PR#17470</a>, reported by Chris | |
| Culnane. | |
| </p> | |
| </li></ul> | |
| <h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.5.1</h3> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li> <p><code>file("stdin")</code> is no longer considered seekable. | |
| </p> | |
| </li> | |
| <li> <p><code>dput()</code> and <code>dump()</code> are no longer truncating | |
| when <code>options(deparse.max.lines = *)</code> is set. | |
| </p> | |
| </li> | |
| <li><p> Calls with an S3 class are no longer evaluated when printed, | |
| fixing part of <a href="https://bugs.R-project.org/show_bug.cgi?id=17398">PR#17398</a>, thanks to a patch from Lionel Henry. | |
| </p> | |
| </li> | |
| <li><p> Allow <code>file</code> argument of <code>Rscript</code> to include space | |
| even when it is first on the command line. | |
| </p> | |
| </li> | |
| <li> <p><code>callNextMethod()</code> uses the generic from the | |
| environment of the calling method. Reported by Hervé Pagès with | |
| well documented examples. | |
| </p> | |
| </li> | |
| <li><p> Compressed file connections are marked as blocking. | |
| </p> | |
| </li> | |
| <li> <p><code>optim(*, lower = c(-Inf, -Inf))</code> no longer warns (and | |
| switches the method), thanks to a suggestion by John Nash. | |
| </p> | |
| </li> | |
| <li> <p><code>predict(fm, newdata)</code> is now correct also for models | |
| where the formula has terms such as <code>splines::ns(..)</code> or | |
| <code>stats::poly(..)</code>, fixing <a href="https://bugs.R-project.org/show_bug.cgi?id=17414">PR#17414</a>, based on a patch from | |
| Duncan Murdoch. | |
| </p> | |
| </li> | |
| <li> <p><code>simulate.lm(glm(*, gaussian(link = <non-default>)))</code> | |
| has been corrected, fixing <a href="https://bugs.R-project.org/show_bug.cgi?id=17415">PR#17415</a> thanks to Alex Courtiol. | |
| </p> | |
| </li> | |
| <li> <p><code>unlist(x)</code> no longer fails in some cases of nested | |
| empty lists. Reported by Steven Nydick. | |
| </p> | |
| </li> | |
| <li> <p><code>qr.coef(qr(<all 0, w/ colnames>))</code> now works. | |
| Reported by Kun Ren. | |
| </p> | |
| </li> | |
| <li><p> The radix sort is robust to vectors with >1 billion elements | |
| (but long vectors are still unsupported). Thanks to Matt Dowle for | |
| the fix. | |
| </p> | |
| </li> | |
| <li><p> Terminal connections (e.g., stdin) are no longer | |
| buffered. Fixes <a href="https://bugs.R-project.org/show_bug.cgi?id=17432">PR#17432</a>. | |
| </p> | |
| </li> | |
| <li> <p><code>deparse(x)</code>, <code>dput(x)</code> and <code>dump()</code> now | |
| respect <code>c()</code>'s argument names <code>recursive</code> and | |
| <code>use.names</code>, e.g., for <code>x <- setNames(0, "recursive")</code>, | |
| thanks to Suharto Anggono's <a href="https://bugs.R-project.org/show_bug.cgi?id=17427">PR#17427</a>. | |
| </p> | |
| </li> | |
| <li><p> Unbuffered connections now work with encoding conversion. | |
| Reported by Stephen Berman. | |
| </p> | |
| </li> | |
| <li> <p>‘<span class="file">.Renviron</span>’ on Windows with <code>Rgui</code> is again by | |
| default searched for in user documents directory when invoked | |
| <em>via</em> the launcher icon. Reported by Jeroen Ooms. | |
| </p> | |
| </li> | |
| <li> <p><code>printCoefmat()</code> now also works with explicit | |
| <code>right=TRUE</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>print.noquote()</code> now also works with explicit | |
| <code>quote=FALSE</code>. | |
| </p> | |
| </li> | |
| <li><p> The default method for <code>pairs(.., horInd=*, verInd=*)</code> | |
| now gets the correct order, thanks to reports by Chris Andrews and | |
| Gerrit Eichner. Additionally, when <code>horInd</code> or <code>verInd</code> | |
| contain only a subset of variables, all the axes are labeled | |
| correctly now. | |
| </p> | |
| </li> | |
| <li> <p><code>agrep("..|..", .., fixed=FALSE)</code> now matches when it | |
| should, thanks to a reminder by Andreas Kolter. | |
| </p> | |
| </li> | |
| <li> <p><code>str(ch)</code> now works for more invalid multibyte strings. | |
| </p> | |
| </li></ul> | |
| <h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.5.0</h3> | |
| <h4>SIGNIFICANT USER-VISIBLE CHANGES</h4> | |
| <ul> | |
| <li><p> All packages are by default byte-compiled on installation. | |
| This makes the installed packages larger (usually marginally so) | |
| and may affect the format of messages and tracebacks (which often | |
| exclude <code>.Call</code> and similar). | |
| </p> | |
| </li></ul> | |
| <h4>NEW FEATURES</h4> | |
| <ul> | |
| <li> <p><code>factor()</code> now uses <code>order()</code> to sort its levels, | |
| rather than <code>sort.list()</code>. This allows <code>factor()</code> to | |
| support custom vector-like objects if methods for the appropriate | |
| generics are defined. It has the side effect of making | |
| <code>factor()</code> succeed on empty or length-one non-atomic | |
| vector(-like) types (e.g., <code>"list"</code>), where it failed before. | |
| </p> | |
| </li> | |
| <li> <p><code>diag()</code> gets an optional <code>names</code> argument: this | |
| may require updates to packages defining S4 methods for it. | |
| </p> | |
| </li> | |
| <li> <p><code>chooseCRANmirror()</code> and <code>chooseBioCmirror()</code> no | |
| longer have a <code>useHTTPS</code> argument, not needed now all <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> | |
| builds support <span class="samp">https://</span> downloads. | |
| </p> | |
| </li> | |
| <li><p> New <code>summary()</code> method for <code>warnings()</code> with a | |
| (somewhat experimental) <code>print()</code> method. | |
| </p> | |
| </li> | |
| <li><p> (<span class="pkg">methods</span> package.) <code>.self</code> is now automatically | |
| registered as a global variable when registering a reference class | |
| method. | |
| </p> | |
| </li> | |
| <li> <p><code>tempdir(check = TRUE)</code> recreates the <code>tempdir()</code> | |
| directory if it is no longer valid (e.g. because some | |
| other process has cleaned up the ‘<span class="file">/tmp</span>’ directory). | |
| </p> | |
| </li> | |
| <li><p> New <code>askYesNo()</code> function and <code>"askYesNo"</code> option | |
| to ask the user binary response questions in a customizable but | |
| consistent way. (Suggestion of <a href="https://bugs.R-project.org/show_bug.cgi?id=17242">PR#17242</a>.) | |
| </p> | |
| </li> | |
| <li><p> New low level utilities <code>...elt(n)</code> and <code>...length()</code> | |
| for working with <code>...</code> parts inside a function. | |
| </p> | |
| </li> | |
| <li> <p><code>isTRUE()</code> is more tolerant and now true | |
| in </p> | |
| <pre> x <- rlnorm(99) | |
| isTRUE(median(x) == quantile(x)["50%"])</pre> | |
| <p>New function <code>isFALSE()</code> defined analogously to <code>isTRUE()</code>. | |
| </p> | |
| </li> | |
| <li><p> The default symbol table size has been increased from 4119 | |
| to 49157; this may improve the performance of symbol resolution | |
| when many packages are loaded. (Suggested by Jim Hester.) | |
| </p> | |
| </li> | |
| <li> <p><code>line()</code> gets a new option <code>iter = 1</code>. | |
| </p> | |
| </li> | |
| <li><p> Reading from connections in text mode is buffered, | |
| significantly improving the performance of <code>readLines()</code>, as | |
| well as <code>scan()</code> and <code>read.table()</code>, at least when | |
| specifying <code>colClasses</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>order()</code> is smarter about picking a default sort | |
| <code>method</code> when its arguments are objects. | |
| </p> | |
| </li> | |
| <li> <p><code>available.packages()</code> has two new arguments which | |
| control if the values from the per-session repository cache are | |
| used (default true, as before) and if so how old cached values can | |
| be used (default one hour). | |
| </p> | |
| <p>These arguments can be passed from <code>install.packages()</code>, | |
| <code>update.packages()</code> and functions calling that: to enable | |
| this <code>available.packages()</code>, <code>packageStatus()</code> and | |
| <code>download.file()</code> gain a <code>...</code> argument. | |
| </p> | |
| </li> | |
| <li> <p><code>packageStatus()</code>'s <code>upgrade()</code> method no longer | |
| ignores its <code>...</code> argument but passes it to | |
| <code>install.packages()</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>installed.packages()</code> gains a <code>...</code> argument to | |
| allow arguments (including <code>noCache</code>) to be passed from | |
| <code>new.packages()</code>, <code>old.packages()</code>, | |
| <code>update.packages()</code> and <code>packageStatus()</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>factor(x, levels, labels)</code> now allows duplicated | |
| <code>labels</code> (not duplicated <code>levels</code>!). Hence you can map | |
| different values of <code>x</code> to the same level directly. | |
| </p> | |
| </li> | |
| <li><p> Attempting to use <code>names<-()</code> on an S4 derivative of a | |
| basic type no longer emits a warning. | |
| </p> | |
| </li> | |
| <li><p> The <code>list</code> method of <code>within()</code> gains an option | |
| <code>keepAttrs = FALSE</code> for some speed-up. | |
| </p> | |
| </li> | |
| <li> <p><code>system()</code> and <code>system2()</code> now allow the | |
| specification of a maximum elapsed time (‘timeout’). | |
| </p> | |
| </li> | |
| <li> <p><code>debug()</code> supports debugging of methods on any object | |
| of S4 class <code>"genericFunction"</code>, including group generics. | |
| </p> | |
| </li> | |
| <li><p> Attempting to increase the length of a variable containing | |
| <code>NULL</code> using <code>length()<-</code> still has no effect on the | |
| target variable, but now triggers a warning. | |
| </p> | |
| </li> | |
| <li> <p><code>type.convert()</code> becomes a generic function, with | |
| additional methods that operate recursively over list and | |
| <code>data.frame</code> objects. Courtesy of Arni Magnusson | |
| (<a href="https://bugs.R-project.org/show_bug.cgi?id=17269">PR#17269</a>). | |
| </p> | |
| </li> | |
| <li> <p><code>lower.tri(x)</code> and <code>upper.tri(x)</code> only needing | |
| <code>dim(x)</code> now work via new functions <code>.row()</code> and | |
| <code>.col()</code>, so no longer call <code>as.matrix()</code> by default in | |
| order to work efficiently for all kind of matrix-like objects. | |
| </p> | |
| </li> | |
| <li> <p><code>print()</code> methods for <code>"xgettext"</code> and | |
| <code>"xngettext"</code> now use <code>encodeString()</code> which keeps, | |
| e.g. <code>"\n"</code>, visible. (Wish of <a href="https://bugs.R-project.org/show_bug.cgi?id=17298">PR#17298</a>.) | |
| </p> | |
| </li> | |
| <li> <p><code>package.skeleton()</code> gains an optional <code>encoding</code> | |
| argument. | |
| </p> | |
| </li> | |
| <li> <p><code>approx()</code>, <code>spline()</code>, <code>splinefun()</code> and | |
| <code>approxfun()</code> also work for long vectors. | |
| </p> | |
| </li> | |
| <li> <p><code>deparse()</code> and <code>dump()</code> are more useful for S4 | |
| objects, <code>dput()</code> now using the same internal C code instead | |
| of its previous imperfect workaround R code. S4 objects now | |
| typically deparse perfectly, i.e., can be recreated identically | |
| from deparsed code. | |
| </p> | |
| <p><code>dput()</code>, <code>deparse()</code> and <code>dump()</code> now print the | |
| <code>names()</code> information only once, using the more readable | |
| <code>(tag = value)</code> syntax, notably for <code>list()</code>s, i.e., | |
| including data frames. | |
| </p> | |
| <p>These functions gain a new control option <code>"niceNames"</code> (see | |
| <code>.deparseOpts()</code>), which when set (as by default) also uses | |
| the <code>(tag = value)</code> syntax for atomic vectors. On the other | |
| hand, without deparse options <code>"showAttributes"</code> and | |
| <code>"niceNames"</code>, names are no longer shown also for lists. | |
| <code>as.character(list( c (one = 1)))</code> now includes the name, as | |
| <code>as.character(list(list(one = 1)))</code> has always done. | |
| </p> | |
| <p><code>m:n</code> now also deparses nicely when <i>m > n</i>. | |
| </p> | |
| <p>The <code>"quoteExpressions"</code> option, also part of <code>"all"</code>, | |
| no longer <code>quote()</code>s formulas as that may not re-parse | |
| identically. (<a href="https://bugs.R-project.org/show_bug.cgi?id=17378">PR#17378</a>) | |
| </p> | |
| </li> | |
| <li><p> If the option <code>setWidthOnResize</code> is set and <code>TRUE</code>, | |
| <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> run in a terminal using a recent <code>readline</code> library will | |
| set the <code>width</code> option when the terminal is | |
| resized. Suggested by Ralf Goertz. | |
| </p> | |
| </li> | |
| <li><p> If multiple <code>on.exit()</code> expressions are set using | |
| <code>add = TRUE</code> then all expressions will now be run even if one | |
| signals an error. | |
| </p> | |
| </li> | |
| <li> <p><code>mclapply()</code> gets an option <code>affinity.list</code> which | |
| allows more efficient execution with heterogeneous processors, | |
| thanks to Helena Kotthaus. | |
| </p> | |
| </li> | |
| <li><p> The <code>character</code> methods for <code>as.Date()</code> and | |
| <code>as.POSIXlt()</code> are more flexible <em>via</em> new arguments | |
| <code>tryFormats</code> and <code>optional</code>: see their help pages. | |
| </p> | |
| </li> | |
| <li> <p><code>on.exit()</code> gains an optional argument <code>after</code> | |
| with default <code>TRUE</code>. Using <code>after = FALSE</code> with | |
| <code>add = TRUE</code> adds an exit expression before any | |
| existing ones. This way the expressions are run in a first-in | |
| last-out fashion. (From Lionel Henry.) | |
| </p> | |
| </li> | |
| <li><p> On Windows, <code>file.rename()</code> internally retries the | |
| operation in case of error to attempt to recover from possible | |
| anti-virus interference. | |
| </p> | |
| </li> | |
| <li><p> Command line completion on <span class="samp">::</span> now also includes | |
| lazy-loaded data. | |
| </p> | |
| </li> | |
| <li><p> If the <span class="env">TZ</span> environment variable is set when date-time | |
| functions are first used, it is recorded as the session default | |
| and so will be used rather than the default deduced from the OS | |
| if <span class="env">TZ</span> is subsequently unset. | |
| </p> | |
| </li> | |
| <li><p> There is now a <code>[</code> method for class <code>"DLLInfoList"</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>glm()</code> and <code>glm.fit</code> get the same | |
| <code>singular.ok = TRUE</code> argument that <code>lm()</code> has had | |
| forever. As a consequence, in <code>glm(*, method = <your_own>)</code>, | |
| user specified methods need to accept a <code>singular.ok</code> | |
| argument as well. | |
| </p> | |
| </li> | |
| <li> <p><code>aspell()</code> gains a filter for Markdown (‘<span class="file">.md</span>’ and | |
| ‘<span class="file">.Rmd</span>’) files. | |
| </p> | |
| </li> | |
| <li> <p><code>intToUtf8(multiple = FALSE)</code> gains an argument to | |
| allow surrogate pairs to be interpreted. | |
| </p> | |
| </li> | |
| <li><p> The maximum number of DLLs that can be loaded into R | |
| e.g. <em>via</em> <code>dyn.load()</code> has been increased up to 614 | |
| when the OS limit on the number of open files allows. | |
| </p> | |
| </li> | |
| <li> <p><code>Sys.timezone()</code> on a Unix-alike caches the value at | |
| first use in a session: <em>inter alia</em> this means that setting | |
| <span class="env">TZ</span> later in the session affects only the <em>current</em> time | |
| zone and not the <em>system</em> one. | |
| </p> | |
| <p><code>Sys.timezone()</code> is now used to find the system timezone to | |
| pass to the code used when <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> is configured with | |
| <span class="option">--with-internal-tzcode</span>. | |
| </p> | |
| </li> | |
| <li><p> When <code>tar()</code> is used with an external command which is | |
| detected to be GNU <code>tar</code> or libarchive <code>tar</code> (aka | |
| <code>bsdtar</code>), a different command-line is generated to | |
| circumvent line-length limits in the shell. | |
| </p> | |
| </li> | |
| <li> <p><code>system(*, intern = FALSE)</code>, <code>system2()</code> (when not | |
| capturing output), <code>file.edit()</code> and <code>file.show()</code> now | |
| issue a warning when the external command cannot be executed. | |
| </p> | |
| </li> | |
| <li><p> The “default” (<code>"lm"</code> etc) methods of | |
| <code>vcov()</code> have gained new optional argument <code>complete = | |
| TRUE</code> which makes the <code>vcov()</code> methods more consistent with | |
| the <code>coef()</code> methods in the case of singular designs. The | |
| former (back-compatible) behavior is given by <code>vcov(*, | |
| complete = FALSE)</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>coef()</code> methods (for <code>lm</code> etc) also gain a | |
| <code>complete = TRUE</code> optional argument for consistency with | |
| <code>vcov()</code>. <br /> | |
| For <code>"aov"</code>, both <code>coef()</code> and <code>vcov()</code> methods | |
| remain back-compatibly consistent, using the <em>other</em> default, | |
| <code>complete = FALSE</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>attach(*, pos = 1)</code> is now an error instead of a | |
| warning. | |
| </p> | |
| </li> | |
| <li><p> New function <code>getDefaultCluster()</code> in package | |
| <span class="pkg">parallel</span> to get the default cluster set via | |
| <code>setDefaultCluster()</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>str(x)</code> for atomic objects <code>x</code> now treats both | |
| cases of <code>is.vector(x)</code> similarly, and hence much less often | |
| prints <code>"atomic"</code>. This is a slight non-back-compatible | |
| change producing typically both more informative and shorter | |
| output. | |
| </p> | |
| </li> | |
| <li> <p><code>gc()</code> gets new argument <code>full</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>write.dcf()</code> gets optional argument <code>useBytes</code>. | |
| </p> | |
| </li> | |
| <li><p> New, partly experimental <code>packageDate()</code> which tries to | |
| get a valid <code>"Date"</code> object from a package ‘<span class="file">DESCRIPTION</span>’ | |
| file, thanks to suggestions in <a href="https://bugs.R-project.org/show_bug.cgi?id=17324">PR#17324</a>. | |
| </p> | |
| </li> | |
| <li> <p><code>tools::resaveRdaFiles()</code> gains a <code>version</code> | |
| argument, for use when packages should remain compatible with | |
| earlier versions of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>. | |
| </p> | |
| </li> | |
| <li> <p><code>ar.yw(x)</code> and hence by default <code>ar(x)</code> now work | |
| when <code>x</code> has <code>NA</code>s, mostly thanks to a patch by Pavel | |
| Krivitsky in <a href="https://bugs.R-project.org/show_bug.cgi?id=17366">PR#17366</a>. The <code>ar.yw.default()</code>'s AIC | |
| computations have become more efficient by using | |
| <code>determinant()</code>. | |
| </p> | |
| </li> | |
| <li><p> New <code>warnErrList()</code> utility (from package <span class="pkg">nlme</span>, | |
| improved). | |
| </p> | |
| </li> | |
| <li><p> By default the (arbitrary) signs of the loadings from | |
| <code>princomp()</code> are chosen so the first element is non-negative. | |
| </p> | |
| </li> | |
| <li><p> If <span class="option">--default-packages</span> is not used, then | |
| <code>Rscript</code> now checks the environment variable | |
| <span class="env">R_SCRIPT_DEFAULT_PACKAGES</span>. If this is set, then it takes | |
| precedence over <span class="env">R_DEFAULT_PACKAGES</span>. If default packages are | |
| not specified on the command line or by one of these environment | |
| variables, then <code>Rscript</code> now uses the same default | |
| packages as <code>R</code>. For now, the previous behavior of not | |
| including <span class="pkg">methods</span> can be restored by setting the environment | |
| variable <span class="env">R_SCRIPT_LEGACY</span> to <span class="samp">yes</span>. | |
| </p> | |
| </li> | |
| <li><p> When a package is found more than once, the warning from | |
| <code>find.package(*, verbose=TRUE)</code> lists all library locations. | |
| </p> | |
| </li> | |
| <li><p> POSIXt objects can now also be rounded or truncated to month | |
| or year. | |
| </p> | |
| </li> | |
| <li> <p><code>stopifnot()</code> can be used alternatively via new argument | |
| <code>exprs</code> which is nicer and useful when testing several | |
| expressions in one call. | |
| </p> | |
| </li> | |
| <li><p> The environment variable <span class="env">R_MAX_VSIZE</span> can now be used | |
| to specify the maximal vector heap size. On macOS, unless specified | |
| by this environment variable, the maximal vector heap size is set to | |
| the maximum of 16GB and the available physical memory. This is to | |
| avoid having the <code>R</code> process killed when macOS over-commits | |
| memory. | |
| </p> | |
| </li> | |
| <li> <p><code>sum(x)</code> and <code>sum(x1, x2, .., x<N>)</code> with many or | |
| long logical or integer vectors no longer overflows (and returns | |
| <code>NA</code> with a warning), but returns <code>double</code> numbers in | |
| such cases. | |
| </p> | |
| </li> | |
| <li><p> Single components of <code>"POSIXlt"</code> objects can now be | |
| extracted and replaced via <code>[</code> indexing with 2 indices. | |
| </p> | |
| </li> | |
| <li><p> S3 method lookup now searches the namespace registry after | |
| the top level environment of the calling environment. | |
| </p> | |
| </li> | |
| <li><p> Arithmetic sequences created by <code>1:n</code>, | |
| <code>seq_along</code>, and the like now use compact internal | |
| representations via the <code>ALTREP</code> framework. Coercing integer | |
| and numeric vectors to character also now uses the <code>ALTREP</code> | |
| framework to defer the actual conversion until first use. | |
| </p> | |
| </li> | |
| <li><p> Finalizers are now run with interrupts suspended. | |
| </p> | |
| </li> | |
| <li> <p><code>merge()</code> gains new option <code>no.dups</code> and by | |
| default suffixes the second of two duplicated column names, | |
| thanks to a proposal by Scott Ritchie (and Gabe Becker). | |
| </p> | |
| </li> | |
| <li> <p><code>scale.default(x, center, scale)</code> now also allows | |
| <code>center</code> or <code>scale</code> to be “numeric-alike”, i.e., | |
| such that <code>as.numeric(.)</code> coerces them correctly. This also | |
| eliminates a wrong error message in such cases. | |
| </p> | |
| </li> | |
| <li> <p><code>par*apply</code> and <code>par*applyLB</code> gain an optional | |
| argument <code>chunk.size</code> which allows to specify the granularity of | |
| scheduling. | |
| </p> | |
| </li> | |
| <li><p> Some <code>as.data.frame()</code> methods, notably the | |
| <code>matrix</code> one, are now more careful in not accepting | |
| duplicated or <code>NA</code> row names, and by default produce unique | |
| non-NA row names. This is based on new function | |
| <code>.rowNamesDF(x, make.names = *) <- rNms</code> where the logical | |
| argument <code>make.names</code> allows to specify <em>how</em> invalid | |
| row names <code>rNms</code> are handled. <code>.rowNamesDF()</code> is a | |
| “workaround” compatible default. | |
| </p> | |
| </li> | |
| <li><p> R has new serialization format (version 3) which supports | |
| custom serialization of <code>ALTREP</code> framework objects. These | |
| objects can still be serialized in format 2, but less efficiently. | |
| Serialization format 3 also records the current native encoding of | |
| unflagged strings and converts them when de-serialized in R | |
| running under different native encoding. Format 3 comes with new | |
| serialization magic numbers (RDA3, RDB3, RDX3). Format 3 can be | |
| selected by <code>version = 3</code> in <code>save()</code>, | |
| <code>serialize()</code> and <code>saveRDS()</code>, but format 2 remains the | |
| default for all serialization and saving of the workspace. | |
| Serialized data in format 3 cannot be read by versions of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> prior | |
| to version 3.5.0. | |
| </p> | |
| </li> | |
| <li><p> The <code>"Date"</code> and “date-time” classes | |
| <code>"POSIXlt"</code> and <code>"POSIXct"</code> now have a working | |
| <code>length<-()</code> method, as wished in <a href="https://bugs.R-project.org/show_bug.cgi?id=17387">PR#17387</a>. | |
| </p> | |
| </li> | |
| <li> <p><code>optim(*, control = list(warn.1d.NelderMead = FALSE))</code> | |
| allows to turn off the warning when applying the default | |
| <code>"Nelder-Mead"</code> method to 1-dimensional problems. | |
| </p> | |
| </li> | |
| <li> <p><code>matplot(.., panel.first = .)</code> etc now work, as | |
| <code>log</code> becomes explicit argument and <code>...</code> is passed to | |
| <code>plot()</code> unevaluated, as suggested by Sebastian Meyer in <a href="https://bugs.R-project.org/show_bug.cgi?id=17386">PR#17386</a>. | |
| </p> | |
| </li> | |
| <li><p> Interrupts can be suspended while evaluating an expression | |
| using <code>suspendInterrupts</code>. Subexpression can be evaluated | |
| with interrupts enabled using <code>allowInterrupts</code>. These | |
| functions can be used to make sure cleanup handlers cannot be | |
| interrupted. | |
| </p> | |
| </li> | |
| <li> <p><span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.5.0 includes a framework that allows packages to | |
| provide alternate representations of basic <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> objects | |
| (<code>ALTREP</code>). The framework is still experimental and may | |
| undergo changes in future <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> releases as more experience is | |
| gained. For now, documentation is provided in | |
| <a href="https://svn.r-project.org/R/branches/ALTREP/ALTREP.html">https://svn.r-project.org/R/branches/ALTREP/ALTREP.html</a>. | |
| </p> | |
| </li></ul> | |
| <h4>UTILITIES</h4> | |
| <ul> | |
| <li> <p><code>install.packages()</code> for source packages now has the | |
| possibility to set a ‘timeout’ (elapsed-time limit). For | |
| serial installs this uses the <code>timeout</code> argument of | |
| <code>system2()</code>: for parallel installs it requires the | |
| <code>timeout</code> utility command from GNU <span class="pkg">coreutils</span>. | |
| </p> | |
| </li> | |
| <li><p> It is now possible to set ‘timeouts’ (elapsed-time | |
| limits) for most parts of <code>R CMD check</code> <em>via</em> | |
| environment variables documented in the ‘R Internals’ | |
| manual. | |
| </p> | |
| </li> | |
| <li><p> The ‘BioC extra’ repository which was dropped from | |
| Bioconductor 3.6 and later has been removed from | |
| <code>setRepositories()</code>. This changes the mapping for 6–8 used | |
| by <code>setRepositories(ind=)</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> now also applies the settings of | |
| environment variables <span class="env">_R_CHECK_SUGGESTS_ONLY_</span> and | |
| <span class="env">_R_CHECK_DEPENDS_ONLY_</span> to the re-building of vignettes. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> with environment variable | |
| <span class="env">_R_CHECK_DEPENDS_ONLY_</span> set to a true value makes | |
| test-suite-management packages available and (for the time being) | |
| works around a common omission of <a href="https://CRAN.R-project.org/package=rmarkdown"><span class="pkg">rmarkdown</span></a> from the | |
| <span class="samp">VignetteBuilder</span> field. | |
| </p> | |
| </li></ul> | |
| <h4>INSTALLATION on a UNIX-ALIKE</h4> | |
| <ul> | |
| <li><p> Support for a system Java on macOS has been | |
| removed — install a fairly recent Oracle Java (see ‘R | |
| Installation and Administration’ §C.3.2). | |
| </p> | |
| </li> | |
| <li> <p><code>configure</code> works harder to set additional flags in | |
| <span class="samp">SAFE_FFLAGS</span> only where necessary, and to use flags which | |
| have little or no effect on performance. | |
| </p> | |
| <p>In rare circumstances it may be necessary to override the | |
| setting of <span class="samp">SAFE_FFLAGS</span>. | |
| </p> | |
| </li> | |
| <li><p> C99 functions <code>expm1</code>, <code>hypot</code>, <code>log1p</code> and | |
| <code>nearbyint</code> are now required. | |
| </p> | |
| </li> | |
| <li> <p><code>configure</code> sets a <span class="option">-std</span> flag for the C++ | |
| compiler for all supported C++ standards (e.g., <span class="option">-std=gnu++11</span> | |
| for the C++11 compiler). Previously this was not done in a few | |
| cases where the default standard passed the tests made | |
| (e.g. <code>clang 6.0.0</code> for C++11). | |
| </p> | |
| </li></ul> | |
| <h4>C-LEVEL FACILITIES</h4> | |
| <ul> | |
| <li> <p>‘Writing R Extensions’ documents macros | |
| <code>MAYBE_REFERENCED</code>, <code>MAYBE_SHARED</code> and | |
| <code>MARK_NOT_MUTABLE</code> that should be used by package <code>C</code> | |
| code instead <code>NAMED</code> or <code>SET_NAMED</code>. | |
| </p> | |
| </li> | |
| <li><p> The object header layout has been changed to support merging | |
| the <code>ALTREP</code> branch. This requires re-installing packages | |
| that use compiled code. | |
| </p> | |
| </li> | |
| <li> <p>‘Writing R Extensions’ now documents the | |
| <code>R_tryCatch</code>, <code>R_tryCatchError</code>, and | |
| <code>R_UnwindProtect</code> functions. | |
| </p> | |
| </li> | |
| <li> <p><code>NAMEDMAX</code> has been raised to 3 to allow protection of | |
| intermediate results from (usually ill-advised) assignments in | |
| arguments to <code>BUILTIN</code> functions. Package <code>C</code> code using | |
| <code>SET_NAMED</code> may need to be revised. | |
| </p> | |
| </li></ul> | |
| <h4>DEPRECATED AND DEFUNCT</h4> | |
| <ul> | |
| <li> <p><code>Sys.timezone(location = FALSE)</code> is defunct, and is | |
| ignored (with a warning). | |
| </p> | |
| </li> | |
| <li> <p><code>methods:::bind_activation()</code> is defunct now; it | |
| typically has been unneeded for years. | |
| </p> | |
| <p>The undocumented ‘hidden’ objects <code>.__H__.cbind</code> and | |
| <code>.__H__.rbind</code> in package <span class="pkg">base</span> are deprecated (in | |
| favour of <code>cbind</code> and <code>rbind</code>). | |
| </p> | |
| </li> | |
| <li><p> The declaration of <code>pythag()</code> in ‘<span class="file">Rmath.h</span>’ has | |
| been removed — the entry point has not been provided since <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> | |
| 2.14.0. | |
| </p> | |
| </li></ul> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li> <p><code>printCoefmat()</code> now also works without column names. | |
| </p> | |
| </li> | |
| <li><p> The S4 methods on <code>Ops()</code> for the <code>"structure"</code> class no | |
| longer cause infinite recursion when the structure is not an S4 object. | |
| </p> | |
| </li> | |
| <li> <p><code>nlm(f, ..)</code> for the case where <code>f()</code> has a | |
| <code>"hessian"</code> attribute now computes | |
| <i>LL' = H + µI</i> correctly. (<a href="https://bugs.R-project.org/show_bug.cgi?id=17249">PR#17249</a>). | |
| </p> | |
| </li> | |
| <li><p> An S4 method that “rematches” to its generic and | |
| overrides the default value of a generic formal argument to | |
| <code>NULL</code> no longer drops the argument from its formals. | |
| </p> | |
| </li> | |
| <li> <p><code>Rscript</code> can now accept more than one argument given on | |
| the <span class="samp">#!</span> line of a script. Previously, one could only pass a | |
| single argument on the <span class="samp">#!</span> line in Linux. | |
| </p> | |
| </li> | |
| <li><p> Connections are now written correctly with encoding | |
| <code>"UTF-16LE"</code>. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16737">PR#16737</a>). | |
| </p> | |
| </li> | |
| <li><p> Evaluation of <code>..0</code> now signals an error. When | |
| <code>..1</code> is used and <code>...</code> is empty, the error message is | |
| more appropriate. | |
| </p> | |
| </li> | |
| <li><p> (Windows mainly.) Unicode code points which require | |
| surrogate pairs in UTF-16 are now handled. All systems should | |
| properly handle surrogate pairs, even those systems that do not | |
| need to make use of them. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16098">PR#16098</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>stopifnot(e, e2, ...)</code> now evaluates the | |
| expressions sequentially and in case of an error or warning shows | |
| the relevant expression instead of the full <code>stopifnot(..)</code> | |
| call. | |
| </p> | |
| </li> | |
| <li> <p><code>path.expand()</code> on Windows now accepts paths specified as | |
| UTF-8-encoded character strings even if not representable in the | |
| current locale. (<a href="https://bugs.R-project.org/show_bug.cgi?id=17120">PR#17120</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>line(x, y)</code> now correctly computes the medians of the | |
| left and right group's x-values and in all cases reproduces | |
| straight lines. | |
| </p> | |
| </li> | |
| <li><p> Extending S4 classes with slots corresponding to special | |
| attributes like <code>dim</code> and <code>dimnames</code> now works. | |
| </p> | |
| </li> | |
| <li><p> Fix for <code>legend()</code> when <code>fill</code> has multiple values | |
| the first of which is <code>NA</code> (all colours used to default to | |
| <code>par(fg)</code>). (<a href="https://bugs.R-project.org/show_bug.cgi?id=17288">PR#17288</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>installed.packages()</code> did not remove the cached value | |
| for a library tree that had been emptied (but would not use the | |
| old value, just waste time checking it). | |
| </p> | |
| </li> | |
| <li><p> The documentation for <code>installed.packages(noCache = TRUE)</code> | |
| incorrectly claimed it would refresh the cache. | |
| </p> | |
| </li> | |
| <li> <p><code>aggregate(<data.frame>)</code> no longer uses spurious names | |
| in some cases. (<a href="https://bugs.R-project.org/show_bug.cgi?id=17283">PR#17283</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>object.size()</code> now also works for long vectors. | |
| </p> | |
| </li> | |
| <li> <p><code>packageDescription()</code> tries harder to solve | |
| re-encoding issues, notably seen in some Windows locales. This | |
| fixes the <code>citation()</code> issue in <a href="https://bugs.R-project.org/show_bug.cgi?id=17291">PR#17291</a>. | |
| </p> | |
| </li> | |
| <li> <p><code>poly(<matrix>, 3)</code> now works, thanks to prompting by | |
| Marc Schwartz. | |
| </p> | |
| </li> | |
| <li> <p><code>readLines()</code> no longer segfaults on very large files | |
| with embedded <code>'\0'</code> (aka ‘nul’) characters. | |
| (<a href="https://bugs.R-project.org/show_bug.cgi?id=17311">PR#17311</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>ns()</code> (package <span class="pkg">splines</span>) now also works for a | |
| single observation. <code>interpSpline()</code> gives a more friendly | |
| error message when the number of points is less than four. | |
| </p> | |
| </li> | |
| <li> <p><code>dist(x, method = "canberra")</code> now uses the correct | |
| definition; the result may only differ when <code>x</code> contains | |
| values of differing signs, e.g. not for 0-1 data. | |
| </p> | |
| </li> | |
| <li> <p><code>methods:::cbind()</code> and <code>methods:::rbind()</code> avoid | |
| deep recursion, thanks to Suharto Anggono via <a href="https://bugs.R-project.org/show_bug.cgi?id=17300">PR#17300</a>. | |
| </p> | |
| </li> | |
| <li><p> Arithmetic with zero-column data frames now works more | |
| consistently; issue raised by Bill Dunlap. | |
| </p> | |
| <p>Arithmetic with data frames gives a data frame for <code>^</code> (which | |
| previously gave a numeric matrix). | |
| </p> | |
| </li> | |
| <li> <p><code>pretty(x, n)</code> for large <code>n</code> or large | |
| <code>diff(range(x))</code> now works better (though | |
| it was never meant for large <code>n</code>); internally it uses the | |
| same rounding fuzz (1e-10) as <code>seq.default()</code> — as it did up | |
| to 2010-02-03 when both were 1e-7. | |
| </p> | |
| </li> | |
| <li><p> Internal C-level <code>R_check_class_and_super()</code> and hence | |
| <code>R_check_class_etc()</code> now also consider non-direct super | |
| classes and hence return a match in more cases. This e.g., fixes | |
| behaviour of derived classes in package <a href="https://CRAN.R-project.org/package=Matrix"><span class="pkg">Matrix</span></a>. | |
| </p> | |
| </li> | |
| <li><p> Reverted unintended change in behavior of <code>return</code> | |
| calls in <code>on.exit</code> expressions introduced by stack unwinding | |
| changes in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.3.0. | |
| </p> | |
| </li> | |
| <li><p> Attributes on symbols are now detected and prevented; attempt | |
| to add an attribute to a symbol results in an error. | |
| </p> | |
| </li> | |
| <li> <p><code>fisher.test(*, workspace = <n>)</code> now may also increase | |
| the internal stack size which allows larger problem to be solved, | |
| fixing <a href="https://bugs.R-project.org/show_bug.cgi?id=1662">PR#1662</a>. | |
| </p> | |
| </li> | |
| <li><p> The <span class="pkg">methods</span> package no longer directly copies slots | |
| (attributes) into a prototype that is of an “abnormal” | |
| (reference) type, like a symbol. | |
| </p> | |
| </li> | |
| <li><p> The <span class="pkg">methods</span> package no longer attempts to call | |
| <code>length<-()</code> on <code>NULL</code> (during the bootstrap process). | |
| </p> | |
| </li> | |
| <li><p> The <span class="pkg">methods</span> package correctly shows methods when there | |
| are multiple methods with the same signature for the same generic | |
| (still not fully supported, but at least the user can see them). | |
| </p> | |
| </li> | |
| <li> <p><code>sys.on.exit()</code> is now always evaluated in the right | |
| frame. (From Lionel Henry.) | |
| </p> | |
| </li> | |
| <li> <p><code>seq.POSIXt(*, by = "<n> DSTdays")</code> now should work | |
| correctly in all cases and is faster. (<a href="https://bugs.R-project.org/show_bug.cgi?id=17342">PR#17342</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>.C()</code> when returning a logical vector now always maps | |
| values other than FALSE and NA to TRUE (as documented). | |
| </p> | |
| </li> | |
| <li><p> Subassignment with zero length vectors now coerces as | |
| documented (<a href="https://bugs.R-project.org/show_bug.cgi?id=17344">PR#17344</a>).<br /> | |
| Further, <code>x <- numeric(); x[1] <- character()</code> now signals | |
| an error ‘<code style="white-space: pre;">replacement has length zero</code>’ (or a | |
| translation of that) instead of doing nothing. | |
| </p> | |
| </li> | |
| <li><p> (Package <span class="pkg">parallel</span>.) <code>mclapply()</code>, <code>pvec()</code> | |
| and <code>mcparallel()</code> (when <code>mccollect()</code> is used to | |
| collect results) no longer leave zombie processes behind. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD INSTALL <pkg></code> now produces the intended error | |
| message when, e.g., the <code>LazyData</code> field is invalid. | |
| </p> | |
| </li> | |
| <li> <p><code>as.matrix(dd)</code> now works when the data frame <code>dd</code> | |
| contains a column which is a data frame or matrix, including a | |
| 0-column matrix/d.f. . | |
| </p> | |
| </li> | |
| <li> <p><code>mclapply(X, mc.cores)</code> now follows its documentation | |
| and calls <code>lapply()</code> in case <code>mc.cores = 1</code> also in the | |
| case <code>mc.preschedule</code> is false. (<a href="https://bugs.R-project.org/show_bug.cgi?id=17373">PR#17373</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>aggregate(<data.frame>, drop=FALSE)</code> no longer calls | |
| the function on <empty> parts but sets corresponding results to | |
| <code>NA</code>. (Thanks to Suharto Anggono's patches in <a href="https://bugs.R-project.org/show_bug.cgi?id=17280">PR#17280</a>). | |
| </p> | |
| </li> | |
| <li><p> The <code>duplicated()</code> method for data frames is now based | |
| on the <code>list</code> method (instead of string coercion). Consequently | |
| <code>unique()</code> is better distinguishing data frame rows, fixing | |
| <a href="https://bugs.R-project.org/show_bug.cgi?id=17369">PR#17369</a> and <a href="https://bugs.R-project.org/show_bug.cgi?id=17381">PR#17381</a>. The methods for matrices and arrays | |
| are changed accordingly. | |
| </p> | |
| </li> | |
| <li><p> Calling <code>names()</code> on an S4 object derived from | |
| <code>"environment"</code> behaves (by default) like calling | |
| <code>names()</code> on an ordinary environment. | |
| </p> | |
| </li> | |
| <li> <p><code>read.table()</code> with a non-default separator now | |
| supports quotes following a non-whitespace character, matching the | |
| behavior of <code>scan()</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>parLapplyLB</code> and <code>parSapplyLB</code> have been fixed to do | |
| load balancing (dynamic scheduling). This also means that results of | |
| computations depending on random number generators will now really be | |
| non-reproducible, as documented. | |
| </p> | |
| </li> | |
| <li><p> Indexing a list using dollar and empty string (<code>l$""</code>) | |
| returns NULL. | |
| </p> | |
| </li> | |
| <li><p> Using <code> \usage{ data(<name>, package="<pkg>") } </code> | |
| no longer produces <code>R CMD check</code> warnings. | |
| </p> | |
| </li> | |
| <li> <p><code>match.arg()</code> more carefully chooses the environment | |
| for constructing default <code>choices</code>, fixing <a href="https://bugs.R-project.org/show_bug.cgi?id=17401">PR#17401</a> as | |
| proposed by Duncan Murdoch. | |
| </p> | |
| </li> | |
| <li><p> Deparsing of consecutive <code>!</code> calls is now consistent | |
| with deparsing unary <code>-</code> and <code>+</code> calls and creates code | |
| that can be reparsed exactly; thanks to a patch by Lionel Henry in | |
| <a href="https://bugs.R-project.org/show_bug.cgi?id=17397">PR#17397</a>. (As a side effect, this uses fewer parentheses in | |
| some other deparsing involving <code>!</code> calls.) | |
| </p> | |
| </li></ul> | |
| <h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.4.4</h3> | |
| <h4>NEW FEATURES</h4> | |
| <ul> | |
| <li> <p><code>Sys.timezone()</code> tries more heuristics on Unix-alikes and so | |
| is more likely to succeed (especially on Linux). For the slowest | |
| method, a warning is given recommending that <span class="env">TZ</span> is set to | |
| avoid the search. | |
| </p> | |
| </li> | |
| <li><p> The version of LAPACK included in the sources has been | |
| updated to 3.8.0 (for the routines used by <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>, a very minor bug-fix | |
| change). | |
| </p> | |
| </li> | |
| <li> <p><code>parallel::detectCores(logical = FALSE)</code> is ignored on | |
| Linux systems, since the information is not available with | |
| virtualized OSes. | |
| </p> | |
| </li></ul> | |
| <h4>INSTALLATION on a UNIX-ALIKE</h4> | |
| <ul> | |
| <li> <p><code>configure</code> will use <code>pkg-config</code> to find the | |
| flags to link to <code>jpeg</code> if available (as it should be for the | |
| recently-released <code>jpeg-9c</code> and <code>libjpeg-turbo</code>). (This | |
| amends the code added in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.3.0 as the module name in | |
| <code>jpeg-9c</code> is not what that tested for.) | |
| </p> | |
| </li></ul> | |
| <h4>DEPRECATED AND DEFUNCT</h4> | |
| <ul> | |
| <li> <p><code>Sys.timezone(location = FALSE)</code> (which was a stop-gap | |
| measure for Windows long ago) is deprecated. It no longer returns | |
| the value of environment variable <span class="env">TZ</span> (usually a location). | |
| </p> | |
| </li> | |
| <li><p> Legacy support of <code>make</code> macros such as <span class="samp">CXX1X</span> | |
| is formally deprecated: use the <span class="samp">CXX11</span> forms instead. | |
| </p> | |
| </li></ul> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li> <p><code>power.prop.test()</code> now warns when it cannot solve the | |
| problem, typically because of impossible constraints. (<a href="https://bugs.R-project.org/show_bug.cgi?id=17345">PR#17345</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>removeSource()</code> no longer erroneously removes | |
| <code>NULL</code> in certain cases, thanks to Dénes Tóth. | |
| </p> | |
| </li> | |
| <li> <p><code>nls(`NO [mol/l]` ~ f(t))</code> and <code>nls(y ~ a)</code> now | |
| work. (Partly from <a href="https://bugs.R-project.org/show_bug.cgi?id=17367">PR#17367</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD build</code> checks for GNU <code>cp</code> rather | |
| than assuming Linux has it. (<a href="https://bugs.R-project.org/show_bug.cgi?id=17370">PR#17370</a> says ‘Alpine | |
| Linux’ does not.) | |
| </p> | |
| </li> | |
| <li><p> Non-UTF-8 multibyte character handling fixed more | |
| permanently (<a href="https://bugs.R-project.org/show_bug.cgi?id=16732">PR#16732</a>). | |
| </p> | |
| </li> | |
| <li> <p><code>sum(<large ints>, <stuff>)</code> is more consistent. | |
| (<a href="https://bugs.R-project.org/show_bug.cgi?id=17372">PR#17372</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>rf()</code> and <code>rbeta()</code> now also work correctly when | |
| <code>ncp</code> is not scalar, notably when (partly) <code>NA</code>. | |
| (<a href="https://bugs.R-project.org/show_bug.cgi?id=17375">PR#17375</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>is.na(NULL)</code> no longer warns. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16107">PR#16107</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD INSTALL</code> now correctly sets C++ compiler flags | |
| when all source files are in sub-directories of ‘<span class="file">src</span>’. | |
| </p> | |
| </li></ul> | |
| <h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.4.3</h3> | |
| <h4>INSTALLATION on a UNIX-ALIKE</h4> | |
| <ul> | |
| <li><p> A workaround has been added for the changes in location of | |
| time-zone files in macOS 10.13 ‘High Sierra’ and | |
| again in 10.13.1, so the default time zone is deduced | |
| correctly from the system setting when <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> is configured with | |
| <span class="option">--with-internal-tzcode</span> (the default on macOS). | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD javareconf</code> has been updated to recognize the | |
| use of a Java 9 SDK on macOS. | |
| </p> | |
| </li></ul> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li> <p><code>raw(0) & raw(0)</code> and <code>raw(0) | raw(0)</code> | |
| again return <code>raw(0)</code> (rather than <code>logical(0)</code>). | |
| </p> | |
| </li> | |
| <li> <p><code>intToUtf8()</code> converts integers corresponding to | |
| surrogate code points to <code>NA</code> rather than invalid UTF-8, as | |
| well as values larger than the current Unicode maximum of | |
| <code>0x10FFFF</code>. (This aligns with the current RFC3629.) | |
| </p> | |
| </li> | |
| <li><p> Fix calling of methods on S4 generics that dispatch on | |
| <code>...</code> when the call contains <code>...</code>. | |
| </p> | |
| </li> | |
| <li><p> Following Unicode ‘Corrigendum 9’, the UTF-8 | |
| representations of U+FFFE and U+FFFF are now regarded as valid by | |
| <code>utf8ToInt()</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>range(c(TRUE, NA), finite = TRUE)</code> and similar no longer | |
| return <code>NA</code>. (Reported by Lukas Stadler.) | |
| </p> | |
| </li> | |
| <li><p> The self starting function <code>attr(SSlogis, "initial")</code> | |
| now also works when the y values have exact minimum zero and is | |
| slightly changed in general, behaving symmetrically in the y range. | |
| </p> | |
| </li> | |
| <li><p> The printing of named raw vectors is now formatted nicely as | |
| for other such atomic vectors, thanks to Lukas Stadler. | |
| </p> | |
| </li></ul> | |
| <h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.4.2</h3> | |
| <h4>NEW FEATURES</h4> | |
| <ul> | |
| <li><p> Setting the <code>LC_ALL</code> category in <code>Sys.setlocale()</code> | |
| invalidates any cached locale-specific day/month names and the | |
| AM/PM indicator for <code>strptime()</code> (as setting <code>LC_TIME</code> | |
| has since <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.1.0). | |
| </p> | |
| </li> | |
| <li><p> The version of LAPACK included in the sources has been | |
| updated to 3.7.1, a bug-fix release. | |
| </p> | |
| </li> | |
| <li><p> The default for <code>tools::write_PACKAGES(rds_compress=)</code> | |
| has been changed to <code>"xz"</code> to match the compression used by | |
| <acronym><span class="acronym">CRAN</span></acronym>. | |
| </p> | |
| </li> | |
| <li> <p><code>c()</code> and <code>unlist()</code> are now more efficient in | |
| constructing the <code>names(.)</code> of their return value, thanks to | |
| a proposal by Suharto Anggono. (<a href="https://bugs.R-project.org/show_bug.cgi?id=17284">PR#17284</a>) | |
| </p> | |
| </li></ul> | |
| <h4>UTILITIES</h4> | |
| <ul> | |
| <li> <p><code>R CMD check</code> checks for and <code>R CMD build</code> | |
| corrects CRLF line endings in shell scripts <code>configure</code> | |
| and <code>cleanup</code> (even on Windows). | |
| </p> | |
| </li></ul> | |
| <h4>INSTALLATION on a UNIX-ALIKE</h4> | |
| <ul> | |
| <li><p> The order of selection of OpenMP flags has been changed: | |
| Oracle Developer Studio 12.5 accepts <span class="option">-fopenmp</span> and | |
| <span class="option">-xopenmp</span> but only the latter enables OpenMP so it is now | |
| tried first. | |
| </p> | |
| </li></ul> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li> <p><code>within(List, rm(x1, x2))</code> works correctly again, | |
| including when <code>List[["x2"]]</code> is <code>NULL</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>regexec(pattern, text, *)</code> now applies | |
| <code>as.character(.)</code> to its first two arguments, as documented. | |
| </p> | |
| </li> | |
| <li> <p><code>write.table()</code> and related functions, | |
| <code>writeLines()</code>, and perhaps other functions writing text to | |
| connections did not signal errors when the writes failed, | |
| e.g. due to a disk being full. Errors will now be | |
| signalled if detected during the write, warnings if detected when | |
| the connection is closed. (<a href="https://bugs.R-project.org/show_bug.cgi?id=17243">PR#17243</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>rt()</code> assumed the <code>ncp</code> parameter was a scalar. (<a href="https://bugs.R-project.org/show_bug.cgi?id=17306">PR#17306</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>menu(choices)</code> with more than 10 choices which easily | |
| fit into one <code>getOption("width")</code>-line no longer erroneously | |
| repeats choices. (<a href="https://bugs.R-project.org/show_bug.cgi?id=17312">PR#17312</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>length()<-</code> on a pairlist succeeds. | |
| (<a href="https://stat.ethz.ch/pipermail/r-devel/2017-July/074680.html">https://stat.ethz.ch/pipermail/r-devel/2017-July/074680.html</a>) | |
| </p> | |
| </li> | |
| <li><p> Language objects such as <code>quote(("\n"))</code> or <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> | |
| functions are correctly printed again, where <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.4.1 accidentally | |
| duplicated the backslashes. | |
| </p> | |
| </li> | |
| <li><p> Construction of <code>names()</code> for very large objects in | |
| <code>c()</code> and <code>unlist()</code> now works, thanks to Suharto | |
| Anggono's patch proposals in <a href="https://bugs.R-project.org/show_bug.cgi?id=17292">PR#17292</a>. | |
| </p> | |
| </li> | |
| <li><p> Resource leaks (and similar) reported by Steve Grubb fixed. | |
| (<a href="https://bugs.R-project.org/show_bug.cgi?id=17314">PR#17314</a>, <a href="https://bugs.R-project.org/show_bug.cgi?id=17316">PR#17316</a>, <a href="https://bugs.R-project.org/show_bug.cgi?id=17317">PR#17317</a>, <a href="https://bugs.R-project.org/show_bug.cgi?id=17318">PR#17318</a>, <a href="https://bugs.R-project.org/show_bug.cgi?id=17319">PR#17319</a>, <a href="https://bugs.R-project.org/show_bug.cgi?id=17320">PR#17320</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>model.matrix(~1, mf)</code> now gets the row names from | |
| <code>mf</code> also when they differ from <code>1:nrow(mf)</code>, fixing | |
| <a href="https://bugs.R-project.org/show_bug.cgi?id=14992">PR#14992</a> thanks to the suggestion by Sebastian Meyer. | |
| </p> | |
| </li> | |
| <li> <p><code>sigma(fm)</code> now takes the correct denominator degrees | |
| of freedom for a fitted model with <code>NA</code> coefficients. (<a href="https://bugs.R-project.org/show_bug.cgi?id=17313">PR#17313</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>hist(x, "FD")</code> no longer “dies” with a somewhat | |
| cryptic error message when <code>x</code> has extreme outliers or | |
| <code>IQR()</code> zero: <code>nclass.FD(x)</code> tries harder to find a | |
| robust bin width <i>h</i> in the latter case, and | |
| <code>hist.default(*, breaks)</code> now checks and corrects a too large | |
| <code>breaks</code> number. (<a href="https://bugs.R-project.org/show_bug.cgi?id=17274">PR#17274</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>callNextMethod()</code> works for <code>...</code> methods. | |
| </p> | |
| </li> | |
| <li> <p><code>qr.coef(qd, y)</code> now has correct names also when | |
| <code>qd</code> is a complex QR or stems from <code>qr(*, LAPACK=TRUE)</code>. | |
| </p> | |
| </li> | |
| <li><p> Setting <code>options(device = *)</code> to an invalid function no | |
| longer segfaults when plotting is initiated. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15883">PR#15883</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>encodeString(<very large string>)</code> no longer | |
| segfaults. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15885">PR#15885</a>) | |
| </p> | |
| </li> | |
| <li><p> It is again possible to use <code>configure | |
| --enable-maintainer-mode</code> without having installed | |
| <code>notangle</code> (it was required in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.4.[01]). | |
| </p> | |
| </li> | |
| <li><p> S4 method dispatch on <code>...</code> calls the method by name | |
| instead of <code>.Method</code> (for consistency with default dispatch), | |
| and only attempts to pass non-missing arguments from the generic. | |
| </p> | |
| </li> | |
| <li> <p><code>readRDS(textConnection(.))</code> works again. (<a href="https://bugs.R-project.org/show_bug.cgi?id=17325">PR#17325</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>(1:n)[-n]</code> no longer segfaults for <code>n <- 2.2e9</code> | |
| (on a platform with enough RAM). | |
| </p> | |
| </li> | |
| <li> <p><code>x <- 1:2; tapply(x, list(x, x), function(x) "")[1,2]</code> | |
| now correctly returns <code>NA</code>. (<a href="https://bugs.R-project.org/show_bug.cgi?id=17333">PR#17333</a>) | |
| </p> | |
| </li> | |
| <li><p> Running of finalizers after explicit GC request moved from | |
| the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> interface <code>do_gc</code> to the <code>C</code> interface | |
| <code>R_gc</code>. This helps with reclaiming inaccessible connections. | |
| </p> | |
| </li> | |
| <li> <p><code>help.search(topic)</code> and <code>??topic</code> matching topics | |
| in vignettes with multiple file name extensions (e.g., | |
| ‘<span class="file">*.md.rsp</span>’ but not ‘<span class="file">*.Rmd</span>’) failed with an error | |
| when using <code>options(help_type = "html")</code>. | |
| </p> | |
| </li> | |
| <li><p> The X11 device no longer uses the Xlib backing store (<a href="https://bugs.R-project.org/show_bug.cgi?id=16497">PR#16497</a>). | |
| </p> | |
| </li> | |
| <li> <p><code>array(character(), 1)</code> now gives (a 1D array with) | |
| <code>NA</code> as has been documented for a long time as in the other | |
| cases of zero-length array initialization and also compatibly with | |
| <code>matrix(character(), *)</code>. As mentioned there, this also | |
| fixes <a href="https://bugs.R-project.org/show_bug.cgi?id=17333">PR#17333</a>. | |
| </p> | |
| </li> | |
| <li> <p><code>splineDesign(.., derivs = 4)</code> no longer segfaults. | |
| </p> | |
| </li> | |
| <li> <p><code>fisher.test(*, hybrid=TRUE)</code> now (again) will use the | |
| hybrid method when Cochran's conditions are met, fixing <a href="https://bugs.R-project.org/show_bug.cgi?id=16654">PR#16654</a>. | |
| </p> | |
| </li></ul> | |
| <h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.4.1</h3> | |
| <h4>INSTALLATION on a UNIX-ALIKE</h4> | |
| <ul> | |
| <li><p> The deprecated support for PCRE versions older than 8.20 | |
| has been removed. | |
| </p> | |
| </li></ul> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li> <p><code>getParseData()</code> gave incorrect column information when | |
| code contained multi-byte characters. (<a href="https://bugs.R-project.org/show_bug.cgi?id=17254">PR#17254</a>) | |
| </p> | |
| </li> | |
| <li><p> Asking for help using expressions like <code>?stats::cor()</code> | |
| did not work. (<a href="https://bugs.R-project.org/show_bug.cgi?id=17250">PR#17250</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>readRDS(url(....))</code> now works. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD Sweave</code> again returns <span class="samp">status = 0</span> on | |
| successful completion. | |
| </p> | |
| </li> | |
| <li><p> Vignettes listed in ‘<span class="file">.Rbuildignore</span>’ were not being | |
| ignored properly. (<a href="https://bugs.R-project.org/show_bug.cgi?id=17246">PR#17246</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>file.mtime()</code> no longer returns NA on Windows when the | |
| file or directory is being used by another process. This affected | |
| <code>installed.packages()</code>, which is now protected against this. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD INSTALL</code> Windows .zip file obeys <code>--lock</code> | |
| and <code>--pkglock</code> flags. | |
| </p> | |
| </li> | |
| <li><p> (Windows only) The <code>choose.files()</code> function could | |
| return incorrect results when called with <code>multi = FALSE</code>. | |
| (<a href="https://bugs.R-project.org/show_bug.cgi?id=17270">PR#17270</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>aggregate(<data.frame>, drop = FALSE)</code> now also works in | |
| case of near-equal numbers in <code>by</code>. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16918">PR#16918</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>fourfoldplot()</code> could encounter integer overflow when | |
| calculating the odds ratio. (<a href="https://bugs.R-project.org/show_bug.cgi?id=17286">PR#17286</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>parse()</code> no longer gives spurious warnings when | |
| extracting srcrefs from a file not encoded in the current locale. | |
| </p> | |
| <p>This was seen from <code>R CMD check</code> with ‘<span class="file">inst/doc/*.R</span>’ | |
| files, and <code>check</code> has some additional protection for such files. | |
| </p> | |
| </li> | |
| <li> <p><code>print.noquote(x)</code> now always returns its argument | |
| <code>x</code> (invisibly). | |
| </p> | |
| </li> | |
| <li><p> Non-UTF-8 multibyte character sets were not handled properly | |
| in source references. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16732">PR#16732</a>) | |
| </p> | |
| </li></ul> | |
| <h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.4.0</h3> | |
| <h4>SIGNIFICANT USER-VISIBLE CHANGES</h4> | |
| <ul> | |
| <li><p> (Unix-alike) | |
| The default methods for <code>download.file()</code> and <code>url()</code> | |
| now choose <code>"libcurl"</code> except for <span class="samp">file://</span> | |
| URLs. There will be small changes in the format and wording of | |
| messages, including in rare cases if an issue is a warning or an | |
| error. For example, when HTTP re-direction occurs, some messages | |
| refer to the final URL rather than the specified one. | |
| </p> | |
| <p>Those who use proxies should check that their settings are | |
| compatible (see <code>?download.file</code>: the most commonly used | |
| forms work for both <code>"internal"</code> and <code>"libcurl"</code>). | |
| </p> | |
| </li> | |
| <li> <p><code>table()</code> has been amended to be more internally | |
| consistent and become back compatible to <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> <i><=</i> 2.7.2 | |
| again. Consequently, <code>table(1:2, exclude = NULL)</code> no longer | |
| contains a zero count for <code><NA></code>, but <code>useNA = "always"</code> | |
| continues to do so. | |
| </p> | |
| </li> | |
| <li> <p><code>summary.default()</code> no longer rounds, but its print | |
| method does resulting in less extraneous rounding, notably of | |
| numbers in the ten thousands. | |
| </p> | |
| </li> | |
| <li> <p><code>factor(x, exclude = L)</code> behaves more rationally when | |
| <code>x</code> or <code>L</code> are character vectors. Further, | |
| <code>exclude = <factor></code> now behaves as documented for long. | |
| </p> | |
| </li> | |
| <li><p> Arithmetic, logic (<code>&</code>, <code>|</code>) and comparison (aka | |
| ‘relational’, e.g., <code><</code>, <code>==</code>) operations with | |
| arrays now behave consistently, notably for arrays of length zero. | |
| </p> | |
| <p>Arithmetic between length-1 arrays and longer non-arrays had | |
| silently dropped the array attributes and recycled. This now | |
| gives a warning and will signal an error in the future, as it has | |
| always for logic and comparison operations in these cases (e.g., | |
| compare <code>matrix(1,1) + 2:3</code> and <code>matrix(1,1) < 2:3</code>). | |
| </p> | |
| </li> | |
| <li><p> The JIT (‘Just In Time’) byte-code compiler is now | |
| enabled by default at its level 3. This means functions will be | |
| compiled on first or second use and top-level loops will be | |
| compiled and then run. (Thanks to Tomas Kalibera for extensive | |
| work to make this possible.) | |
| </p> | |
| <p>For now, the compiler will not compile code containing explicit | |
| calls to <code>browser()</code>: this is to support single stepping from | |
| the <code>browser()</code> call. | |
| </p> | |
| <p>JIT compilation can be disabled for the rest of the session using | |
| <code>compiler::enableJIT(0)</code> or by setting environment variable | |
| <span class="env">R_ENABLE_JIT</span> to <code>0</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>xtabs()</code> works more consistently with <code>NA</code>s, also | |
| in its result no longer setting them to <code>0</code>. Further, a new | |
| logical option <code>addNA</code> allows to count <code>NA</code>s where | |
| appropriate. Additionally, for the case <code>sparse = TRUE</code>, the | |
| result's <code>dimnames</code> are identical to the default case's. | |
| </p> | |
| </li> | |
| <li><p> Matrix products now consistently bypass BLAS when the inputs | |
| have <code>NaN</code>/<code>Inf</code> values. Performance of the check of | |
| inputs has been improved. Performance when BLAS is used is | |
| improved for matrix/vector and vector/matrix multiplication (DGEMV | |
| is now used instead of DGEMM). | |
| </p> | |
| <p>One can now choose from alternative matrix product implementations | |
| <em>via</em> <code>options(matprod = )</code>. The <code>"internal"</code> | |
| implementation is not optimized for speed but consistent in | |
| precision with other summations in R (using <code>long double</code> | |
| accumulators where available). <code>"blas"</code> calls BLAS directly | |
| for best speed, but usually with undefined behavior for inputs | |
| with <code>NaN</code>/<code>Inf</code>. | |
| </p> | |
| </li></ul> | |
| <h4>NEW FEATURES</h4> | |
| <ul> | |
| <li><p> User errors such as <code>integrate(f, 0:1, 2)</code> are now caught. | |
| </p> | |
| </li> | |
| <li><p> Add <code>signature</code> argument to <code>debug()</code>, | |
| <code>debugonce()</code>, <code>undebug()</code> and <code>isdebugged()</code> for | |
| more conveniently debugging S3 and S4 methods. (Based on a patch by | |
| Gabe Becker.) | |
| </p> | |
| </li> | |
| <li><p> Add <code>utils::debugcall()</code> and | |
| <code>utils::undebugcall()</code> for debugging the function that would | |
| be called by evaluating the given expression. When the call is to | |
| an S4 generic or standard S3 generic, <code>debugcall()</code> debugs the | |
| method that would be dispatched. A number of internal utilities | |
| were added to support this, most notably | |
| <code>utils::isS3stdGeneric()</code>. (Based on a patch by Gabe Becker.) | |
| </p> | |
| </li> | |
| <li><p> Add <code>utils::strcapture()</code>. Given a character vector and | |
| a regular expression containing capture expressions, | |
| <code>strcapture()</code> will extract the captured tokens into a | |
| tabular data structure, typically a <code>data.frame</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>str()</code> and <code>strOptions()</code> get a new option | |
| <code>drop.deparse.attr</code> with improved but <em>changed</em> default | |
| behaviour for expressions. For <code>expression</code> objects | |
| <code>x</code>, <code>str(x)</code> now may remove extraneous white space and | |
| truncate long lines. | |
| </p> | |
| </li> | |
| <li> <p><code>str(<looooooooong_string>)</code> is no longer very slow; | |
| inspired by Mikko Korpela's proposal in <a href="https://bugs.R-project.org/show_bug.cgi?id=16527">PR#16527</a>. | |
| </p> | |
| </li> | |
| <li> <p><code>str(x)</code>'s default method is more “accurate” and | |
| hence somewhat more generous in displaying character vectors; this | |
| will occasionally change <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> outputs (and need changes to some | |
| ‘<span class="file">*.Rout(.save)</span>’ files). | |
| <br /> | |
| For a classed integer vector such as <code>x <- xtabs(~ c(1,9,9,9))</code>, | |
| <code>str(x)</code> now shows both the class and <code>"int"</code>, instead | |
| of only the latter. | |
| </p> | |
| </li> | |
| <li> <p><code>isSymmetric(m)</code> is much faster for large asymmetric | |
| matrices <code>m</code> <em>via</em> pre-tests and a new option <code>tol1</code> | |
| (with which strict back compatibility is possible but not the | |
| default). | |
| </p> | |
| </li> | |
| <li><p> The result of <code>eigen()</code> now is of class <code>"eigen"</code> | |
| in the default case when eigenvectors are computed. | |
| </p> | |
| </li> | |
| <li><p> Zero-length date and date-time objects (of classes | |
| <code>"POSIX[cl]?t"</code>) now <code>print()</code> “recognizably”. | |
| </p> | |
| </li> | |
| <li> <p><code>xy.coords()</code> and <code>xyz.coords()</code> get a new | |
| <code>setLab</code> option. | |
| </p> | |
| </li> | |
| <li><p> The <code>method</code> argument of <code>sort.list()</code>, | |
| <code>order()</code> and <code>sort.int()</code> gains an <code>"auto"</code> option | |
| (the default) which should behave the same as before when | |
| <code>method</code> was not supplied. | |
| </p> | |
| </li> | |
| <li> <p><code>stopifnot(E, ..)</code> now reports differences when | |
| <code>E</code> is a call to <code>all.equal()</code> and that is not true. | |
| </p> | |
| </li> | |
| <li> <p><code>boxplot(<formula>, *)</code> gain optional arguments | |
| <code>drop</code>, <code>sep</code>, and <code>lex.order</code> to pass to | |
| <code>split.default()</code> which itself gains an argument | |
| <code>lex.order</code> to pass to <code>interaction()</code> for more | |
| flexibility. | |
| </p> | |
| </li> | |
| <li><p> The <code>plot()</code> method for <code>ppr()</code> has enhanced | |
| default labels (<code>xmin</code> and <code>main</code>). | |
| </p> | |
| </li> | |
| <li> <p><code>sample.int()</code> gains an explicit <code>useHash</code> option | |
| (with a back compatible default). | |
| </p> | |
| </li> | |
| <li> <p><code>identical()</code> gains an <code>ignore.srcref</code> option | |
| which drops <code>"srcref"</code> and similar attributes when true (as | |
| by default). | |
| </p> | |
| </li> | |
| <li> <p><code>diag(x, nrow = n)</code> now preserves <code>typeof(x)</code>, also | |
| for logical, integer and raw <code>x</code> (and as previously for | |
| complex and numeric). | |
| </p> | |
| </li> | |
| <li> <p><code>smooth.spline()</code> now allows direct specification of | |
| <code>lambda</code>, gets a <code>hatvalues()</code> method and keeps | |
| <code>tol</code> in the result, and optionally parts of the internal | |
| matrix computations. | |
| </p> | |
| </li> | |
| <li> <p><code>addNA()</code> is faster now, e.g. when applied twice. | |
| (Part of <a href="https://bugs.R-project.org/show_bug.cgi?id=16895">PR#16895</a>.) | |
| </p> | |
| </li> | |
| <li><p> New option <code>rstandard(<lm>, type = "predicted")</code> | |
| provides the “PRESS”–related leave-one-out | |
| cross-validation errors for linear models. | |
| </p> | |
| </li> | |
| <li><p> After seven years of deprecation, duplicated factor levels | |
| now produce a warning when printed and an error in <code>levels<-</code> | |
| instead of a warning. | |
| </p> | |
| </li> | |
| <li><p> Invalid factors, e.g., with duplicated levels (invalid but | |
| constructable) now give a warning when printed, <em>via</em> new | |
| function <code>.valid.factor()</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>sessionInfo()</code> has been updated for Apple's change in | |
| OS naming as from ‘10.12’ (‘macOS Sierra’ <em>vs</em> | |
| ‘OS X El Capitan’). | |
| </p> | |
| <p>Its <code>toLatex()</code> method now includes the <code>running</code> | |
| component. | |
| </p> | |
| </li> | |
| <li> <p><code>options(interrupt=)</code> can be used to specify a default | |
| action for user interrupts. For now, if this option is not set | |
| and the <code>error</code> option is set, then an unhandled user | |
| interrupt invokes the <code>error</code> option. (This may be dropped in | |
| the future as <code>interrupt</code> conditions are not <code>error</code> | |
| conditions.) | |
| </p> | |
| </li> | |
| <li><p> In most cases user interrupt handlers will be called with a | |
| <code>"resume"</code> restart available. Handlers can invoke this | |
| restart to resume computation. At the browser prompt the <code>r</code> | |
| command will invoke a <code>"resume"</code> restart if one is | |
| available. Some read operations cannot be resumed properly when | |
| interrupted and do not provide a <code>"resume"</code> restart. | |
| </p> | |
| </li> | |
| <li><p> Radix sort is now chosen by <code>method = "auto"</code> for | |
| <code>sort.int()</code> for double vectors (and hence used for | |
| <code>sort()</code> for unclassed double vectors), excluding | |
| ‘long’ vectors. | |
| </p> | |
| <p><code>sort.int(method = "radix")</code> no longer rounds double vectors. | |
| </p> | |
| </li> | |
| <li><p> The <code>default</code> and <code>data.frame</code> methods for | |
| <code>stack()</code> preserve the names of empty elements in the levels | |
| of the <code>ind</code> column of the return value. Set the new | |
| <code>drop</code> argument to <code>TRUE</code> for the previous behavior. | |
| </p> | |
| </li> | |
| <li><p> Speedup in <code>simplify2array()</code> and hence <code>sapply()</code> and | |
| <code>mapply()</code> (for the case of names and common length > 1), | |
| thanks to Suharto Anggono's <a href="https://bugs.R-project.org/show_bug.cgi?id=17118">PR#17118</a>. | |
| </p> | |
| </li> | |
| <li> <p><code>table(x, exclude = NULL)</code> now sets | |
| <code>useNA = "ifany"</code> (instead of <code>"always"</code>). | |
| Together with the bug fixes for this case, this recovers more | |
| consistent behaviour compatible to older versions of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>. As | |
| a consequence, <code>summary()</code> for a logical vector no longer | |
| reports (zero) counts for <code>NA</code> when there are no <code>NA</code>s. | |
| </p> | |
| </li> | |
| <li> <p><code>dump.frames()</code> gets a new option | |
| <code>include.GlobalEnv</code> which allows to also dump the global | |
| environment, thanks to Andreas Kersting's proposal in <a href="https://bugs.R-project.org/show_bug.cgi?id=17116">PR#17116</a>. | |
| </p> | |
| </li> | |
| <li> <p><code>system.time()</code> now uses <code>message()</code> instead of | |
| <code>cat()</code> when terminated early, such that | |
| <code>suppressMessages()</code> has an effect; suggested by Ben Bolker. | |
| </p> | |
| </li> | |
| <li> <p><code>citation()</code> supports ‘<span class="file">inst/CITATION</span>’ files from | |
| package source trees, with <code>lib.loc</code> pointing to the | |
| directory containing the package. | |
| </p> | |
| </li> | |
| <li> <p><code>try()</code> gains a new argument <code>outFile</code> with a | |
| default that can be modified <em>via</em> | |
| <code>options(try.outFile = .)</code>, useful notably for <code>Sweave</code>. | |
| </p> | |
| </li> | |
| <li><p> The unexported low-level functions in package <span class="pkg">parallel</span> | |
| for passing serialized <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> objects to and from forked children now | |
| support long vectors on 64-bit platforms. This removes some | |
| limits on higher-level functions such as <code>mclapply()</code> (but | |
| returning gigabyte results from forked processes <em>via</em> | |
| serialization should be avoided if at all possible). | |
| </p> | |
| </li> | |
| <li><p> Connections now <code>print()</code> without error even if | |
| invalid, e.g. after having been destroyed. | |
| </p> | |
| </li> | |
| <li> <p><code>apropos()</code> and <code>find(simple.words = FALSE)</code> no | |
| longer match object names starting with <span class="samp">.</span> which are known | |
| to be internal objects (such as <code>.__S3MethodsTable__.</code>). | |
| </p> | |
| </li> | |
| <li><p> Convenience function <code>hasName()</code> has been added; it | |
| is intended to replace the common idiom <code>!is.null(x$name)</code> | |
| without the usually unintended partial name matching. | |
| </p> | |
| </li> | |
| <li> <p><code>strcapture()</code> no longer fixes column names nor coerces | |
| strings to factors (suggested by Bill Dunlap). | |
| </p> | |
| </li> | |
| <li> <p><code>strcapture()</code> returns <code>NA</code> for non-matching | |
| values in <code>x</code> (suggested by Bill Dunlap). | |
| </p> | |
| </li> | |
| <li> <p><code>source()</code> gets new optional arguments, notably | |
| <code>exprs</code>; this is made use of in the new utility function | |
| <code>withAutoprint()</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>sys.source()</code> gets a new <code>toplevel.env</code> argument. | |
| This argument is useful for frameworks running package tests; | |
| contributed by Tomas Kalibera. | |
| </p> | |
| </li> | |
| <li> <p><code>Sys.setFileTime()</code> and | |
| <code>file.copy(copy.date = TRUE)</code> will set timestamps with | |
| fractions of seconds on platforms/filesystems which support this. | |
| </p> | |
| </li> | |
| <li><p> (Windows only.) <code>file.info()</code> now returns file | |
| timestamps including fractions of seconds; it has done so on other | |
| platforms since <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.14.0. (NB: some filesystems do not | |
| record modification and access timestamps to sub-second | |
| resolution.) | |
| </p> | |
| </li> | |
| <li><p> The license check enabled by | |
| <code>options(checkPackageLicense = TRUE)</code> is now done when the | |
| package's namespace is first loaded. | |
| </p> | |
| </li> | |
| <li> <p><code>ppr()</code> and <code>supsmu()</code> get an optional | |
| <code>trace</code> argument, and <code>ppr(.., sm.method = ..spline)</code> is | |
| no longer limited to sample size <i>n <= 2500</i>. | |
| </p> | |
| </li> | |
| <li><p> The <code>POSIXct</code> method for <code>print()</code> gets optional | |
| <code>tz</code> and <code>usetz</code> arguments, thanks to a report from | |
| Jennifer S. Lyon. | |
| </p> | |
| </li> | |
| <li><p> New function <code>check_packages_in_dir_details()</code> in | |
| package <span class="pkg">tools</span> for analyzing package-check log files to | |
| obtain check details. | |
| </p> | |
| </li> | |
| <li><p> Package <span class="pkg">tools</span> now exports function | |
| <code>CRAN_package_db()</code> for obtaining information about current | |
| packages in the <acronym><span class="acronym">CRAN</span></acronym> package repository, and several | |
| functions for obtaining the check status of these packages. | |
| </p> | |
| </li> | |
| <li><p> The (default) Stangle driver <code>Rtangle</code> allows | |
| <code>annotate</code> to be a function and gets a new | |
| <code>drop.evalFALSE</code> option. | |
| </p> | |
| </li> | |
| <li><p> The default method for <code>quantile(x, prob)</code> should now | |
| be monotone in <code>prob</code>, even in border cases, see <a href="https://bugs.R-project.org/show_bug.cgi?id=16672">PR#16672</a>. | |
| </p> | |
| </li> | |
| <li> <p><code>bug.report()</code> now tries to extract an email address | |
| from a <span class="samp">BugReports</span> field, and if there is none, from a | |
| <span class="samp">Contacts</span> field. | |
| </p> | |
| </li> | |
| <li><p> The <code>format()</code> and <code>print()</code> methods for | |
| <code>object.size()</code> results get new options <code>standard</code> and | |
| <code>digits</code>; notably, <code>standard = "IEC"</code> and | |
| <code>standard = "SI"</code> allow more standard (but less common) | |
| abbreviations than the default ones, e.g. for kilobytes. | |
| (From contributions by Henrik Bengtsson.) | |
| </p> | |
| </li> | |
| <li><p> If a reference class has a validity method, | |
| <code>validObject</code> will be called automatically from the | |
| default initialization method for reference classes. | |
| </p> | |
| </li> | |
| <li> <p><code>tapply()</code> gets new option <code>default = NA</code> | |
| allowing to change the previously hardcoded value. | |
| </p> | |
| </li> | |
| <li> <p><code>read.dcf()</code> now consistently interprets any | |
| ‘whitespace’ to be stripped to include newlines. | |
| </p> | |
| </li> | |
| <li><p> The maximum number of DLLs that can be loaded into R | |
| e.g. <em>via</em> <code>dyn.load()</code> can now be increased by | |
| setting the environment variable <code>R_MAX_NUM_DLLS</code> before | |
| starting R. | |
| </p> | |
| </li> | |
| <li><p> Assigning to an element of a vector beyond the current | |
| length now over-allocates by a small fraction. The new vector is | |
| marked internally as growable, and the true length of the new | |
| vector is stored in the <code>truelength</code> field. This makes | |
| building up a vector result by assigning to the next element | |
| beyond the current length more efficient, though pre-allocating is | |
| still preferred. The implementation is subject to change and not | |
| intended to be used in packages at this time. | |
| </p> | |
| </li> | |
| <li><p> Loading the <span class="pkg">parallel</span> package namespace no longer sets | |
| or changes the <code>.Random.seed</code>, even if <span class="env">R_PARALLEL_PORT</span> | |
| is unset. | |
| </p> | |
| <p>NB: This can break reproducibility of output, and did for a | |
| <acronym><span class="acronym">CRAN</span></acronym> package. | |
| </p> | |
| </li> | |
| <li><p> Methods <code>"wget"</code> and <code>"curl"</code> for | |
| <code>download.file()</code> now give an <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> error rather than a non-zero | |
| return value when the external command has a non-zero status. | |
| </p> | |
| </li> | |
| <li><p> Encoding name <code>"utf8"</code> is mapped to <code>"UTF-8"</code>. | |
| Many implementations of <code>iconv</code> accept <code>"utf8"</code>, but not | |
| GNU <span class="pkg">libiconv</span> (including the late 2016 version 1.15). | |
| </p> | |
| </li> | |
| <li> <p><code>sessionInfo()</code> shows the full paths to the library or | |
| executable files providing the BLAS/LAPACK implementations | |
| currently in use (not available on Windows). | |
| </p> | |
| </li> | |
| <li><p> The binning algorithm used by bandwidth selectors | |
| <code>bw.ucv()</code>, <code>bw.bcv()</code> and <code>bw.SJ()</code> switches to a | |
| version linear in the input size <code>n</code> for <code>n > nb/2</code>. | |
| (The calculations are the same, but for larger <code>n/nb</code> it is | |
| worth doing the binning in advance.) | |
| </p> | |
| </li> | |
| <li><p> There is a new option <code>PCRE_study</code> which controls when | |
| <code>grep(perl = TRUE)</code> and friends ‘study’ the compiled | |
| pattern. Previously this was done for 11 or more input strings: | |
| it now defaults to 10 or more (but most examples need many more | |
| for the difference from studying to be noticeable). | |
| </p> | |
| </li> | |
| <li> <p><code>grep(perl = TRUE)</code> and friends can now make use of | |
| PCRE's Just-In-Time mechanism, for PCRE <i>>=</i> 8.20 on | |
| platforms where JIT is supported. It is used by default whenever | |
| the <code>pattern</code> is studied (see the previous item). (Based on | |
| a patch from Mikko Korpela.) | |
| </p> | |
| <p>This is controlled by a new option <code>PCRE_use_JIT</code>. | |
| </p> | |
| <p>Note that in general this makes little difference to the speed, | |
| and may take a little longer: its benefits are most evident on | |
| strings of thousands of characters. As a side effect it reduces | |
| the chances of C stack overflow in the PCRE library on very long | |
| strings (millions of characters, but see next item). | |
| </p> | |
| <p>Warning: segfaults were seen using PCRE with JIT enabled on 64-bit | |
| Sparc builds. | |
| </p> | |
| </li> | |
| <li><p> There is a new option <code>PCRE_limit_recursion</code> for | |
| <code>grep(perl = TRUE)</code> and friends to set a recursion limit | |
| taking into account <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>'s estimate of the remaining C stack space | |
| (or 10000 if that is not available). This reduces the chance of C | |
| stack overflow, but because it is conservative may report a | |
| non-match (with a warning) in examples that matched before. By | |
| default it is enabled if any input string has 1000 or more bytes. | |
| (<a href="https://bugs.R-project.org/show_bug.cgi?id=16757">PR#16757</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>getGraphicsEvent()</code> now works on | |
| <code>X11(type = "cairo")</code> devices. Thanks to Frederick Eaton (for | |
| reviving an earlier patch). | |
| </p> | |
| </li> | |
| <li><p> There is a new argument <code>onIdle</code> for | |
| <code>getGraphicsEvent()</code>, which allows an R function to be run | |
| whenever there are no pending graphics events. This is currently | |
| only supported on X11 devices. Thanks to Frederick Eaton. | |
| </p> | |
| </li> | |
| <li><p> The <code>deriv()</code> and similar functions now can compute | |
| derivatives of <code>log1p()</code>, <code>sinpi()</code> and similar | |
| one-argument functions, thanks to a contribution by Jerry Lewis. | |
| </p> | |
| </li> | |
| <li> <p><code>median()</code> gains a formal <code>...</code> argument, so | |
| methods with extra arguments can be provided. | |
| </p> | |
| </li> | |
| <li> <p><code>strwrap()</code> reduces <code>indent</code> if it is more than | |
| half <code>width</code> rather than giving an error. (Suggested by Bill | |
| Dunlap.) | |
| </p> | |
| </li> | |
| <li><p> When the condition <code>code</code> in <code>if(.)</code> or | |
| <code>while(.)</code> is not of length one, an error instead of a | |
| warning may be triggered by setting an environment variable, see | |
| the help page. | |
| </p> | |
| </li> | |
| <li><p> Formatting and printing of bibliography entries | |
| (<code>bibentry</code>) is more flexible and better documented. Apart | |
| from setting <code>options(citation.bibtex.max = 99)</code> you can also | |
| use <code>print(<citation>, bibtex=TRUE)</code> (or <code>format(..)</code>) | |
| to get the BibTeX entries in the case of more than one entry. | |
| This also affects <code>citation()</code>. | |
| Contributions to enable <code>style = "html+bibtex"</code> are welcome. | |
| </p> | |
| </li></ul> | |
| <h4>C-LEVEL FACILITIES</h4> | |
| <ul> | |
| <li><p> Entry points <code>R_MakeExternalPtrFn</code> and | |
| <code>R_ExternalPtrFn</code> are now declared in header | |
| ‘<span class="file">Rinternals.h</span>’ to facilitate creating and retrieving an <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> | |
| external pointer from a C function pointer without ISO C warnings | |
| about the conversion of function pointers. | |
| </p> | |
| </li> | |
| <li><p> There was an exception for the native Solaris C++ compiler | |
| to the dropping (in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.3.0) of legacy C++ headers from headers | |
| such as ‘<span class="file">R.h</span>’ and ‘<span class="file">Rmath.h</span>’ — this has now been | |
| removed. That compiler has strict C++98 compliance hence does not | |
| include extensions in its (non-legacy) C++ headers: some | |
| packages will need to request C++11 or replace non-C++98 calls | |
| such as <code>lgamma</code>: see §1.6.4 of ‘Writing R Extensions’. | |
| </p> | |
| <p>Because it is needed by about 70 CRAN packages, headers ‘<span class="file">R.h</span>’ | |
| and ‘<span class="file">Rmath.h</span>’ still declare </p> | |
| <pre>use namespace std;</pre> | |
| <p>when included on Solaris. | |
| </p> | |
| </li> | |
| <li><p> When included from C++, the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> headers now use forms such as | |
| <code>std::FILE</code> directly rather than including the line </p> | |
| <pre>using std::FILE;</pre> | |
| <p>C++ code including these headers might be relying on the latter. | |
| </p> | |
| </li> | |
| <li><p> Headers ‘<span class="file">R_ext/BLAS.h</span>’ and ‘<span class="file">R_ext/Lapack.h</span>’ have | |
| many improved declarations including <code>const</code> for | |
| double-precision complex routines. <em>Inter alia</em> this avoids | |
| warnings when passing ‘string literal’ arguments from C++11 | |
| code. | |
| </p> | |
| </li> | |
| <li><p> Headers for Unix-only facilities ‘<span class="file">R_ext/GetX11Image.h</span>’, | |
| ‘<span class="file">R_ext/QuartzDevice.h</span>’ and ‘<span class="file">R_ext/eventloop.h</span>’ are no | |
| longer installed on Windows. | |
| </p> | |
| </li> | |
| <li><p> No-longer-installed headers ‘<span class="file">GraphicsBase.h</span>’, | |
| ‘<span class="file">RGraphics.h</span>’, ‘<span class="file">Rmodules/RX11.h</span>’ and | |
| ‘<span class="file">Rmodules/Rlapack.h</span>’ which had a LGPL license no longer do so. | |
| </p> | |
| </li> | |
| <li> <p><code>HAVE_UINTPTR_T</code> is now defined where appropriate by | |
| <code>Rconfig.h</code> so that it can be included before | |
| <code>Rinterface.h</code> when <code>CSTACK_DEFNS</code> is defined and a C | |
| compiler (not C++) is in use. <code>Rinterface.h</code> now includes C | |
| header ‘<span class="file">stdint.h</span>’ or C++11 header ‘<span class="file">cstdint</span>’ where | |
| needed. | |
| </p> | |
| </li> | |
| <li><p> Package <span class="pkg">tools</span> has a new function | |
| <code>package_native_routine_registration_skeleton()</code> to assist | |
| adding native-symbol registration to a package. See its help and | |
| §5.4.1 of ‘Writing R Extensions’ for how to use it. (At | |
| the time it was added it successfully automated adding | |
| registration to over 90% of <acronym><span class="acronym">CRAN</span></acronym> packages which lacked | |
| it. Many of the failures were newly-detected bugs in the | |
| packages, e.g. 50 packages called entry points with varying | |
| numbers of arguments and 65 packages called entry points not in | |
| the package.) | |
| </p> | |
| </li></ul> | |
| <h4>INSTALLATION on a UNIX-ALIKE</h4> | |
| <ul> | |
| <li> <p><code>readline</code> headers (and not just the library) are | |
| required unless configuring with <span class="option">--with-readline=no</span>. | |
| </p> | |
| </li> | |
| <li> <p><code>configure</code> now adds a compiler switch for C++11 | |
| code, even if the compiler supports C++11 by default. (This | |
| ensures that <code>g++</code> 6.x uses C++11 mode and not its default | |
| mode of C++14 with ‘GNU extensions’.) | |
| </p> | |
| <p>The tests for C++11 compliance are now much more comprehensive. | |
| For gcc < 4.8, the tests from R 3.3.0 are used in order to maintain | |
| the same behaviour on Linux distributions with long-term support. | |
| </p> | |
| </li> | |
| <li><p> An alternative compiler for C++11 is now specified with | |
| <span class="samp">CXX11</span>, not <span class="samp">CXX1X</span>. Likewise C++11 flags are specified | |
| with <span class="samp">CXX11FLAGS</span> and the standard (e.g., <span class="samp">-std=gnu++11</span>) | |
| is specified with <span class="samp">CXX11STD</span>. | |
| </p> | |
| </li> | |
| <li> <p><code>configure</code> now tests for a C++14-compliant compiler | |
| by testing some basic features. This by default tries flags for | |
| the compiler specified by <span class="samp">CXX11</span>, but an alternative compiler, | |
| options and standard can be specified by variables <span class="samp">CXX14</span>, | |
| <span class="samp">CXX14FLAGS</span> and <span class="samp">CXX14STD</span> (e.g., <span class="option">-std=gnu++14</span>). | |
| </p> | |
| </li> | |
| <li><p> There is a new macro <code>CXXSTD</code> to help specify the | |
| standard for C++ code, e.g. <span class="option">-std=c++98</span>. This | |
| makes it easier to work with compilers which default to a later | |
| standard: for example, with <code>CXX=g++6 CXXSTD=-std=c++98</code> | |
| <code>configure</code> will select commands for <code>g++</code> 6.x | |
| which conform to C++11 and C++14 where specified but otherwise use | |
| C++98. | |
| </p> | |
| </li> | |
| <li><p> Support for the defunct IRIX and OSF/1 OSes and Alpha CPU | |
| has been removed. | |
| </p> | |
| </li> | |
| <li> <p><code>configure</code> checks that the compiler specified by | |
| <span class="samp">$CXX $CXXFLAGS</span> is able to compile C++ code. | |
| </p> | |
| </li> | |
| <li> <p><code>configure</code> checks for the required header | |
| ‘<span class="file">sys/select.h</span>’ (or ‘<span class="file">sys/time.h</span>’ on legacy systems) and | |
| system call <code>select</code> and aborts if they are not found. | |
| </p> | |
| </li> | |
| <li><p> If available, the POSIX 2008 system call <code>utimensat</code> | |
| will be used by <code>Sys.setFileTime()</code> and | |
| <code>file.copy(copy.date = TRUE)</code>. This may result in slightly | |
| more accurate file times. (It is available on Linux and FreeBSD | |
| but not macOS.) | |
| </p> | |
| </li> | |
| <li><p> The minimum version requirement for <code>libcurl</code> has been | |
| reduced to 7.22.0, although at least 7.28.0 is preferred and | |
| earlier versions are little tested. (This is to support Debian 7 | |
| ‘Wheezy’ LTS and Ubuntu ‘Precise’ 12.04 LTS, | |
| although the latter is close to end-of-life.) | |
| </p> | |
| </li> | |
| <li> <p><code>configure</code> tests for a C++17-compliant compiler. | |
| The tests are experimental and subject to change in the future. | |
| </p> | |
| </li></ul> | |
| <h4>INCLUDED SOFTWARE</h4> | |
| <ul> | |
| <li><p> (Windows only) Tcl/Tk version 8.6.4 is now included in the | |
| binary builds. The ‘<span class="file">tcltk*.chm</span>’ help file is no longer | |
| included; please consult the online help at | |
| <a href="http://www.tcl.tk/man/">http://www.tcl.tk/man/</a> instead. | |
| </p> | |
| </li> | |
| <li><p> The version of LAPACK included in the sources has been | |
| updated to 3.7.0: no new routines have been added to <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>. | |
| </p> | |
| </li></ul> | |
| <h4>PACKAGE INSTALLATION</h4> | |
| <ul> | |
| <li><p> There is support for compiling C++14 or C++17 code in | |
| packages on suitable platforms: see ‘Writing R Extensions’ | |
| for how to request this. | |
| </p> | |
| </li> | |
| <li><p> The order of flags when <span class="samp">LinkingTo</span> other packages has | |
| been changed so their include directories come earlier, before | |
| those specified in <code>CPPFLAGS</code>. This will only have an effect | |
| if non-system include directories are included with <span class="option">-I</span> | |
| flags in <code>CPPFLAGS</code> (and so not the default | |
| <code>-I/usr/local/include</code> which is treated as a system include | |
| directory on most platforms). | |
| </p> | |
| </li> | |
| <li><p> Packages which register native routines for <code>.C</code> or | |
| <code>.Fortran</code> need to be re-installed for this version (unless | |
| installed with R-devel SVN revision r72375 or later). | |
| </p> | |
| </li> | |
| <li><p> Make variables with names containing <code>CXX1X</code> are | |
| deprecated in favour of those using <code>CXX11</code>, but for the time | |
| being are still made available <em>via</em> file | |
| ‘<span class="file">etc/Makeconf</span>’. Packages using them should be converted to | |
| the new forms and made dependent on <span class="samp">R (>= 3.4.0)</span>. | |
| </p> | |
| </li></ul> | |
| <h4>UTILITIES</h4> | |
| <ul> | |
| <li><p> Running <code>R CMD check --as-cran</code> with | |
| <span class="env">_R_CHECK_CRAN_INCOMING_REMOTE_</span> false now skips tests that | |
| require remote access. The remaining (local) tests typically | |
| run quickly compared to the remote tests. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD build</code> will now give priority to vignettes | |
| produced from files in the ‘<span class="file">vignettes</span>’ directory over those | |
| in the ‘<span class="file">inst/doc</span>’ directory, with a warning that the latter | |
| are being ignored. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD config</code> gains a <span class="option">--all</span> option for | |
| printing names and values of all basic configure variables. | |
| </p> | |
| <p>It now knows about all the variables used for the C++98, C++11 and | |
| C++14 standards. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> now checks that output files in | |
| ‘<span class="file">inst/doc</span>’ are newer than the source files in ‘<span class="file">vignettes</span>’. | |
| </p> | |
| </li> | |
| <li><p> For consistency with other package subdirectories, files | |
| named ‘<span class="file">*.r</span>’ in the ‘<span class="file">tests</span>’ directory are now recognized | |
| as tests by <code>R CMD check</code>. (Wish of <a href="https://bugs.R-project.org/show_bug.cgi?id=17143">PR#17143</a>.) | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD build</code> and <code>R CMD check</code> now use the | |
| <em>union</em> of <span class="env">R_LIBS</span> and <code>.libPaths()</code>. They may not | |
| be equivalent, e.g., when the latter is determined by | |
| <span class="env">R_PROFILE</span>. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD build</code> now preserves dates when it copies files | |
| in preparing the tarball. (Previously on Windows it changed the | |
| dates on all files; on Unix, it changed some dates when installing | |
| vignettes.) | |
| </p> | |
| </li> | |
| <li><p> The new option <code>R CMD check --no-stop-on-test-error</code> | |
| allows running the remaining tests (under ‘<span class="file">tests/</span>’) even if | |
| one gave an error. | |
| </p> | |
| </li> | |
| <li><p> Check customization <em>via</em> environment variables to | |
| detect side effects of <code>.Call()</code> and <code>.External()</code> calls | |
| which alter their arguments is described in §8 of the ‘R | |
| Internals’ manual. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> now checks any <span class="samp">BugReports</span> field | |
| to be non-empty and a suitable single URL. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check --as-cran</code> now NOTEs if the package | |
| does not register its native routines or does not declare its | |
| intentions on (native) symbol search. (This will become a WARNING | |
| in due course.) | |
| </p> | |
| </li></ul> | |
| <h4>DEPRECATED AND DEFUNCT</h4> | |
| <ul> | |
| <li><p> (Windows only) Function <code>setInternet2()</code> is defunct. | |
| </p> | |
| </li> | |
| <li><p> Installation support for <code>readline</code> emulations based on | |
| <code>editline</code> (aka <code>libedit</code>) is deprecated. | |
| </p> | |
| </li> | |
| <li><p> Use of the C/C++ macro <span class="samp">NO_C_HEADERS</span> is defunct and | |
| silently ignored. | |
| </p> | |
| </li> | |
| <li> <p><code>unix.time()</code>, a traditional synonym for | |
| <code>system.time()</code>, has been deprecated. | |
| </p> | |
| </li> | |
| <li> <p><code>structure(NULL, ..)</code> is now deprecated as you cannot | |
| set attributes on <code>NULL</code>. | |
| </p> | |
| </li> | |
| <li><p> Header ‘<span class="file">Rconfig.h</span>’ no longer defines | |
| <span class="samp">SUPPORT_OPENMP</span>; instead use <span class="samp">_OPENMP</span> (as documented | |
| for a long time). | |
| </p> | |
| </li> | |
| <li><p> (C-level Native routine registration.) The deprecated | |
| <code>styles</code> member of the <code>R_CMethodDef</code> and | |
| <code>R_FortranMethodDef</code> structures has been removed. | |
| Packages using these will need to be re-installed for <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.4.0. | |
| </p> | |
| </li> | |
| <li><p> The deprecated support for PCRE versions older than 8.20 | |
| will be removed in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.4.1. (Versions 8.20–8.31 will still be | |
| accepted but remain deprecated.) | |
| </p> | |
| </li></ul> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li><p> Getting or setting <code>body()</code> or <code>formals()</code> on | |
| non-functions for now signals a warning and may become an error | |
| for setting. | |
| </p> | |
| </li> | |
| <li> <p><code>match(x, t)</code>, <code>duplicated(x)</code> and | |
| <code>unique(x)</code> work as documented for complex numbers with <code>NA</code>s | |
| or <code>NaN</code>s, where all those containing <code>NA</code> do match, | |
| whereas in the case of <code>NaN</code>'s both real and imaginary parts | |
| must match, compatibly with how <code>print()</code> and <code>format()</code> | |
| work for complex numbers. | |
| </p> | |
| </li> | |
| <li> <p><code>deparse(<complex>, options = "digits17")</code> prints more | |
| nicely now, mostly thanks to a suggestion by Richie Cotton. | |
| </p> | |
| </li> | |
| <li><p> Rotated symbols in plotmath expressions are now positioned | |
| correctly on <code>x11(type = "Xlib")</code>. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16948">PR#16948</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>as<-()</code> avoids an infinite loop when a virtual class | |
| is interposed between a subclass and an actual superclass. | |
| </p> | |
| </li> | |
| <li><p> Fix level propagation in <code>unlist()</code> when the list | |
| contains zero-length lists or factors. | |
| </p> | |
| </li> | |
| <li><p> Fix S3 dispatch on S4 objects when the <span class="pkg">methods</span> package is | |
| not attached. | |
| </p> | |
| </li> | |
| <li><p> Internal S4 dispatch sets <code>.Generic</code> in the method | |
| frame for consistency with <code>standardGeneric()</code>. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16929">PR#16929</a>) | |
| </p> | |
| </li> | |
| <li><p> Fix <code>order(x, decreasing = TRUE)</code> when <code>x</code> is an | |
| integer vector containing <code>MAX_INT</code>. Ported from a fix Matt | |
| Dowle made to <a href="https://CRAN.R-project.org/package=data.table"><span class="pkg">data.table</span></a>. | |
| </p> | |
| </li> | |
| <li><p> Fix caching by <code>callNextMethod()</code>, resolves <a href="https://bugs.R-project.org/show_bug.cgi?id=16973">PR#16973</a> | |
| and <a href="https://bugs.R-project.org/show_bug.cgi?id=16974">PR#16974</a>. | |
| </p> | |
| </li> | |
| <li> <p><code>grouping()</code> puts NAs last, to be consistent with the | |
| default behavior of <code>order()</code>. | |
| </p> | |
| </li> | |
| <li><p> Point mass limit cases: <code>qpois(-2, 0)</code> now gives | |
| <code>NaN</code> with a warning and <code>qgeom(1, 1)</code> is <code>0</code>. | |
| (<a href="https://bugs.R-project.org/show_bug.cgi?id=16972">PR#16972</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>table()</code> no longer drops an <code>"NaN"</code> factor level, | |
| and better obeys <code>exclude = <chr></code>, thanks to Suharto Anggono's | |
| patch for <a href="https://bugs.R-project.org/show_bug.cgi?id=16936">PR#16936</a>. Also, in the case of <code>exclude = NULL</code> | |
| and <code>NA</code>s, these are tabulated correctly (again). | |
| </p> | |
| <p>Further, <code>table(1:2, exclude = 1, useNA = "ifany")</code> no longer | |
| erroneously reports <code><NA></code> counts. | |
| </p> | |
| <p>Additionally, all cases of empty <code>exclude</code> are equivalent, | |
| and <code>useNA</code> is not overwritten when specified (as it was by | |
| <code>exclude = NULL</code>). | |
| </p> | |
| </li> | |
| <li> <p><code>wilcox.test(x, conf.int=TRUE)</code> no longer errors out in | |
| cases where the confidence interval is not available, such as for | |
| <code>x = 0:2</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>droplevels(f)</code> now keeps <NA> levels when present. | |
| </p> | |
| </li> | |
| <li><p> In integer arithmetic, <code>NULL</code> is now treated as | |
| <code>integer(0)</code> whereas it was previously treated as <code>double(0)</code>. | |
| </p> | |
| </li> | |
| <li><p> The radix sort considers <code>NA_real_</code> and <code>NaN</code> to | |
| be equivalent in rank (like the other sort algorithms). | |
| </p> | |
| </li> | |
| <li><p> When <code>index.return=TRUE</code> is passed to <code>sort.int()</code>, | |
| the radix sort treats <code>NA</code>s like <code>sort.list()</code> does | |
| (like the other sort algorithms). | |
| </p> | |
| </li> | |
| <li><p> When in <code>tabulate(bin, nbin)</code> <code>length(bin)</code> is | |
| larger than the maximal integer, the result is now of type | |
| <code>double</code> and hence no longer silently overflows to wrong | |
| values. (<a href="https://bugs.R-project.org/show_bug.cgi?id=17140">PR#17140</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>as.character.factor()</code> respects S4 inheritance when | |
| checking the type of its argument. (<a href="https://bugs.R-project.org/show_bug.cgi?id=17141">PR#17141</a>) | |
| </p> | |
| </li> | |
| <li><p> The <code>factor</code> method for <code>print()</code> no longer sets | |
| the class of the factor to <code>NULL</code>, which would violate a | |
| basic constraint of an S4 object. | |
| </p> | |
| </li> | |
| <li> <p><code>formatC(x, flag = f)</code> allows two new flags, and | |
| signals an error for invalid flags also in the case of character | |
| formatting. | |
| </p> | |
| </li> | |
| <li><p> Reading from <code>file("stdin")</code> now also closes the | |
| connection and hence no longer leaks memory when reading from a | |
| full pipe, thanks to Gábor Csárdi, see thread starting at | |
| <a href="https://stat.ethz.ch/pipermail/r-devel/2016-November/073360.html">https://stat.ethz.ch/pipermail/r-devel/2016-November/073360.html</a>. | |
| </p> | |
| </li> | |
| <li><p> Failure to create file in <code>tempdir()</code> for compressed | |
| <code>pdf()</code> graphics device no longer errors (then later | |
| segfaults). There is now a warning instead of error and | |
| compression is turned off for the device. Thanks to Alec | |
| Wysoker (<a href="https://bugs.R-project.org/show_bug.cgi?id=17191">PR#17191</a>). | |
| </p> | |
| </li> | |
| <li><p> Asking for <code>methods()</code> on <code>"|"</code> returns only S3 | |
| methods. See | |
| <a href="https://stat.ethz.ch/pipermail/r-devel/2016-December/073476.html">https://stat.ethz.ch/pipermail/r-devel/2016-December/073476.html</a>. | |
| </p> | |
| </li> | |
| <li> <p><code>dev.capture()</code> using Quartz Cocoa device (macOS) returned | |
| invalid components if the back-end chose to use ARGB instead of RGBA | |
| image format. (Reported by Noam Ross.) | |
| </p> | |
| </li> | |
| <li> <p><code>seq("2", "5")</code> now works too, equivalently to | |
| <code>"2":"5"</code> and <code>seq.int()</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>seq.int(to = 1, by = 1)</code> is now correct, other cases are | |
| integer (instead of <code>double</code>) when <code>seq()</code> is integer | |
| too, and the "non-finite" error messages are consistent between | |
| <code>seq.default()</code> and <code>seq.int()</code>, no longer mentioning | |
| <code>NaN</code> etc. | |
| </p> | |
| </li> | |
| <li> <p><code>rep(x, times)</code> and <code>rep.int(x, times)</code> now work | |
| when <code>times</code> is larger than the largest value representable | |
| in an integer vector. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16932">PR#16932</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>download.file(method = "libcurl")</code> does not check for | |
| URL existence before attempting downloads; this is more robust to | |
| servers that do not support HEAD or range-based retrieval, but may | |
| create empty or incomplete files for aborted download requests. | |
| </p> | |
| </li> | |
| <li><p> Bandwidth selectors <code>bw.ucv()</code>, <code>bw.bcv()</code> and | |
| <code>bw.SJ()</code> now avoid integer overflow for large sample sizes. | |
| </p> | |
| </li> | |
| <li> <p><code>str()</code> no longer shows <code>"list output truncated"</code>, | |
| in cases that list was not shown at all. Thanks to Neal Fultz | |
| (<a href="https://bugs.R-project.org/show_bug.cgi?id=17219">PR#17219</a>) | |
| </p> | |
| </li> | |
| <li><p> Fix for <code>cairo_pdf()</code> (and <code>svg()</code> and | |
| <code>cairo_ps()</code>) when replaying a saved display list that contains | |
| a mix of <span class="pkg">grid</span> and <span class="pkg">graphics</span> output. | |
| (Report by Yihui Xie.) | |
| </p> | |
| </li> | |
| <li><p> The <code>str()</code> and <code>as.hclust()</code> methods for | |
| <code>"dendrogram"</code> now also work for deeply nested dendrograms | |
| thanks to non-recursive implementations by Bradley Broom. | |
| </p> | |
| </li> | |
| <li> <p><code>sample()</code> now uses two uniforms for added precision | |
| when the uniform generator is <code>Knuth-TAOCP</code>, | |
| <code>Knuth-TAOCP-2002</code>, or a user-defined generator and the | |
| population size is <i>2^25</i> or greater. | |
| </p> | |
| </li> | |
| <li><p> If a vignette in the ‘<span class="file">vignettes</span>’ directory is listed in | |
| ‘<span class="file">.Rbuildignore</span>’, <code>R CMD build</code> would not include it | |
| in the tarball, but would include it in the vignette database, | |
| leading to a check warning. (<a href="https://bugs.R-project.org/show_bug.cgi?id=17246">PR#17246</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>tools::latexToUtf8()</code> infinite looped on certain | |
| inputs. (<a href="https://bugs.R-project.org/show_bug.cgi?id=17138">PR#17138</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>terms.formula()</code> ignored argument names when determining | |
| whether two terms were identical. (<a href="https://bugs.R-project.org/show_bug.cgi?id=17235">PR#17235</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>callNextMethod()</code> was broken when called from a method | |
| that augments the formal arguments of a primitive generic. | |
| </p> | |
| </li> | |
| <li><p> Coercion of an S4 object to a vector during sub-assignment | |
| into a vector failed to dispatch through the <code>as.vector()</code> | |
| generic (often leading to a segfault). | |
| </p> | |
| </li> | |
| <li><p> Fix problems in command completion: Crash (<a href="https://bugs.R-project.org/show_bug.cgi?id=17222">PR#17222</a>) | |
| and junk display in Windows, handling special characters in | |
| filenames on all systems. | |
| </p> | |
| </li></ul> | |
| <h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.3.3</h3> | |
| <h4>NEW FEATURES</h4> | |
| <ul> | |
| <li><p> Changes when redirection of a <span class="samp">http://</span> URL to a | |
| <span class="samp">https://</span> URL is encountered: | |
| </p> | |
| <ul> | |
| <li><p> The internal methods of <code>download.file()</code> and | |
| <code>url()</code> now report that they cannot follow this (rather | |
| than failing silently). | |
| </p> | |
| </li> | |
| <li><p> (Unix-alike) <code>download.file(method = "auto")</code> (the | |
| default) re-tries with <code>method = "libcurl"</code>. | |
| </p> | |
| </li> | |
| <li><p> (Unix-alike) <code>url(method = "default")</code> with an | |
| explicit <code>open</code> argument re-tries with | |
| <code>method = "libcurl"</code>. This covers many of the usages, | |
| e.g. <code>readLines()</code> with a URL argument. | |
| </p> | |
| </li></ul> | |
| </li></ul> | |
| <h4>INSTALLATION on a UNIX-ALIKE</h4> | |
| <ul> | |
| <li><p> The <code>configure</code> check for the <code>zlib</code> version is | |
| now robust to versions longer than 5 characters, including | |
| <code>1.2.11</code>. | |
| </p> | |
| </li></ul> | |
| <h4>UTILITIES</h4> | |
| <ul> | |
| <li><p> Environmental variable <span class="env">_R_CHECK_TESTS_NLINES_</span> controls | |
| how <code>R CMD check</code> reports failing tests (see §8 of the | |
| ‘R Internals’ manual). | |
| </p> | |
| </li></ul> | |
| <h4>DEPRECATED AND DEFUNCT</h4> | |
| <ul> | |
| <li><p> (C-level Native routine registration.) The undocumented | |
| <code>styles</code> field of the components of <code>R_CMethodDef</code> and | |
| <code>R_FortranMethodDef</code> is deprecated. | |
| </p> | |
| </li></ul> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li> <p><code>vapply(x, *)</code> now works with long vectors <code>x</code>. | |
| (<a href="https://bugs.R-project.org/show_bug.cgi?id=17174">PR#17174</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>isS3method("is.na.data.frame")</code> and similar are | |
| correct now. (<a href="https://bugs.R-project.org/show_bug.cgi?id=17171">PR#17171</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>grepRaw(<long>, <short>, fixed = TRUE)</code> now works, | |
| thanks to a patch by Mikko Korpela. (<a href="https://bugs.R-project.org/show_bug.cgi?id=17132">PR#17132</a>) | |
| </p> | |
| </li> | |
| <li><p> Package installation into a library where the package exists | |
| <em>via</em> symbolic link now should work wherever | |
| <code>Sys.readlink()</code> works, resolving <a href="https://bugs.R-project.org/show_bug.cgi?id=16725">PR#16725</a>. | |
| </p> | |
| </li> | |
| <li> <p><code>"Cincinnati"</code> was missing an <code>"n"</code> in the | |
| <code>precip</code> dataset. | |
| </p> | |
| </li> | |
| <li><p> Fix buffer overflow vulnerability in <code>pdf()</code> when | |
| loading an encoding file. Reported by Talos (TALOS-2016-0227). | |
| </p> | |
| </li> | |
| <li> <p><code>getDLLRegisteredRoutines()</code> now produces its warning | |
| correctly when multiple DLLs match, thanks to Matt Dowle's <a href="https://bugs.R-project.org/show_bug.cgi?id=17184">PR#17184</a>. | |
| </p> | |
| </li> | |
| <li> <p><code>Sys.timezone()</code> now returns non-NA also on platforms | |
| such as <span class="samp">Ubuntu 14.04.5 LTS</span>, thanks to Mikko Korpela's | |
| <a href="https://bugs.R-project.org/show_bug.cgi?id=17186">PR#17186</a>. | |
| </p> | |
| </li> | |
| <li> <p><code>format(x)</code> for an illegal <code>"POSIXlt"</code> object | |
| <code>x</code> no longer segfaults. | |
| </p> | |
| </li> | |
| <li> <p><code>methods(f)</code> now also works for <code>f</code> <code>"("</code> | |
| or <code>"{"</code>. | |
| </p> | |
| </li> | |
| <li><p> (Windows only) <code>dir.create()</code> did not check the length | |
| of the path to create, and so could overflow a buffer and crash | |
| <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>. (<a href="https://bugs.R-project.org/show_bug.cgi?id=17206">PR#17206</a>) | |
| </p> | |
| </li> | |
| <li><p> On some systems, very small hexadecimal numbers in hex notation | |
| would underflow to zero. (<a href="https://bugs.R-project.org/show_bug.cgi?id=17199">PR#17199</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>pmin()</code> and <code>pmax()</code> now work again for | |
| <code>ordered</code> factors and 0-length S3 classed objects, thanks to | |
| Suharto Anggono's <a href="https://bugs.R-project.org/show_bug.cgi?id=17195">PR#17195</a> and <a href="https://bugs.R-project.org/show_bug.cgi?id=17200">PR#17200</a>. | |
| </p> | |
| </li> | |
| <li> <p><code>bug.report()</code> did not do any validity checking on a | |
| package's <span class="samp">BugReports</span> field. It now ignores an empty field, | |
| removes leading whitespace and only attempts to open | |
| <span class="samp">http://</span> and <span class="samp">https://</span> URLs, falling back to emailing | |
| the maintainer. | |
| </p> | |
| </li> | |
| <li><p> Bandwidth selectors <code>bw.ucv()</code> and | |
| <code>bw.SJ()</code> gave incorrect answers or incorrectly reported an | |
| error (because of integer overflow) for inputs longer than | |
| 46341. Similarly for <code>bw.bcv()</code> at length 5793. | |
| </p> | |
| <p>Another possible integer overflow is checked and may result in an | |
| error report (rather than an incorrect result) for much longer | |
| inputs (millions for a smooth distribution). | |
| </p> | |
| </li> | |
| <li> <p><code>findMethod()</code> failed if the active signature had | |
| expanded beyond what a particular package used. (Example with | |
| packages <a href="https://CRAN.R-project.org/package=XR"><span class="pkg">XR</span></a> and <a href="https://CRAN.R-project.org/package=XRJulia"><span class="pkg">XRJulia</span></a> on <acronym><span class="acronym">CRAN</span></acronym>.) | |
| </p> | |
| </li> | |
| <li> <p><code>qbeta()</code> underflowed too early in some very asymmetric | |
| cases. (<a href="https://bugs.R-project.org/show_bug.cgi?id=17178">PR#17178</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD Rd2pdf</code> had problems with packages with | |
| non-ASCII titles in ‘<span class="file">.Rd</span>’ files (usually the titles were | |
| omitted). | |
| </p> | |
| </li></ul> | |
| <h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.3.2</h3> | |
| <h4>NEW FEATURES</h4> | |
| <ul> | |
| <li> <p><code>extSoftVersion()</code> now reports the version (if any) of | |
| the <code>readline</code> library in use. | |
| </p> | |
| </li> | |
| <li><p> The version of LAPACK included in the sources has been | |
| updated to 3.6.1, a bug-fix release including a speedup for the | |
| non-symmetric case of <code>eigen()</code>. | |
| </p> | |
| </li> | |
| <li><p> Use <code>options(deparse.max.lines=)</code> to limit the number | |
| of lines recorded in <code>.Traceback</code> and other deparsing | |
| activities. | |
| </p> | |
| </li> | |
| <li> <p><code>format(<AsIs>)</code> looks more regular, also for | |
| non-character atomic matrices. | |
| </p> | |
| </li> | |
| <li> <p><code>abbreviate()</code> gains an option <code>named = TRUE</code>. | |
| </p> | |
| </li> | |
| <li><p> The online documentation for package <span class="pkg">methods</span> is | |
| extensively rewritten. The goals are to simplify | |
| documentation for basic use, to note old features not | |
| recommended and to correct out-of-date information. | |
| </p> | |
| </li> | |
| <li><p> Calls to <code>setMethod()</code> no longer print a message when | |
| creating a generic function in those cases where that is | |
| natural: S3 generics and primitives. | |
| </p> | |
| </li></ul> | |
| <h4>INSTALLATION and INCLUDED SOFTWARE</h4> | |
| <ul> | |
| <li><p> Versions of the <code>readline</code> library >= 6.3 had been | |
| changed so that terminal window resizes were not signalled to | |
| <code>readline</code>: code has been added using a explicit signal | |
| handler to work around that (when <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> is compiled against readline | |
| >= 6.3). (<a href="https://bugs.R-project.org/show_bug.cgi?id=16604">PR#16604</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>configure</code> works better with Oracle Developer | |
| Studio 12.5. | |
| </p> | |
| </li></ul> | |
| <h4>UTILITIES</h4> | |
| <ul> | |
| <li> <p><code>R CMD check</code> reports more dubious flags in files | |
| ‘<span class="file">src/Makevars[.in]</span>’, including <span class="option">-w</span> and <span class="option">-g</span>. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> has been set up to filter important | |
| warnings from recent versions of <code>gfortran</code> with | |
| <span class="option">-Wall -pedantic</span>: this now reports non-portable GNU | |
| extensions such as out-of-order declarations. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD config</code> works better with paths containing | |
| spaces, even those of home directories (as reported by Ken Beath). | |
| </p> | |
| </li></ul> | |
| <h4>DEPRECATED AND DEFUNCT</h4> | |
| <ul> | |
| <li><p> Use of the C/C++ macro <span class="samp">NO_C_HEADERS</span> is deprecated | |
| (no C headers are included by <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> headers from C++ as from <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> | |
| 3.3.0, so it should no longer be needed). | |
| </p> | |
| </li></ul> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li><p> The check for non-portable flags in <code>R CMD check</code> | |
| could be stymied by ‘<span class="file">src/Makevars</span>’ files which contained | |
| targets. | |
| </p> | |
| </li> | |
| <li><p> (Windows only) When using certain desktop themes in Windows | |
| 7 or higher, <kbd>Alt-Tab</kbd> could cause <code>Rterm</code> to stop | |
| accepting input. (<a href="https://bugs.R-project.org/show_bug.cgi?id=14406">PR#14406</a>; patch submitted by Jan Gleixner.) | |
| </p> | |
| </li> | |
| <li> <p><code>pretty(d, ..)</code> behaves better for date-time <code>d</code> | |
| (<a href="https://bugs.R-project.org/show_bug.cgi?id=16923">PR#16923</a>). | |
| </p> | |
| </li> | |
| <li><p> When an S4 class name matches multiple classes in the S4 | |
| cache, perform a dynamic search in order to obey namespace | |
| imports. This should eliminate annoying messages about multiple | |
| hits in the class cache. Also, pass along the package from the | |
| <code>ClassExtends</code> object when looking up superclasses in the | |
| cache. | |
| </p> | |
| </li> | |
| <li> <p><code>sample(NA_real_)</code> now works. | |
| </p> | |
| </li> | |
| <li><p> Packages using non-ASCII encodings in their code did not | |
| install data properly on systems using different encodings. | |
| </p> | |
| </li> | |
| <li> <p><code>merge(df1, df2)</code> now also works for data frames with | |
| column names <code>"na.last"</code>, <code>"decreasing"</code>, or | |
| <code>"method"</code>. (<a href="https://bugs.R-project.org/show_bug.cgi?id=17119">PR#17119</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>contour()</code> caused a segfault if the <code>labels</code> | |
| argument had length zero. (Reported by Bill Dunlap.) | |
| </p> | |
| </li> | |
| <li> <p><code>unique(warnings())</code> works more correctly, thanks to a | |
| new <code>duplicated.warnings()</code> method. | |
| </p> | |
| </li> | |
| <li> <p><code>findInterval(x, vec = numeric(), all.inside = TRUE)</code> | |
| now returns <code>0</code>s as documented. (Reported by Bill Dunlap.) | |
| </p> | |
| </li> | |
| <li><p> (Windows only) <code>R CMD SHLIB</code> failed when a symbol | |
| in the resulting library had the same name as a keyword in | |
| the ‘<span class="file">.def</span>’ file. (<a href="https://bugs.R-project.org/show_bug.cgi?id=17130">PR#17130</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>pmax()</code> and <code>pmin()</code> now work with (more ?) | |
| classed objects, such as <code>"Matrix"</code> from the <a href="https://CRAN.R-project.org/package=Matrix"><span class="pkg">Matrix</span></a> | |
| package, as documented for a long time. | |
| </p> | |
| </li> | |
| <li> <p><code>axis(side, x = D)</code> and hence <code>Axis()</code> and | |
| <code>plot()</code> now work correctly for <code>"Date"</code> and time | |
| objects <code>D</code>, even when “time goes backward”, e.g., | |
| with decreasing <code>xlim</code>. (Reported by William May.) | |
| </p> | |
| </li> | |
| <li> <p><code>str(I(matrix(..)))</code> now looks as always intended. | |
| </p> | |
| </li> | |
| <li> <p><code>plot.ts()</code>, the <code>plot()</code> method for time series, | |
| now respects <code>cex</code>, <code>lwd</code> and <code>lty</code>. (Reported by | |
| Greg Werbin.) | |
| </p> | |
| </li> | |
| <li> <p><code>parallel::mccollect()</code> now returns a named list (as | |
| documented) when called with <code>wait = FALSE</code>. (Reported by | |
| Michel Lang.) | |
| </p> | |
| </li> | |
| <li><p> If a package added a class to a class union in another | |
| package, loading the first package gave erroneous warnings | |
| about “undefined subclass”. | |
| </p> | |
| </li> | |
| <li> <p><code>c()</code>'s argument <code>use.names</code> is documented now, as | |
| belonging to the (C internal) default method. In | |
| “parallel”, argument <code>recursive</code> is also moved from | |
| the generic to the default method, such that the formal argument list | |
| of <span class="pkg">base</span> generic <code>c()</code> is just <code>(...)</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>rbeta(4, NA)</code> and similarly <code>rgamma()</code> and | |
| <code>rnbinom()</code> now return <code>NaN</code>'s with a warning, as other | |
| r<dist>(), and as documented. (<a href="https://bugs.R-project.org/show_bug.cgi?id=17155">PR#17155</a>) | |
| </p> | |
| </li> | |
| <li><p> Using <code>options(checkPackageLicense = TRUE)</code> no longer | |
| requires acceptance of the licence for non-default standard | |
| packages such as <span class="pkg">compiler</span>. (Reported by Mikko Korpela.) | |
| </p> | |
| </li> | |
| <li> <p><code>split(<very_long>, *)</code> now works even when the split | |
| off parts are long. (<a href="https://bugs.R-project.org/show_bug.cgi?id=17139">PR#17139</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>min()</code> and <code>max()</code> now also work correctly when | |
| the argument list starts with <code>character(0)</code>. (<a href="https://bugs.R-project.org/show_bug.cgi?id=17160">PR#17160</a>) | |
| </p> | |
| </li> | |
| <li><p> Subsetting very large matrices (<code>prod(dim(.)) >= 2^31</code>) | |
| now works thanks to Michael Schubmehl's <a href="https://bugs.R-project.org/show_bug.cgi?id=17158">PR#17158</a>. | |
| </p> | |
| </li> | |
| <li> <p><code>bartlett.test()</code> used residual sums of squares | |
| instead of variances, when the argument was a list of <code>lm</code> objects. | |
| (Reported by Jens Ledet Jensen). | |
| </p> | |
| </li> | |
| <li> <p><code>plot(<lm>, which = *)</code> now correctly labels the | |
| contour lines for the standardized residuals for <code>which = 6</code>. | |
| It also takes the correct <i>p</i> in case of singularities (also | |
| for <code>which = 5</code>). (<a href="https://bugs.R-project.org/show_bug.cgi?id=17161">PR#17161</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>xtabs(~ exclude)</code> no longer fails from wrong scope, | |
| thanks to Suharto Anggono's <a href="https://bugs.R-project.org/show_bug.cgi?id=17147">PR#17147</a>. | |
| </p> | |
| </li> | |
| <li><p> Reference class calls to <code>methods()</code> did not | |
| re-analyse previously defined methods, meaning that calls to | |
| methods defined later would fail. (Reported by Charles Tilford). | |
| </p> | |
| </li> | |
| <li> <p><code>findInterval(x, vec, left.open = TRUE)</code> misbehaved in some | |
| cases. (Reported by Dmitriy Chernykh.) | |
| </p> | |
| </li></ul> | |
| <h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.3.1</h3> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li> <p><code>R CMD INSTALL</code> and hence <code>install.packages()</code> | |
| gave an internal error installing a package called | |
| <span class="pkg">description</span> from a tarball on a case-insensitive file system. | |
| </p> | |
| </li> | |
| <li> <p><code>match(x, t)</code> (and hence <code>x %in% t</code>) failed | |
| when <code>x</code> was of length one, and either <code>character</code> and <code>x</code> | |
| and <code>t</code> only differed in their <code>Encoding</code> or when | |
| <code>x</code> and <code>t</code> where <code>complex</code> with <code>NA</code>s or <code>NaN</code>s. | |
| (<a href="https://bugs.R-project.org/show_bug.cgi?id=16885">PR#16885</a>.) | |
| </p> | |
| </li> | |
| <li> <p><code>unloadNamespace(ns)</code> also works again when <code>ns</code> is a | |
| ‘namespace’, as from <code>getNamespace()</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>rgamma(1, Inf)</code> or <code>rgamma(1, 0, 0)</code> no longer give | |
| <code>NaN</code> but the correct limit. | |
| </p> | |
| </li> | |
| <li> <p><code>length(baseenv())</code> is correct now. | |
| </p> | |
| </li> | |
| <li> <p><code>pretty(d, ..)</code> for date-time <code>d</code> rarely failed | |
| when <code>"halfmonth"</code> time steps were tried (<a href="https://bugs.R-project.org/show_bug.cgi?id=16923">PR#16923</a>) and | |
| on ‘inaccurate’ platforms such as 32-bit Windows or | |
| a configuration with <code>--disable-long-double</code>; see comment | |
| #15 of <a href="https://bugs.R-project.org/show_bug.cgi?id=16761">PR#16761</a>. | |
| </p> | |
| </li> | |
| <li><p> In <code>text.default(x, y, labels)</code>, the rarely(?) used | |
| default for <code>labels</code> is now correct also for the case of a | |
| 2-column matrix <code>x</code> and missing <code>y</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>as.factor(c(a = 1L))</code> preserves <code>names()</code> again | |
| as in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> < 3.1.0. | |
| </p> | |
| </li> | |
| <li> <p><code>strtrim(""[0], 0[0])</code> now works. | |
| </p> | |
| </li> | |
| <li><p> Use of <code>Ctrl-C</code> to terminate a reverse incremental | |
| search started by <code>Ctrl-R</code> in the <code>readline</code>-based Unix | |
| terminal interface is now supported when <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> was compiled against | |
| <code>readline</code> >= 6.0 (<code>Ctrl-G</code> always worked). | |
| (<a href="https://bugs.R-project.org/show_bug.cgi?id=16603">PR#16603</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>diff(<difftime>)</code> now keeps the <code>"units"</code> | |
| attribute, as subtraction already did, <a href="https://bugs.R-project.org/show_bug.cgi?id=16940">PR#16940</a>. | |
| </p> | |
| </li></ul> | |
| <h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.3.0</h3> | |
| <h4>SIGNIFICANT USER-VISIBLE CHANGES</h4> | |
| <ul> | |
| <li> <p><code>nchar(x, *)</code>'s argument <code>keepNA</code> governing how | |
| the result for <code>NA</code>s in <code>x</code> is determined, gets a new | |
| default <code>keepNA = NA</code> which returns <code>NA</code> where | |
| <code>x</code> is <code>NA</code>, except for <code>type = "width"</code> which still | |
| returns <code>2</code>, the formatting / printing width of <code>NA</code>. | |
| </p> | |
| </li> | |
| <li><p> All builds have support for <span class="samp">https:</span> URLs in the | |
| default methods for <code>download.file()</code>, <code>url()</code> and code | |
| making use of them. | |
| </p> | |
| <p>Unfortunately that cannot guarantee that any particular | |
| <span class="samp">https:</span> URL can be accessed. For example, server and client | |
| have to successfully negotiate a cryptographic protocol (TLS/SSL, | |
| ...) and the server's identity has to be verifiable <em>via</em> | |
| the available certificates. Different access methods may allow | |
| different protocols or use private certificate bundles: we | |
| encountered a <span class="samp">https:</span> CRAN mirror which could be accessed by | |
| one browser but not by another nor by <code>download.file()</code> on | |
| the same Linux machine. | |
| </p> | |
| </li></ul> | |
| <h4>NEW FEATURES</h4> | |
| <ul> | |
| <li><p> The <code>print</code> method for <code>methods()</code> gains a | |
| <code>byclass</code> argument. | |
| </p> | |
| </li> | |
| <li><p> New functions <code>validEnc()</code> and <code>validUTF8()</code> to | |
| give access to the validity checks for inputs used by | |
| <code>grep()</code> and friends. | |
| </p> | |
| </li> | |
| <li><p> Experimental new functionality for S3 method checking, notably | |
| <code>isS3method()</code>. | |
| </p> | |
| <p>Also, the names of the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> ‘language elements’ are exported | |
| as character vector <code>tools::langElts</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>str(x)</code> now displays <code>"Time-Series"</code> also for | |
| matrix (multivariate) time-series, i.e. when <code>is.ts(x)</code> is true. | |
| </p> | |
| </li> | |
| <li><p> (Windows only) The GUI menu item to install local packages | |
| now accepts ‘<span class="file">*.tar.gz</span>’ files as well as ‘<span class="file">*.zip</span>’ files | |
| (but defaults to the latter). | |
| </p> | |
| </li> | |
| <li><p> New programmeR's utility function <code>chkDots()</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>D()</code> now signals an error when given invalid input, | |
| rather than silently returning <code>NA</code>. (Request of John Nash.) | |
| </p> | |
| </li> | |
| <li> <p><code>formula</code> objects are slightly more “first class”: | |
| e.g., <code>formula()</code> or <code>new("formula", y ~ x)</code> are now | |
| valid. Similarly, for <code>"table"</code>, <code>"ordered"</code> and | |
| <code>"summary.table"</code>. Packages defining S4 classes with the above | |
| S3/S4 classes as slots should be reinstalled. | |
| </p> | |
| </li> | |
| <li><p> New function <code>strrep()</code> for repeating the elements of a | |
| character vector. | |
| </p> | |
| </li> | |
| <li> <p><code>rapply()</code> preserves attributes on the list when | |
| <code>how = "replace"</code>. | |
| </p> | |
| </li> | |
| <li><p> New S3 generic function <code>sigma()</code> with methods for | |
| extracting the estimated standard deviation aka “residual | |
| standard deviation” from a fitted model. | |
| </p> | |
| </li> | |
| <li> <p><code>news()</code> now displays <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> and package news files within | |
| the HTML help system if it is available. If no news file is found, | |
| a visible <code>NULL</code> is returned to the console. | |
| </p> | |
| </li> | |
| <li> <p><code>as.raster(x)</code> now also accepts <code>raw</code> arrays | |
| <code>x</code> assuming values in <code>0:255</code>. | |
| </p> | |
| </li> | |
| <li><p> Subscripting of matrix/array objects of type | |
| <code>"expression"</code> is now supported. | |
| </p> | |
| </li> | |
| <li> <p><code>type.convert("i")</code> now returns a factor instead of a | |
| complex value with zero real part and missing imaginary part. | |
| </p> | |
| </li> | |
| <li><p> Graphics devices <code>cairo_pdf()</code> and <code>cairo_ps()</code> | |
| now allow non-default values of the cairographics ‘fallback | |
| resolution’ to be set. | |
| </p> | |
| <p>This now defaults to 300 on all platforms: that is the default | |
| documented by cairographics, but apparently was not used by all | |
| system installations. | |
| </p> | |
| </li> | |
| <li> <p><code>file()</code> gains an explicit <code>method</code> argument | |
| rather than implicitly using | |
| <code>getOption("url.method", "default")</code>. | |
| </p> | |
| </li> | |
| <li><p> Thanks to a patch from Tomas Kalibera, <code>x[x != 0]</code> is | |
| now typically faster than <code>x[which(x != 0)]</code> (in the case | |
| where <code>x</code> has no NAs, the two are equivalent). | |
| </p> | |
| </li> | |
| <li> <p><code>read.table()</code> now always uses the names for a named | |
| <code>colClasses</code> argument (previously names were only used when | |
| <code>colClasses</code> was too short). (In part, wish of <a href="https://bugs.R-project.org/show_bug.cgi?id=16478">PR#16478</a>.) | |
| </p> | |
| </li> | |
| <li><p> (Windows only) <code>download.file()</code> with default | |
| <code>method = "auto"</code> and a <span class="samp">ftps://</span> URL chooses | |
| <code>"libcurl"</code> if that is available. | |
| </p> | |
| </li> | |
| <li><p> The out-of-the box Bioconductor mirror has been changed to | |
| one using <span class="samp">https://</span>: use <code>chooseBioCmirror()</code> to choose | |
| a <span class="samp">http://</span> mirror if required. | |
| </p> | |
| </li> | |
| <li><p> The data frame and formula methods for <code>aggregate()</code> | |
| gain a <code>drop</code> argument. | |
| </p> | |
| </li> | |
| <li> <p><code>available.packages()</code> gains a <code>repos</code> argument. | |
| </p> | |
| </li> | |
| <li><p> The undocumented switching of methods for <code>url()</code> on | |
| <span class="samp">https:</span> and <span class="samp">ftps:</span> URLs is confined to | |
| <code>method = "default"</code> (and documented). | |
| </p> | |
| </li> | |
| <li> <p><code>smoothScatter()</code> gains a <code>ret.selection</code> argument. | |
| </p> | |
| </li> | |
| <li> <p><code>qr()</code> no longer has a <code>...</code> argument to pass | |
| additional arguments to methods. | |
| </p> | |
| </li> | |
| <li> <p><code>[</code> has a method for class <code>"table"</code>. | |
| </p> | |
| </li> | |
| <li><p> It is now possible (again) to <code>replayPlot()</code> a | |
| display list snapshot that was created by <code>recordPlot()</code> | |
| in a different <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> session. | |
| </p> | |
| <p>It is still not a good idea to use snapshots as a persistent | |
| storage format for <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> plots, but it is now not completely silly to | |
| use a snapshot as a format for transferring an R plot between two | |
| R sessions. | |
| </p> | |
| <p>The underlying changes mean that packages providing graphics | |
| devices (e.g., <a href="https://CRAN.R-project.org/package=Cairo"><span class="pkg">Cairo</span></a>, <a href="https://CRAN.R-project.org/package=RSvgDevice"><span class="pkg">RSvgDevice</span></a>, | |
| <a href="https://CRAN.R-project.org/package=cairoDevice"><span class="pkg">cairoDevice</span></a>, <a href="https://CRAN.R-project.org/package=tikzDevice"><span class="pkg">tikzDevice</span></a>) will need to be | |
| reinstalled. | |
| </p> | |
| <p>Code for restoring snapshots was contributed by Jeroen Ooms | |
| and JJ Allaire. | |
| </p> | |
| <p>Some testing code is available at | |
| <a href="https://github.com/pmur002/R-display-list">https://github.com/pmur002/R-display-list</a>. | |
| </p> | |
| </li> | |
| <li> <p><code>tools::undoc(dir = D)</code> and <code>codoc(dir = D)</code> now | |
| also work when <code>D</code> is a directory whose <code>normalizePath()</code>ed | |
| version does not end in the package name, e.g. from a symlink. | |
| </p> | |
| </li> | |
| <li> <p><code>abbreviate()</code> has more support for multi-byte | |
| character sets – it no longer removes bytes within characters and | |
| knows about Latin vowels with accents. It is still only | |
| really suitable for (most) European languages, and still warns on | |
| non-ASCII input. | |
| </p> | |
| <p><code>abbreviate(use.classes = FALSE)</code> is now implemented, and | |
| that is more suitable for non-European languages. | |
| </p> | |
| </li> | |
| <li> <p><code>match(x, table)</code> is faster (sometimes by an order of | |
| magnitude) when <code>x</code> is of length one and <code>incomparables</code> | |
| is unchanged, thanks to Peter Haverty (<a href="https://bugs.R-project.org/show_bug.cgi?id=16491">PR#16491</a>). | |
| </p> | |
| </li> | |
| <li><p> More consistent, partly not back-compatible behavior of | |
| <code>NA</code> and <code>NaN</code> coercion to complex numbers, operations | |
| less often resulting in complex <code>NA</code> (<code>NA_complex_</code>). | |
| </p> | |
| </li> | |
| <li> <p><code>lengths()</code> considers methods for <code>length</code> and | |
| <code>[[</code> on <code>x</code>, so it should work automatically on any | |
| objects for which appropriate methods on those generics are | |
| defined. | |
| </p> | |
| </li> | |
| <li><p> The logic for selecting the default screen device on OS X | |
| has been simplified: it is now <code>quartz()</code> if that is | |
| available even if environment variable <span class="env">DISPLAY</span> has been set | |
| by the user. | |
| </p> | |
| <p>The choice can easily be overridden <em>via</em> environment | |
| variable <span class="env">R_INTERACTIVE_DEVICE</span>. | |
| </p> | |
| </li> | |
| <li><p> On Unix-like platforms which support the <code>getline</code> C | |
| library function, <code>system(*, intern = TRUE)</code> no longer | |
| truncates (output) lines longer than 8192 characters, thanks to | |
| Karl Millar. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16544">PR#16544</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>rank()</code> gains a <code>ties.method = "last"</code> option, | |
| for convenience (and symmetry). | |
| </p> | |
| </li> | |
| <li> <p><code>regmatches(invert = NA)</code> can now be used to extract | |
| both non-matched and matched substrings. | |
| </p> | |
| </li> | |
| <li> <p><code>data.frame()</code> gains argument <code>fix.empty.names</code>; | |
| <code>as.data.frame.list()</code> gets new <code>cut.names</code>, | |
| <code>col.names</code> and <code>fix.empty.names</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>plot(x ~ x, *)</code> now warns that it is the same as | |
| <code>plot(x ~ 1, *)</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>recordPlot()</code> has new arguments <code>load</code> and | |
| <code>attach</code> to allow package names to be stored as part of a | |
| recorded plot. <code>replayPlot()</code> has new argument | |
| <code>reloadPkgs</code> to load/attach any package names that were | |
| stored as part of a recorded plot. | |
| </p> | |
| </li> | |
| <li><p> S4 dispatch works within calls to <code>.Internal()</code>. This | |
| means explicit S4 generics are no longer needed for | |
| <code>unlist()</code> and <code>as.vector()</code>. | |
| </p> | |
| </li> | |
| <li><p> Only font family names starting with <span class="samp">"Hershey"</span> (and | |
| not <span class="samp">"Her"</span> as before) are given special treatment by the | |
| graphics engine. | |
| </p> | |
| </li> | |
| <li><p> S4 values are automatically coerced to vector (<em>via</em> | |
| <code>as.vector</code>) when subassigned into atomic vectors. | |
| </p> | |
| </li> | |
| <li> <p><code>findInterval()</code> gets a <code>left.open</code> option. | |
| </p> | |
| </li> | |
| <li><p> The version of LAPACK included in the sources has been | |
| updated to 3.6.0, including those ‘deprecated’ routines | |
| which were previously included. <em>Ca</em> 40 double-complex | |
| routines have been added at the request of a package maintainer. | |
| </p> | |
| <p>As before, the details of what is included are in | |
| ‘<span class="file">src/modules/lapack/README</span>’ and this now gives information on | |
| earlier additions. | |
| </p> | |
| </li> | |
| <li> <p><code>tapply()</code> has been made considerably more efficient | |
| without changing functionality, thanks to proposals from Peter | |
| Haverty and Suharto Anggono. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16640">PR#16640</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>match.arg(arg)</code> (the one-argument case) is faster; so | |
| is <code>sort.int()</code>. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16652">PR#16652</a>) | |
| </p> | |
| </li> | |
| <li><p> The <code>format</code> method for <code>object_size</code> objects now | |
| also accepts “binary” units such as <code>"KiB"</code> and e.g., | |
| <code>"Tb"</code>. (Partly from <a href="https://bugs.R-project.org/show_bug.cgi?id=16649">PR#16649</a>.) | |
| </p> | |
| </li> | |
| <li><p> Profiling now records calls of the form <code>foo::bar</code> and | |
| some similar cases directly rather than as calls to | |
| <code><Anonymous></code>. Contributed by Winston Chang. | |
| </p> | |
| </li> | |
| <li><p> New string utilities <code>startsWith(x, prefix)</code> and | |
| <code>endsWith(x, suffix)</code>. Also provide speedups for some | |
| <code>grepl("^...", *)</code> uses (related to proposals in <a href="https://bugs.R-project.org/show_bug.cgi?id=16490">PR#16490</a>). | |
| </p> | |
| </li> | |
| <li><p> Reference class finalizers run at exit, as well as on | |
| garbage collection. | |
| </p> | |
| </li> | |
| <li><p> Avoid <span class="pkg">parallel</span> dependency on <span class="pkg">stats</span> for port | |
| choice and random number seeds. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16668">PR#16668</a>) | |
| </p> | |
| </li> | |
| <li><p> The radix sort algorithm and implementation from | |
| <a href="https://CRAN.R-project.org/package=data.table"><span class="pkg">data.table</span></a> (<code>forder</code>) replaces the previous radix | |
| (counting) sort and adds a new method for <code>order()</code>. | |
| Contributed by Matt Dowle and Arun Srinivasan, the new algorithm | |
| supports logical, integer (even with large values), real, and | |
| character vectors. It outperforms all other methods, but there | |
| are some caveats (see <code>?sort</code>). | |
| </p> | |
| </li> | |
| <li><p> The <code>order()</code> function gains a <code>method</code> argument | |
| for choosing between <code>"shell"</code> and <code>"radix"</code>. | |
| </p> | |
| </li> | |
| <li><p> New function <code>grouping()</code> returns a permutation that | |
| stably rearranges data so that identical values are adjacent. The | |
| return value includes extra partitioning information on the | |
| groups. The implementation came included with the new radix sort. | |
| </p> | |
| </li> | |
| <li> <p><code>rhyper(nn, m, n, k)</code> no longer returns <code>NA</code> when | |
| one of the three parameters exceeds the maximal integer. | |
| </p> | |
| </li> | |
| <li> <p><code>switch()</code> now warns when no alternatives are provided. | |
| </p> | |
| </li> | |
| <li> <p><code>parallel::detectCores()</code> now has default <code>logical | |
| = TRUE</code> on all platforms – as this was the default on Windows, | |
| this change only affects Sparc Solaris. | |
| </p> | |
| <p>Option <code>logical = FALSE</code> is now supported on Linux and recent | |
| versions of OS X (for the latter, thanks to a suggestion of Kyaw | |
| Sint). | |
| </p> | |
| </li> | |
| <li> <p><code>hist()</code> for <code>"Date"</code> or <code>"POSIXt"</code> objects | |
| would sometimes give misleading labels on the breaks, as they | |
| were set to the day before the start of the period being | |
| displayed. The display format has been changed, and the shift of the | |
| start day has been made conditional on <code>right = TRUE</code> (the | |
| default). (<a href="https://bugs.R-project.org/show_bug.cgi?id=16679">PR#16679</a>) | |
| </p> | |
| </li> | |
| <li> <p><span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> now uses a new version of the logo (donated to the R | |
| Foundation by RStudio). It is defined in ‘<span class="file">.svg</span>’ format, so | |
| will resize without unnecessary degradation when displayed on | |
| HTML pages—there is also a vector PDF version. Thanks to | |
| Dirk Eddelbuettel for producing the corresponding X11 icon. | |
| </p> | |
| </li> | |
| <li><p> New function <code>.traceback()</code> returns the stack trace | |
| which <code>traceback()</code> prints. | |
| </p> | |
| </li> | |
| <li> <p><code>lengths()</code> dispatches internally. | |
| </p> | |
| </li> | |
| <li> <p><code>dotchart()</code> gains a <code>pt.cex</code> argument to control | |
| the size of points separately from the size of plot labels. | |
| Thanks to Michael Friendly and Milan Bouchet-Valat for ideas | |
| and patches. | |
| </p> | |
| </li> | |
| <li> <p><code>as.roman(ch)</code> now correctly deals with more diverse | |
| character vectors <code>ch</code>; also arithmetic with the resulting | |
| roman numbers works in more cases. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16779">PR#16779</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>prcomp()</code> gains a new option <code>rank.</code> allowing to | |
| directly aim for less than <code>min(n,p)</code> PC's. The | |
| <code>summary()</code> and its <code>print()</code> method have been amended, | |
| notably for this case. | |
| </p> | |
| </li> | |
| <li> <p><code>gzcon()</code> gains a new option <code>text</code>, which marks | |
| the connection as text-oriented (so e.g. <code>pushBack()</code> | |
| works). It is still always opened in binary mode. | |
| </p> | |
| </li> | |
| <li><p> The <code>import()</code> namespace directive now accepts an | |
| argument <code>except</code> which names symbols to exclude from the | |
| imports. The <code>except</code> expression should evaluate to a | |
| character vector (after substituting symbols for strings). See | |
| Writing R Extensions. | |
| </p> | |
| </li> | |
| <li><p> New convenience function <code>Rcmd()</code> in package | |
| <span class="pkg">tools</span> for invoking <code>R CMD</code> tools from within <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>. | |
| </p> | |
| </li> | |
| <li><p> New functions <code>makevars_user()</code> and | |
| <code>makevars_site()</code> in package <span class="pkg">tools</span> to determine the | |
| location of the user and site specific ‘<span class="file">Makevars</span>’ files for | |
| customizing package compilation. | |
| </p> | |
| </li></ul> | |
| <h4>UTILITIES</h4> | |
| <ul> | |
| <li> <p><code>R CMD check</code> has a new option | |
| <span class="option">--ignore-vignettes</span> for use with non-Sweave vignettes | |
| whose <span class="samp">VignetteBuilder</span> package is not available. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> now by default checks code usage | |
| (<em>via</em> <a href="https://CRAN.R-project.org/package=codetools"><span class="pkg">codetools</span></a>) with only the base package | |
| attached. Functions from default packages other than <span class="pkg">base</span> | |
| which are used in the package code but not imported are reported | |
| as undefined globals, with a suggested addition to the | |
| <code>NAMESPACE</code> file. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check --as-cran</code> now also checks DOIs in | |
| package ‘<span class="file">CITATION</span>’ and Rd files. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD Rdconv</code> and <code>R CMD Rd2pdf</code> each have | |
| a new option <span class="option">--RdMacros=pkglist</span> which allows Rd macros | |
| to be specified before processing. | |
| </p> | |
| </li></ul> | |
| <h4>DEPRECATED AND DEFUNCT</h4> | |
| <ul> | |
| <li><p> The previously included versions of <code>zlib</code>, | |
| <code>bzip2</code>, <code>xz</code> and PCRE have been removed, so suitable | |
| external (usually system) versions are required (see the | |
| ‘R Installation and Administration’ manual). | |
| </p> | |
| </li> | |
| <li><p> The unexported and undocumented Windows-only devices | |
| <code>cairo_bmp()</code>, <code>cairo_png()</code> and <code>cairo_tiff()</code> | |
| have been removed. (These devices should be used as | |
| e.g. <code>bmp(type = "cairo")</code>.) | |
| </p> | |
| </li> | |
| <li><p> (Windows only) Function <code>setInternet2()</code> has no effect | |
| and will be removed in due course. The choice between methods | |
| <code>"internal"</code> and <code>"wininet"</code> is now made by the | |
| <code>method</code> arguments of <code>url()</code> and <code>download.file()</code> | |
| and their defaults can be set <em>via</em> options. The | |
| out-of-the-box default remains <code>"wininet"</code> (as it has been | |
| since <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.2.2). | |
| </p> | |
| </li> | |
| <li> <p><code>[<-</code> with an S4 value into a list currently embeds the | |
| S4 object into its own list such that the end result is roughly | |
| equivalent to using <code>[[<-</code>. That behavior is deprecated. In | |
| the future, the S4 value will be coerced to a list with | |
| <code>as.list()</code>. | |
| </p> | |
| </li> | |
| <li><p> Package <span class="pkg">tools</span>' functions | |
| <code>package.dependencies()</code>, <code>pkgDepends()</code>, etc are | |
| deprecated now, mostly in favor of <code>package_dependencies()</code> | |
| which is both more flexible and efficient. | |
| </p> | |
| </li></ul> | |
| <h4>INSTALLATION and INCLUDED SOFTWARE</h4> | |
| <ul> | |
| <li><p> Support for very old versions of <code>valgrind</code> | |
| (e.g., 3.3.0) has been removed. | |
| </p> | |
| </li> | |
| <li><p> The included <code>libtool</code> script (generated by | |
| <code>configure</code>) has been updated to version 2.4.6 (from 2.2.6a). | |
| </p> | |
| </li> | |
| <li> <p><code>libcurl</code> version 7.28.0 or later with support for the | |
| <code>https</code> protocol is required for installation (except on | |
| Windows). | |
| </p> | |
| </li> | |
| <li><p> BSD networking is now required (except on Windows) and so | |
| <code>capabilities("http/ftp")</code> is always true. | |
| </p> | |
| </li> | |
| <li> <p><code>configure</code> uses <code>pkg-config</code> for PNG, TIFF | |
| and JPEG where this is available. This should work better with | |
| multiple installs and with those using static libraries. | |
| </p> | |
| </li> | |
| <li><p> The minimum supported version of OS X is 10.6 (‘Snow | |
| Leopard’): even that has been unsupported by Apple since 2012. | |
| </p> | |
| </li> | |
| <li><p> The <code>configure</code> default on OS X is | |
| <span class="option">--disable-R-framework</span>: enable this if you intend to | |
| install under ‘<span class="file">/Library/Frameworks</span>’ and use with <code>R.app</code>. | |
| </p> | |
| </li> | |
| <li><p> The minimum preferred version of PCRE has since <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.0.0 | |
| been 8.32 (released in Nov 2012). Versions 8.10 to 8.31 are now | |
| deprecated (with warnings from <code>configure</code>), but will | |
| still be accepted until <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.4.0. | |
| </p> | |
| </li> | |
| <li> <p><code>configure</code> looks for C functions <code>__cospi</code>, | |
| <code>__sinpi</code> and <code>__tanpi</code> and uses these if <code>cospi</code> | |
| <em>etc</em> are not found. (OS X is the main instance.) | |
| </p> | |
| </li> | |
| <li><p> (Windows) R is now built using <code>gcc</code> | |
| 4.9.3. This build will require recompilation of at least those packages | |
| that include C++ code, and possibly others. A build of R-devel using | |
| the older toolchain will be temporarily available for comparison | |
| purposes. | |
| </p> | |
| <p>During the transition, the environment variable | |
| <span class="env">R_COMPILED_BY</span> has been defined to indicate which toolchain | |
| was used to compile R (and hence, which should be used to compile | |
| code in packages). The <code>COMPILED_BY</code> variable described below | |
| will be a permanent replacement for this. | |
| </p> | |
| </li> | |
| <li><p> (Windows) A <code>make</code> and <code>R CMD config</code> variable | |
| named <code>COMPILED_BY</code> has been added. This indicates | |
| which toolchain was used to compile R (and hence, which should be | |
| used to compile code in packages). | |
| </p> | |
| </li></ul> | |
| <h4>PACKAGE INSTALLATION</h4> | |
| <ul> | |
| <li><p> The <code>make</code> macro <code>AWK</code> which used to be made | |
| available to files such as ‘<span class="file">src/Makefile</span>’ is no longer set. | |
| </p> | |
| </li></ul> | |
| <h4>C-LEVEL FACILITIES</h4> | |
| <ul> | |
| <li><p> The API call <code>logspace_sum</code> introduced in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.2.0 is | |
| now remapped as an entry point to <code>Rf_logspace_sum</code>, and its | |
| first argument has gained a <code>const</code> qualifier. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16470">PR#16470</a>) | |
| </p> | |
| <p>Code using it will need to be reinstalled. | |
| </p> | |
| <p>Similarly, entry point <code>log1pexp</code> also defined in | |
| ‘<span class="file">Rmath.h</span>’ is remapped there to <code>Rf_log1pexp</code> | |
| </p> | |
| </li> | |
| <li> <p><code>R_GE_version</code> has been increased to <code>11</code>. | |
| </p> | |
| </li> | |
| <li><p> New API call <code>R_orderVector1</code>, a faster | |
| one-argument version of <code>R_orderVector</code>. | |
| </p> | |
| </li> | |
| <li><p> When <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> headers such as ‘<span class="file">R.h</span>’ and ‘<span class="file">Rmath.h</span>’ are | |
| called from C++ code in packages they include the C++ versions of | |
| system headers such as ‘<span class="file"><cmath></span>’ rather than the legacy | |
| headers such as ‘<span class="file"><math.h></span>’. (Headers ‘<span class="file">Rinternals.h</span>’ and | |
| ‘<span class="file">Rinterface.h</span>’ already did, and inclusion of system headers | |
| can still be circumvented by defining <code>NO_C_HEADERS</code>, | |
| including as from this version for those two headers.) | |
| </p> | |
| <p>The manual has long said that <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> headers should <b>not</b> be | |
| included within an <code>extern "C"</code> block, and almost all the | |
| packages affected by this change were doing so. | |
| </p> | |
| </li> | |
| <li><p> Including header ‘<span class="file">S.h</span>’ from C++ code would fail on some | |
| platforms, and so gives a compilation error on all. | |
| </p> | |
| </li> | |
| <li><p> The deprecated header ‘<span class="file">Rdefines.h</span>’ is now compatible | |
| with defining <code>R_NO_REMAP</code>. | |
| </p> | |
| </li> | |
| <li><p> The connections interface now includes a function | |
| <code>R_GetConnection()</code> which allows packages implementing | |
| connections to convert R <code>connection</code> objects to | |
| <code>Rconnection</code> handles. Code which previously | |
| used the low-level R-internal <code>getConnection()</code> entry point | |
| should switch. | |
| </p> | |
| </li></ul> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li><p> C-level <code>asChar(x)</code> is fixed for when <code>x</code> is not a | |
| vector, and it returns <code>"TRUE"</code>/<code>"FALSE"</code> instead of | |
| <code>"T"</code>/<code>"F"</code> for logical vectors. | |
| </p> | |
| </li> | |
| <li><p> The first arguments of <code>.colSums()</code> etc (with an | |
| initial dot) are now named <code>x</code> rather than <code>X</code> (matching | |
| <code>colSums()</code>): thus error messages are corrected. | |
| </p> | |
| </li> | |
| <li><p> A <code>coef()</code> method for class <code>"maov"</code> has been | |
| added to allow <code>vcov()</code> to work with multivariate | |
| results. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16380">PR#16380</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>method = "libcurl"</code> connections signal errors rather | |
| than retrieving HTTP error pages (where the ISP reports the | |
| error). | |
| </p> | |
| </li> | |
| <li> <p><code>xpdrows.data.frame()</code> was not checking for unique | |
| row names; in particular, this affected assignment to non-existing | |
| rows <em>via</em> numerical indexing. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16570">PR#16570</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>tail.matrix()</code> did not work for zero rows matrices, | |
| and could produce row “labels” such as <code>"[1e+05,]"</code>. | |
| </p> | |
| </li> | |
| <li><p> Data frames with a column named <code>"stringsAsFactors"</code> | |
| now format and print correctly. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16580">PR#16580</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>cor()</code> is now guaranteed to return a value with | |
| absolute value less than or equal to 1. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16638">PR#16638</a>) | |
| </p> | |
| </li> | |
| <li><p> Array subsetting now keeps <code>names(dim(.))</code>. | |
| </p> | |
| </li> | |
| <li><p> Blocking socket connection selection recovers more | |
| gracefully on signal interrupts. | |
| </p> | |
| </li> | |
| <li><p> The <code>data.frame</code> method of <code>rbind()</code> construction | |
| <code>row.names</code> works better in borderline integer cases, but | |
| may change the names assigned. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16666">PR#16666</a>) | |
| </p> | |
| </li> | |
| <li><p> (X11 only) <code>getGraphicsEvent()</code> miscoded buttons and | |
| missed mouse motion events. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16700">PR#16700</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>methods(round)</code> now also lists <code>round.POSIXt</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>tar()</code> now works with the default <code>files = NULL</code>. | |
| (<a href="https://bugs.R-project.org/show_bug.cgi?id=16716">PR#16716</a>) | |
| </p> | |
| </li> | |
| <li><p> Jumps to outer contexts, for example in error recovery, now | |
| make intermediate jumps to contexts where <code>on.exit()</code> actions | |
| are established instead of trying to run all <code>on.exit()</code> | |
| actions before jumping to the final target. This unwinds the stack | |
| gradually, releases resources held on the stack, and significantly | |
| reduces the chance of a segfault when running out of C stack | |
| space. Error handlers established using | |
| <code>withCallingHandlers()</code> and <code>options("error")</code> | |
| specifications are ignored when handling a C stack overflow error | |
| as attempting one of these would trigger a cascade of C stack | |
| overflow errors. (These changes resolve <a href="https://bugs.R-project.org/show_bug.cgi?id=16753">PR#16753</a>.) | |
| </p> | |
| </li> | |
| <li><p> The spacing could be wrong when printing a complex array. | |
| (Report and patch by Lukas Stadler.) | |
| </p> | |
| </li> | |
| <li> <p><code>pretty(d, n, min.n, *)</code> for date-time objects <code>d</code> | |
| works again in border cases with large <code>min.n</code>, returns a | |
| <code>labels</code> attribute also for small-range dates and in such cases | |
| its returned length is closer to the desired <code>n</code>. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16761">PR#16761</a>) | |
| Additionally, it finally does cover the range of <code>d</code>, as it | |
| always claimed. | |
| </p> | |
| </li> | |
| <li> <p><code>tsp(x) <- NULL</code> did not handle correctly objects | |
| inheriting from both <code>"ts"</code> and <code>"mts"</code>. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16769">PR#16769</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>install.packages()</code> could give false errors when | |
| <code>options("pkgType")</code> was <code>"binary"</code>. (Reported by | |
| Jose Claudio Faria.) | |
| </p> | |
| </li> | |
| <li><p> A bug fix in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.0.2 fixed problems with <code>locator()</code> | |
| in X11, but introduced problems in Windows. Now both should be | |
| fixed. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15700">PR#15700</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>download.file()</code> with <code>method = "wininet"</code> | |
| incorrectly warned of download file length difference when | |
| reported length was unknown. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16805">PR#16805</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>diag(NULL, 1)</code> crashed because of missed type | |
| checking. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16853">PR#16853</a>) | |
| </p> | |
| </li></ul> | |
| <h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.2.5</h3> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li> <p><code>format.POSIXlt()</code> behaved incorrectly in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.2.4. | |
| E.g. the output of | |
| <code>format(as.POSIXlt(paste0(1940:2000, "-01-01"), tz = "CET"), | |
| usetz = TRUE)</code> ended in two <code>"CEST"</code> time formats. | |
| </p> | |
| </li></ul> | |
| <h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.2.4</h3> | |
| <h4>NEW FEATURES</h4> | |
| <ul> | |
| <li> <p><code>install.packages()</code> and related functions now give a | |
| more informative warning when an attempt is made to install a base | |
| package. | |
| </p> | |
| </li> | |
| <li> <p><code>summary(x)</code> now prints with less rounding when | |
| <code>x</code> contains infinite values. (Request of <a href="https://bugs.R-project.org/show_bug.cgi?id=16620">PR#16620</a>.) | |
| </p> | |
| </li> | |
| <li> <p><code>provideDimnames()</code> gets an optional <code>unique</code> argument. | |
| </p> | |
| </li> | |
| <li> <p><code>shQuote()</code> gains <code>type = "cmd2"</code> for quoting | |
| in <code>cmd.exe</code> in Windows. (Response to <a href="https://bugs.R-project.org/show_bug.cgi?id=16636">PR#16636</a>.) | |
| </p> | |
| </li> | |
| <li><p> The <code>data.frame</code> method of <code>rbind()</code> gains an | |
| optional argument <code>stringsAsFactors</code> (instead of only | |
| depending on <code>getOption("stringsAsFactors")</code>). | |
| </p> | |
| </li> | |
| <li> <p><code>smooth(x, *)</code> now also works for long vectors. | |
| </p> | |
| </li> | |
| <li> <p><code>tools::texi2dvi()</code> has a workaround for problems with | |
| the <code>texi2dvi</code> script supplied by <span class="pkg">texinfo 6.1</span>. | |
| </p> | |
| <p>It extracts more error messages from the LaTeX logs when in | |
| emulation mode. | |
| </p> | |
| </li></ul> | |
| <h4>UTILITIES</h4> | |
| <ul> | |
| <li> <p><code>R CMD check</code> will leave a log file | |
| ‘<span class="file">build_vignettes.log</span>’ from the re-building of vignettes in | |
| the ‘<span class="file">.Rcheck</span>’ directory if there is a problem, and always if | |
| environment variable <span class="env">_R_CHECK_ALWAYS_LOG_VIGNETTE_OUTPUT_</span> is | |
| set to a true value. | |
| </p> | |
| </li></ul> | |
| <h4>DEPRECATED AND DEFUNCT</h4> | |
| <ul> | |
| <li><p> Use of <span class="samp">SUPPORT_OPENMP</span> from header ‘<span class="file">Rconfig.h</span>’ is | |
| deprecated in favour of the standard OpenMP define <span class="samp">_OPENMP</span>. | |
| </p> | |
| <p>(This has been the recommendation in the manual for a while now.) | |
| </p> | |
| </li> | |
| <li><p> The <code>make</code> macro <code>AWK</code> which is long unused by | |
| <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> itself but recorded in file ‘<span class="file">etc/Makeconf</span>’ is deprecated | |
| and will be removed in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.3.0. | |
| </p> | |
| </li> | |
| <li><p> The C header file ‘<span class="file">S.h</span>’ is no longer documented: its | |
| use should be replaced by ‘<span class="file">R.h</span>’. | |
| </p> | |
| </li></ul> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li> <p><code>kmeans(x, centers = <1-row>)</code> now works. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16623">PR#16623</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>Vectorize()</code> now checks for clashes in argument names. | |
| (<a href="https://bugs.R-project.org/show_bug.cgi?id=16577">PR#16577</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>file.copy(overwrite = FALSE)</code> would signal a successful | |
| copy when none had taken place. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16576">PR#16576</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>ngettext()</code> now uses the same default domain as | |
| <code>gettext()</code>. (<a href="https://bugs.R-project.org/show_bug.cgi?id=14605">PR#14605</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>array(.., dimnames = *)</code> now warns about | |
| non-<code>list</code> dimnames and, from <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.3.0, will signal the same | |
| error for invalid dimnames as <code>matrix()</code> has always done. | |
| </p> | |
| </li> | |
| <li> <p><code>addmargins()</code> now adds dimnames for the extended | |
| margins in all cases, as always documented. | |
| </p> | |
| </li> | |
| <li> <p><code>heatmap()</code> evaluated its <code>add.expr</code> argument | |
| in the wrong environment. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16583">PR#16583</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>require()</code> etc now give the correct entry of | |
| <code>lib.loc</code> in the warning about an old version of a package | |
| masking a newer required one. | |
| </p> | |
| </li> | |
| <li><p> The internal deparser did not add parentheses when | |
| necessary, e.g. before <code>[]</code> or <code>[[]]</code>. (Reported by | |
| Lukas Stadler; additional fixes included as well). | |
| </p> | |
| </li> | |
| <li> <p><code>as.data.frame.vector(*, row.names=*)</code> no longer | |
| produces ‘corrupted’ data frames from row names of incorrect | |
| length, but rather warns about them. This will become an error. | |
| </p> | |
| </li> | |
| <li> <p><code>url</code> connections with <code>method = "libcurl"</code> are | |
| destroyed properly. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16681">PR#16681</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>withCallingHandler()</code> now (again) handles warnings | |
| even during S4 generic's argument evaluation. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16111">PR#16111</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>deparse(..., control = "quoteExpressions")</code> | |
| incorrectly quoted empty expressions. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16686">PR#16686</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>format()</code>ting datetime objects (<code>"POSIX[cl]?t"</code>) | |
| could segfault or recycle wrongly. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16685">PR#16685</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>plot.ts(<matrix>, las = 1)</code> now does use <code>las</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>saveRDS(*, compress = "gzip")</code> now works as | |
| documented. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16653">PR#16653</a>) | |
| </p> | |
| </li> | |
| <li><p> (Windows only) The <code>Rgui</code> front end did not | |
| always initialize the console properly, and could cause | |
| <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> to crash. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16698">PR#16698</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>dummy.coef.lm()</code> now works in more cases, thanks to a | |
| proposal by Werner Stahel (<a href="https://bugs.R-project.org/show_bug.cgi?id=16665">PR#16665</a>). In addition, it now works | |
| for multivariate linear models (<code>"mlm"</code>, <code>manova</code>) | |
| thanks to a proposal by Daniel Wollschlaeger. | |
| </p> | |
| </li> | |
| <li><p> The <code>as.hclust()</code> method for <code>"dendrogram"</code>s | |
| failed often when there were ties in the heights. | |
| </p> | |
| </li> | |
| <li> <p><code>reorder()</code> and <code>midcache.dendrogram()</code> now are | |
| non-recursive and hence applicable to somewhat deeply nested | |
| dendrograms, thanks to a proposal by Suharto Anggono in <a href="https://bugs.R-project.org/show_bug.cgi?id=16424">PR#16424</a>. | |
| </p> | |
| </li> | |
| <li> <p><code>cor.test()</code> now calculates very small p values | |
| more accurately (affecting the result only in extreme not | |
| statistically relevant cases). (<a href="https://bugs.R-project.org/show_bug.cgi?id=16704">PR#16704</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>smooth(*, do.ends=TRUE)</code> did not always work correctly | |
| in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> versions between 3.0.0 and 3.2.3. | |
| </p> | |
| </li> | |
| <li> <p><code>pretty(D)</code> for date-time objects <code>D</code> now also | |
| works well if <code>range(D)</code> is (much) smaller than a second. In | |
| the case of only one unique value in <code>D</code>, the pretty range | |
| now is more symmetric around that value than previously. | |
| <br /> | |
| Similarly, <code>pretty(dt)</code> no longer returns a length 5 vector | |
| with duplicated entries for <code>Date</code> objects <code>dt</code> which | |
| span only a few days. | |
| </p> | |
| </li> | |
| <li><p> The figures in help pages such as <code>?points</code> were | |
| accidentally damaged, and did not appear in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.2.3. | |
| (<a href="https://bugs.R-project.org/show_bug.cgi?id=16708">PR#16708</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>available.packages()</code> sometimes deleted the wrong | |
| file when cleaning up temporary files. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16712">PR#16712</a>) | |
| </p> | |
| </li> | |
| <li><p> The <code>X11()</code> device sometimes froze on Red Hat | |
| Enterprise Linux 6. It now waits for <code>MapNotify</code> events | |
| instead of <code>Expose</code> events, thanks to Siteshwar | |
| Vashisht. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16497">PR#16497</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>[dpqr]nbinom(*, size=Inf, mu=.)</code> now works as limit | |
| case, for ‘dpq’ as the Poisson. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16727">PR#16727</a>)<br /> | |
| <code>pnbinom()</code> no longer loops infinitely in border cases. | |
| </p> | |
| </li> | |
| <li> <p><code>approxfun(*, method="constant")</code> and hence <code>ecdf()</code> | |
| which calls the former now correctly “predict” <code>NaN</code> | |
| values as <code>NaN</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>summary.data.frame()</code> now displays <code>NA</code>s in | |
| <code>Date</code> columns in all cases. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16709">PR#16709</a>) | |
| </p> | |
| </li></ul> | |
| <h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.2.3</h3> | |
| <h4>NEW FEATURES</h4> | |
| <ul> | |
| <li><p> Some recently-added Windows time zone names have been added | |
| to the conversion table used to convert these to Olson names. | |
| (Including those relating to changes for Russia in Oct 2014, as in | |
| <a href="https://bugs.R-project.org/show_bug.cgi?id=16503">PR#16503</a>.) | |
| </p> | |
| </li> | |
| <li><p> (Windows) Compatibility information has been added to the | |
| manifests for ‘<span class="file">Rgui.exe</span>’, ‘<span class="file">Rterm.exe</span>’ and | |
| ‘<span class="file">Rscript.exe</span>’. This should allow <code>win.version()</code> and | |
| <code>Sys.info()</code> to report the actual Windows version up to | |
| Windows 10. | |
| </p> | |
| </li> | |
| <li><p> Windows <code>"wininet"</code> FTP first tries EPSV / PASV mode | |
| rather than only using active mode (reported by Dan Tenenbaum). | |
| </p> | |
| </li> | |
| <li> <p><code>which.min(x)</code> and <code>which.max(x)</code> may be much | |
| faster for logical and integer <code>x</code> and now also work for long | |
| vectors. | |
| </p> | |
| </li> | |
| <li><p> The ‘emulation’ part of <code>tools::texi2dvi()</code> has | |
| been somewhat enhanced, including supporting <code>quiet = TRUE</code>. | |
| It can be selected by <code>texi2dvi = "emulation"</code>. | |
| </p> | |
| <p>(Windows) MiKTeX removed its <code>texi2dvi.exe</code> command in Sept | |
| 2015: <code>tools::texi2dvi()</code> tries <code>texify.exe</code> if it is | |
| not found. | |
| </p> | |
| </li> | |
| <li><p> (Windows only) Shortcuts for printing and saving have | |
| been added to menus in <code>Rgui.exe</code>. (Request of <a href="https://bugs.R-project.org/show_bug.cgi?id=16572">PR#16572</a>.) | |
| </p> | |
| </li> | |
| <li> <p><code>loess(..., iterTrace=TRUE)</code> now provides diagnostics | |
| for robustness iterations, and the <code>print()</code> method for | |
| <code>summary(<loess>)</code> shows slightly more. | |
| </p> | |
| </li> | |
| <li><p> The included version of PCRE has been updated to 8.38, a | |
| bug-fix release. | |
| </p> | |
| </li> | |
| <li> <p><code>View()</code> now displays nested data frames in a more | |
| friendly way. (Request with patch in <a href="https://bugs.R-project.org/show_bug.cgi?id=15915">PR#15915</a>.) | |
| </p> | |
| </li></ul> | |
| <h4>INSTALLATION and INCLUDED SOFTWARE</h4> | |
| <ul> | |
| <li><p> The included configuration code for <code>libintl</code> has been | |
| updated to that from <code>gettext</code> version 0.19.5.1 — this | |
| should only affect how an external library is detected (and the | |
| only known instance is under OpenBSD). (Wish of <a href="https://bugs.R-project.org/show_bug.cgi?id=16464">PR#16464</a>.) | |
| </p> | |
| </li> | |
| <li> <p><code>configure</code> has a new argument | |
| <span class="option">--disable-java</span> to disable the checks for Java. | |
| </p> | |
| </li> | |
| <li><p> The <code>configure</code> default for <code>MAIN_LDFLAGS</code> has | |
| been changed for the FreeBSD, NetBSD and Hurd OSes to one more | |
| likely to work with compilers other than <code>gcc</code> (FreeBSD 10 | |
| defaults to <code>clang</code>). | |
| </p> | |
| </li> | |
| <li> <p><code>configure</code> now supports the OpenMP flags | |
| <span class="option">-fopenmp=libomp</span> (clang) and <span class="option">-qopenmp</span> (Intel C). | |
| </p> | |
| </li> | |
| <li><p> Various macros can be set to override the default | |
| behaviour of <code>configure</code> when detecting OpenMP: see file | |
| ‘<span class="file">config.site</span>’. | |
| </p> | |
| </li> | |
| <li><p> Source installation on Windows has been modified to allow | |
| for MiKTeX installations without <code>texi2dvi.exe</code>. See file | |
| ‘<span class="file">MkRules.dist</span>’. | |
| </p> | |
| </li></ul> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li> <p><code>regexpr(pat, x, perl = TRUE)</code> with Python-style named | |
| capture did not work correctly when <code>x</code> contained <code>NA</code> | |
| strings. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16484">PR#16484</a>) | |
| </p> | |
| </li> | |
| <li><p> The description of dataset <code>ToothGrowth</code> has been | |
| improved/corrected. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15953">PR#15953</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>model.tables(type = "means")</code> and hence | |
| <code>TukeyHSD()</code> now support <code>"aov"</code> fits without an | |
| intercept term. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16437">PR#16437</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>close()</code> now reports the status of a <code>pipe()</code> | |
| connection opened with an explicit <code>open</code> argument. | |
| (<a href="https://bugs.R-project.org/show_bug.cgi?id=16481">PR#16481</a>) | |
| </p> | |
| </li> | |
| <li><p> Coercing a list without names to a data frame is faster if | |
| the elements are very long. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16467">PR#16467</a>) | |
| </p> | |
| </li> | |
| <li><p> (Unix-only) Under some rare circumstances piping the output | |
| from <code>Rscript</code> or <code>R -f</code> could result in | |
| attempting to close the input file twice, possibly crashing the | |
| process. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16500">PR#16500</a>) | |
| </p> | |
| </li> | |
| <li><p> (Windows) <code>Sys.info()</code> was out of step with | |
| <code>win.version()</code> and did not report Windows 8. | |
| </p> | |
| </li> | |
| <li> <p><code>topenv(baseenv())</code> returns <code>baseenv()</code> again as | |
| in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.1.0 and earlier. This also fixes <code>compilerJIT(3)</code> | |
| when used in ‘<span class="file">.Rprofile</span>’. | |
| </p> | |
| </li> | |
| <li> <p><code>detach()</code>ing the <span class="pkg">methods</span> package keeps | |
| <code>.isMethodsDispatchOn()</code> true, as long as the methods | |
| namespace is not unloaded. | |
| </p> | |
| </li> | |
| <li><p> Removed some spurious warnings from <code>configure</code> about the | |
| preprocessor not finding header files. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15989">PR#15989</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>rchisq(*, df=0, ncp=0)</code> now returns <code>0</code> instead | |
| of <code>NaN</code>, and <code>dchisq(*, df=0, ncp=*)</code> also no longer | |
| returns <code>NaN</code> in limit cases (where the limit is unique). | |
| (<a href="https://bugs.R-project.org/show_bug.cgi?id=16521">PR#16521</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>pchisq(*, df=0, ncp > 0, log.p=TRUE)</code> no longer | |
| underflows (for ncp > ~60). | |
| </p> | |
| </li> | |
| <li> <p><code>nchar(x, "w")</code> returned -1 for characters it did not | |
| know about (e.g. zero-width spaces): it now assumes 1. | |
| It now knows about most zero-width characters and a few more | |
| double-width characters. | |
| </p> | |
| </li> | |
| <li><p> Help for <code>which.min()</code> is now more precise about | |
| behavior with logical arguments. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16532">PR#16532</a>) | |
| </p> | |
| </li> | |
| <li><p> The print width of character strings marked as | |
| <code>"latin1"</code> or <code>"bytes"</code> was in some cases computed | |
| incorrectly. | |
| </p> | |
| </li> | |
| <li> <p><code>abbreviate()</code> did not give names to the return value | |
| if <code>minlength</code> was zero, unlike when it was positive. | |
| </p> | |
| </li> | |
| <li><p> (Windows only) <code>dir.create()</code> did not always warn | |
| when it failed to create a directory. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16537">PR#16537</a>) | |
| </p> | |
| </li> | |
| <li><p> When operating in a non-UTF-8 multibyte locale | |
| (e.g. an East Asian locale on Windows), <code>grep()</code> and | |
| related functions did not handle UTF-8 strings properly. | |
| (<a href="https://bugs.R-project.org/show_bug.cgi?id=16264">PR#16264</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>read.dcf()</code> sometimes misread lines longer than 8191 | |
| characters. (Reported by Hervé Pagès with a patch.) | |
| </p> | |
| </li> | |
| <li> <p><code>within(df, ..)</code> no longer drops columns whose name | |
| start with a <code>"."</code>. | |
| </p> | |
| </li> | |
| <li><p> The built-in <code>HTTP</code> server converted entire | |
| <code>Content-Type</code> to lowercase including parameters which | |
| can cause issues for multi-part form boundaries (<a href="https://bugs.R-project.org/show_bug.cgi?id=16541">PR#16541</a>). | |
| </p> | |
| </li> | |
| <li><p> Modifying slots of S4 objects could fail when the | |
| <span class="pkg">methods</span> package was not attached. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16545">PR#16545</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>splineDesign(*, outer.ok=TRUE)</code> (<span class="pkg">splines</span>) is better now | |
| (<a href="https://bugs.R-project.org/show_bug.cgi?id=16549">PR#16549</a>), and <code>interpSpline()</code> now allows <code>sparse=TRUE</code> | |
| for speedup with non-small sizes. | |
| </p> | |
| </li> | |
| <li><p> If the expression in the traceback was too long, | |
| <code>traceback()</code> did not report the source line number. (Patch | |
| by Kirill Müller.) | |
| </p> | |
| </li> | |
| <li><p> The browser did not truncate the display of the function when | |
| exiting with <code>options("deparse.max.lines")</code> set. | |
| (<a href="https://bugs.R-project.org/show_bug.cgi?id=16581">PR#16581</a>) | |
| </p> | |
| </li> | |
| <li><p> When <code>bs(*, Boundary.knots=)</code> had boundary knots inside | |
| the data range, extrapolation was somewhat off. (Patch by Trevor | |
| Hastie.) | |
| </p> | |
| </li> | |
| <li> <p><code>var()</code> and hence <code>sd()</code> warn about | |
| <code>factor</code> arguments which are deprecated now. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16564">PR#16564</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>loess(*, weights = *)</code> stored wrong weights and hence | |
| gave slightly wrong predictions for <code>newdata</code>. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16587">PR#16587</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>aperm(a, *)</code> now preserves <code>names(dim(a))</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>poly(x, ..)</code> now works when either <code>raw=TRUE</code> or | |
| <code>coef</code> is specified. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16597">PR#16597</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>data(package=*)</code> is more careful in determining the path. | |
| </p> | |
| </li> | |
| <li> <p><code>prettyNum(*, decimal.mark, big.mark)</code>: fixed bug | |
| introduced when fixing <a href="https://bugs.R-project.org/show_bug.cgi?id=16411">PR#16411</a>. | |
| </p> | |
| </li></ul> | |
| <h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.2.2</h3> | |
| <h4>SIGNIFICANT USER-VISIBLE CHANGES</h4> | |
| <ul> | |
| <li><p> It is now easier to use secure downloads from | |
| <span class="samp">https://</span> URLs on builds which support them: no longer do | |
| non-default options need to be selected to do so. In particular, | |
| packages can be installed from repositories which offer | |
| <span class="samp">https://</span> URLs, and those listed by <code>setRepositories()</code> | |
| now do so (for some of their mirrors). | |
| </p> | |
| <p>Support for <span class="samp">https://</span> URLs is available on Windows, and on | |
| other platforms if support for <code>libcurl</code> was compiled in and | |
| if that supports the <code>https</code> protocol (system installations | |
| can be expected to do). So <span class="samp">https://</span> support can be | |
| expected except on rather old OSes (an example being OS X | |
| ‘Snow Leopard’, where a non-system version of | |
| <code>libcurl</code> can be used). | |
| </p> | |
| <p>(Windows only) The default method for accessing URLs <em>via</em> | |
| <code>download.file()</code> and <code>url()</code> has been changed to be | |
| <code>"wininet"</code> using Windows API calls. This changes the way | |
| proxies need to be set and security settings made: there have been | |
| some reports of <span class="samp">ftp:</span> sites being inaccessible under the new default | |
| method (but the previous methods remain available). | |
| </p> | |
| </li></ul> | |
| <h4>NEW FEATURES</h4> | |
| <ul> | |
| <li> <p><code>cmdscale()</code> gets new option <code>list.</code> for increased | |
| flexibility when a list should be returned. | |
| </p> | |
| </li> | |
| <li> <p><code>configure</code> now supports <code>texinfo</code> version 6.0, | |
| which (unlike the change from 4.x to 5.0) is a minor update. | |
| (Wish of <a href="https://bugs.R-project.org/show_bug.cgi?id=16456">PR#16456</a>.) | |
| </p> | |
| </li> | |
| <li><p> (Non-Windows only) <code>download.file()</code> with default | |
| <code>method = "auto"</code> now chooses <code>"libcurl"</code> if that is | |
| available and a <span class="samp">https://</span> or <span class="samp">ftps://</span> URL is used. | |
| </p> | |
| </li> | |
| <li><p> (Windows only) <code>setInternet2(TRUE)</code> is now the default. | |
| The command-line option <code>--internet2</code> and environment | |
| variable <span class="env">R_WIN_INTERNET2</span> are now ignored. | |
| </p> | |
| <p>Thus by default the <code>"internal"</code> method for | |
| <code>download.file()</code> and <code>url()</code> uses the <code>"wininet"</code> | |
| method: to revert to the previous default use | |
| <code>setInternet2(FALSE)</code>. | |
| </p> | |
| <p>This means that <span class="samp">https://</span> URLs can be read by default by | |
| <code>download.file()</code> (they have been readable by <code>file()</code> | |
| and <code>url()</code> since <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.2.0). | |
| </p> | |
| <p>There are implications for how proxies need to be set (see | |
| <code>?download.file</code>). | |
| </p> | |
| </li> | |
| <li> <p><code>chooseCRANmirror()</code> and <code>chooseBioCmirror()</code> now | |
| offer HTTPS mirrors in preference to HTTP mirrors. This changes | |
| the interpretation of their <code>ind</code> arguments: see their help | |
| pages. | |
| </p> | |
| </li> | |
| <li> <p><code>capture.output()</code> gets optional arguments <code>type</code> | |
| and <code>split</code> to pass to <code>sink()</code>, and hence can be used to | |
| capture messages. | |
| </p> | |
| </li></ul> | |
| <h4>C-LEVEL FACILITIES</h4> | |
| <ul> | |
| <li><p> Header ‘<span class="file">Rconfig.h</span>’ now defines <code>HAVE_ALLOCA_H</code> if | |
| the platform has the ‘<span class="file">alloca.h</span>’ header (it is needed to | |
| define <code>alloca</code> on Solaris and AIX, at least: see | |
| ‘Writing R Extensions’ for how to use it). | |
| </p> | |
| </li></ul> | |
| <h4>INSTALLATION and INCLUDED SOFTWARE</h4> | |
| <ul> | |
| <li><p> The <code>libtool</code> script generated by | |
| <code>configure</code> has been modified to support FreeBSD >= 10 | |
| (<a href="https://bugs.R-project.org/show_bug.cgi?id=16410">PR#16410</a>). | |
| </p> | |
| </li></ul> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li><p> The HTML help page links to demo code failed due to a change | |
| in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.2.0. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16432">PR#16432</a>) | |
| </p> | |
| </li> | |
| <li><p> If the <code>na.action</code> argument was used in | |
| <code>model.frame()</code>, the original data could be | |
| modified. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16436">PR#16436</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>getGraphicsEvent()</code> could cause a crash if a graphics | |
| window was closed while it was in use. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16438">PR#16438</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>matrix(x, nr, nc, byrow = TRUE)</code> failed if <code>x</code> | |
| was an object of type <code>"expression"</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>strptime()</code> could overflow the allocated storage on | |
| the C stack when the timezone had a non-standard format much | |
| longer than the standard formats. (Part of <a href="https://bugs.R-project.org/show_bug.cgi?id=16328">PR#16328</a>.) | |
| </p> | |
| </li> | |
| <li> <p><code>options(OutDec = s)</code> now signals a warning (which will | |
| become an error in the future) when <code>s</code> is not a string with | |
| exactly one character, as that has been a documented requirement. | |
| </p> | |
| </li> | |
| <li> <p><code>prettyNum()</code> gains a new option <code>input.d.mark</code> | |
| which together with other changes, e.g., the default for | |
| <code>decimal.mark</code>, fixes some <code>format()</code>ting variants with | |
| non-default <code>getOption("OutDec")</code> such as in <a href="https://bugs.R-project.org/show_bug.cgi?id=16411">PR#16411</a>. | |
| </p> | |
| </li> | |
| <li> <p><code>download.packages()</code> failed for <code>type</code> equal to | |
| either <code>"both"</code> or <code>"binary"</code>. (Reported by Dan | |
| Tenenbaum.) | |
| </p> | |
| </li> | |
| <li><p> The <code>dendrogram</code> method of <code>labels()</code> is much more | |
| efficient for large dendrograms, now using <code>rapply()</code>. | |
| (Comment #15 of <a href="https://bugs.R-project.org/show_bug.cgi?id=15215">PR#15215</a>) | |
| </p> | |
| </li> | |
| <li><p> The <code>"port"</code> algorithm of <code>nls()</code> could give | |
| spurious errors. (Reported by Radford Neal.) | |
| </p> | |
| </li> | |
| <li><p> Reference classes that inherited from reference classes in | |
| another package could invalidate methods of the inherited | |
| class. Fixing this requires adding the ability for methods to be | |
| “external”, with the object supplied explicitly as the first | |
| argument, named <code>.self</code>. See "Inter-Package Superclasses" | |
| in the documentation. | |
| </p> | |
| </li> | |
| <li> <p><code>readBin()</code> could fail on the SPARC architecture | |
| due to alignment issues. (Reported by Radford Neal.) | |
| </p> | |
| </li> | |
| <li> <p><code>qt(*, df=Inf, ncp=.)</code> now uses the natural | |
| <code>qnorm()</code> limit instead of returning <code>NaN</code>. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16475">PR#16475</a>) | |
| </p> | |
| </li> | |
| <li><p> Auto-printing of S3 and S4 values now searches for | |
| <code>print()</code> in the base namespace and <code>show()</code> in the | |
| <span class="pkg">methods</span> namespace instead of searching the global | |
| environment. | |
| </p> | |
| </li> | |
| <li> <p><code>polym()</code> gains a <code>coefs = NULL</code> argument and | |
| returns class <code>"poly"</code> just like <code>poly()</code> which gets a | |
| new <code>simple=FALSE</code> option. They now lead to correct | |
| <code>predict()</code>ions, e.g., on subsets of the original data. | |
| (<a href="https://bugs.R-project.org/show_bug.cgi?id=16239">PR#16239</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>rhyper(nn, <large>)</code> now works correctly. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16489">PR#16489</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>ttkimage()</code> did not (and could not) work so was | |
| removed. Ditto for <code>tkimage.cget()</code> and | |
| <code>tkimage.configure()</code>. Added two Ttk widgets and missing | |
| subcommands for Tk's <code>image</code> command: | |
| <code>ttkscale()</code>, | |
| <code>ttkspinbox()</code>, | |
| <code>tkimage.delete()</code>, | |
| <code>tkimage.height()</code>, | |
| <code>tkimage.inuse()</code>, | |
| <code>tkimage.type()</code>, | |
| <code>tkimage.types()</code>, | |
| <code>tkimage.width()</code>. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15372">PR#15372</a>, <a href="https://bugs.R-project.org/show_bug.cgi?id=16450">PR#16450</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>getClass("foo")</code> now also returns a class definition when it is | |
| found in the cache more than once. | |
| </p> | |
| </li></ul> | |
| <h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.2.1</h3> | |
| <h4>NEW FEATURES</h4> | |
| <ul> | |
| <li> <p><code>utf8ToInt()</code> now checks that its input is valid UTF-8 | |
| and returns <code>NA</code> if it is not. | |
| </p> | |
| </li> | |
| <li> <p><code>install.packages()</code> now allows <code>type = "both"</code> | |
| with <code>repos = NULL</code> if it can infer the type of file. | |
| </p> | |
| </li> | |
| <li> <p><code>nchar(x, *)</code> and <code>nzchar(x)</code> gain a new argument | |
| <code>keepNA</code> which governs how the result for <code>NA</code>s in | |
| <code>x</code> is determined. For <code>nzchar()</code> in general and | |
| <code>nchar()</code> in the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.2.x series, the default | |
| remains <code>FALSE</code> which is fully back compatible. | |
| From <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.3.0, <code>nchar()</code>'s default will change to | |
| <code>keepNA = NA</code> and you are advised to consider this for code | |
| portability. | |
| </p> | |
| </li> | |
| <li> <p><code>news()</code> more flexibly extracts dates from package | |
| ‘<span class="file">NEWS.Rd</span>’ files. | |
| </p> | |
| </li> | |
| <li> <p><code>lengths(x)</code> now also works (trivially) for atomic | |
| <code>x</code> and hence can be used more generally as an efficient | |
| replacement of <code>sapply(x, length)</code> and similar. | |
| </p> | |
| </li> | |
| <li><p> The included version of PCRE has been updated to 8.37, a | |
| bug-fix release. | |
| </p> | |
| </li> | |
| <li> <p><code>diag()</code> no longer duplicates a matrix when extracting | |
| its diagonal. | |
| </p> | |
| </li> | |
| <li> <p><code>as.character.srcref()</code> gains an argument to allow | |
| characters corresponding to a range of source references to be | |
| extracted. | |
| </p> | |
| </li></ul> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li> <p><code>acf()</code> and <code>ccf()</code> now guarantee values strictly | |
| in <i>[-1,1]</i> (instead of sometimes very slightly outside). <a href="https://bugs.R-project.org/show_bug.cgi?id=15832">PR#15832</a>. | |
| </p> | |
| </li> | |
| <li> <p><code>as.integer("111111111111")</code> now gives NA (with a warning) as | |
| it does for the corresponding numeric or negative number | |
| coercions. Further, <code>as.integer(M + 0.1)</code> now gives <code>M</code> | |
| (instead of NA) when M is the maximal representable integer. | |
| </p> | |
| </li> | |
| <li><p> On some platforms <code>nchar(x, "c")</code> and <code>nchar(x, "w")</code> | |
| would return values (possibly <code>NA</code>) for inputs which were | |
| declared to be UTF-8 but were not, or for invalid strings without a | |
| marked encoding in a multi-byte locale, rather than give an | |
| error. Additional checks have been added to mitigate this. | |
| </p> | |
| </li> | |
| <li> <p><code>apply(a, M, function(u) c(X = ., Y = .))</code> again | |
| has dimnames containing "X" and "Y" (as in R < 3.2.0). | |
| </p> | |
| </li> | |
| <li><p> (Windows only) In some cases, the <code>--clean</code> option | |
| to <code>R CMD INSTALL</code> could fail. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16178">PR#16178</a>) | |
| </p> | |
| </li> | |
| <li><p> (Windows only) <code>choose.files()</code> would occasionally | |
| include characters from the result of an earlier call in | |
| the result of a later one. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16270">PR#16270</a>) | |
| </p> | |
| </li> | |
| <li><p> A change in <code>RSiteSearch()</code> in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.2.0 caused it to | |
| submit invalid URLs. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16329">PR#16329</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>Rscript</code> and command line <code>R</code> silently | |
| ignored incomplete statements at the end of a script; now they | |
| are reported as parse errors. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16350">PR#16350</a>) | |
| </p> | |
| </li> | |
| <li><p> Parse data for very long strings was not stored. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16354">PR#16354</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>plotNode()</code>, the workhorse of the <code>plot</code> method | |
| for <code>"dendrogram"</code>s is no longer recursive, thanks to Suharto | |
| Anggono, and hence also works for deeply nested dendrograms. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15215">PR#15215</a>) | |
| </p> | |
| </li> | |
| <li><p> The parser could overflow internally when given numbers | |
| in scientific format with extremely large exponents. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16358">PR#16358</a>) | |
| </p> | |
| </li> | |
| <li><p> If the CRAN mirror was not set, <code>install.packages(type = "both")</code> | |
| and related functions could repeatedly query the user for it. | |
| (Part of <a href="https://bugs.R-project.org/show_bug.cgi?id=16362">PR#16362</a>) | |
| </p> | |
| </li> | |
| <li><p> The low-level functions <code>.rowSums()</code> etc. did not | |
| check the length of their argument, so could segfault. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16367">PR#16367</a>) | |
| </p> | |
| </li> | |
| <li><p> The <code>quietly</code> argument of <code>library()</code> is now | |
| correctly propagated from <code>.getRequiredPackages2()</code>. | |
| </p> | |
| </li> | |
| <li><p> Under some circumstances using the internal PCRE when | |
| building <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> from source would cause external libs such as | |
| <code>-llzma</code> to be omitted from the main link. | |
| </p> | |
| </li> | |
| <li><p> The .Primitive default methods of the logic operators, i.e., | |
| <code>!</code>, <code>&</code> and <code>|</code>, now give correct error messages | |
| when appropriate, e.g., for <code>`&`(TRUE)</code> or <code>`!`()</code>. | |
| (<a href="https://bugs.R-project.org/show_bug.cgi?id=16385">PR#16385</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>cummax(x)</code> now correctly propagates <code>NA</code>s also | |
| when <code>x</code> is of type <code>integer</code> and begins with an <code>NA</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>summaryRprof()</code> could fail when the profile contained | |
| only two records. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16395">PR#16395</a>) | |
| </p> | |
| </li> | |
| <li><p> HTML vignettes opened using <code>vignette()</code> did not support | |
| links into the rest of the HTML help system. (Links worked properly | |
| when the vignette was opened using <code>browseVignettes()</code> or from | |
| within the help system.) | |
| </p> | |
| </li> | |
| <li> <p><code>arima(*, xreg = .)</code> (for <i>d >= 1</i>) | |
| computes estimated variances based on a the number of effective | |
| observations as in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> version 3.0.1 and earlier. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16278">PR#16278</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>slotNames(.)</code> is now correct for <code>"signature"</code> | |
| objects (mostly used internally in <span class="pkg">methods</span>). | |
| </p> | |
| </li> | |
| <li><p> On some systems, the first string comparison after | |
| a locale change would result in <code>NA</code>. | |
| </p> | |
| </li></ul> | |
| <h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.2.0</h3> | |
| <h4>NEW FEATURES</h4> | |
| <ul> | |
| <li> <p><code>anyNA()</code> gains a <code>recursive</code> argument. | |
| </p> | |
| </li> | |
| <li><p> When <code>x</code> is missing and <code>names</code> is not false | |
| (including the default value), <code>Sys.getenv(x, names)</code> returns | |
| an object of class <code>"Dlist"</code> and hence prints tidily. | |
| </p> | |
| </li> | |
| <li><p> (Windows.) <code>shell()</code> no longer consults the | |
| environment variable <span class="env">SHELL</span>: too many systems have been | |
| encountered where it was set incorrectly (usually to a path where | |
| software was compiled, not where it was installed). | |
| <span class="env">R_SHELL</span>, the preferred way to select a non-default shell, | |
| can be used instead. | |
| </p> | |
| </li> | |
| <li><p> Some unusual arguments to <code>embedFonts()</code> can now be | |
| specified as character vectors, and the defaults have been changed | |
| accordingly. | |
| </p> | |
| </li> | |
| <li><p> Functions in the <code>Summary</code> group duplicate less. | |
| (<a href="https://bugs.R-project.org/show_bug.cgi?id=15798">PR#15798</a>) | |
| </p> | |
| </li> | |
| <li><p> (Unix-alikes.) <code>system(cmd, input = )</code> now uses | |
| ‘shell-execution-environment’ redirection, which will be | |
| more natural if <code>cmd</code> is not a single command (but requires a | |
| POSIX-compliant shell). (Wish of <a href="https://bugs.R-project.org/show_bug.cgi?id=15508">PR#15508</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>read.fwf()</code> and <code>read.DIF()</code> gain a | |
| <code>fileEncoding</code> argument, for convenience. | |
| </p> | |
| </li> | |
| <li><p> Graphics devices can add attributes to their description in | |
| <code>.Device</code> and <code>.Devices</code>. Several of those included with | |
| <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> use a <code>"filepath"</code> attribute. | |
| </p> | |
| </li> | |
| <li> <p><code>pmatch()</code> uses hashing in more cases and so is faster | |
| at the expense of using more memory. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15697">PR#15697</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>pairs()</code> gains new arguments to select sets of | |
| variables to be plotted against each other. | |
| </p> | |
| </li> | |
| <li> <p><code>file.info(, extra_cols = FALSE)</code> allows a minimal set | |
| of columns to be computed on Unix-alikes: on some systems without | |
| properly-configured caching this can be significantly faster with | |
| large file lists. | |
| </p> | |
| </li> | |
| <li><p> New function <code>dir.exists()</code> in package <span class="pkg">base</span> to | |
| test efficiently whether one or more paths exist and are | |
| directories. | |
| </p> | |
| </li> | |
| <li> <p><code>dput()</code> and friends gain new controls | |
| <span class="samp">hexNumeric</span> and <span class="samp">digits17</span> which output double and | |
| complex quantities as, respectively, binary fractions (exactly, | |
| see <code>sprintf("%a")</code>) and as decimals with up to 17 | |
| significant digits. | |
| </p> | |
| </li> | |
| <li> <p><code>save()</code>, <code>saveRDS()</code> and <code>serialize()</code> now | |
| support <code>ascii = NA</code> which writes ASCII files using | |
| <code>sprintf("%a")</code> for double/complex quantities. This is | |
| read-compatible with <code>ascii = TRUE</code> but avoids | |
| binary->decimal->binary conversions with potential loss of | |
| precision. Unfortunately the Windows C runtime's lack of C99 | |
| compliance means that the format cannot be read correctly there in | |
| <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> before 3.1.2. | |
| </p> | |
| </li> | |
| <li><p> The default for <code>formatC(decimal.mark =)</code> has been | |
| changed to be <code>getOption("OutDec")</code>; this makes it more | |
| consistent with <code>format()</code> and suitable for use in print | |
| methods, e.g. those for classes <code>"density"</code>, <code>"ecdf"</code>, | |
| <code>"stepfun"</code> and <code>"summary.lm"</code>. | |
| </p> | |
| <p><code>getOption("OutDec")</code> is now consulted by the print method | |
| for class <code>"kmeans"</code>, by <code>cut()</code>, <code>dendrogram()</code>, | |
| <code>plot.ts()</code> and <code>quantile()</code> when constructing labels | |
| and for the report from <code>legend(trace = TRUE)</code>. | |
| </p> | |
| <p>(In part, wish of <a href="https://bugs.R-project.org/show_bug.cgi?id=15819">PR#15819</a>.) | |
| </p> | |
| </li> | |
| <li> <p><code>printNum()</code> and hence <code>format()</code> and | |
| <code>formatC()</code> give a warning if <code>big.mark</code> and | |
| <code>decimal.mark</code> are set to the same value (period and comma | |
| are not uncommonly used for each, and this is a check that | |
| conventions have not got mixed). | |
| </p> | |
| </li> | |
| <li> <p><code>merge()</code> can create a result which uses long vectors | |
| on 64-bit platforms. | |
| </p> | |
| </li> | |
| <li> <p><code>dget()</code> gains a new argument <code>keep.source</code> which | |
| defaults to <code>FALSE</code> for speed (<code>dput()</code> and | |
| <code>dget()</code> are most often used for data objects where this can | |
| make <code>dget()</code> many times faster). | |
| </p> | |
| </li> | |
| <li><p> Packages may now use a file of common macro definitions in | |
| their help files, and may import definitions from other packages. | |
| </p> | |
| </li> | |
| <li><p> A number of macros have been added in the new | |
| ‘<span class="file">share/Rd</span>’ directory for use in package overview help pages, | |
| and <code>promptPackage()</code> now makes use of them. | |
| </p> | |
| </li> | |
| <li> <p><code>tools::parse_Rd()</code> gains a new <code>permissive</code> | |
| argument which converts unrecognized macros into text. This is | |
| used by <code>utils:::format.bibentry</code> to allow LaTeX markup to be | |
| ignored. | |
| </p> | |
| </li> | |
| <li> <p><code>options(OutDec =)</code> can now specify a multi-byte | |
| character, e.g., <code>options(OutDec = "\u00b7")</code> in a UTF-8 | |
| locale. | |
| </p> | |
| </li> | |
| <li> <p><code>is.recursive(x)</code> is no longer true when <code>x</code> is an | |
| external pointer, a weak reference or byte code; the first enables | |
| <code>all.equal(x, x)</code> when <code>x <- getClass(.)</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>ls()</code> (aka <code>objects()</code>) and | |
| <code>as.list.environment()</code> gain a new argument <code>sorted</code>. | |
| </p> | |
| </li> | |
| <li><p> The <code>"source"</code> attribute (which has not been added to | |
| functions by <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> since before <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> version 2.14.0) is no longer | |
| treated as special. | |
| </p> | |
| </li> | |
| <li><p> Function <code>returnValue()</code> has been added to give | |
| <code>on.exit()</code> code access to a function's return value for | |
| debugging purposes. | |
| </p> | |
| </li> | |
| <li> <p><code>crossprod(x, y)</code> allows more matrix coercions when | |
| <code>x</code> or <code>y</code> are vectors, now equalling | |
| <code>t(x) %*% y</code> in these cases (also reported by Radford Neal). | |
| Similarly, <code>tcrossprod(x,y)</code> and <code>%*%</code> work in more | |
| cases with vector arguments. | |
| </p> | |
| </li> | |
| <li><p> Utility function <code>dynGet()</code> useful for detecting | |
| cycles, aka infinite recursions. | |
| </p> | |
| </li> | |
| <li><p> The byte-code compiler and interpreter include new | |
| instructions that allow many scalar subsetting and assignment and | |
| scalar arithmetic operations to be handled more efficiently. This | |
| can result in significant performance improvements in scalar | |
| numerical code. | |
| </p> | |
| </li> | |
| <li> <p><code>apply(m, 2, identity)</code> is now the same as the matrix | |
| <code>m</code> when it has <em>named</em> row names. | |
| </p> | |
| </li> | |
| <li><p> A new function <code>debuggingState()</code> has been added, | |
| allowing to temporarily turn off debugging. | |
| </p> | |
| </li> | |
| <li> <p><code>example()</code> gets a new optional argument | |
| <code>run.donttest</code> and <code>tools::Rd2ex()</code> a corresponding | |
| <code>commentDonttest</code>, with a default such that | |
| <code>example(..)</code> in help examples will run <code>\donttest</code> | |
| code only if used interactively (a change in behaviour). | |
| </p> | |
| </li> | |
| <li> <p><code>rbind.data.frame()</code> gains an optional argument | |
| <code>make.row.names</code>, for potential speedup. | |
| </p> | |
| </li> | |
| <li><p> New function <code>extSoftVersion()</code> to report on the | |
| versions of third-party software in use in this session. | |
| Currently reports versions of <code>zlib</code>, <code>bzlib</code>, the | |
| <code>liblzma</code> from <code>xz</code>, PCRE, ICU, TRE and the <code>iconv</code> | |
| implementation. | |
| </p> | |
| <p>A similar function <code>grSoftVersion()</code> in package <span class="pkg">grDevices</span> | |
| reports on third-party graphics software. | |
| </p> | |
| <p>Function <code>tcltk::tclVersion()</code> reports the Tcl/Tk version. | |
| </p> | |
| </li> | |
| <li><p> Calling <code>callGeneric()</code> without arguments now works | |
| with primitive generics to some extent. | |
| </p> | |
| </li> | |
| <li> <p><code>vapply(x, FUN, FUN.VALUE)</code> is more efficient notably | |
| for large <code>length(FUN.VALUE)</code>; as extension of <a href="https://bugs.R-project.org/show_bug.cgi?id=16061">PR#16061</a>. | |
| </p> | |
| </li> | |
| <li> <p><code>as.table()</code> now allows tables with one or more | |
| dimensions of length 0 (such as <code>as.table(integer())</code>). | |
| </p> | |
| </li> | |
| <li> <p><code>names(x) <- NULL</code> now clears the names of call | |
| and <code>...</code> objects. | |
| </p> | |
| </li> | |
| <li> <p><code>library()</code> will report a warning when an insufficient | |
| dependency version is masking a sufficient one later on the | |
| library search path. | |
| </p> | |
| </li> | |
| <li><p> A new <code>plot()</code> method for class <code>"raster"</code> has | |
| been added. | |
| </p> | |
| </li> | |
| <li><p> New <code>check_packages_in_dir_changes()</code> function in | |
| package <span class="pkg">tools</span> for conveniently analyzing how changing | |
| sources impacts the check results of their reverse dependencies. | |
| </p> | |
| </li> | |
| <li><p> Speed-up from Peter Haverty for <code>ls()</code> and | |
| <code>methods:::.requirePackage()</code> speeding up package loading. | |
| (<a href="https://bugs.R-project.org/show_bug.cgi?id=16133">PR#16133</a>) | |
| </p> | |
| </li> | |
| <li><p> New <code>get0()</code> function, combining <code>exists()</code> and | |
| <code>get()</code> in one call, for efficiency. | |
| </p> | |
| </li> | |
| <li> <p><code>match.call()</code> gains an <code>envir</code> argument for | |
| specifying the environment from which to retrieve | |
| the <code>...</code> in the call, if any; this environment was wrong | |
| (or at least undesirable) when the <code>definition</code> argument was | |
| a function. | |
| </p> | |
| </li> | |
| <li> <p><code>topenv()</code> has been made <code>.Internal()</code> for | |
| speedup, based on Peter Haverty's proposal in <a href="https://bugs.R-project.org/show_bug.cgi?id=16140">PR#16140</a>. | |
| </p> | |
| </li> | |
| <li> <p><code>getOption()</code> no longer calls <code>options()</code> in the main | |
| case. | |
| </p> | |
| </li> | |
| <li><p> Optional use of <code>libcurl</code> (version 7.28.0 from Oct 2012 | |
| or later) for Internet access: | |
| </p> | |
| <ul> | |
| <li> <p><code>capabilities("libcurl")</code> reports if this is | |
| available. | |
| </p> | |
| </li> | |
| <li> <p><code>libcurlVersion()</code> reports the version in use, and | |
| other details of the <code>"libcurl"</code> build including which URL | |
| schemes it supports. | |
| </p> | |
| </li> | |
| <li> <p><code>curlGetHeaders()</code> retrieves the headers for | |
| <span class="samp">http://</span>, <span class="samp">https://</span>, <span class="samp">ftp://</span> and | |
| <span class="samp">ftps://</span> URLs: analysis of these headers can provide | |
| insights into the ‘existence’ of a URL (it might for example be | |
| permanently redirected) and is so used in <code>R CMD | |
| check --as-cran</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>download.file()</code> has a new optional method | |
| <code>"libcurl"</code> which will handle more URL schemes, follow | |
| redirections, and allows simultaneous downloads of multiple | |
| URLs. | |
| </p> | |
| </li> | |
| <li> <p><code>url()</code> has a new method <code>"libcurl"</code> which | |
| handles more URL schemes and follows redirections. The default | |
| method is controlled by a new option <code>url.method</code>, which | |
| applies also to the opening of URLs <em>via</em> <code>file()</code> | |
| (which happens implicitly in functions such as | |
| <code>read.table</code>.) | |
| </p> | |
| </li> | |
| <li><p> When <code>file()</code> or <code>url()</code> is invoked with a | |
| <code>https://</code> or <code>ftps://</code> URL which the current method | |
| cannot handle, it switches to a suitable method if one is | |
| available. | |
| </p> | |
| </li></ul> | |
| </li> | |
| <li><p> (Windows.) The DLLs ‘<span class="file">internet.dll</span>’ and | |
| ‘<span class="file">internet2.dll</span>’ have been merged. In this version it is safe | |
| to switch (repeatedly) between the internal and Windows internet | |
| functions within an <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> session. | |
| </p> | |
| <p>The Windows internet functions are still selected by flag | |
| <span class="option">--internet2</span> or <code>setInternet2()</code>. This can be | |
| overridden for an <code>url()</code> connection <em>via</em> its new | |
| <code>method</code> argument. | |
| </p> | |
| <p><code>download.file()</code> has new method <code>"wininet"</code>, selected | |
| as the default by <span class="option">--internet2</span> or <code>setInternet2()</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>parent.env<-</code> can no longer modify the parent of a | |
| locked namespace or namespace imports environment. Contributed by | |
| Karl Millar. | |
| </p> | |
| </li> | |
| <li><p> New function <code>isNamespaceLoaded()</code> for readability and speed. | |
| </p> | |
| </li> | |
| <li> <p><code>names(env)</code> now returns all the object names of an | |
| <code>environment</code> <code>env</code>, equivalently to | |
| <code>ls(env, all.names = TRUE, sorted = FALSE)</code> and also to | |
| the names of the corresponding list, | |
| <code>names(as.list(env, all.names = TRUE))</code>. | |
| Note that although <code>names()</code> returns a character vector, the | |
| names have no particular ordering. | |
| </p> | |
| </li> | |
| <li><p> The memory manager now grows the heap more aggressively. This | |
| reduces the number of garbage collections, in particular while | |
| data or code are loaded, at the expense of slightly increasing the | |
| memory footprint. | |
| </p> | |
| </li> | |
| <li><p> New function <code>trimws()</code> for removing leading/trailing | |
| whitespace. | |
| </p> | |
| </li> | |
| <li> <p><code>cbind()</code> and <code>rbind()</code> now consider S4 inheritance | |
| during S3 dispatch and also obey <code>deparse.level</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>cbind()</code> and <code>rbind()</code> will delegate recursively | |
| to <code>methods::cbind2</code> (<code>methods::rbind2</code>) when at least | |
| one argument is an S4 object and S3 dispatch fails (due to | |
| ambiguity). | |
| </p> | |
| </li> | |
| <li><p> (Windows.) <code>download.file(quiet = FALSE)</code> now uses | |
| text rather than Windows progress bars in non-interactive use. | |
| </p> | |
| </li> | |
| <li><p> New function <code>hsearch_db()</code> in package <span class="pkg">utils</span> for | |
| building and retrieving the help search database used by | |
| <code>help.search()</code>, along with functions for inspecting the | |
| concepts and keywords in the help search database. | |
| </p> | |
| </li> | |
| <li><p> New function <code>.getNamespaceInfo()</code>, a no-check version | |
| of <code>getNamespaceInfo()</code> mostly for internal speedups. | |
| </p> | |
| </li> | |
| <li><p> The help search system now takes <span class="samp">\keyword</span> entries in | |
| Rd files which are not standard keywords (as given in | |
| ‘<span class="file">KEYWORDS</span>’ in the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> documentation directory) as concepts. | |
| For standard keyword entries the corresponding descriptions are | |
| additionally taken as concepts. | |
| </p> | |
| </li> | |
| <li><p> New <code>lengths()</code> function for getting the lengths of all | |
| elements in a list. | |
| </p> | |
| </li> | |
| <li><p> New function <code>toTitleCase()</code> in package <span class="pkg">tools</span>, | |
| tailored to package titles. | |
| </p> | |
| </li> | |
| <li><p> The matrix methods of <code>cbind()</code> and <code>rbind()</code> | |
| allow matrices as inputs which have <i>2^31</i> or more | |
| elements. (For <code>cbind()</code>, wish of <a href="https://bugs.R-project.org/show_bug.cgi?id=16198">PR#16198</a>.) | |
| </p> | |
| </li> | |
| <li><p> The default method of <code>image()</code> has an explicit check | |
| for a numeric or logical matrix (which was always required). | |
| </p> | |
| </li> | |
| <li> <p><code>URLencode()</code> will not by default encode further URLs | |
| which appear to be already encoded. | |
| </p> | |
| </li> | |
| <li> <p><code>BIC(mod)</code> and <code>BIC(mod, mod2)</code> now give non-NA | |
| numbers for <code>arima()</code> fitted models, as <code>nobs(mod)</code> now | |
| gives the number of “used” observations for such models. | |
| This fixes <a href="https://bugs.R-project.org/show_bug.cgi?id=16198">PR#16198</a>, quite differently than proposed there. | |
| </p> | |
| </li> | |
| <li><p> The <code>print()</code> methods for <code>"htest"</code>, | |
| <code>"pairwise.htest"</code> and <code>"power.htest"</code> objects now have | |
| a <code>digits</code> argument defaulting to (a function of) | |
| <code>getOption("digits")</code>, and influencing all printed numbers | |
| coherently. Unavoidably, this changes the display of such test | |
| results in some cases. | |
| </p> | |
| </li> | |
| <li><p> Code completion for namespaces now recognizes all loaded | |
| namespaces, rather than only the ones that are also attached. | |
| </p> | |
| </li> | |
| <li><p> The code completion mechanism can now be replaced by a | |
| user-specified completer function, for (temporary) situations | |
| where the usual code completion is inappropriate. | |
| </p> | |
| </li> | |
| <li> <p><code>unzip()</code> will now warn if it is able to detect truncation | |
| when unpacking a file of 4GB or more (related to <a href="https://bugs.R-project.org/show_bug.cgi?id=16243">PR#16243</a>). | |
| </p> | |
| </li> | |
| <li> <p><code>methods()</code> reports S4 in addition to S3 methods; | |
| output is simplified when the <code>class</code> argument is | |
| used. <code>.S3methods()</code> and <code>methods::.S4methods()</code> report | |
| S3 and S4 methods separately. | |
| </p> | |
| </li> | |
| <li><p> Higher order functions such as the <code>apply</code> functions | |
| and <code>Reduce()</code> now force arguments to the functions they apply | |
| in order to eliminate undesirable interactions between lazy | |
| evaluation and variable capture in closures. This resolves | |
| <a href="https://bugs.R-project.org/show_bug.cgi?id=16093">PR#16093</a>. | |
| </p> | |
| </li></ul> | |
| <h4>INSTALLATION and INCLUDED SOFTWARE</h4> | |
| <ul> | |
| <li><p> The <code>\donttest</code> sections of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>'s help files can be | |
| tested by<br /> | |
| <code>make check TEST_DONTTEST=TRUE</code> . | |
| </p> | |
| </li> | |
| <li><p> It is possible to request the use of system | |
| <code>valgrind</code> headers <em>via</em> <code>configure</code> option | |
| <span class="option">--with-system-valgrind-headers</span>: note the possible future | |
| incompatibility of such headers discussed in the 'R Installation | |
| and Administration' manual. (Wish of <a href="https://bugs.R-project.org/show_bug.cgi?id=16068">PR#16068</a>.) | |
| </p> | |
| </li> | |
| <li><p> The included version of <code>liblzma</code> has been updated to | |
| <code>xz-utils</code> 5.0.7 (minor bug fixes from 5.0.5). | |
| </p> | |
| </li> | |
| <li> <p><code>configure</code> options <span class="option">--with-system-zlib</span>, | |
| <span class="option">--with-system-bzlib</span> and <span class="option">--with-system-pcre</span> are | |
| now the default. For the time being there is fallback to the | |
| versions included in the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> sources if no system versions are | |
| found or (unlikely) if they are too old. | |
| </p> | |
| <p>Linux users should check that the <code>-devel</code> or <code>-dev</code> | |
| versions of packages <span class="pkg">zlib</span>, <span class="pkg">bzip2</span>/<span class="pkg">libbz2</span> and | |
| <span class="pkg">pcre</span> as well as <span class="pkg">xz-devel</span>/<span class="pkg">liblzma-dev</span> (or | |
| similar names) are installed. | |
| </p> | |
| </li> | |
| <li> <p><code>configure</code> by default looks for the | |
| <code>texi2any</code> script from <span class="pkg">texinfo</span> 5.1 or later, rather | |
| than the <code>makeinfo</code> program. (<code>makeinfo</code> is a | |
| link to the Perl script <code>texi2any</code> in <span class="pkg">texinfo</span> 5.x.) | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD INSTALL</code> gains an option | |
| <span class="option">--built-timestamp=STAMP</span> allowing 100% reproducible | |
| package building, thanks to Dirk Eddelbuettel. | |
| </p> | |
| </li></ul> | |
| <h4>UTILITIES</h4> | |
| <ul> | |
| <li><p> There is support for testing the <code>\dontrun</code> and | |
| <code>\donttest</code> parts of examples in packages. | |
| </p> | |
| <p><code>tools::testInstalledPackage()</code> accepts new arguments | |
| <code>commentDontrun = FALSE</code> and <code>commentDonttest = FALSE</code>. | |
| </p> | |
| <p><code>R CMD check</code> gains options <span class="option">--run-dontrun</span> and | |
| <span class="option">--run-donttest</span>. | |
| </p> | |
| </li> | |
| <li><p> The <acronym><span class="acronym">HTML</span></acronym> generated by <code>tools::Rd2HTML()</code> and | |
| <code>tools::toHTML()</code> methods is now | |
| ‘<acronym><span class="acronym">XHTML</span></acronym> 1.0 Strict’. | |
| </p> | |
| </li> | |
| <li><p> The <span class="pkg">compiler</span> package's utility function | |
| <code>setCompilerOptions()</code> now returns the old values | |
| invisibly. The initial optimization level can also be set with the | |
| environment variable <span class="env">R_COMPILER_OPTIMIZE</span>. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD build</code> adds a <span class="samp">NeedsCompilation</span> field | |
| if one is not already present in the ‘<span class="file">DESCRIPTION</span>’ file. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> gains option <span class="option">--test-dir</span> to | |
| specify an alternative set of tests to run. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> will now by default continue with | |
| testing after many types of errors, and will output a summary | |
| count of errors at the end if any have occurred. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> now checks that the <span class="samp">Title</span> and | |
| <span class="samp">Description</span> fields are correctly terminated. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check --as-cran</code> now: | |
| </p> | |
| <ul> | |
| <li><p> checks a ‘<span class="file">README.md</span>’ file can be processed: this | |
| needs <code>pandoc</code> installed. | |
| </p> | |
| </li> | |
| <li><p> checks the existence and accessibility of URLs in the | |
| ‘<span class="file">DESCRIPTION</span>’, ‘<span class="file">CITATION</span>’, ‘<span class="file">NEWS.Rd</span>’ and | |
| ‘<span class="file">README.md</span>’ files and in the help files (provided the build | |
| has <code>libcurl</code> support). | |
| </p> | |
| </li> | |
| <li><p> reports non-ASCII characters in R source files when there | |
| is no package encoding declared in the ‘<span class="file">DESCRIPTION</span>’ file. | |
| </p> | |
| </li> | |
| <li><p> reports (apparent) S3 methods exported but not registered. | |
| </p> | |
| </li> | |
| <li><p> reports overwriting registered S3 methods from | |
| base/recommended packages. (Such methods are replaced in the | |
| affected package for the rest of the session, even if the | |
| replacing namespace is unloaded.) | |
| </p> | |
| </li> | |
| <li><p> reports if the <code>Title</code> field does not appear to be in | |
| title case (see ‘Writing R Extensions’: there may be | |
| false positives, but note that technical words should be | |
| single-quoted and will then be accepted). | |
| </p> | |
| </li></ul> | |
| <p>Most of these checks can also be selected by environment | |
| variables: see the ‘R Internals’ manual. | |
| </p> | |
| </li></ul> | |
| <h4>C-LEVEL FACILITIES</h4> | |
| <ul> | |
| <li><p> New C API utility <code>logspace_sum(logx[], n)</code>. | |
| </p> | |
| </li> | |
| <li><p> Entry points <code>rbinom_mu</code>, <code>rnbinom_mu</code> and | |
| <code>rmultinom</code> are remapped (by default) to <code>Rf_rbinom_mu</code> | |
| etc. This requires packages using them to be re-installed. | |
| </p> | |
| </li> | |
| <li> <p><code>.C(DUP = FALSE)</code> and <code>.Fortran(DUP = FALSE)</code> are | |
| now ignored, so arguments are duplicated if <code>DUP = TRUE</code> | |
| would do so. As their help has long said, <code>.Call()</code> is much | |
| preferred. | |
| </p> | |
| </li> | |
| <li><p> New entry point <code>R_allocLD</code>, like <code>R_alloc</code> but | |
| guaranteed to have sufficient alignment for <code>long double</code> | |
| pointers. | |
| </p> | |
| </li> | |
| <li> <p><code>isPairList()</code> now returns <code>TRUE</code> for DOTSXP. | |
| </p> | |
| </li></ul> | |
| <h4>WINDOWS BUILD CHANGES</h4> | |
| <p>A number of changes to the Windows build system are in development. | |
| The following are currently in place. | |
| </p> | |
| <ul> | |
| <li><p> Installation using external binary distributions | |
| of <span class="pkg">zlib</span>, <span class="pkg">bzip2</span>, <span class="pkg">liblzma</span>, <span class="pkg">pcre</span>, | |
| <span class="pkg">libpng</span>, <span class="pkg">jpeglib</span> and <span class="pkg">libtiff</span> is now required, | |
| and the build instructions have been revised. | |
| </p> | |
| </li> | |
| <li><p> A new <code>make</code> target <code>rsync-extsoft</code> has been | |
| added to obtain copies of the external libraries from | |
| <acronym><span class="acronym">CRAN</span></acronym>. | |
| </p> | |
| </li> | |
| <li><p> Building the manuals now requires <code>texi2any</code> from | |
| <span class="pkg">texinfo</span> 5.1 or later. <acronym><span class="acronym">CRAN</span></acronym> binary builds include | |
| the manuals, but by default builds from source will not, and they | |
| will be accessed from <acronym><span class="acronym">CRAN</span></acronym>. See the comments in | |
| ‘<span class="file">src/gnuwin32/MkRules.dist</span>’ for how to specify the location | |
| of <code>texi2any</code>. | |
| </p> | |
| </li> | |
| <li><p> (Windows) Changes have been made to support an experimental | |
| Windows toolchain based on GCC 4.9.2. The default toolchain | |
| continues to be based on GCC 4.6.3, as the new toolchain is not | |
| yet stable enough. A change to a new toolchain is expected during | |
| the R 3.2.x lifetime. | |
| </p> | |
| </li></ul> | |
| <h4>PACKAGE INSTALLATION</h4> | |
| <ul> | |
| <li><p> (Windows) The use of macro <code>ZLIB_LIBS</code> in file | |
| ‘<span class="file">src/Makevars.win</span>’ (which has not been documented for a long | |
| time) now requires an external ‘<span class="file">libz.a</span>’ to be available (it is | |
| part of the ‘goodies’ used to compile Windows binary | |
| packages). It would be simpler to use <code>-lz</code> instead. | |
| </p> | |
| </li> | |
| <li><p> The default for option <code>pkgType</code> on platforms using | |
| binary packages is now <code>"both"</code>, so source packages will be | |
| tried if binary versions are not available or not up to date. | |
| </p> | |
| <p>There are options for what <code>install.packages(type = "both")</code> | |
| (possibly called <em>via</em> <code>update.packages()</code>) will do if | |
| compilation of a source package is desirable: see <code>?options</code> | |
| (under <span class="pkg">utils</span>). | |
| </p> | |
| <p>If you intend not to accept updates as source packages, you should | |
| use <code>update.packages(type = "binary")</code>. | |
| </p> | |
| </li></ul> | |
| <h4>DEPRECATED AND DEFUNCT</h4> | |
| <ul> | |
| <li> <p><code>download.file(method = "lynx")</code> is defunct. | |
| </p> | |
| </li> | |
| <li><p> Building <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> using the included versions of <code>zlib</code>, | |
| <code>bzip2</code>, <code>xz</code> and PCRE is deprecated: these are frozen | |
| (bar essential bug-fixes) and will be removed for <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.3.0. | |
| </p> | |
| </li> | |
| <li><p> The <code>configure</code> option | |
| <span class="option">--with-valgrind-instrumentation=3</span> has been withdrawn, as | |
| it did not work with recent <code>valgrind</code> headers: it is now | |
| treated as level <code>2</code>. | |
| </p> | |
| </li> | |
| <li><p> The <code>MethodsList</code> class in package <span class="pkg">methods</span> had | |
| been deprecated in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.11.0 and is defunct now. Functions using | |
| it are defunct if they had been deprecated in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.11.0, and are | |
| deprecated now, otherwise. | |
| </p> | |
| </li></ul> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li><p> Fixed two obscure bugs in pairlist subassignment, reported by | |
| Radford Neal as part of pqR issue 16. | |
| </p> | |
| </li> | |
| <li><p> Fixes for bugs in handling empty arguments and argument | |
| matching by name in <code>log()</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>all.equal()</code> gains methods for <code>environment</code>s and | |
| <code>refClass</code>es. | |
| </p> | |
| </li> | |
| <li> <p><code>[<-</code> and <code>[[<-</code> gain S4 <code>data.frame</code> methods | |
| to avoid corruption of S4 class information by the S3 methods. | |
| </p> | |
| </li> | |
| <li> <p><code>callNextMethod()</code> should now work within a <code>.local</code> | |
| call when <code>...</code> is absent from <code>formals(.local)</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>dput(pairlist(x))</code> generates a call to the | |
| <code>pairlist</code> constructor instead of the <code>list</code> | |
| constructor. | |
| </p> | |
| </li> | |
| <li><p> Fix <code>missing()</code> when arguments are propagated through | |
| <code>...</code> . (<a href="https://bugs.R-project.org/show_bug.cgi?id=15707">PR#15707</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>eigen(m)</code> now defaults to <code>symmetric = TRUE</code> even | |
| when the dimnames are asymmetric if the matrix is otherwise | |
| symmetric. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16151">PR#16151</a>) | |
| </p> | |
| </li> | |
| <li><p> Fix issues with forwarding <code>...</code> through | |
| <code>callGeneric()</code> and <code>callNextMethod()</code>. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16141">PR#16141</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>callGeneric()</code> now works after a <code>callNextMethod()</code>. | |
| </p> | |
| </li> | |
| <li><p> Subclass information is kept consistent when replacing an | |
| ordinary S4 class with an “old class” <em>via</em> the | |
| <code>S4Class</code> argument to <code>setOldClass()</code>. Thus, for | |
| example, a <code>data.frame</code> is valid for a <code>list</code> argument | |
| in the signature, and a <code>factor</code> is valid for <code>vector</code> | |
| arguments. | |
| </p> | |
| </li> | |
| <li><p> In <code>qbeta()</code> the inversion of <code>pbeta()</code> is much | |
| more sophisticated. This works better in corner cases some of | |
| which failed completely previously (<a href="https://bugs.R-project.org/show_bug.cgi?id=15755">PR#15755</a>), or were using | |
| too many iterations. | |
| </p> | |
| </li> | |
| <li><p> Auto-printing no longer duplicates objects when printing is | |
| dispatched to a method. | |
| </p> | |
| </li> | |
| <li> <p><code>kmeans(x, k)</code> would fail when <code>nrow(x) >= 42949673</code>. | |
| (Comment 6 of <a href="https://bugs.R-project.org/show_bug.cgi?id=15364">PR#15364</a>) | |
| </p> | |
| </li> | |
| <li> <p>‘Abbreviated’ locale-specific day and month names | |
| could have been truncated in those rare locales where there are | |
| the same as the full names. | |
| </p> | |
| </li> | |
| <li><p> An irrelevant warning message from updating subclass | |
| information was silenced (the namespace would not be writable | |
| in this case). | |
| </p> | |
| </li></ul> | |
| <h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.1.3</h3> | |
| <h4>NEW FEATURES</h4> | |
| <ul> | |
| <li><p> The internal method of <code>download.file()</code> can now handle | |
| files larger than 2GB on 32-bit builds which support such files | |
| (tested on 32-bit <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> running on 64-bit Windows). | |
| </p> | |
| </li> | |
| <li> <p><code>kruskal.test()</code> warns on more types of suspicious input. | |
| </p> | |
| </li> | |
| <li><p> The <code>as.dendrogram()</code> method for <code>"hclust"</code> | |
| objects gains a <code>check</code> argument protecting against memory | |
| explosion for invalid inputs. | |
| </p> | |
| </li> | |
| <li> <p><code>capabilities()</code> has a new item <code>long.double</code> | |
| which indicates if the build uses a <code>long double</code> type which | |
| is longer than <code>double</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>nlm()</code> no longer modifies the callback argument in | |
| place (a new vector is allocated for each invocation, which mimics | |
| the implicit duplication that occurred in R < 3.1.0); note that | |
| this is a change from the previously documented | |
| behavior. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15958">PR#15958</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>icuSetCollate()</code> now accepts <code>locale = "ASCII"</code> | |
| which uses the basic C function <code>strcmp</code> and so collates | |
| strings byte-by-byte in numerical order. | |
| </p> | |
| </li> | |
| <li> <p><code>sessionInfo()</code> tries to report the OS version in use | |
| (not just that compiled under, and including details of Linux | |
| distributions). | |
| </p> | |
| </li> | |
| <li> <p><code>model.frame()</code> (used by <code>lm()</code> and many other | |
| modelling functions) now warns when it drops contrasts | |
| from factors. (Wish of <a href="https://bugs.R-project.org/show_bug.cgi?id=16119">PR#16119</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>install.packages()</code> and friends now accept the value | |
| <code>type = "binary"</code> as a synonym for the native binary type on | |
| the platform (if it has one). | |
| </p> | |
| </li> | |
| <li><p> Single source or binary files can be supplied for | |
| <code>install.packages(type = "both")</code> and the appropriate type | |
| and <code>repos = NULL</code> will be inferred. | |
| </p> | |
| </li> | |
| <li><p> New function <code>pcre_config()</code> to report on some of the | |
| configuration options of the version of PCRE in use. In | |
| particular, this reports if regular expressions using | |
| <span class="samp">\p{xx}</span> are supported. | |
| </p> | |
| </li> | |
| <li><p> (Windows.) <code>download.file(cacheOK = FALSE)</code> is now | |
| supported when ‘<span class="file">internet2.dll</span>’ is used. | |
| </p> | |
| </li> | |
| <li> <p><code>browseURL()</code> has been updated to work with Firefox | |
| 36.0 which has dropped support for the <span class="option">-remote</span> interface. | |
| </p> | |
| </li></ul> | |
| <h4>INSTALLATION and INCLUDED SOFTWARE</h4> | |
| <ul> | |
| <li><p> The included version of PCRE has been updated to 8.36. | |
| </p> | |
| </li> | |
| <li> <p><code>configure</code> accepts <span class="samp">MAKEINFO=texi2any</span> as | |
| another way to ensure <span class="pkg">texinfo</span> 5.x is used when both 5.x and | |
| 4.x are installed. | |
| </p> | |
| </li></ul> | |
| <h4>UTILITIES</h4> | |
| <ul> | |
| <li> <p><code>R CMD check</code> now checks the packages used in | |
| <code>\donttest</code> sections of the examples are specified in the | |
| ‘<span class="file">DESCRIPTION</span>’ file. | |
| (These are needed to run the examples interactively.) | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> checks for the undeclared use of GNU | |
| extensions in Makefiles, and for Makefiles with a missing final | |
| linefeed. | |
| </p> | |
| <p><code>R CMD build</code> will correct line endings in all Makefiles, | |
| not just those in the ‘<span class="file">src</span>’ directory. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> notes uses of <code>library()</code> and | |
| <code>require()</code> in package code: see the section | |
| ‘Suggested packages’ of ‘Writing R Extensions’ for | |
| good practice. | |
| </p> | |
| </li></ul> | |
| <h4>DEPRECATED AND DEFUNCT</h4> | |
| <ul> | |
| <li><p> The <code>configure</code> option | |
| <span class="option">--with-valgrind-instrumentation=3</span> is deprecated and will | |
| be removed in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.2.0. | |
| </p> | |
| </li></ul> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li><p> (Windows.) <code>Rscript.exe</code> was missing a | |
| manifest specifying the modern style for common controls (e.g., | |
| the download progress bar). | |
| </p> | |
| </li> | |
| <li><p> If a package had extra documentation files but no vignette, | |
| the HTML help system produced an empty index page. | |
| </p> | |
| </li> | |
| <li><p> The parser now gives an error if a null character is included | |
| in a string using Unicode escapes. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16046">PR#16046</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>qr.Q()</code> failed on complex arguments due to | |
| pre-3.0(!) typo. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16054">PR#16054</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>abs()</code> failed with named arguments when the argument | |
| was complex. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16047">PR#16047</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>"noquote"</code> objects may now be used as columns in | |
| data frames. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15997">PR#15997</a>) | |
| </p> | |
| </li> | |
| <li><p> Some values with extremely long names were printed | |
| incorrectly. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15999">PR#15999</a>) | |
| </p> | |
| </li> | |
| <li><p> Extremely large exponents on zero expressed in scientific | |
| notation (e.g. <code>0.0e50000</code>) could give <code>NaN</code>. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15976">PR#15976</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>download.file()</code> reported downloaded sizes as 0KB if | |
| less than 1MB, only for <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.1.2 and only on big-endian platforms. | |
| </p> | |
| </li> | |
| <li> <p><code>prompt()</code> did not escape percent signs in the | |
| automatically generated usage section of help files. | |
| </p> | |
| </li> | |
| <li> <p><code>drop.terms()</code> dropped some of the attributes of the | |
| object it was working with. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16029">PR#16029</a>) | |
| </p> | |
| </li> | |
| <li><p> (Windows.) The command completion in <code>Rgui.exe</code> | |
| messed up the console. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15791">PR#15791</a>) | |
| </p> | |
| </li> | |
| <li><p> (Windows.) The <code>choose.files()</code> command returned a | |
| blank string when the user asked for a single file but cancelled | |
| the request. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16074">PR#16074</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>Math2</code> S4 group generics failed to correctly dispatch | |
| <code>"structure"</code>- and <code>"nonStructure"</code>-derived classes. | |
| </p> | |
| </li> | |
| <li> <p><code>loadNamespace()</code> imposed undocumented restrictions | |
| on the <code>versionCheck</code> parameter. (Reported by Geoff Lee.) | |
| </p> | |
| </li> | |
| <li><p> Rare over-runs detected by AddressSanitizer in | |
| <code>substr()</code> and its replacement version have been avoided. | |
| </p> | |
| <p><em>Inter alia</em> that fix gives the documented behaviour for | |
| <code>substr(x, 1, 2) <- ""</code> (subsequently reported as | |
| <a href="https://bugs.R-project.org/show_bug.cgi?id=16214">PR#16214</a>). | |
| </p> | |
| </li> | |
| <li><p> Loading packages incorrectly defining an S4 generic followed | |
| by a function of the same name caused an erroneous cyclic | |
| namespace dependency error. | |
| </p> | |
| </li> | |
| <li><p> Declared vignette encodings are now always passed to the | |
| vignette engine. | |
| </p> | |
| </li> | |
| <li><p> Port Tomas Kalibera's fix from R-devel that restores the | |
| <code>loadMethod()</code> fast path, effectively doubling the speed of | |
| S4 dispatch. | |
| </p> | |
| </li> | |
| <li> <p><code>power.t.test()</code> and <code>power.prop.test()</code> now make | |
| use of the <code>extendInt</code> option of <code>uniroot()</code> and hence | |
| work in more extreme cases. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15792">PR#15792</a>) | |
| </p> | |
| </li> | |
| <li><p> If a package was updated and attached when its namespace was | |
| already loaded, it could end up with parts from one version and | |
| parts from the other. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16120">PR#16120</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>tools:::.Rdconv()</code> didn't accept <code>--encoding=</code> due | |
| to a typo. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16121">PR#16121</a>) | |
| </p> | |
| </li> | |
| <li><p> Unix-alike builds without a suitable <code>makeinfo</code> were | |
| documented to link the missing HTML manuals to CRAN, but did not. | |
| </p> | |
| </li> | |
| <li> <p><code>save(*, ascii=TRUE)</code> and <code>load()</code> now correctly | |
| deal with <code>NaN</code>'s. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16137">PR#16137</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>split.Date()</code> retains fractional representations while | |
| avoiding incomplete class propagation. | |
| </p> | |
| </li> | |
| <li> <p>‘<span class="file">R_ext/Lapack.h</span>’ had not been updated for changes made | |
| by LAPACK to the argument lists of its (largely internal) | |
| functions <code>dlaed2</code> and <code>dlaed3</code>. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16157">PR#16157</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>RShowDoc("NEWS", "txt")</code> had not been updated for the | |
| layout changes of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.1.0. | |
| </p> | |
| </li> | |
| <li><p> The <code>xtfrm()</code> method for class <code>"Surv"</code> has been | |
| corrected and its description expanded. | |
| </p> | |
| </li> | |
| <li> <p><code>mode(x) <- y</code> would incorrectly evaluate <code>x</code> before | |
| changing its mode. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16215">PR#16215</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>besselJ(1, 2^64)</code> and <code>besselY(..)</code> now signal a | |
| warning, returning <code>NaN</code> instead of typically | |
| segfaulting. (Issue 3 of <a href="https://bugs.R-project.org/show_bug.cgi?id=15554">PR#15554</a>) | |
| </p> | |
| </li> | |
| <li><p> HTML conversion of <span class="samp">\href</span> markup in ‘<span class="file">.Rd</span>’ files | |
| did not remove the backslash from <span class="samp">\%</span> and so gave an | |
| invalid URL. In a related change, the <span class="samp">\</span> escape is now | |
| required in such URLs. | |
| </p> | |
| </li></ul> | |
| <h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.1.2</h3> | |
| <h4>NEW FEATURES</h4> | |
| <ul> | |
| <li> <p><code>embedFonts()</code> now defaults to | |
| <code>format = "ps2write"</code> for ‘<span class="file">.ps</span>’ and ‘<span class="file">.eps</span>’ files. | |
| This is available in Ghostscript 9.x (since 2010) whereas the | |
| previous default, <code>format = "pswrite"</code>, was removed in | |
| Ghostscript 9.10. | |
| </p> | |
| </li> | |
| <li><p> For consistency with <code>[dpqr]norm()</code>, | |
| <code>[dp]lnorm(sdlog = 0)</code> model a point mass at | |
| <code>exp(mulog)</code> rather than return <code>NaN</code> (for an error). | |
| </p> | |
| </li> | |
| <li> <p><code>capabilities()</code> now reports if ICU is compiled in for | |
| use for collation (it is only actually used if a suitable locale | |
| is set for collation, and never for a <code>C</code> locale). | |
| </p> | |
| </li> | |
| <li><p> (OS X only.) Package <span class="pkg">tcltk</span> checks when loaded if it is | |
| linked against the CRAN X11-based Tcl/Tk and if so that the Tcl/Tk | |
| component and the X11 libraries are installed. This allows more | |
| informative error messages to be given advising the installation | |
| of the missing component or of XQuartz. | |
| </p> | |
| <p>The <code>X11()</code> device and X11-based versions of the data editor | |
| and viewer (invoked by <code>edit()</code> and <code>View()</code> for data | |
| frames and matrices from command-line <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>) check that the X11 | |
| libraries are installed and if not advises installing XQuartz. | |
| </p> | |
| </li> | |
| <li> <p><code>icuSetCollate()</code> allows <code>locale = "default"</code>, and | |
| <code>locale = "none"</code> to use OS services rather than ICU for | |
| collation. | |
| </p> | |
| <p>Environment variable <span class="env">R_ICU_LOCALE</span> can be used to set the | |
| default ICU locale, in case the one derived from the OS locale is | |
| inappropriate (this is currently necessary on Windows). | |
| </p> | |
| </li> | |
| <li><p> New function <code>icuGetCollate()</code> to report on the ICU | |
| collation locale in use (if any). | |
| </p> | |
| </li> | |
| <li> <p><code>utils::URLencode()</code> was updated to use unreserved and | |
| reserved characters from RFC 3986 | |
| (<a href="http://tools.ietf.org/html/rfc3986">http://tools.ietf.org/html/rfc3986</a>) instead of RFC 1738. | |
| </p> | |
| </li> | |
| <li> <p><code>unique(warnings())</code> and <code>c(warnings())</code> are now | |
| supported. | |
| </p> | |
| </li> | |
| <li><p> The Bioconductor ‘version’ used by | |
| <code>setRepositories()</code> now defaults to <code>3.0</code>. (It can be | |
| set at runtime <em>via</em> environment variable | |
| <span class="env">R_BIOC_VERSION</span>.) | |
| </p> | |
| </li> | |
| <li><p> Omegahat is no longer listed as providing Windows binary | |
| packages, e.g. by <code>setRepositories()</code>. It has no binary | |
| packages available for <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.1.x and those for earlier versions | |
| were 32-bit only. | |
| </p> | |
| </li></ul> | |
| <h4>INSTALLATION and INCLUDED SOFTWARE</h4> | |
| <ul> | |
| <li><p> The <code>configure</code> script reports on the more important | |
| capabilities/options which will not be compiled in. | |
| </p> | |
| <p>More types of external BLAS are recognized by name in that report. | |
| </p> | |
| </li> | |
| <li><p> When building <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> as a shared library, the | |
| <span class="option">-L${R_HOME}/lib${R_ARCH}</span> flag is placed earlier in the | |
| link commands used during installation and when packages are | |
| installed: this helps ensure that the current build has priority | |
| if an <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> shared library has already been installed by | |
| e.g. <code>install-libR</code> in a library mentioned in | |
| <span class="env">LDFLAGS</span> (and not in ‘your system's library directory’ | |
| as documented). (Wish of <a href="https://bugs.R-project.org/show_bug.cgi?id=15790">PR#15790</a>.) | |
| </p> | |
| </li> | |
| <li><p> LaTeX package <span class="pkg">upquote</span> is no longer required for <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>'s | |
| use of <span class="pkg">inconsolata</span>. | |
| </p> | |
| </li> | |
| <li><p> (Windows only) If both 32- and 64-bit versions of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> are | |
| installed, the ‘<span class="file">bin/R.exe</span>’ and ‘<span class="file">bin/Rscript.exe</span>’ executables | |
| now run 64-bit <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>. (To run 32-bit <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>, overwrite these files | |
| with copies of ‘<span class="file">bin/i386/Rfe.exe</span>’.) | |
| </p> | |
| </li></ul> | |
| <h4>UTILITIES</h4> | |
| <ul> | |
| <li><p> Running <code>R CMD check</code> with | |
| <span class="env">_R_CHECK_DEPENDS_ONLY_</span> true now makes the | |
| <span class="samp">VignetteBuilder</span> packages available even if they are | |
| listed in <span class="samp">Suggests</span>, since they are needed to recognise and | |
| process non-Sweave vignettes. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> now reports empty <code>importFrom</code> | |
| declarations in a ‘<span class="file">NAMESPACE</span>’ file, as these are common | |
| errors (writing <code>importFrom(<var>Pkg</var>)</code> where | |
| <code>import(<var>Pkg</var>)</code> was intended). | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> now by default checks code usage | |
| directly on the package namespace without loading and attaching | |
| the package and its suggests and enhances. For good practice with | |
| packages in the <span class="samp">Suggests</span> field, see §1.1.3.1 of | |
| ‘Writing R Extensions’. For use of lazy-data objects in | |
| the package's own code, see <code>?data</code>. | |
| </p> | |
| </li></ul> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li> <p><code>dmultinom()</code> did not handle non-finite probabilities | |
| correctly. | |
| </p> | |
| </li> | |
| <li> <p><code>prettyNum(x, zero.print=*)</code> now also works when | |
| <code>x</code> contains <code>NA</code>s. | |
| </p> | |
| </li> | |
| <li><p> A longstanding bug exhibited by <code>nlminb()</code> on Windows | |
| was traced to a compiler bug in gcc 4.6.3; a workaround has been | |
| put in place. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15244">PR#15244</a> and <a href="https://bugs.R-project.org/show_bug.cgi?id=15914">PR#15914</a>). | |
| </p> | |
| </li> | |
| <li><p> Rendering of <code>\command</code> in HTML versions of help pages | |
| has been improved: this is particularly evident on the help page | |
| for <code>INSTALL</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>as.hexmode(x)</code> and <code>as.octmode(x)</code> now behave | |
| correctly for some numeric <code>x</code>, e.g., <code>c(NA, 1)</code> or | |
| <code>c(1, pi)</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>drop1()</code> failed if the <code>scope</code> argument had | |
| no variables to drop. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15935">PR#15935</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>edit()</code> (and hence <code>fix()</code>) failed if | |
| an object had a non-character attribute named <code>"source"</code> | |
| (an attribute that had been used in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> prior to version 2.14.0). | |
| </p> | |
| </li> | |
| <li> <p><code>callGeneric()</code> could fail if the generic had | |
| <code>...</code> as a formal argument. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15937">PR#15937</a>). | |
| </p> | |
| </li> | |
| <li><p> Forking in package <span class="pkg">parallel</span> called C entry point | |
| <code>exit</code> in the child. This was unsafe (<code>_exit</code> should | |
| have been called), and could flush <code>stdin</code> of the main <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> | |
| process (seen most often on Solaris). | |
| </p> | |
| <p>As good practice, <code>stdout</code> is now flushed before forking a child. | |
| </p> | |
| </li> | |
| <li> <p><span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> objects such as <code>list(`a\b` = 1)</code> now print correctly. | |
| </p> | |
| </li> | |
| <li> <p><code>getAnywhere("C_pbinom")</code> now returns correctly a | |
| single object (rather than unlisting it). | |
| </p> | |
| </li> | |
| <li><p> The <code>confint()</code> method for <code>nls()</code> fits failed it | |
| these has specified parameter limits despite using an algorithm | |
| other than <code>"port"</code>. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15960">PR#15960</a>) | |
| </p> | |
| </li> | |
| <li><p> Subclassing an S4 class failed if the class required | |
| arguments to the generator, through its <code>initialize()</code> method. | |
| </p> | |
| </li> | |
| <li> <p><code>removeSource()</code> did not properly handle expressions | |
| containing arguments that were supplied as missing, e.g. | |
| <code>x[i,]</code>. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15957">PR#15957</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>as.environment(list())</code> now works, and | |
| <code>as.list()</code> of such an environment is now the same as | |
| <code>list()</code>. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15926">PR#15926</a>) | |
| </p> | |
| </li> | |
| <li><p> Several <span class="pkg">tcltk</span> functions failed when run in unusual | |
| environments. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15970">PR#15970</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>options(list())</code> now works (trivially). (<a href="https://bugs.R-project.org/show_bug.cgi?id=15979">PR#15979</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>merge(<dendrogram>, ..)</code> now works correctly for two | |
| ‘independent’ dendrograms (<a href="https://bugs.R-project.org/show_bug.cgi?id=15648">PR#15648</a>), and still compatibly | |
| <em>via</em> <code>adjust = "auto"</code> e.g. for two branches of an | |
| existing dendrogram. | |
| </p> | |
| </li> | |
| <li><p> The <code>plot</code> method for <code>"hclust"</code> objects gets an | |
| optional argument <code>check</code>; when that is true (the default) it | |
| checks more carefully for valid input. | |
| </p> | |
| </li> | |
| <li><p> (Windows only) If a user chose to install 64 bit <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> but not | |
| 32 bit <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>, the ‘<span class="file">bin/R</span>’ and ‘<span class="file">bin/Rscript</span>’ executables | |
| failed to run. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15981">PR#15981</a>) | |
| </p> | |
| </li> | |
| <li><p> Various possible buffer overruns have been prevented, | |
| and missed memory protection added. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15990">PR#15990</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>Rscript</code> no longer passes <code>--args</code> to | |
| <code>R</code> when there are no extra (“user”) arguments. | |
| </p> | |
| </li> | |
| <li><p> objects like <code>getClass("refClass")@prototype</code> now | |
| <code>print()</code> and <code>str()</code> without error. | |
| </p> | |
| </li> | |
| <li> <p><code>identical()</code> now also looks at the S4 bit. | |
| </p> | |
| </li> | |
| <li> <p><code>hist(x, breaks)</code> is more robust in adding a small fuzz | |
| to few breaks when some are very large. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15988">PR#15988</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>sub()</code> and <code>gsub()</code> did not handle regular | |
| expressions like <code>"\s{2,}"</code> properly if the text | |
| contained <code>NA</code> or non-ASCII elements in a UTF-8 | |
| locale. Part of this was due to a bug in the TRE library. | |
| (<a href="https://bugs.R-project.org/show_bug.cgi?id=16009">PR#16009</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>RShowDoc("NEWS")</code> now displays the PDF version. | |
| </p> | |
| </li> | |
| <li><p> Matrices and arrays with last dimension zero did not print | |
| at all or incompletely. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16012">PR#16012</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>plot.histogram()</code> and hence <code>hist()</code> now respect | |
| the <code>xaxs</code>, <code>yaxs</code> and <code>lab</code> graphics parameters. | |
| (<a href="https://bugs.R-project.org/show_bug.cgi?id=16021">PR#16021</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>bw.SJ(x)</code> and other bw.*() no longer segfault when | |
| <code>x</code> contains non-finite values. (<a href="https://bugs.R-project.org/show_bug.cgi?id=16024">PR#16024</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD Rd2pdf</code> unintentionally ignored its | |
| <span class="option">--os</span> option. | |
| </p> | |
| </li> | |
| <li><p> The internal method of <code>download.file()</code> was not | |
| reporting file sizes and progress correctly on files larger than | |
| 2GB (inherited from <code>libxml2</code>). This is corrected for 64-bit | |
| builds (32-bit platforms may not support such files, but where | |
| possible will be supported in future versions of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>). | |
| </p> | |
| </li> | |
| <li><p> Work around a bug in OS X Yosemite where key environment | |
| variables may be duplicated causing issues in subprocesses. The | |
| duplicates are now removed on <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> startup (<em>via</em> | |
| Rprofile). (<a href="https://bugs.R-project.org/show_bug.cgi?id=16042">PR#16042</a>) | |
| </p> | |
| </li> | |
| <li><p> Adjust X11 auto-launch detection in DISPLAY on OS X to | |
| recognize latest XQuartz. | |
| </p> | |
| </li></ul> | |
| <h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.1.1</h3> | |
| <h4>NEW FEATURES</h4> | |
| <ul> | |
| <li><p> When <code>attach()</code> reports conflicts, it does so | |
| compatibly with <code>library()</code> by using <code>message()</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD Sweave</code> no longer cleans any files by | |
| default, compatibly with versions of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> prior to 3.1.0. There are | |
| new options <span class="option">--clean</span>, <span class="option">--clean=default</span> and | |
| <span class="option">--clean=keepOuts</span>. | |
| </p> | |
| </li> | |
| <li> <p><code>tools::buildVignette()</code> and <code>tools::buildVignettes()</code> | |
| with <code>clean = FALSE</code> no longer remove any created files. | |
| <code>buildvignette()</code> gains a <code>keep</code> argument for more | |
| cleaning customization. | |
| </p> | |
| </li> | |
| <li><p> The Bioconductor ‘version’ used by | |
| <code>setRepositories()</code> can now be set by environment variable | |
| <span class="env">R_BIOC_VERSION</span> at runtime, not just when <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> is installed. | |
| (It has been stated that Bioconductor will switch from | |
| ‘version’ 2.14 to ‘version’ 3.0 during the lifetime | |
| of the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.1 series.) | |
| </p> | |
| </li> | |
| <li><p> Error messages from bugs in embedded <span class="samp">Sexpr</span> code | |
| in Sweave documents now report the source location. | |
| </p> | |
| </li> | |
| <li> <p><code>type.convert()</code>, <code>read.table()</code> and similar | |
| <code>read.*()</code> functions get a new <code>numerals</code> argument, | |
| specifying how numeric input is converted when its conversion to | |
| double precision loses accuracy. The default value, | |
| <code>"allow.loss"</code> allows accuracy loss, as in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> versions before | |
| 3.1.0. | |
| </p> | |
| </li> | |
| <li><p> For some compilers, integer addition could overflow without | |
| a warning. <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>'s internal code for both integer addition and | |
| subtraction is more robust now. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15774">PR#15774</a>) | |
| </p> | |
| </li> | |
| <li><p> The function determining the default number of knots for | |
| <code>smooth.spline()</code> is now exported, as <code>.nknots.smspl()</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>dbeta(, a,b)</code>, <code>pbeta()</code>, <code>qbeta()</code> and | |
| <code>rbeta()</code> are now defined also for <i>a = 0</i>, <i>b = 0</i>, | |
| or infinite <i>a</i> and <i>b</i> (where they typically returned | |
| <code>NaN</code> before). | |
| </p> | |
| </li> | |
| <li><p> Many package authors report that the RStudio graphics device | |
| does not work correctly with their package's use of | |
| <code>dev.new()</code>. The new option <code>dev.new(noRStudioGD = | |
| TRUE)</code> replaces the RStudio override by the default device as | |
| selected by <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> itself, still respecting environment variables | |
| <span class="env">R_INTERACTIVE_DEVICE</span> and <span class="env">R_DEFAULT_DEVICE</span>. | |
| </p> | |
| </li> | |
| <li> <p><code>readRDS()</code> now returns visibly. | |
| </p> | |
| </li> | |
| <li><p> Modifying internal logical scalar constants now results in | |
| an error instead of a warning. | |
| </p> | |
| </li> | |
| <li> <p><code>install.packages(repos = NULL)</code> now accepts | |
| <span class="samp">http://</span> or <span class="samp">ftp://</span> URLs of package archives as well | |
| as file paths, and will download as required. In most cases | |
| <code>repos = NULL</code> can be deduced from the extension of the URL. | |
| </p> | |
| </li> | |
| <li><p> The warning when using partial matching with the <code>$</code> | |
| operator on data frames is now only given when | |
| <code>options("warnPartialMatchDollar")</code> is <code>TRUE</code>. | |
| </p> | |
| </li> | |
| <li><p> Package help requests like <code>package?foo</code> now | |
| try the package <code>foo</code> whether loaded or not. | |
| </p> | |
| </li> | |
| <li><p> General help requests now default to trying all loaded | |
| packages, not just those on the search path. | |
| </p> | |
| </li> | |
| <li><p> Added a new function <code>promptImport()</code>, to generate a | |
| help page for a function that was imported from another package | |
| (and presumably re-exported, or help would not be needed). | |
| </p> | |
| </li></ul> | |
| <h4>INSTALLATION and INCLUDED SOFTWARE</h4> | |
| <ul> | |
| <li> <p><code>configure</code> option <span class="option">--with-internal-tzcode</span> | |
| can now be used with variable <code>rsharedir</code>. | |
| </p> | |
| </li> | |
| <li><p> The included version of PCRE has been updated to 8.35. | |
| </p> | |
| </li> | |
| <li><p> There is a new target <code>make uninstall-libR</code> to | |
| remove an installed shared/static ‘<span class="file">libR</span>’. | |
| </p> | |
| <p><code>make install-libR</code> now works if a sub-architecture is | |
| used, although the user will need to specify <code>libdir</code> | |
| differently for different sub-architectures. | |
| </p> | |
| </li> | |
| <li><p> There is more extensive advice on which LaTeX packages are | |
| required to install <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> or to make package manuals (as done by | |
| <code>R CMD check</code>) in the ‘Writing R Extensions’ | |
| manual. | |
| </p> | |
| </li> | |
| <li><p> Compilers/linkers were handling the visibility control in | |
| ‘<span class="file">src/extra/xz</span>’ inconsistently (and apparently in some cases | |
| incorrectly), so it has been simplified. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15327">PR#15327</a>) | |
| </p> | |
| </li> | |
| <li><p> (Windows) There is updated support for the use of ICU for | |
| collation: see the ‘R Installation and Administration Manual’. | |
| </p> | |
| </li></ul> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li> <p><code>dbinom(x, n)</code>, <code>pbinom()</code>, <code>dpois()</code>, etc, | |
| are slightly less restrictive in checking if <code>n</code> is | |
| integer-valued. (Wish of <a href="https://bugs.R-project.org/show_bug.cgi?id=15734">PR#15734</a>.) | |
| </p> | |
| </li> | |
| <li> <p><code>pchisq(x, df, ncp, log.p = TRUE)</code> is more accurate and | |
| no longer underflows for small <code>x</code> and <code>ncp < 80</code>, e.g, | |
| for <code>pchisq(1e-5, df = 100, ncp = 1, log = TRUE)</code>. | |
| (Based on <a href="https://bugs.R-project.org/show_bug.cgi?id=15635">PR#15635</a> and a suggestion by Roby Joehanes.) | |
| </p> | |
| </li> | |
| <li><p> The <code>s</code> (“step into”) command in the debugger | |
| would cause <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> to step into expressions evaluated there, | |
| not just into functions being debugged. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15770">PR#15770</a>) | |
| </p> | |
| </li> | |
| <li><p> The C code used by <code>strptime()</code> rejected time-zone | |
| offsets of more than <code>+1200</code> (<code>+1245</code>, <code>+1300</code> and | |
| <code>+1400</code> can occur). (<a href="https://bugs.R-project.org/show_bug.cgi?id=15768">PR#15768</a>) | |
| </p> | |
| </li> | |
| <li><p> (Windows only.) | |
| <code>png(type = "cairo", antialias = "gray")</code> | |
| was not accepted. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15760">PR#15760</a>) | |
| </p> | |
| </li> | |
| <li><p> Use of <code>save(..., envir=)</code> with named objects could | |
| fail. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15758">PR#15758</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>Sweave()</code> mis-parsed <span class="samp">Sexpr</span> expressions that | |
| contained backslashes. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15779">PR#15779</a>) | |
| </p> | |
| </li> | |
| <li><p> The return value from <code>options(foo = NULL)</code> was not | |
| the previous value of the option. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15781">PR#15781</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>enc2utf8()</code> and <code>enc2native()</code> did not always | |
| mark the encoding of the return values when it was known. | |
| </p> | |
| </li> | |
| <li> <p><code>dnbinom(x, size = <large>, mu, log = TRUE)</code> no longer | |
| underflows to -Inf for large <code>mu</code>, thanks to a suggestion | |
| from Alessandro Mammana (MPI MolGen, Berlin). | |
| </p> | |
| </li> | |
| <li> <p><code>pbeta(x, a, b, log = TRUE)</code> no longer behaves | |
| discontinuously (in a small x-region) because of denormalized | |
| numbers. Also, <code>pbeta(1-1e-12, 1e30, 1.001, log=TRUE)</code> now | |
| terminates “in real time”. | |
| </p> | |
| </li> | |
| <li><p> The <code>"CRAN"</code> filter (see <code>available.packages()</code>) | |
| no longer removes duplicates other than of packages on CRAN, and | |
| does not fail if there is no CRAN repository in | |
| <code>getOption("repos")</code>. | |
| </p> | |
| </li> | |
| <li><p> The device listing from <code>dev2bitmap()</code> and | |
| <code>bitmap()</code> was truncated to 1000 characters: modern versions | |
| of GhostScript on most platforms have many more devices. | |
| </p> | |
| </li> | |
| <li><p> (Windows.) Commands such as <code>Sys.which()</code> and | |
| <code>pipe()</code> which needed to find the full path to a command | |
| could segfault if the ‘long’ path name was much longer than | |
| the ‘short’ path name (which <code>Sys.which()</code> returns), | |
| as the behaviour of the Windows API call had changed. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD build</code> will fail with an error if one of the | |
| packages specified in the <span class="samp">VignetteBuilder</span> field is not | |
| installed. (Without loading those packages it cannot be | |
| ascertained which files are intended to be vignettes. This means | |
| that the <span class="samp">VignetteBuilder</span> packages have to be installed for | |
| package checking too.) | |
| (Wish of <a href="https://bugs.R-project.org/show_bug.cgi?id=15775">PR#15775</a>.) | |
| </p> | |
| </li> | |
| <li><p> Misguided attempts to use <code>chull()</code> with non-finite | |
| points now give an error (related to <a href="https://bugs.R-project.org/show_bug.cgi?id=15777">PR#15777</a>). | |
| </p> | |
| </li> | |
| <li><p> For a formula with exactly 32 variables the 32nd variable | |
| was aliased to the intercept in some C-level computations of | |
| terms, so that for example attempting to remove it would remove | |
| the intercept instead (and leave a corrupt internal structure). | |
| (<a href="https://bugs.R-project.org/show_bug.cgi?id=15735">PR#15735</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>anyDuplicated()</code> silently returned wrong values when | |
| the first duplicate was at an index which was too large to be | |
| stored in an integer vector (although a lot of RAM and patience | |
| would have been needed to encounter this). | |
| </p> | |
| </li> | |
| <li> <p><code>tools::Rd2ex(commentDontrun = FALSE)</code> failed if the | |
| block had only one line. | |
| </p> | |
| </li> | |
| <li><p> Hexadecimal constants such as <code>0x110p-5L</code> which were | |
| incorrectly qualified by <code>L</code> were parsed incorrectly since <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> | |
| 3.0.0, with a slightly garbled warning. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15753">PR#15753</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>system()</code> returned success on some platforms even if | |
| the system was unable to launch a process. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15796">PR#15796</a>) | |
| </p> | |
| </li> | |
| <li><p> (Windows <code>Rgui</code> console.) Unbuffered output was | |
| sometimes not output immediately if the prompt was not on the last | |
| line of the console. | |
| </p> | |
| </li> | |
| <li><p> The built-in help server did not declare the encoding for | |
| the ‘<span class="file">DESCRIPTION</span>’ or other text files to be the package | |
| encoding, so non-ASCII characters could be displayed incorrectly. | |
| </p> | |
| </li> | |
| <li> <p><span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> is now trying harder to not cleanup child processes | |
| that were not spawned by <code>mcparallel()</code> on platforms that | |
| provide information about the source process of the <code>SIGCHLD</code> | |
| signal. This allows 3rd party libraries to manage the exit status | |
| of children that they spawn without <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> interfering. | |
| </p> | |
| </li> | |
| <li> <p><code>mcmapply()</code> was only parallelizing if the number of | |
| jobs was bigger than the number of cores. It now parallelizes if | |
| the number of jobs is more than one. | |
| </p> | |
| </li> | |
| <li><p> Auto-printing would re-evaluate its argument when trying to | |
| dispatch to a print method. This is now avoided when possible. | |
| </p> | |
| </li> | |
| <li><p> Unserializing (including <code>load()</code> and <code>readRDS()</code>) | |
| could silently return incorrect numeric values from ASCII saves if | |
| there was a read error. | |
| </p> | |
| </li> | |
| <li> <p><code>getParseData()</code> could return incorrect values for | |
| the parents of some elements. (Reported by Andrew Redd.) | |
| </p> | |
| </li> | |
| <li><p> Attempting to use data frames of 2^31 or more rows with | |
| <code>merge()</code> or to create a merged data frame of that size now | |
| gives a clearer error message. | |
| </p> | |
| </li> | |
| <li> <p><code>parse()</code> did not check its <code>file</code> argument was a | |
| connection if it was not a character string, so | |
| e.g. <code>parse(FALSE)</code> attempted to read from <code>stdin</code>. | |
| </p> | |
| <p>Nor did <code>dump()</code> and <code>dput()</code>. | |
| </p> | |
| </li> | |
| <li><p> The <code>"help.try.all.packages"</code> option was ignored when | |
| the shortcut syntax for help was used, e.g. <code>?foo</code>. | |
| </p> | |
| </li> | |
| <li><p> A potential segfault in string allocation has been fixed. | |
| (Found by Radford Neal.) | |
| </p> | |
| </li> | |
| <li><p> Potential memory protection errors in <code>sort()</code> and | |
| <code>D()</code> have been fixed. (Found by Radford Neal.) | |
| </p> | |
| </li> | |
| <li><p> Fixed a lack of error checking in graphics event functions. | |
| (Found by Radford Neal; a different patch used here than the | |
| one in pqR.) | |
| </p> | |
| </li> | |
| <li> <p><code>numericDeriv()</code> sometimes miscalculated the gradient. | |
| (<a href="https://bugs.R-project.org/show_bug.cgi?id=15849">PR#15849</a>, reported originally by Radford Neal) | |
| </p> | |
| </li></ul> | |
| <h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.1.0</h3> | |
| <h4>NEW FEATURES</h4> | |
| <ul> | |
| <li> <p><code>type.convert()</code> (and hence by default | |
| <code>read.table()</code>) returns a character vector or factor when | |
| representing a numeric input as a double would lose accuracy. | |
| Similarly for complex inputs. | |
| </p> | |
| <p>If a file contains numeric data with unrepresentable numbers of | |
| decimal places that are intended to be read as numeric, specify | |
| <code>colClasses</code> in <code>read.table()</code> to be <code>"numeric"</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>tools::Rdiff(useDiff = FALSE)</code> is closer to the POSIX | |
| definition of <code>diff -b</code> (as distinct from the description | |
| in the <code>man</code> pages of most systems). | |
| </p> | |
| </li> | |
| <li><p> New function <code>anyNA()</code>, a version of | |
| <code>any(is.na(.))</code> which is fast for atomic vectors, based on a | |
| proposal by Tim Hesterberg. (Wish of <a href="https://bugs.R-project.org/show_bug.cgi?id=15239">PR#15239</a>.) | |
| </p> | |
| </li> | |
| <li> <p><code>arrayInd(*, useNames = TRUE)</code> and, analogously, | |
| <code>which(*, arr.ind = TRUE)</code> now make use of | |
| <code>names(.dimnames)</code> when available. | |
| </p> | |
| </li> | |
| <li> <p><code>is.unsorted()</code> now also works for <code>raw</code> vectors. | |
| </p> | |
| </li> | |
| <li><p> The <code>"table"</code> method for <code>as.data.frame()</code> (also | |
| useful as <code>as.data.frame.table()</code>) now passes <code>sep</code> and | |
| <code>base</code> arguments to <code>provideDimnames()</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>uniroot()</code> gets new optional arguments, notably | |
| <code>extendInt</code>, allowing to auto-extend the search interval when | |
| needed. The return value has an extra component, <code>init.it</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>switch(f, ...)</code> now warns when <code>f</code> is a factor, | |
| as this typically happens accidentally where the useR meant to | |
| pass a character string, but <code>f</code> is treated as integer (as | |
| always documented). | |
| </p> | |
| </li> | |
| <li><p> The parser has been modified to use less memory. | |
| </p> | |
| </li> | |
| <li><p> The way the unary operators (<code>+ - !</code>) handle attributes | |
| is now more consistent. If there is no coercion, all attributes | |
| (including class) are copied from the input to the result: | |
| otherwise only names, dims and dimnames are. | |
| </p> | |
| </li> | |
| <li> <p><code>colorRamp()</code> and <code>colorRampPalette()</code> now allow | |
| non-opaque colours and a ramp in opacity <em>via</em> the new argument | |
| <code>alpha = TRUE</code>. (Suggested by Alberto Krone-Martins, but | |
| optionally as there are existing uses which expect only RGB values.) | |
| </p> | |
| </li> | |
| <li> <p><code>grid.show.layout()</code> and <code>grid.show.viewport()</code> | |
| get an optional <code>vp.ex</code> argument. | |
| </p> | |
| </li> | |
| <li><p> There is a new function <code>find_gs_cmd()</code> in the | |
| <span class="pkg">tools</span> package to locate a GhostScript executable. (This is | |
| an enhanced version of a previously internal function there.) | |
| </p> | |
| </li> | |
| <li> <p><code>object.size()</code> gains a <code>format()</code> method. | |
| </p> | |
| </li> | |
| <li><p> There is a new family, <code>"ArialMT"</code>, for the | |
| <code>pdf()</code> and <code>postscript()</code> devices. This will only be | |
| rendered correctly on viewers which have access to Monotype | |
| TrueType fonts (which are sometimes requested by journals). | |
| </p> | |
| </li> | |
| <li><p> The text and PDF news files, including ‘<span class="file">NEWS</span>’ and | |
| ‘<span class="file">NEWS.2</span>’, have been moved to the ‘<span class="file">doc</span>’ directory. | |
| </p> | |
| </li> | |
| <li> <p><code>combn(x, simplify = TRUE)</code> now gives a factor result | |
| for factor input <code>x</code> (previously user error). | |
| (Related to <a href="https://bugs.R-project.org/show_bug.cgi?id=15442">PR#15442</a>.) | |
| </p> | |
| </li> | |
| <li><p> Added <code>utils::fileSnapshot()</code> and | |
| <code>utils::changedFiles()</code> functions to allow snapshots and | |
| comparison of directories of files. | |
| </p> | |
| </li> | |
| <li> <p><code>make.names(names, unique=TRUE)</code> now tries to preserve | |
| existing names. (Suggestion of <a href="https://bugs.R-project.org/show_bug.cgi?id=15452">PR#15452</a>.) | |
| </p> | |
| </li> | |
| <li><p> New functions <code>cospi(x)</code>, <code>sinpi(x)</code>, and | |
| <code>tanpi(x)</code>, for more accurate computation of | |
| <code>cos(pi*x)</code>, etc, both in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> and the C API. Using these | |
| gains accuracy in some cases, e.g., inside <code>lgamma()</code> or | |
| <code>besselI()</code>. (Suggested by Morten Welinder in <a href="https://bugs.R-project.org/show_bug.cgi?id=15529">PR#15529</a>.) | |
| </p> | |
| </li> | |
| <li> <p><code>print.table(x, zero.print = ".")</code> now also has an | |
| effect when <code>x</code> is not integer-valued. | |
| </p> | |
| </li> | |
| <li><p> There is more support to explore the system's idea of | |
| time-zone names. <code>Sys.timezone()</code> tries to give the current | |
| system setting by name (and succeeds at least on Linux, OS X, | |
| Solaris and Windows), and <code>OlsonNames()</code> lists the names in | |
| the system's Olson database. <code>Sys.timezone(location = FALSE)</code> | |
| gives the previous behaviour. | |
| </p> | |
| </li> | |
| <li><p> Platforms with a 64-bit <code>time_t</code> type are allowed to | |
| handle conversions between the <code>"POSIXct"</code> and | |
| <code>"POSIXlt"</code> classes for date-times outside the 32-bit range | |
| (before 1902 or after 2037): the existing workarounds are used on | |
| other platforms. (Note that time-zone information for post-2037 | |
| is speculative at best, and the OS services are tested for known | |
| errors and so not used on OS X.) | |
| </p> | |
| <p>Currently <code>time_t</code> is usually <code>long</code> and hence 64-bit on | |
| Unix-alike 64-bit platforms: however in several cases the | |
| time-zone database is 32-bit. For <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> for Windows it is 64-bit | |
| (for both architectures as from this version). | |
| </p> | |
| </li> | |
| <li><p> The <code>"save.defaults"</code> option can include a value for | |
| <code>compression_level</code>. (Wish of <a href="https://bugs.R-project.org/show_bug.cgi?id=15579">PR#15579</a>.) | |
| </p> | |
| </li> | |
| <li> <p><code>colSums()</code> and friends now have support for arrays and | |
| data-frame columns with <i>2^31</i> or more elements. | |
| </p> | |
| </li> | |
| <li> <p><code>as.factor()</code> is faster when <code>f</code> is an unclassed | |
| integer vector (for example, when called from <code>tapply()</code>). | |
| </p> | |
| </li> | |
| <li> <p><code>fft()</code> now works with longer inputs, from the 12 | |
| million previously supported up to 2 billion. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15593">PR#15593</a>) | |
| </p> | |
| </li> | |
| <li><p> Complex <code>svd()</code> now uses LAPACK subroutine | |
| <code>ZGESDD</code>, the complex analogue of the routine used for the | |
| real case. | |
| </p> | |
| </li> | |
| <li><p> Sweave now outputs ‘<span class="file">.tex</span>’ files in UTF-8 if the | |
| input encoding is declared to be UTF-8, regardless of the | |
| local encoding. The UTF-8 encoding may now be declared using | |
| a LaTeX comment containing the string <code>%\SweaveUTF8</code> | |
| on a line by itself. | |
| </p> | |
| </li> | |
| <li> <p><code>file.copy()</code> gains a <code>copy.date</code> argument. | |
| </p> | |
| </li> | |
| <li><p> Printing of date-times will make use of the time-zone | |
| abbreviation in use at the time, if known. For example, for Paris | |
| pre-1940 this could be <span class="samp">LMT</span>, <span class="samp">PMT</span>, <span class="samp">WET</span> or | |
| <span class="samp">WEST</span>. To enable this, the <code>"POSIXlt"</code> class has an | |
| optional component <code>"zone"</code> recording the abbreviation for | |
| each element. | |
| </p> | |
| <p>For platforms which support it, there is also a component | |
| <code>"gmtoff"</code> recording the offset from GMT where known. | |
| </p> | |
| </li> | |
| <li><p> (On Windows, by default on OS X and optionally elsewhere.) | |
| The system C function <code>strftime</code> has been replaced by a more | |
| comprehensive version with closer conformance to the POSIX 2008 | |
| standard. | |
| </p> | |
| </li> | |
| <li> <p><code>dnorm(x, log = FALSE)</code> is more accurate (but somewhat | |
| slower) for |x| > 5; as suggested in <a href="https://bugs.R-project.org/show_bug.cgi?id=15620">PR#15620</a>. | |
| </p> | |
| </li> | |
| <li><p> Some versions of the <code>tiff()</code> device have further | |
| compression options. | |
| </p> | |
| </li> | |
| <li> <p><code>read.table()</code>, <code>readLines()</code> and <code>scan()</code> | |
| have a new argument to influence the treatment of embedded nuls. | |
| </p> | |
| </li> | |
| <li><p> Avoid duplicating the right hand side values in complex | |
| assignments when possible. This reduces copying of replacement | |
| values in expressions such as <code>Z$a <- a0</code> and | |
| <code>ans[[i]] <- tmp</code>: some package code has relied on there | |
| being copies. | |
| </p> | |
| <p>Also, a number of other changes to reduce copying of objects; all | |
| contributed by or based on suggestions by Michael Lawrence. | |
| </p> | |
| </li> | |
| <li><p> The <code>fast</code> argument of <code>KalmanLike()</code>, | |
| <code>KalmanRun()</code> and <code>KalmanForecast()</code> has been replaced | |
| by <code>update</code>, which instead of updating <code>mod</code> in place, | |
| optionally returns the updated model in an attribute <code>"mod"</code> | |
| of the return value. | |
| </p> | |
| </li> | |
| <li> <p><code>arima()</code> and <code>makeARIMA()</code> get a new optional | |
| argument <code>SSinit</code>, allowing the choice of a different | |
| <b>s</b>tate <b>s</b>pace initialization which has been observed | |
| to be more reliable close to non-stationarity: see <a href="https://bugs.R-project.org/show_bug.cgi?id=14682">PR#14682</a>. | |
| </p> | |
| </li> | |
| <li> <p><code>warning()</code> has a new argument <code>noBreaks.</code>, to | |
| simplify post-processing of output with <code>options(warn = 1)</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>pushBack()</code> gains an argument <code>encoding</code>, to | |
| support reading of UTF-8 characters using <code>scan()</code>, | |
| <code>read.table()</code> and related functions in a non-UTF-8 locale. | |
| </p> | |
| </li> | |
| <li> <p><code>all.equal.list()</code> gets a new argument <code>use.names</code> | |
| which by default labels differing components by names (if they | |
| match) rather than by integer index. Saved <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> output in packages may | |
| need to be updated. | |
| </p> | |
| </li> | |
| <li><p> The methods for <code>all.equal()</code> and | |
| <code>attr.all.equal()</code> now have argument <code>check.attributes</code> | |
| after <code>...</code> so it cannot be partially nor positionally | |
| matched (as it has been, unintentionally). | |
| </p> | |
| <p>A side effect is that some previously undetected errors of passing | |
| empty arguments (no object between commas) to <code>all.equal()</code> | |
| are detected and reported. | |
| </p> | |
| <p>There are explicit checks that <code>check.attributes</code> is logical, | |
| <code>tolerance</code> is numeric and <code>scale</code> is <code>NULL</code> or | |
| numeric. This catches some unintended positional matching. | |
| </p> | |
| <p>The message for <code>all.equal.numeric()</code> reports a | |
| <code>"scaled difference"</code> only for <code>scale != 1</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>all.equal()</code> now has a <code>"POSIXt"</code> method | |
| replacing the <code>"POSIXct"</code> method. | |
| </p> | |
| </li> | |
| <li><p> The <code>"Date"</code> and <code>"POSIXt"</code> methods of | |
| <code>seq()</code> allows <code>by = "quarter"</code> for completeness | |
| (<code>by = "3 months"</code> always worked). | |
| </p> | |
| </li> | |
| <li> <p><code>file.path()</code> removes any trailing separator on | |
| Windows, where they are invalid (although sometimes accepted). | |
| This is intended to enhance the portability of code written by | |
| those using POSIX file systems (where a trailing <code>/</code> can be | |
| used to confine path matching to directories). | |
| </p> | |
| </li> | |
| <li><p> New function <code>agrepl()</code> which like <code>grepl()</code> | |
| returns a logical vector. | |
| </p> | |
| </li> | |
| <li> <p><code>fifo()</code> is now supported on Windows. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15600">PR#15600</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>sort.list(method = "radix")</code> now allows negative | |
| integers (wish of <a href="https://bugs.R-project.org/show_bug.cgi?id=15644">PR#15644</a>). | |
| </p> | |
| </li> | |
| <li><p> Some functionality of <code>print.ts()</code> is now available in | |
| <code>.preformat.ts()</code> for more modularity. | |
| </p> | |
| </li> | |
| <li> <p><code>mcparallel()</code> gains an option <code>detach = TRUE</code> | |
| which allows execution of code independently of the current | |
| session. It is based on a new <code>estranged = TRUE</code> argument to | |
| <code>mcfork()</code> which forks child processes such that they become | |
| independent of the parent process. | |
| </p> | |
| </li> | |
| <li><p> The <code>pdf()</code> device omits circles and text at extremely | |
| small sizes, since some viewers were failing on such files. | |
| </p> | |
| </li> | |
| <li><p> The rightmost break for the <code>"months"</code>, | |
| <code>"quarters"</code> and <code>"years"</code> cases of | |
| <code>hist.POSIXlt()</code> has been increased by a day. (Inter alia, | |
| fixes <a href="https://bugs.R-project.org/show_bug.cgi?id=15717">PR#15717</a>.) | |
| </p> | |
| </li> | |
| <li><p> The handling of <code>DF[i,] <- a</code> where <code>i</code> is of | |
| length 0 is improved. (Inter alia, fixes <a href="https://bugs.R-project.org/show_bug.cgi?id=15718">PR#15718</a>.) | |
| </p> | |
| </li> | |
| <li> <p><code>hclust()</code> gains a new method <code>"ward.D2"</code> which | |
| implements Ward's method correctly. The previous <code>"ward"</code> | |
| method is <code>"ward.D"</code> now, with the old name still working. | |
| Thanks to research and proposals by Pierre Legendre. | |
| </p> | |
| </li> | |
| <li><p> The <code>sunspot.month</code> dataset has been amended and | |
| updated from the official source, whereas the <code>sunspots</code> and | |
| <code>sunspot.year</code> datasets will remain immutable. The | |
| documentation and source links have been updated correspondingly. | |
| </p> | |
| </li> | |
| <li><p> The <code>summary()</code> method for <code>"lm"</code> fits warns if | |
| the fit is essentially perfect, as most of the summary may be | |
| computed inaccurately (and with platform-dependent values). | |
| </p> | |
| <p>Programmers who use <code>summary()</code> in order to extract just | |
| a component which will be reliable (e.g., <code>$cov.unscaled</code>) | |
| should wrap their calls in <code>suppressWarnings()</code>. | |
| </p> | |
| </li></ul> | |
| <h4>INSTALLATION and INCLUDED SOFTWARE</h4> | |
| <ul> | |
| <li><p> The included version of LAPACK has been updated to 3.5.0. | |
| </p> | |
| </li> | |
| <li><p> There is some support for parallel testing of an | |
| installation, by setting <span class="env">TEST_MC_CORES</span> to an integer | |
| greater than one to indicate the maximum number of cores to be | |
| used in parallel. (It is worth specifying at least 8 cores if | |
| available.) Most of these require a <code>make</code> program (such | |
| as GNU <code>make</code> and <code>dmake</code>) which supports the | |
| <code>$MAKE -j nproc</code> syntax. | |
| </p> | |
| <p>Except on Windows: the tests of standard package examples in | |
| <code>make check</code> are done in parallel. This also applies to | |
| running <code>tools::testInstalledPackages()</code>. | |
| </p> | |
| <p>The more time-consuming regression tests are done in parallel. | |
| </p> | |
| <p>The package checks in <code>make check-devel</code> and <code>make | |
| check-recommended</code> are done in parallel. | |
| </p> | |
| </li> | |
| <li><p> More of <code>make check</code> will work if recommended packages | |
| are not installed: but recommended packages remain needed for | |
| thorough checking of an <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> build. | |
| </p> | |
| </li> | |
| <li><p> The version of <span class="samp">tzcode</span> included in | |
| ‘<span class="file">src/extra/tzone</span>’ has been updated. (Formerly used only on | |
| Windows.) | |
| </p> | |
| </li> | |
| <li><p> The included (64-bit) time-zone conversion code and Olson | |
| time-zone database can be used instead of the system version: use | |
| <code>configure</code> option <span class="option">--with-internal-tzcode</span>. This | |
| is the default on Windows and OS X. (Note that this does not | |
| currently work if a non-default <code>rsharedir</code> | |
| <code>configure</code> variable is used.) | |
| </p> | |
| <p>(It might be necessary to set environment variable <span class="env">TZ</span> on | |
| OSes where this is not already set, although the system timezone is | |
| deduced correctly on at least Linux, OS X and Windows.) | |
| </p> | |
| <p>This option also switches to the version of <code>strftime</code> | |
| included in directory ‘<span class="file">src/extra/tzone</span>’. | |
| </p> | |
| </li> | |
| <li> <p><code>configure</code> now tests for a C++11-compliant compiler | |
| by testing some basic features. This by default tries flags for | |
| the compiler specified by <span class="samp">CXX</span>, but an alternative compiler, | |
| options and standard can be specified by variables <span class="samp">CXX1X</span>, | |
| <span class="samp">CXX1XFLAGS</span> and <span class="samp">CXX1XSTD</span> (e.g., <span class="samp">-std=gnu++11</span>). | |
| </p> | |
| </li> | |
| <li> <p><span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> can now optionally be compiled to use reference | |
| counting instead of the <code>NAMED</code> mechanism by defining | |
| <code>SWITCH_TO_REFCNT</code> in ‘<span class="file">Rinternals.h</span>’. This may become | |
| the default in the future. | |
| </p> | |
| </li> | |
| <li><p> There is a new option <span class="option">--use-system-tre</span> to use a | |
| suitable system <span class="pkg">tre</span> library: at present this means a version | |
| from their <code>git</code> repository, after corrections. | |
| (Wish of <a href="https://bugs.R-project.org/show_bug.cgi?id=15660">PR#15660</a>.) | |
| </p> | |
| </li></ul> | |
| <h4>PACKAGE INSTALLATION</h4> | |
| <ul> | |
| <li><p> The <code>CRANextra</code> repository is no longer a default | |
| repository on Windows: all the binary versions of packages from | |
| CRAN are now on CRAN, although <code>CRANextra</code> contains packages | |
| from Omegahat and elsewhere used by CRAN packages. | |
| </p> | |
| </li> | |
| <li><p> Only vignettes sources in directory ‘<span class="file">vignettes</span>’ are | |
| considered to be vignettes and hence indexed as such. | |
| </p> | |
| </li> | |
| <li><p> In the ‘<span class="file">DESCRIPTION</span>’ file, </p> | |
| <pre> License: X11</pre> | |
| <p>is no longer recognized as valid. Use <span class="samp">MIT</span> or | |
| <span class="samp">BSD_2_clause</span> instead, both of which need <span class="samp">+ file LICENSE</span>. | |
| </p> | |
| </li> | |
| <li><p> For consistency, entries in ‘<span class="file">.Rinstignore</span>’ are now matched | |
| case-insensitively on all platforms. | |
| </p> | |
| </li> | |
| <li><p> Help for S4 methods with very long signatures now tries | |
| harder to split the description in the <span class="samp">Usage</span> field to no | |
| more than 80 characters per line (some packages had over 120 | |
| characters). | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD INSTALL --build</code> (not Windows) now defaults to | |
| the internal <code>tar()</code> unless <span class="env">R_INSTALL_TAR</span> is set. | |
| </p> | |
| </li> | |
| <li><p> There is support for compiling C++11 code in packages on | |
| suitable platforms: see ‘Writing R Extensions’. | |
| </p> | |
| </li> | |
| <li><p> Fake installs now install the contents of directory | |
| ‘<span class="file">inst</span>’: some packages use this to install e.g. C++ headers | |
| for use by other packages that are independent of the package | |
| itself. Option <span class="option">--no-inst</span> can be used to get the previous | |
| behaviour. | |
| </p> | |
| </li></ul> | |
| <h4>DEBUGGING</h4> | |
| <ul> | |
| <li><p> The behaviour of the code browser has been made more | |
| consistent, in part following the suggestions in <a href="https://bugs.R-project.org/show_bug.cgi?id=14985">PR#14985</a>. | |
| </p> | |
| </li> | |
| <li><p> Calls to <code>browser()</code> are now consistent with calls | |
| to the browser triggered by <code>debug()</code>, in that <kbd>Enter</kbd> | |
| will default to <code>n</code> rather than <code>c</code>. | |
| </p> | |
| </li> | |
| <li><p> A new browser command <code>s</code> has been added, to | |
| “step into” function calls. | |
| </p> | |
| </li> | |
| <li><p> A new browser command <code>f</code> has been added, to | |
| “finish” the current loop or function. | |
| </p> | |
| </li> | |
| <li><p> Within the browser, the command <code>help</code> will | |
| display a short list of available commands. | |
| </p> | |
| </li></ul> | |
| <h4>UTILITIES</h4> | |
| <ul> | |
| <li><p> Only vignettes sources in directory ‘<span class="file">vignettes</span>’ are | |
| considered to be vignettes by <code>R CMD check</code>. That has | |
| been the preferred location since <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.14.0 and is now obligatory. | |
| </p> | |
| </li> | |
| <li><p> For consistency, <code>R CMD build</code> now matches entries | |
| in ‘<span class="file">.Rbuildignore</span>’ and ‘<span class="file">vignettes/.install_extras</span>’ | |
| case-insensitively on all platforms (not just on Windows). | |
| </p> | |
| </li> | |
| <li> <p><code>checkFF()</code> (called by <code>R CMD check</code> by | |
| default) can optionally check foreign function calls for | |
| consistency with the registered type and argument count. This is | |
| the default for <code>R CMD check --as-cran</code> or can be enabled | |
| by setting environment variable <span class="env">_R_CHECK_FF_CALLS_</span> to | |
| <span class="samp">registration</span> (but is in any case suppressed by | |
| <span class="option">--install=no</span>). Because this checks calls in which | |
| <code>.NAME</code> is an <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> object and not just a literal character | |
| string, some other problems are detected for such calls. | |
| </p> | |
| <p>Functions <code>suppressForeignCheck()</code> and <code>dontCheck()</code> | |
| have been added to allow package authors to suppress false | |
| positive reports. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check --as-cran</code> warns about a false value of | |
| the ‘<span class="file">DESCRIPTION</span>’ field <span class="samp">BuildVignettes</span> for Open Source | |
| packages, and ignores it. (An Open Source package needs to have | |
| complete sources for its vignettes which should be usable on a | |
| suitably well-equipped system). | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check --no-rebuild-vignettes</code> is defunct:<br /> | |
| <code>R CMD check --no-build-vignettes</code> has been preferred since | |
| <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.0.0. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD build --no-vignettes</code> is defunct:<br /> | |
| <code>R CMD build --no-build-vignettes</code> has been preferred since | |
| <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.0.0. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD Sweave</code> and <code>R CMD Stangle</code> now | |
| process both Sweave and non-Sweave vignettes. The | |
| <code>tools::buildVignette()</code> function has been added to do the | |
| same tasks from within <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>. | |
| </p> | |
| </li> | |
| <li><p> The flags returned by <code>R CMD config --ldflags</code> and | |
| (where installed) <code>pkg-config --libs libR</code> are now those | |
| needed to link a front-end against the (shared or static) <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> | |
| library. | |
| </p> | |
| </li> | |
| <li> <p>‘<span class="file">Sweave.sty</span>’ has a new option <span class="samp">[inconsolata]</span>. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> customizations such as | |
| <span class="env">_R_CHECK_DEPENDS_ONLY_</span> make available packages only in | |
| <span class="samp">LinkingTo</span> only for installation, and not for | |
| loading/runtime tests. | |
| </p> | |
| </li> | |
| <li> <p><code>tools::checkFF()</code> reports on <code>.C</code> and | |
| <code>.Fortran</code> calls with <code>DUP = FALSE</code> if argument | |
| <code>check_DUP</code> is true. This is selected by | |
| <code>R CMD check</code> by default. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check --use-gct</code> can be tuned to | |
| garbage-collect less frequently using <code>gctorture2()</code> | |
| <em>via</em> the setting of environment variable | |
| <span class="env">_R_CHECK_GCT_N_</span>. | |
| </p> | |
| </li> | |
| <li><p> Where supported, <code>tools::texi2dvi()</code> limits the number | |
| of passes tried to 20. | |
| </p> | |
| </li></ul> | |
| <h4>C-LEVEL FACILITIES</h4> | |
| <ul> | |
| <li><p> (Windows only) A function <code>R_WaitEvent()</code> has been | |
| added (with declaration in header‘<span class="file">R.h</span>’) to block execution | |
| until the next event is received by <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>. | |
| </p> | |
| </li> | |
| <li><p> Remapping in the ‘<span class="file">Rmath.h</span>’ header can be suppressed by | |
| defining <span class="samp">R_NO_REMAP_RMATH</span>. | |
| </p> | |
| </li> | |
| <li><p> The remapping of <code>rround()</code> in header ‘<span class="file">Rmath.h</span>’ | |
| has been removed: use <code>fround()</code> instead. | |
| </p> | |
| </li> | |
| <li> <p><code>ftrunc()</code> in header ‘<span class="file">Rmath.h</span>’ is now a wrapper | |
| for the C99 function <code>trunc()</code>, which might as well be used | |
| in C code: <code>ftrunc()</code> is still needed for portable C++ code. | |
| </p> | |
| </li> | |
| <li><p> The never-documented remapping of <code>prec()</code> to | |
| <code>fprec()</code> in header ‘<span class="file">Rmath.h</span>’ has been removed. | |
| </p> | |
| </li> | |
| <li><p> The included LAPACK subset now contains <code>ZGESDD</code> and | |
| <code>ZGELSD</code>. | |
| </p> | |
| </li> | |
| <li><p> The function <code>LENGTH()</code> now checks that it is only | |
| applied to vector arguments. However, in packages <code>length()</code> | |
| should be used. (In <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> itself <code>LENGTH()</code> is a macro without | |
| the function overhead of <code>length()</code>.) | |
| </p> | |
| </li> | |
| <li><p> Calls to <code>SET_VECTOR_ELT()</code> and <code>SET_STRING_ELT()</code> | |
| are now checked for indices which are in-range: several packages | |
| were writing one element beyond the allocated length. | |
| </p> | |
| </li> | |
| <li> <p><code>allocVector3</code> has been added which allows custom | |
| allocators to be used for individual vector allocations. | |
| </p> | |
| </li></ul> | |
| <h4>DEPRECATED AND DEFUNCT</h4> | |
| <ul> | |
| <li> <p><code>chol(pivot = TRUE, LINPACK = TRUE)</code> is defunct. | |
| </p> | |
| <p>Arguments <code>EISPACK</code> for <code>eigen()</code> and <code>LINPACK</code> for | |
| <code>chol()</code>, <code>chol2inv()</code>, <code>solve()</code> and <code>svd()</code> | |
| are ignored: LAPACK is always used. | |
| </p> | |
| </li> | |
| <li> <p><code>.find.package()</code> and <code>.path.package()</code> are | |
| defunct: only the versions without the initial dot introduced in | |
| <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.13.0 have ever been in the API. | |
| </p> | |
| </li> | |
| <li><p> Partial matching when using the <code>$</code> operator <em>on | |
| data frames</em> now throws a warning and may become defunct in the | |
| future. If partial matching is intended, replace <code>foo$bar</code> | |
| by <code>foo[["bar", exact = FALSE]]</code>. | |
| </p> | |
| </li> | |
| <li><p> The long-deprecated use of <code>\synopsis</code> in the | |
| <span class="samp">Usage</span> section of ‘<span class="file">.Rd</span>’ files has been removed: such | |
| sections are now ignored (with a warning). | |
| </p> | |
| </li> | |
| <li> <p><code>package.skeleton()</code>'s deprecated argument | |
| <code>namespace</code> has been removed. | |
| </p> | |
| </li> | |
| <li><p> Many methods are no longer exported by package <span class="pkg">stats</span>. | |
| They are all registered on their generic, which should be called | |
| rather than calling a method directly. | |
| </p> | |
| </li> | |
| <li><p> Functions <code>readNEWS()</code> and <code>checkNEWS()</code> in | |
| package <span class="pkg">tools</span> are defunct. | |
| </p> | |
| </li> | |
| <li> <p><code>download.file(method = "lynx")</code> is deprecated. | |
| </p> | |
| </li> | |
| <li> <p><code>.C(DUP = FALSE)</code> and <code>.Fortran(DUP = FALSE)</code> are | |
| now deprecated, and may be disabled in future versions of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>. As | |
| their help has long said, <code>.Call()</code> is much preferred. | |
| </p> | |
| <p><code>R CMD check</code> notes such usages (by default). | |
| </p> | |
| </li> | |
| <li><p> The workaround of setting <span class="env">R_OSX_VALGRIND</span> has been | |
| removed: it is not needed in current valgrind. | |
| </p> | |
| </li></ul> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li><p> Calling <code>lm.wfit()</code> with no non-zero weights gave an | |
| array-overrun in the Fortran code and a not very sensible answer. | |
| It is now special-cased with a simpler answer (no <code>qr</code> | |
| component). | |
| </p> | |
| </li> | |
| <li><p> Error messages involving non-syntactic names (e.g., as produced | |
| by <code>`\r`</code> when that object does not exist) now encode | |
| the control characters. (Reported by Hadley Wickham.) | |
| </p> | |
| </li> | |
| <li> <p><code>getGraphicsEvent()</code> caused 100% usage of one CPU in | |
| Windows. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15500">PR#15500</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>nls()</code> with no <code>start</code> argument may now work | |
| inside another function (scoping issue). | |
| </p> | |
| </li> | |
| <li> <p><code>pbeta()</code> and similar work better for very large | |
| (billions) <code>ncp</code>. | |
| </p> | |
| </li> | |
| <li><p> Where time zones have changed abbreviations over the years, | |
| the software tries to more consistently use the abbreviation | |
| appropriate to the time or if that is unknown, the current | |
| abbreviation. On some platforms where the C function | |
| <code>localtime</code> changed the <code>tzname</code> variables the reported | |
| abbreviation could have been that of the last time converted. | |
| </p> | |
| </li> | |
| <li> <p><code>all.equal(list(1), identity)</code> now works. | |
| </p> | |
| </li> | |
| <li><p> Bug fix for pushing viewports in <span class="pkg">grid</span> (reported by | |
| JJ Allaire and Kevin Ushey). | |
| </p> | |
| <p>NOTE for anyone poking around within the graphics engine display | |
| list (despite the warnings not to) that this changes what | |
| is recorded by <span class="pkg">grid</span> on the graphics engine display list. | |
| </p> | |
| </li> | |
| <li><p> Extra checks have been added for unit resolution and | |
| conversion in <span class="pkg">grid</span>, to catch instances of division-by-zero. | |
| This may introduce error messages in existing code and/or produce | |
| a different result in existing code (but only where a non-finite | |
| location or dimension may now become zero). | |
| </p> | |
| </li> | |
| <li><p> Some bugs in TRE have been corrected by updating from the | |
| <code>git</code> repository. This allows <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> to be installed on some | |
| platforms for which this was a blocker (<a href="https://bugs.R-project.org/show_bug.cgi?id=15087">PR#15087</a> suggests Linux | |
| on ARM and HP-UX). | |
| </p> | |
| </li> | |
| <li> <p><code>?</code> applied to a call to an S4 generic failed in | |
| several cases. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15680">PR#15680</a>) | |
| </p> | |
| </li> | |
| <li><p> The implicit S4 generics for primitives with <code>...</code> in | |
| their argument list were incorrect. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15690">PR#15690</a>) | |
| </p> | |
| </li> | |
| <li><p> Bug fixes to <code>methods::callGeneric()</code>. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15691">PR#15691</a>) | |
| </p> | |
| </li> | |
| <li><p> The bug fix to <code>aggregrate()</code> in <a href="https://bugs.R-project.org/show_bug.cgi?id=15004">PR#15004</a> introduced | |
| a new bug in the case of no grouping variables. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15699">PR#15699</a>) | |
| </p> | |
| </li> | |
| <li><p> In rare cases printing deeply nested lists overran a buffer | |
| by one byte and on a few platforms segfaulted. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15679">PR#15679</a>) | |
| </p> | |
| </li> | |
| <li><p> The dendrogram method of <code>as.dendrogram()</code> was hidden | |
| accidentally, (<a href="https://bugs.R-project.org/show_bug.cgi?id=15703">PR#15703</a>), and <code>order.dendrogram(d)</code> gave | |
| too much for a leaf <code>d</code>. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15702">PR#15702</a>) | |
| </p> | |
| </li> | |
| <li> <p><span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> would try to kill processes on exit that have pids ever | |
| used by a child process spawned by <code>mcparallel</code> even though | |
| the current process with that pid was not actually its child. | |
| </p> | |
| </li> | |
| <li> <p><code>cophenetic()</code> applied to a <code>"dendrogram"</code> object | |
| sometimes incorrectly returned a <code>"Labels"</code> attribute with | |
| dimensions. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15706">PR#15706</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>printCoefmat()</code> called from quite a few <code>print()</code> | |
| methods now obeys small <code>getOption("width")</code> settings, | |
| line wrapping the <span class="samp">"signif. codes"</span> legend appropriately. | |
| (<a href="https://bugs.R-project.org/show_bug.cgi?id=15708">PR#15708</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>model.matrix()</code> assumed that the stored dimnames for a | |
| matrix was <code>NULL</code> or length 2, but length 1 occurred. | |
| </p> | |
| </li> | |
| <li><p> The clipping region for a device was sometimes used in base | |
| graphics before it was set. | |
| </p> | |
| </li></ul> | |
| <h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.0.3</h3> | |
| <h4>NEW FEATURES</h4> | |
| <ul> | |
| <li><p> On Windows there is support for making ‘<span class="file">.texi</span>’ manuals | |
| using <code>texinfo</code> 5.0 or later: the setting is in file | |
| ‘<span class="file">src/gnuwin32/MkRules.dist</span>’. | |
| </p> | |
| <p>A packaging of the Perl script and modules for <code>texinfo</code> | |
| 5.2 has been made available at | |
| <a href="http://www.stats.ox.ac.uk/pub/Rtools/">http://www.stats.ox.ac.uk/pub/Rtools/</a>. | |
| </p> | |
| </li> | |
| <li> <p><code>write.table()</code> now handles matrices of | |
| <i>2^31</i> or more elements, for those with large amounts | |
| of patience and disc space. | |
| </p> | |
| </li> | |
| <li><p> There is a new function, <code>La_version()</code>, to report the | |
| version of LAPACK in use. | |
| </p> | |
| </li> | |
| <li><p> The HTML version of ‘An Introduction to R’ now has | |
| links to PNG versions of the figures. | |
| </p> | |
| </li> | |
| <li><p> There is some support to produce manuals in ebook | |
| formats. (See ‘<span class="file">doc/manual/Makefile</span>’. Suggested by Mauro | |
| Cavalcanti.) | |
| </p> | |
| </li> | |
| <li><p> On a Unix-alike <code>Sys.timezone()</code> returns <code>NA</code> if | |
| the environment variable <span class="env">TZ</span> is unset, to distinguish it from | |
| an empty string which on some OSes means the <span class="samp">UTC</span> time zone. | |
| </p> | |
| </li> | |
| <li><p> The backtick may now be escaped in strings, to allow names | |
| containing them to be constructed, e.g. <code>`\``</code>. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15621">PR#15621</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>read.table()</code>, <code>readLines()</code> and <code>scan()</code> | |
| now warn when an embedded nul is found in the input. (Related to | |
| <a href="https://bugs.R-project.org/show_bug.cgi?id=15625">PR#15625</a> which was puzzled by the behaviour in this unsupported | |
| case.) | |
| </p> | |
| </li> | |
| <li><p> (Windows only.) <code>file.symlink()</code> works around the | |
| undocumented restriction of the Windows system call to | |
| backslashes. (Wish of <a href="https://bugs.R-project.org/show_bug.cgi?id=15631">PR#15631</a>.) | |
| </p> | |
| </li> | |
| <li> <p><code>KalmanForecast(fast = FALSE)</code> is now the default, and | |
| the help contains an example of how <code>fast = TRUE</code> can be used | |
| in this version. (The usage will change in 3.1.0.) | |
| </p> | |
| </li> | |
| <li> <p><code>strptime()</code> now checks the locale only when | |
| locale-specific formats are used and caches the locale in use: | |
| this can halve the time taken on OSes with slow system | |
| functions (e.g., OS X). | |
| </p> | |
| </li> | |
| <li> <p><code>strptime()</code> and the <code>format()</code> methods for | |
| classes <code>"POSIXct"</code>, <code>"POSIXlt"</code> and <code>"Date"</code> | |
| recognize strings with marked encodings: this allows, for example, | |
| UTF-8 French month names to be read on (French) Windows. | |
| </p> | |
| </li> | |
| <li> <p><code>iconv(to = "utf8")</code> is now accepted on all platforms | |
| (some implementations did already, but GNU <span class="pkg">libiconv</span> did not: | |
| however converted strings were not marked as being in UTF-8). The | |
| official name, <code>"UTF-8"</code> is still preferred. | |
| </p> | |
| </li> | |
| <li> <p><code>available.packages()</code> is better protected against | |
| corrupt metadata files. (A recurring problem with Debian package | |
| <span class="pkg">shogun-r</span>: <a href="https://bugs.R-project.org/show_bug.cgi?id=14713">PR#14713</a>.) | |
| </p> | |
| </li> | |
| <li><p> Finalizers are marked to be run at garbage collection, but | |
| run only at a somewhat safer later time (when interrupts are | |
| checked). This circumvents some problems with finalizers running | |
| arbitrary code during garbage collection (the known instances being | |
| running <code>options()</code> and (C-level) <code>path.expand()</code> | |
| re-entrantly). | |
| </p> | |
| </li></ul> | |
| <h4>INSTALLATION and INCLUDED SOFTWARE</h4> | |
| <ul> | |
| <li><p> The included version of PCRE has been updated to 8.34. This | |
| fixes bugs and makes the behaviour closer to Perl 5.18. In | |
| particular, the concept of ‘space’ includes <span class="samp">VT</span> and | |
| hence agrees with POSIX's. | |
| </p> | |
| </li></ul> | |
| <h4>PACKAGE INSTALLATION</h4> | |
| <ul> | |
| <li><p> The new field <span class="samp">SysDataCompression</span> in the | |
| ‘<span class="file">DESCRIPTION</span>’ file allows user control over the compression | |
| used for ‘<span class="file">sysdata.rda</span>’ objects in the lazy-load database. | |
| </p> | |
| </li> | |
| <li> <p><code>install.packages(dependencies = value)</code> for <code>value = | |
| NA</code> (the default) or <code>value = TRUE</code> omits packages only in | |
| <code>LinkingTo</code> for binary package installs. | |
| </p> | |
| </li></ul> | |
| <h4>C-LEVEL FACILITIES</h4> | |
| <ul> | |
| <li><p> The long undocumented remapping of <code>rround()</code> to | |
| <code>Rf_fround()</code> in header ‘<span class="file">Rmath.h</span>’ is now formally | |
| deprecated: use <code>fround()</code> directly. | |
| </p> | |
| </li> | |
| <li><p> Remapping of <code>prec()</code> and <code>trunc()</code> in the | |
| ‘<span class="file">Rmath.h</span>’ header has been disabled in C++ code (it has caused | |
| breakage with <code>libc++</code> headers). | |
| </p> | |
| </li></ul> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li> <p><code>getParseData()</code> truncated the imaginary part of | |
| complex number constants. (Reported by Yihui Xie.) | |
| </p> | |
| </li> | |
| <li> <p><code>dbeta(x, a, b)</code> with <code>a</code> or <code>b</code> within a | |
| factor of 2 of the largest representable number could | |
| infinite-loop. (Reported by Ioannis Kosmidis.) | |
| </p> | |
| </li> | |
| <li> <p><code>provideDimnames()</code> failed for arrays with a 0 | |
| dimension. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15465">PR#15465</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>rbind()</code> and <code>cbind()</code> did not handle | |
| list objects correctly. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15468">PR#15468</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>replayPlot()</code> now checks if it is replaying a plot | |
| from the same session. | |
| </p> | |
| </li> | |
| <li> <p><code>rasterImage()</code> and <code>grid.raster()</code> now give | |
| error on an empty (zero-length) raster. (Reported by Ben North.) | |
| </p> | |
| </li> | |
| <li> <p><code>plot.lm()</code> would sometimes scramble the labels | |
| in plot type 5. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15458">PR#15458</a> and <a href="https://bugs.R-project.org/show_bug.cgi?id=14837">PR#14837</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>min()</code> did not handle <code>NA_character_</code> values | |
| properly. (Reported by Magnus Thor Torfason.) | |
| </p> | |
| </li> | |
| <li><p> (Windows only.) <code>readRegistry()</code> would duplicate | |
| default values for keys. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15455">PR#15455</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>str(..., strict.width = "cut")</code> did not handle | |
| it properly when more than one line needed to be cut. (Reported | |
| by Gerrit Eichner.) | |
| </p> | |
| </li> | |
| <li><p> Removing subclass back-references when S4 classes were | |
| removed or their namespace unloaded had several bugs (e.g., <a href="https://bugs.R-project.org/show_bug.cgi?id=15481">PR#15481</a>). | |
| </p> | |
| </li> | |
| <li> <p><code>aggregate()</code> could fail when there were too many | |
| levels present in the <code>by</code> argument. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15004">PR#15004</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>namespaceImportFrom()</code> needed to detect primitive | |
| functions when checking for duplicated imports (reported by | |
| Karl Forner). | |
| </p> | |
| </li> | |
| <li> <p><code>getGraphicsEvent()</code> did not exit when a user closed | |
| the graphics window. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15208">PR#15208</a>) | |
| </p> | |
| </li> | |
| <li><p> Errors in vignettes were not always captured and displayed | |
| properly. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15495">PR#15495</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>contour()</code> could fail when dealing with extremely | |
| small z values. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15454">PR#15454</a>) | |
| </p> | |
| </li> | |
| <li><p> Several functions did not handle zero-length vectors properly, | |
| including <code>browseEnv()</code>, <code>format()</code>, <code>gl()</code>, | |
| <code>relist()</code> and <code>summary.data.frame()</code>. (E.g., <a href="https://bugs.R-project.org/show_bug.cgi?id=15499">PR#15499</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>Sweave()</code> did not restore the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> output to the | |
| console if it was interrupted by a user in the middle of evaluating | |
| a code chunk. (Reported by Michael Sumner.) | |
| </p> | |
| </li> | |
| <li><p> Fake installs of packages with vignettes work again. | |
| </p> | |
| </li> | |
| <li><p> Illegal characters in the input caused <code>parse()</code> | |
| (and thus <code>source()</code>) to segfault. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15518">PR#15518</a>) | |
| </p> | |
| </li> | |
| <li><p> The nonsensical use of <code>nmax = 1</code> in | |
| <code>duplicated()</code> or <code>unique()</code> is now silently ignored. | |
| </p> | |
| </li> | |
| <li> <p><code>qcauchy(p, *)</code> is now fully accurate even when p is | |
| very close to 1. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15521">PR#15521</a>) | |
| </p> | |
| </li> | |
| <li><p> The <code>validmu()</code> and <code>valideta()</code> functions in the | |
| standard <code>glm()</code> families now also report non-finite values, | |
| rather than failing. | |
| </p> | |
| </li> | |
| <li><p> Saved vignette results (in a ‘<span class="file">.Rout.save</span>’ file) were | |
| not being compared to the new ones during <code>R CMD check</code>. | |
| </p> | |
| </li> | |
| <li><p> Double-clicking outside of the list box (e.g., on the scrollbar) | |
| of a Tk listbox widget generated by <code>tk_select.list()</code> no | |
| longer causes the window to close. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15407">PR#15407</a>) | |
| </p> | |
| </li> | |
| <li><p> Improved handling of edge cases in | |
| <code>parallel::splitindices()</code>. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15552">PR#15552</a>) | |
| </p> | |
| </li> | |
| <li><p> HTML display of results from <code>help.search()</code> and | |
| <code>??</code> sometimes contained badly constructed links. | |
| </p> | |
| </li> | |
| <li> <p><code>c()</code> and related functions such as <code>unlist()</code> | |
| converted raw vectors to invalid logical vectors. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15535">PR#15535</a>) | |
| </p> | |
| </li> | |
| <li><p> (Windows only) When a call to <code>system2()</code> specified | |
| one of <code>stdin</code>, <code>stdout</code> or <code>stderr</code> to be a file, | |
| but the command was not found (e.g., it contained its arguments, | |
| or the program was not on the <span class="env">PATH</span>), it left the file open | |
| and unusable until <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> terminated. (Reported by Mathew McLean.) | |
| </p> | |
| </li> | |
| <li><p> The <code>bmp()</code> device was not recording <code>res = NA</code> | |
| correctly: it is now recorded as 72 ppi. | |
| </p> | |
| </li> | |
| <li><p> Several potential problems with compiler-specific behaviour | |
| have been identified using the ‘Undefined Behaviour | |
| Sanitizer’ in conjunction with the <code>clang</code> compiler. | |
| </p> | |
| </li> | |
| <li> <p><code>hcl()</code> now honours <code>NA</code> inputs (previously they | |
| were mapped to black). | |
| </p> | |
| </li> | |
| <li><p> Some translations in base packages were being looked up in | |
| the main catalog rather than that for the package. | |
| </p> | |
| </li> | |
| <li><p> As a result of the 3.0.2 change about ‘the last | |
| second before the epoch’, most conversions which should have given | |
| <code>NA</code> returned that time. (The platforms affected include | |
| Linux and OS X, but not Windows nor Solaris.) | |
| </p> | |
| </li> | |
| <li> <p><code>rowsum()</code> has more support for matrices and data frames | |
| with <i>2^31</i> or more elements. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15587">PR#15587</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>predict(<lm object>, interval = "confidence", scale = | |
| <something>)</code> now works. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15564">PR#15564</a>) | |
| </p> | |
| </li> | |
| <li><p> The bug fix in 3.0.2 for <a href="https://bugs.R-project.org/show_bug.cgi?id=15411">PR#15411</a> was too aggressive, | |
| and sometimes removed spaces that should not have been removed. | |
| (<a href="https://bugs.R-project.org/show_bug.cgi?id=15583">PR#15583</a>) | |
| </p> | |
| </li> | |
| <li><p> Running <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> code in a <span class="pkg">tcltk</span> callback failed to set the | |
| busy flag, which will be needed to tell OS X not to ‘App Nap’. | |
| </p> | |
| </li> | |
| <li><p> The code for date-times before 1902 assumed that the offset | |
| from GMT in 1902 was a whole number of minutes: that was not true | |
| of Paris (as recorded on some platforms). | |
| </p> | |
| </li> | |
| <li><p> Using <code>Sys.setlocale</code> to set <code>LC_NUMERIC</code> to | |
| <code>"C"</code> (to restore the sane behavior) no longer gives a | |
| warning. | |
| </p> | |
| </li> | |
| <li> <p><code>deparse()</code> now deparses complex vectors in a way that | |
| re-parses to the original values. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15534">PR#15534</a>, patch based on code | |
| submitted by Alex Bertram.) | |
| </p> | |
| </li> | |
| <li><p> In some extreme cases (more than <i>10^15</i>) | |
| integer inputs to <code>dpqrxxx()</code> functions might have been | |
| rounded up by one (with a warning about being non-integer). | |
| (<a href="https://bugs.R-project.org/show_bug.cgi?id=15624">PR#15624</a>) | |
| </p> | |
| </li> | |
| <li><p> Plotting symbol <code>pch = 14</code> had the triangle upside down | |
| on some devices (typically screen devices). The triangle is | |
| supposed to be point up. (Reported by Bill Venables.) | |
| </p> | |
| </li> | |
| <li> <p><code>getSrcref()</code> did not work on method definitions if | |
| <code>rematchDefinition()</code> had been used. | |
| </p> | |
| </li> | |
| <li> <p><code>KalmanForecast(fast = FALSE)</code> reported a (harmless) | |
| stack imbalance. | |
| </p> | |
| </li> | |
| <li><p> The count of observations used by <code>KalmanRun()</code> did not | |
| take missing values into account. | |
| </p> | |
| </li> | |
| <li><p> In locales where the abbreviated name of one month is a | |
| partial match for the full name of a later one, the <code>%B</code> | |
| format in <code>strptime()</code> could fail. An example was French on | |
| OS X, where <span class="samp">juin</span> is abbreviated to <span class="samp">jui</span> and partially | |
| matches <code>juillet</code>. Similarly for weekday names. | |
| </p> | |
| </li> | |
| <li> <p><code>pbeta(x, a, b, log.p = TRUE)</code> sometimes underflowed to | |
| zero for very small and very differently sized <code>a</code>, <code>b</code>. | |
| (<a href="https://bugs.R-project.org/show_bug.cgi?id=15641">PR#15641</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>approx()</code> and <code>approxfun()</code> now handle infinite | |
| values with the <code>"constant"</code> method. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15655">PR#15655</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>stripchart()</code> again respects reversed limits in | |
| <code>xlim</code> and <code>ylim</code>. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15664">PR#15664</a>) | |
| </p> | |
| </li></ul> | |
| <h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.0.2</h3> | |
| <h4>NEW FEATURES</h4> | |
| <ul> | |
| <li><p> The ‘<span class="file">NEWS</span>’ files have been re-organized. | |
| </p> | |
| <p>This file contains news for <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> >= 3.0.0: news for the 0.x.y, 1.x.y | |
| and 2.x.y releases is in files ‘<span class="file">NEWS.0</span>’, ‘<span class="file">NEWS.1</span>’ and | |
| ‘<span class="file">NEWS.2</span>’. The latter files are now installed when <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> is | |
| installed. An HTML version of news from 2.10.0 to 2.15.3 is | |
| available as ‘<span class="file">doc/html/NEWS.2.html</span>’. | |
| </p> | |
| </li> | |
| <li> <p><code>sum()</code> for integer arguments now uses an integer | |
| accumulator of at least 64 bits and so will be more accurate in | |
| the very rare case that a cumulative sum exceeds | |
| <i>2^53</i> (necessarily summing more than 4 million | |
| elements). | |
| </p> | |
| </li> | |
| <li><p> The <code>example()</code> and <code>tools::Rd2ex()</code> functions now | |
| have parameters to allow them to ignore <code>\dontrun</code> markup in | |
| examples. (Suggested by Peter Solymos.) | |
| </p> | |
| </li> | |
| <li> <p><code>str(x)</code> is considerably faster for very large lists, | |
| or factors with 100,000 levels, the latter as in <a href="https://bugs.R-project.org/show_bug.cgi?id=15337">PR#15337</a>. | |
| </p> | |
| </li> | |
| <li> <p><code>col2rgb()</code> now converts factors to character strings | |
| not integer codes (suggested by Bryan Hanson). | |
| </p> | |
| </li> | |
| <li> <p><code>tail(warnings())</code> now works, <em>via</em> the new | |
| <code>`[`</code> method. | |
| </p> | |
| </li> | |
| <li><p> There is now support for the LaTeX style file ‘<span class="file">zi4.sty</span>’ | |
| which has in some distributions replaced ‘<span class="file">inconsolata.sty</span>’. | |
| </p> | |
| </li> | |
| <li> <p><code>unlist(x)</code> now typically returns all non-list | |
| <code>x</code>s unchanged, not just the “vector” ones. | |
| Consequently, <code>format(lst)</code> now also works when the list | |
| <code>lst</code> has non-vector elements. | |
| </p> | |
| </li> | |
| <li><p> The <code>tools::getVignetteInfo()</code> function has been added | |
| to give information about installed vignettes. | |
| </p> | |
| </li> | |
| <li><p> New <code>assertCondition()</code>, etc. utilities in <span class="pkg">tools</span>, useful | |
| for testing. | |
| </p> | |
| </li> | |
| <li><p> Profiling now records non-inlined calls from byte-compiled | |
| code to <code>BUILTIN</code> functions. | |
| </p> | |
| </li> | |
| <li><p> Various functions in <span class="pkg">stats</span> and elsewhere that use | |
| non-standard evaluation are now more careful to follow the | |
| namespace scoping rules. E.g., <code>stats::lm()</code> can now find | |
| <code>stats::model.frame()</code> even if <span class="pkg">stats</span> is not on the | |
| search path or if some package defines a function of that name. | |
| </p> | |
| </li> | |
| <li><p> If an invalid/corrupt <code>.Random.seed</code> object is | |
| encountered in the workspace it is ignored with a warning rather | |
| than giving an error. (This allows <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> itself to rely on a working | |
| RNG, e.g. to choose a random port.) | |
| </p> | |
| </li> | |
| <li> <p><code>seq()</code> and <code>seq.int()</code> give more explicit error | |
| messages if called with invalid (e.g., <code>NaN</code>) inputs. | |
| </p> | |
| </li> | |
| <li><p> When <code>parse()</code> finds a syntax error, it now makes | |
| partial parse information available up to the location of the | |
| error. (Request of Reijo Sund.) | |
| </p> | |
| </li> | |
| <li><p> Methods invoked by <code>NextMethod()</code> had a different | |
| dynamic parent to the generic. This was causing trouble where S3 | |
| methods invoked <em>via</em> lazy evaluation could lose track of | |
| their generic. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15267">PR#15267</a>) | |
| </p> | |
| </li> | |
| <li><p> Code for the negative binomial distribution now treats the case | |
| <code>size == 0</code> as a one-point distribution at zero. | |
| </p> | |
| </li> | |
| <li> <p><code>abbreviate()</code> handles without warning non-ASCII input | |
| strings which require no abbreviation. | |
| </p> | |
| </li> | |
| <li> <p><code>read.dcf()</code> no longer has a limit of 8191 bytes per | |
| line. (Wish of <a href="https://bugs.R-project.org/show_bug.cgi?id=15250">PR#15250</a>.) | |
| </p> | |
| </li> | |
| <li> <p><code>formatC(x)</code> no longer copies the class of <code>x</code> to | |
| the result, to avoid misuse creating invalid objects as in | |
| <a href="https://bugs.R-project.org/show_bug.cgi?id=15303">PR#15303</a>. A warning is given if a class is discarded. | |
| </p> | |
| </li> | |
| <li><p> Dataset <code>npk</code> has been copied from <a href="https://CRAN.R-project.org/package=MASS"><span class="pkg">MASS</span></a> to | |
| allow more tests to be run without recommended packages being | |
| installed. | |
| </p> | |
| </li> | |
| <li><p> The initialization of the regression coefficients for | |
| non-degenerate differenced models in <code>arima()</code> has been | |
| changed and in some examples avoids a local maximum. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15396">PR#15396</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>termplot()</code> now has an argument <code>transform.x</code> | |
| to control the display of individual terms in the plot. | |
| (<a href="https://bugs.R-project.org/show_bug.cgi?id=15329">PR#15329</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>format()</code> now supports <code>digits = 0</code>, to | |
| display <code>nsmall</code> decimal places. | |
| </p> | |
| </li> | |
| <li><p> There is a new read-only <code>par()</code> parameter called | |
| <code>"page"</code>, which returns a logical value indicating whether | |
| the next <code>plot.new()</code> call will start a new page. | |
| </p> | |
| </li> | |
| <li><p> Processing Sweave and Rd documents to PDF now renders | |
| backticks and single quotes better in several instances, including | |
| in <span class="samp">\code</span> and <span class="samp">\samp</span> expressions. | |
| </p> | |
| </li> | |
| <li> <p><code>utils::modifyList()</code> gets a new argument <code>keep.null</code> | |
| allowing <code>NULL</code> components in the replacement to be retained, | |
| instead of causing corresponding components to be deleted. | |
| </p> | |
| </li> | |
| <li> <p><code>tools::pkgVignettes()</code> gains argument <code>check</code>; | |
| if set to <code>TRUE</code>, it will warn when it appears a vignette requests | |
| a non-existent vignette engine. | |
| </p> | |
| </li></ul> | |
| <h4>UTILITIES</h4> | |
| <ul> | |
| <li> <p><code>R CMD check --as-cran</code> checks the line widths in | |
| usage and examples sections of the package Rd files. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check --as-cran</code> now implies <span class="option">--timings</span>. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> looks for command <code>gfile</code> if a | |
| suitable <code>file</code> is not found. (Although <code>file</code> is | |
| not from GNU, OpenCSW on Solaris installs it as <code>gfile</code>.) | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD build</code> (with the internal <code>tar</code>) checks | |
| the permissions of ‘<span class="file">configure</span>’ and ‘<span class="file">cleanup</span>’ files and | |
| adds execute permission to the recorded permissions for these | |
| files if needed, with a warning. This is useful on OSes and file | |
| systems which do not support execute permissions (notably, on | |
| Windows). | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD build</code> now weaves and tangles all vignettes, | |
| so suggested packages are not required during package installation | |
| if the source tarball was prepared with current | |
| <code>R CMD build</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>checkFF()</code> (used by <code>R CMD check</code>) does a | |
| better job of detecting calls from other packages, including not | |
| reporting those where a function has been copied from another | |
| namespace (e.g., as a default method). It now reports calls where | |
| <code>.NAME</code> is a symbol registered in another package. | |
| </p> | |
| </li> | |
| <li><p> On Unix-alike systems, <code>R CMD INSTALL</code> now installs packages | |
| group writably whenever the library (<code>lib.loc</code>) is group | |
| writable. Hence, <code>update.packages()</code> works for other group | |
| members (suggested originally and from a patch by Dirk Eddelbuettel). | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD javareconf</code> now supports the use of symbolic | |
| links for <span class="env">JAVA_HOME</span> on platforms which have | |
| <code>realpath</code>. So it is now possible to | |
| use </p> | |
| <pre>R CMD javareconf JAVA_HOME=/usr/lib/jvm/java-1.7.0</pre> | |
| <p>on a Linux system and record that value rather than the | |
| frequently-changing full path such as | |
| ‘<span class="file">/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.25.x86_64</span>’. | |
| </p> | |
| </li> | |
| <li><p> (Windows only.) <code>Rscript -e</code> requires a non-empty | |
| argument for consistency with Unix versions of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>. (Also | |
| <code>Rterm -e</code> and <code>R -e</code>.) | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> does more thorough checking of | |
| declared packages and namespaces. It reports | |
| </p> | |
| <ul> | |
| <li><p> packages declared in more than one of the | |
| <span class="samp">Depends</span>, <span class="samp">Imports</span>, <span class="samp">Suggests</span> and | |
| <span class="samp">Enhances</span> fields of the ‘<span class="file">DESCRIPTION</span>’ file. | |
| </p> | |
| </li> | |
| <li><p> namespaces declared in <span class="samp">Imports</span> but not | |
| imported from, neither in the ‘<span class="file">NAMESPACE</span>’ file nor using | |
| the <code>::</code> nor <code>:::</code> operators. | |
| </p> | |
| </li> | |
| <li><p> packages which are used in <code>library()</code> or | |
| <code>requires()</code> calls in the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> code but were already put on | |
| the search path <em>via</em> <span class="samp">Depends</span>. | |
| </p> | |
| </li> | |
| <li><p> packages declared in <span class="samp">Depends</span> not imported | |
| <em>via</em> the ‘<span class="file">NAMESPACE</span>’ file (except the standard | |
| packages). Objects used from <span class="samp">Depends</span> packages should be | |
| imported to avoid conflicts and to allow correct operation when | |
| the namespace is loaded but not attached. | |
| </p> | |
| </li> | |
| <li><p> objects imported <em>via</em> <code>:::</code> calls where | |
| <code>::</code> would do. | |
| </p> | |
| </li> | |
| <li><p> objects imported by <code>::</code> which are not exported. | |
| </p> | |
| </li> | |
| <li><p> objects imported by <code>:::</code> calls which do not exist. | |
| </p> | |
| </li></ul> | |
| <p>See ‘Writing R Extensions’ for good practice. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> optionally checks for non-standard | |
| top-level files and directories (which are often mistakes): this | |
| is enabled for <span class="option">--as-cran</span>. | |
| </p> | |
| </li> | |
| <li><p> LaTeX style file <code>upquote.sty</code> is no longer included | |
| (the version was several years old): it is no longer used in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>. | |
| A much later version is commonly included in LaTeX distributions | |
| but does not play well with the <code>ae</code> fonts which are the | |
| default for Sweave vignettes. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD build</code> makes more use of the ‘<span class="file">build</span>’ | |
| sub-directory of package sources, for example to record | |
| information about the vignettes. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> analyses <code>:::</code> calls. | |
| </p> | |
| </li></ul> | |
| <h4>INSTALLATION and INCLUDED SOFTWARE</h4> | |
| <ul> | |
| <li><p> The macros used for the texinfo manuals have been changed to | |
| work better with the incompatible changes made in <code>texinfo | |
| 5.x</code>. | |
| </p> | |
| </li> | |
| <li><p> The minimum version for a system <code>xz</code> library is now | |
| 5.0.3 (was 4.999). This is in part to avoid 5.0.2, which can | |
| compress in ways other versions cannot decompress. | |
| </p> | |
| </li> | |
| <li><p> The included version of PCRE has been updated to 8.33. | |
| </p> | |
| </li> | |
| <li><p> The included version of <code>zlib</code> has been updated to | |
| 1.2.8, a bug-fix release. | |
| </p> | |
| </li> | |
| <li><p> The included version of xz utils's <code>liblzma</code> has been | |
| updated to 5.0.5. | |
| </p> | |
| </li> | |
| <li><p> Since <code>javareconf</code> (see above) is used when <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> is | |
| installed, a stable link for <span class="env">JAVA_HOME</span> can be supplied then. | |
| </p> | |
| </li> | |
| <li><p> Configuring with <span class="option">--disable-byte-compilation</span> will | |
| override the ‘<span class="file">DESCRIPTION</span>’ files of recommended packages, | |
| which typically require byte-compilation. | |
| </p> | |
| </li> | |
| <li><p> More of the installation and checking process will work even | |
| when <span class="env">TMPDIR</span> is set to a path containing spaces, but this is | |
| not recommended and external software (such as | |
| <code>texi2dvi</code>) may fail. | |
| </p> | |
| </li></ul> | |
| <h4>PACKAGE INSTALLATION</h4> | |
| <ul> | |
| <li><p> Installation is aborted immediately if a <code>LinkingTo</code> | |
| package is not installed. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD INSTALL</code> has a new option | |
| <code>--no-byte-compile</code> which will override a <span class="samp">ByteCompile</span> | |
| field in the package's ‘<span class="file">DESCRIPTION</span>’ file. | |
| </p> | |
| </li> | |
| <li><p> License <span class="samp">BSD</span> is deprecated: use <span class="samp">BSD_3_clause</span> | |
| or <span class="samp">BSD_2_clause</span> instead. | |
| </p> | |
| <p>License <span class="samp">X11</span> is deprecated: use <span class="samp">MIT</span> or | |
| <span class="samp">BSD_2_clause</span> instead. | |
| </p> | |
| </li> | |
| <li><p> Version requirements for <code>LinkingTo</code> packages are now | |
| recognized: they are checked at installation. (Fields with | |
| version requirements were previously silently ignored.) | |
| </p> | |
| </li> | |
| <li><p> The limit of 500 <code>S3method</code> entries in a | |
| <code>NAMESPACE</code> file has been removed. | |
| </p> | |
| </li> | |
| <li><p> The default ‘version’ of Bioconductor for its | |
| packages has been changed to the upcoming <span class="samp">2.13</span>, but this | |
| can be set by the environment variable <span class="env">R_BIOC_VERSION</span> when | |
| <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> is installed. | |
| </p> | |
| </li></ul> | |
| <h4>C-LEVEL FACILITIES</h4> | |
| <ul> | |
| <li> <p>‘<span class="file">Rdefines.h</span>’ has been tweaked so it can be included in | |
| C++ code after ‘<span class="file">R_ext/Boolean.h</span>’ (which is included by | |
| ‘<span class="file">R.h</span>’). | |
| </p> | |
| <p>Note that ‘<span class="file">Rdefines.h</span>’ is not kept up-to-date, and | |
| ‘<span class="file">Rinternals.h</span>’ is preferred for new code. | |
| </p> | |
| </li> | |
| <li> <p><code>eval</code> and <code>applyClosure</code> are now protected | |
| against package code supplying an invalid <code>rho</code>. | |
| </p> | |
| </li></ul> | |
| <h4>DEPRECATED AND DEFUNCT</h4> | |
| <ul> | |
| <li><p> The unused <code>namespace</code> argument to | |
| <code>package.skeleton()</code> is now formally deprecated and will be | |
| removed in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.1.0. | |
| </p> | |
| </li> | |
| <li> <p><code>plclust()</code> is deprecated: use the <code>plot()</code> method | |
| for class <code>"hclust"</code> instead. | |
| </p> | |
| </li> | |
| <li><p> Functions <code>readNEWS()</code> and <code>checkNEWS()</code> in | |
| package <span class="pkg">tools</span> are deprecated (and they have not worked with | |
| current ‘<span class="file">NEWS</span>’ files for a long time). | |
| </p> | |
| </li></ul> | |
| <h4>DOCUMENTATION</h4> | |
| <ul> | |
| <li> <p>‘An Introduction to R’ has a new chapter on using <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> | |
| as a scripting language including interacting with the OS. | |
| </p> | |
| </li></ul> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li> <p><code>help.request()</code> could not determine the current version | |
| of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> on CRAN. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15241">PR#15241</a>) | |
| </p> | |
| </li> | |
| <li><p> On Windows, <code>file.info()</code> failed on root directories unless | |
| the path was terminated with an explicit <code>"."</code>. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15302">PR#15302</a>) | |
| </p> | |
| </li> | |
| <li><p> The <code>regmatches<-()</code> replacement function mishandled | |
| results coming from <code>regexpr()</code>. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15311">PR#15311</a>) | |
| </p> | |
| </li> | |
| <li><p> The help for <code>setClass()</code> and | |
| <code>representation()</code> still suggested the deprecated argument | |
| <code>representation=</code>. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15312">PR#15312</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD config</code> failed in an installed build of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> | |
| 3.0.1 (only) when a sub-architecture was used. (Reported by | |
| Berwin Turlach.) | |
| </p> | |
| </li> | |
| <li><p> On Windows, the installer modified the ‘<span class="file">etc/Rconsole</span>’ | |
| and ‘<span class="file">etc/Rprofile.site</span>’ files even when default options were | |
| chosen, so the MD5 sums did not refer to the installed versions. | |
| (Reported by Tal Galili.) | |
| </p> | |
| </li> | |
| <li> <p><code>plot(hclust(), cex =)</code> respects <code>cex</code> again | |
| (and possibly others similarly). (Reported by Peter Langfelder.) | |
| </p> | |
| </li> | |
| <li><p> If multiple packages were checked by <code>R CMD check</code>, | |
| and one was written for a different OS, it would set | |
| <code>--no-install</code> for all following packages as well as | |
| itself. | |
| </p> | |
| </li> | |
| <li> <p><code>qr.coef()</code> and related functions did not properly coerce | |
| real vectors to complex when necessary. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15332">PR#15332</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>ftable(a)</code> now fixes up empty <code>dimnames</code> such | |
| that the result is printable. | |
| </p> | |
| </li> | |
| <li> <p><code>package.skeleton()</code> was not starting its search for | |
| function objects in the correct place if <code>environment</code> was | |
| supplied. (Reported by Karl Forner.) | |
| </p> | |
| </li> | |
| <li><p> Parsing code was changing the length field of vectors and | |
| confusing the memory manager. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15345">PR#15345</a>) | |
| </p> | |
| </li> | |
| <li><p> The Fortran routine <code>ZHER2K</code> in the reference BLAS | |
| had a comment-out bug in two places. | |
| This caused trouble with <code>eigen()</code> for Hermitian matrices. | |
| (<a href="https://bugs.R-project.org/show_bug.cgi?id=15345">PR#15345</a> and report from Robin Hankin) | |
| </p> | |
| </li> | |
| <li> <p><code>vignette()</code> and <code>browseVignettes()</code> did not | |
| display non-Sweave vignettes properly. | |
| </p> | |
| </li> | |
| <li><p> Two warning/error messages have been corrected: | |
| the (optional) warning produced by a partial name match | |
| with a pairlist, the error message from a zero-length argument to | |
| the <code>:</code> operator. (Found by Radford Neal; <a href="https://bugs.R-project.org/show_bug.cgi?id=15358">PR#15358</a>, | |
| <a href="https://bugs.R-project.org/show_bug.cgi?id=15356">PR#15356</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>svd()</code> returned <code>NULL</code> rather than omitting | |
| components as documented. (Found by Radford Neal; <a href="https://bugs.R-project.org/show_bug.cgi?id=15360">PR#15360</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>mclapply()</code> and <code>mcparallel()</code> with | |
| <code>silent = TRUE</code> could break a process that uses | |
| <code>stdout</code> output | |
| unguarded against broken pipes (e.g., <code>zip</code> will fail | |
| silently). To work around such issues, they now replace | |
| <code>stdout</code> with a descriptor pointed to ‘<span class="file">/dev/null</span>’ | |
| instead. For this purpose, internal <code>closeStdout</code> and | |
| <code>closeStderr</code> functions have gained the <code>to.null</code> flag. | |
| </p> | |
| </li> | |
| <li> <p><code>log()</code>, <code>signif()</code> and <code>round()</code> now raise an | |
| error if a single named argument is not named <code>x</code>. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15361">PR#15361</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>deparse()</code> now deparses raw vectors in a form that | |
| is syntactically correct. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15369">PR#15369</a>) | |
| </p> | |
| </li> | |
| <li><p> The <code>jpeg</code> driver in Sweave created a JPEG file, but gave | |
| it a ‘<span class="file">.png</span>’ extension. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15370">PR#15370</a>) | |
| </p> | |
| </li> | |
| <li><p> Deparsing of infix operators with named arguments is | |
| improved. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15350">PR#15350</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>mget()</code>, <code>seq.int()</code> and <code>numericDeriv()</code> | |
| did not duplicate arguments properly. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15352">PR#15352</a>, <a href="https://bugs.R-project.org/show_bug.cgi?id=15353">PR#15353</a>, | |
| <a href="https://bugs.R-project.org/show_bug.cgi?id=15354">PR#15354</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>kmeans(algorithm = "Hartigan-Wong")</code> now always stops | |
| iterating in the QTran stage. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15364">PR#15364</a>). | |
| </p> | |
| </li> | |
| <li> <p><code>read.dcf()</code> re-allocated incorrectly and so could | |
| segfault when called on a file with lines of more than 100 bytes. | |
| </p> | |
| </li> | |
| <li><p> On systems where <code>mktime()</code> does not set <code>errno</code>, | |
| the last second before the epoch could not be converted from | |
| <code>POSIXlt</code> to <code>POSIXct</code>. (Reported by Bill Dunlap.) | |
| </p> | |
| </li> | |
| <li> <p><code>add1.glm()</code> miscalculated F-statistics when df > 1. (Bill | |
| Dunlap, <a href="https://bugs.R-project.org/show_bug.cgi?id=15386">PR#15386</a>). | |
| </p> | |
| </li> | |
| <li> <p><code>stem()</code> now discards infinite inputs rather than | |
| hanging. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15376">PR#15376</a>) | |
| </p> | |
| </li> | |
| <li><p> The parser now enforces C99 syntax for floating point | |
| hexadecimal constants (e.g., <code>0x1.1p0</code>), rather than returning | |
| unintended values for malformed constants. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15234">PR#15234</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>model.matrix()</code> now works with very long LHS | |
| names (more than 500 bytes). (<a href="https://bugs.R-project.org/show_bug.cgi?id=15377">PR#15377</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>integrate()</code> reverts to the pre-2.12.0 behaviour: from | |
| 2.12.0 to 3.0.1 it sometimes failed to achieve the requested | |
| tolerance and reported error estimates that were exceeded. | |
| (<a href="https://bugs.R-project.org/show_bug.cgi?id=15219">PR#15219</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>strptime()</code> now handles <span class="samp">%W</span> fields with value | |
| 0. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15915">PR#15915</a>) | |
| </p> | |
| </li> | |
| <li> <p><span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> is now better protected against people trying to interact | |
| with the console in startup code. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15325">PR#15325</a>) | |
| </p> | |
| </li> | |
| <li><p> Subsetting 1D arrays often lost dimnames (<a href="https://bugs.R-project.org/show_bug.cgi?id=15301">PR#15301</a>). | |
| </p> | |
| </li> | |
| <li><p> Unary <code>+</code> on a logical vector did not coerce to | |
| integer, although unary <code>-</code> did. | |
| </p> | |
| </li> | |
| <li> <p><code>na.omit()</code> and <code>na.exclude()</code> added a row | |
| to a zero-row data frame. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15399">PR#15399</a>) | |
| </p> | |
| </li> | |
| <li><p> All the (where necessary cut-down) vignettes are installed | |
| if <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> was configured with <span class="option">--without-recommended-packages</span>. | |
| </p> | |
| </li> | |
| <li> <p><code>source()</code> did not display filenames when reporting | |
| syntax errors. | |
| </p> | |
| </li> | |
| <li><p> Syntax error reports misplaced the caret pointing out the bad | |
| token. | |
| </p> | |
| </li> | |
| <li><p> (Windows only) Starting <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> with <code>R</code> (instead of | |
| <code>Rterm</code> or <code>Rgui</code>) would lose any | |
| zero-length strings from the command line arguments. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15406">PR#15406</a>) | |
| </p> | |
| </li> | |
| <li><p> Errors in the encoding specified on the command line | |
| <em>via</em> <code>--encoding=foo</code> were not handled properly. | |
| (<a href="https://bugs.R-project.org/show_bug.cgi?id=15405">PR#15405</a>) | |
| </p> | |
| </li> | |
| <li><p> If <code>x</code> is a symbol, <code>is.vector(x, "name")</code> now | |
| returns <code>TRUE</code>, since <code>"name"</code> and <code>"symbol"</code> | |
| should be synonyms. (Reported by Hervé Pagès.) | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD rtags</code> works on platforms (such as OS X) | |
| with a XSI-conformant shell command <code>echo</code>. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15231">PR#15231</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>is.unsorted(NA)</code> returns false as documented (rather than | |
| <code>NA</code>). | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD LINK</code> did not know about sub-architectures. | |
| </p> | |
| </li> | |
| <li> <p><code>system()</code> and <code>system2()</code> are better protected | |
| against users who misguidedly have spaces in the temporary | |
| directory path. | |
| </p> | |
| </li> | |
| <li> <p><code>file.show()</code> and <code>edit()</code> are now more likely to | |
| work on file paths containing spaces. (Where external utilities | |
| are used, not the norm on Windows nor in <code>R.app</code> which | |
| should previously have worked.) | |
| </p> | |
| </li> | |
| <li><p> Packages using the <span class="pkg">methods</span> package are more likely to | |
| work when they import it but it is not attached. (Several parts | |
| of its C code were looking for its <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> functions on the search path | |
| rather than in its namespace.) | |
| </p> | |
| </li> | |
| <li> <p><code>lgamma(-x)</code> is no longer <code>NaN</code> for very small x. | |
| </p> | |
| </li> | |
| <li><p> (Windows) <code>system2()</code> now respects specifying | |
| <code>stdout</code> and <code>stderr</code> as files if called from | |
| <code>Rgui</code>. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15393">PR#15393</a>) | |
| </p> | |
| </li> | |
| <li><p> Closing an <code>x11()</code> device whilst <code>locator()</code> or | |
| <code>identify()</code> is in progress no longer hangs <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15253">PR#15253</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>list.dirs(full.names = FALSE)</code> was not implemented. | |
| (<a href="https://bugs.R-project.org/show_bug.cgi?id=15170">PR#15170</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>format()</code> sometimes added unnecessary spaces. | |
| (<a href="https://bugs.R-project.org/show_bug.cgi?id=15411">PR#15411</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>all.equal(check.names = FALSE)</code> would ignore the request | |
| to ignore the names and would check them as attributes. | |
| </p> | |
| </li> | |
| <li><p> The symbol set by <code>tools::Rd2txt_options(itemBullet=)</code> | |
| was not respected in some locales. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15435">PR#15435</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>mcMap()</code> was not exported by package | |
| <span class="pkg">parallel</span>. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15439">PR#15439</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>plot()</code> for <code>TukeyHSD</code> objects did not balance | |
| <code>dev.hold()</code> and <code>dev.flush()</code> calls on multi-page plots. | |
| (<a href="https://bugs.R-project.org/show_bug.cgi?id=15449">PR#15449</a>) | |
| </p> | |
| </li></ul> | |
| <h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.0.1</h3> | |
| <h4>NEW FEATURES</h4> | |
| <ul> | |
| <li> <p><code>chooseCRANmirror()</code> and <code>chooseBioCmirror()</code> gain | |
| an <code>ind</code> argument (like <code>setRepositories()</code>). | |
| </p> | |
| </li> | |
| <li> <p><code>mcparallel</code> has a new argument <code>mc.interactive</code> | |
| which can modify the interactive flag in the child process. The | |
| new default is <code>FALSE</code> which makes child processes | |
| non-interactive by default (this prevents lock-ups due to children | |
| waiting for interactive input). | |
| </p> | |
| </li> | |
| <li> <p><code>scan()</code> now warns when end-of-file occurs within | |
| a quoted string. | |
| </p> | |
| </li> | |
| <li> <p><code>count.fields()</code> is now consistent with <code>scan()</code> | |
| in its handling of newlines in quoted strings. Instead of | |
| triggering an error, this results in the current line receiving | |
| <code>NA</code> as the field count, with the next line getting the total | |
| count of the two lines. | |
| </p> | |
| </li> | |
| <li><p> The default method of <code>image()</code> will plot axes of the | |
| class of <code>xlim</code> and <code>ylim</code> (and hence of <code>x</code> and | |
| <code>y</code> if there is a suitable <code>range()</code> method). Based on | |
| a suggestion of Michael Sumner. | |
| </p> | |
| </li> | |
| <li> <p><code>load()</code> now has a <code>verbose</code> argument for | |
| debugging support, to print the names of objects just before | |
| loading them. | |
| </p> | |
| </li> | |
| <li><p> When loading a serialized object encounters a reference to a | |
| namespace which cannot be loaded, this is replaced by a reference | |
| to the global environment, with a warning. | |
| </p> | |
| </li> | |
| <li> <p><code>pairs()</code> gains a <code>line.main</code> option for title placement. | |
| </p> | |
| </li> | |
| <li><p> The remaining instances in which serialization to a raw | |
| vector was limited to 2GB have been unlimited on a 64-bit | |
| platform, and in most cases serialization to a vector of more than | |
| 1GB will be substantially faster. | |
| </p> | |
| </li></ul> | |
| <h4>UTILITIES</h4> | |
| <ul> | |
| <li> <p><code>R CMD config</code> now make use of personal | |
| ‘<span class="file">Makevars</span>’ files under ‘<span class="file">~/.R</span>’ and a site file | |
| ‘<span class="file">Makevars.site</span>’, in the same way as <code>R CMD SHLIB</code> and | |
| <code>R CMD INSTALL</code>. This makes the utility more useful in | |
| package <code>configure</code> scripts. | |
| </p> | |
| <p>On Windows finding the personal files may require the environment | |
| variable <span class="env">HOME</span> set. | |
| </p> | |
| <p>The old behaviour can be obtained with the new options | |
| <span class="option">--no-user-files</span> and <span class="option">--no-site-files</span>. | |
| </p> | |
| </li></ul> | |
| <h4>PACKAGE INSTALLATION</h4> | |
| <ul> | |
| <li><p> Alternatives to the site and user customization files | |
| ‘<span class="file">Makevars.site</span>’ and ‘<span class="file">~/.R/Makevars</span>’ can be specified | |
| <em>via</em> the environment variables <span class="env">R_MAKEVARS_SITE</span> and | |
| <span class="env">R_MAKEVARS_USER</span> respectively. These can be used to suppress | |
| the use of the default files by setting an empty value (where | |
| possible) or a non-existent path. | |
| </p> | |
| </li></ul> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li> <p><code>sys.source()</code> did not report error locations when | |
| <code>keep.source = TRUE</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>as.POSIXct.numeric</code> was coercing <code>origin</code> using | |
| the <code>tz</code> argument and not <code>"GMT"</code> as documented | |
| (<a href="https://bugs.R-project.org/show_bug.cgi?id=14973">PR#14973</a>). | |
| </p> | |
| </li> | |
| <li><p> The active binding to assign fields in reference classes | |
| has been cleaned up to reduce dependence on the class' package | |
| environment, also fixing bug in initializing read-only fields | |
| (inspired by a report from Hadley Wickham). | |
| </p> | |
| </li> | |
| <li> <p><code>str(d)</code> no longer gives an error when <code>names(d)</code> | |
| contain illegal multibyte strings (<a href="https://bugs.R-project.org/show_bug.cgi?id=15247">PR#15247</a>). | |
| </p> | |
| </li> | |
| <li><p> Profiling of built-in functions with <code>line.profiling= | |
| TRUE</code> did not record the line from which they were called. | |
| </p> | |
| </li> | |
| <li> <p><code>citation(pkg)</code> dropped the header and footer specified | |
| in the ‘<span class="file">CITATION</span>’ file (<a href="https://bugs.R-project.org/show_bug.cgi?id=15257">PR#15257</a>). | |
| </p> | |
| </li> | |
| <li><p> Quotes were handled differently when reading the first line | |
| and reading the rest, so <code>read.table()</code> misread some files | |
| that contained quote characters (<a href="https://bugs.R-project.org/show_bug.cgi?id=15245">PR#15245</a>). | |
| </p> | |
| </li> | |
| <li> <p><code>cat()</code> with <code>sep</code> a character vector of length | |
| greater than one and more than one argument was using separators | |
| inconsistently (<a href="https://bugs.R-project.org/show_bug.cgi?id=15261">PR#15261</a>). | |
| </p> | |
| </li> | |
| <li><p> On Windows in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.0.0, <code>savePlot()</code> failed because of | |
| an incorrect check on the argument count. | |
| </p> | |
| </li> | |
| <li> <p><code>unzip(list = TRUE)</code> returned <code>Names</code> as a factor | |
| and not a character vector (as documented) for the internal method. | |
| (Noticed by Sean O'Riordain.) | |
| </p> | |
| </li> | |
| <li> <p><code>contourLines()</code> now checks more comprehensively for | |
| conformance of its <code>x</code>, <code>y</code> and <code>z</code> arguments (it | |
| was used incorrectly in package <a href="https://CRAN.R-project.org/package=R2G2"><span class="pkg">R2G2</span></a>). | |
| </p> | |
| </li> | |
| <li><p> Saved graphics display lists are <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> version-specific. | |
| Attempting to load workspaces containing them (or some other | |
| version-specific objects) aborted the load in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.0.0 and | |
| earlier; now it does a partial load and generates a warning | |
| instead. | |
| </p> | |
| </li> | |
| <li><p> In <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.0.0, <code>identify()</code> and <code>locator()</code> did | |
| not record information correctly, so replaying a graph (e.g., by | |
| copying it to another device) would fail. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15271">PR#15271</a>) | |
| </p> | |
| </li> | |
| <li><p> Calling <code>file.copy()</code> or <code>dirname()</code> with the | |
| invalid input <code>""</code> (which was being used in packages, despite | |
| not being a file path) could have caused a segfault. | |
| </p> | |
| <p><code>dirname("")</code> is now <code>""</code> rather than <code>"."</code> (unless | |
| it segfaulted). | |
| </p> | |
| </li> | |
| <li> <p><code>supsmu()</code> could read/write outside its input vectors | |
| for very short inputs (seen in package <a href="https://CRAN.R-project.org/package=rms"><span class="pkg">rms</span></a> for <code>n = 4</code>). | |
| </p> | |
| </li> | |
| <li> <p><code>as.dendrogram()</code>'s <code>hclust</code> method uses less | |
| memory and hence gets considerably faster for large (n ~ 1000) | |
| clusterings, thanks to Daniel Müllner. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15174">PR#15174</a>) | |
| </p> | |
| </li> | |
| <li><p> The return value when all workers failed from | |
| <code>parallel::mclapply(mc.preschedule = TRUE)</code> was a list of | |
| strings and not of error objects. (Spotted by Karl Forner and | |
| Bernd Bischl.) | |
| </p> | |
| </li> | |
| <li><p> In <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.0.0, when <code>help()</code> found multiple pages with | |
| the same alias, the HTML display of all the selections was not | |
| produced. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15282">PR#15282</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>splinefun(method="monoH.FC")</code> now produces a | |
| function with first argument named <code>x</code> and allows | |
| <code>deriv=3</code>, as documented. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15273">PR#15273</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>summaryRprof()</code> would only read the first | |
| <code>chunksize</code> lines of an <code>Rprof</code> file produced with | |
| <code>line.profiling=TRUE</code>. By default, this is the first 100 | |
| seconds. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15288">PR#15288</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>lsfit()</code> produced an incorrect error message when | |
| argument <code>x</code> had more columns than rows or <code>x</code> had a | |
| different number of rows than <code>y</code>. (Spotted by Renaud Gaujoux.) | |
| </p> | |
| </li> | |
| <li><p> Binary operations on equal length vectors copied the | |
| class name from the second operand when the first had no | |
| class name, but did not set the object bit. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15299">PR#15299</a>) | |
| </p> | |
| </li> | |
| <li><p> The <code>trace()</code> method for reference generator objects | |
| failed after those objects became function definitions. | |
| </p> | |
| </li> | |
| <li> <p><code>write.table()</code> did not check that factors were | |
| constructed correctly, and so caused a segment fault when | |
| writing bad ones. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15300">PR#15300</a>) | |
| </p> | |
| </li> | |
| <li><p> The internal HTTP server no longer chokes on POST requests | |
| without body. It will also pass-through other request types for | |
| custom handlers (with the method stored in Request-Method header) | |
| instead of failing. | |
| </p> | |
| </li></ul> | |
| <h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.0.0</h3> | |
| <h4>SIGNIFICANT USER-VISIBLE CHANGES</h4> | |
| <ul> | |
| <li><p> Packages need to be (re-)installed under this version | |
| (3.0.0) of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>. | |
| </p> | |
| </li> | |
| <li><p> There is a subtle change in behaviour for numeric index | |
| values <i>2^31</i> and larger. These never used to be | |
| legitimate and so were treated as <code>NA</code>, sometimes with a | |
| warning. They are now legal for long vectors so there is no | |
| longer a warning, and <code>x[2^31] <- y</code> will now extend the | |
| vector on a 64-bit platform and give an error on a 32-bit one. | |
| </p> | |
| </li> | |
| <li><p> It is now possible for 64-bit builds to allocate amounts of | |
| memory limited only by the OS. It may be wise to use OS | |
| facilities (e.g., <code>ulimit</code> in a <code>bash</code> shell, | |
| <code>limit</code> in <code>csh</code>), to set limits on overall memory | |
| consumption of an <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> process, particularly in a multi-user | |
| environment. A number of packages need a limit of at least 4GB of | |
| virtual memory to load. | |
| </p> | |
| <p>64-bit Windows builds of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> are by default limited in memory usage | |
| to the amount of RAM installed: this limit can be changed by | |
| command-line option <span class="option">--max-mem-size</span> or setting environment | |
| variable <span class="env">R_MAX_MEM_SIZE</span>. | |
| </p> | |
| </li> | |
| <li><p> Negative numbers for colours are consistently an error: | |
| previously they were sometimes taken as transparent, sometimes | |
| mapped into the current palette and sometimes an error. | |
| </p> | |
| </li></ul> | |
| <h4>NEW FEATURES</h4> | |
| <ul> | |
| <li> <p><code>identical()</code> has a new argument, | |
| <code>ignore.environment</code>, used when comparing functions (with | |
| default <code>FALSE</code> as before). | |
| </p> | |
| </li> | |
| <li><p> There is a new option, <code>options(CBoundsCheck=)</code>, which | |
| controls how <code>.C()</code> and <code>.Fortran()</code> pass arguments to | |
| compiled code. If true (which can be enabled by setting the | |
| environment variable <span class="env">R_C_BOUNDS_CHECK</span> to <span class="samp">yes</span>), raw, | |
| integer, double and complex arguments are always copied, and | |
| checked for writing off either end of the array on return from the | |
| compiled code (when a second copy is made). This also checks | |
| individual elements of character vectors passed to <code>.C()</code>. | |
| </p> | |
| <p>This is not intended for routine use, but can be very helpful in | |
| finding segfaults in package code. | |
| </p> | |
| </li> | |
| <li><p> In <code>layout()</code>, the limits on the grid size have been | |
| raised (again). | |
| </p> | |
| </li> | |
| <li><p> New simple <code>provideDimnames()</code> utility function. | |
| </p> | |
| </li> | |
| <li><p> Where methods for <code>length()</code> return a double value | |
| which is representable as an integer (as often happens for package | |
| <a href="https://CRAN.R-project.org/package=Matrix"><span class="pkg">Matrix</span></a>), this is converted to an integer. | |
| </p> | |
| </li> | |
| <li><p> Matrix indexing of data frames by two-column numeric indices | |
| is now supported for replacement as well as extraction. | |
| </p> | |
| </li> | |
| <li> <p><code>setNames()</code> now has a default for its <code>object</code> | |
| argument, useful for a character result. | |
| </p> | |
| </li> | |
| <li> <p><code>StructTS()</code> has a revised additive constant in the | |
| <code>loglik</code> component of the result: the previous definition is | |
| returned as the <code>loglik0</code> component. However, the help page has | |
| always warned of a lack of comparability of log-likelihoods for | |
| non-stationary models. (Suggested by Jouni Helske.) | |
| </p> | |
| </li> | |
| <li><p> The logic in <code>aggregate.formula()</code> has been revised. | |
| It is now possible to use a formula stored in a variable; | |
| previously, it had to be given explicitly in the function call. | |
| </p> | |
| </li> | |
| <li> <p><code>install.packages()</code> has a new argument <code>quiet</code> to | |
| reduce the amount of output shown. | |
| </p> | |
| </li> | |
| <li><p> Setting an element of the graphics argument <code>lwd</code> to a | |
| negative or infinite value is now an error. Lines corresponding | |
| to elements with values <code>NA</code> or <code>NaN</code> are silently | |
| omitted. | |
| </p> | |
| <p>Previously the behaviour was device-dependent. | |
| </p> | |
| </li> | |
| <li><p> Setting graphical parameters <code>cex</code>, <code>col</code>, | |
| <code>lty</code>, <code>lwd</code> and <code>pch</code> in <code>par()</code> now requires a | |
| length-one argument. Previously some silently took the first | |
| element of a longer vector, but not always when documented to do so. | |
| </p> | |
| </li> | |
| <li> <p><code>Sys.which()</code> when used with inputs which would be | |
| unsafe in a shell (e.g., absolute paths containing spaces) now uses | |
| appropriate quoting. | |
| </p> | |
| </li> | |
| <li> <p><code>as.tclObj()</code> has been extended to handle raw vectors. | |
| Previously, it only worked in the other direction. | |
| (Contributed by Charlie Friedemann, <a href="https://bugs.R-project.org/show_bug.cgi?id=14939">PR#14939</a>.) | |
| </p> | |
| </li> | |
| <li><p> New functions <code>cite()</code> and <code>citeNatbib()</code> have | |
| been added, to allow generation of in-text citations from | |
| <code>"bibentry"</code> objects. A <code>cite()</code> function may be added | |
| to <code>bibstyle()</code> environments. | |
| </p> | |
| </li> | |
| <li><p> A <code>sort()</code> method has been added for <code>"bibentry"</code> | |
| objects. | |
| </p> | |
| </li> | |
| <li><p> The <code>bibstyle()</code> function now defaults to setting the | |
| default bibliography style. The <code>getBibstyle()</code> function | |
| has been added to report the name of the current default style. | |
| </p> | |
| </li> | |
| <li> <p><code>scatter.smooth()</code> now has an argument <code>lpars</code> to | |
| pass arguments to <code>lines()</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>pairs()</code> has a new <code>log</code> argument, to allow some | |
| or all variables to be plotted on logarithmic scale. | |
| (In part, wish of <a href="https://bugs.R-project.org/show_bug.cgi?id=14919">PR#14919</a>.) | |
| </p> | |
| </li> | |
| <li> <p><code>split()</code> gains a <code>sep</code> argument. | |
| </p> | |
| </li> | |
| <li> <p><code>termplot()</code> does a better job when given a model with | |
| interactions (and no longer attempts to plot interaction terms). | |
| </p> | |
| </li> | |
| <li><p> The parser now incorporates code from Romain Francois' | |
| <a href="https://CRAN.R-project.org/package=parser"><span class="pkg">parser</span></a> package, to support more detailed computation on | |
| the code, such as syntax highlighting, comment-based | |
| documentation, etc. Functions <code>getParseData()</code> and | |
| <code>getParseText()</code> access the data. | |
| </p> | |
| </li> | |
| <li><p> There is a new function <code>rep_len()</code> analogous to | |
| <code>rep.int()</code> for when speed is required (and names are not). | |
| </p> | |
| </li> | |
| <li><p> The undocumented use <code>rep(NULL, length.out = n)</code> for | |
| <code>n > 0</code> (which returns <code>NULL</code>) now gives a warning. | |
| </p> | |
| </li> | |
| <li> <p><code>demo()</code> gains an <code>encoding</code> argument for those | |
| packages with non-ASCII demos: it defaults to the package encoding | |
| where there is one. | |
| </p> | |
| </li> | |
| <li> <p><code>strwrap()</code> converts inputs with a marked encoding to | |
| the current locale: previously it made some attempt to pass | |
| through as bytes inputs invalid in the current locale. | |
| </p> | |
| </li> | |
| <li><p> Specifying both <code>rate</code> and <code>scale</code> to | |
| <code>[dpqr]gamma</code> is a warning (if they are essentially the same | |
| value) or an error. | |
| </p> | |
| </li> | |
| <li> <p><code>merge()</code> works in more cases where the data frames | |
| include matrices. (Wish of <a href="https://bugs.R-project.org/show_bug.cgi?id=14974">PR#14974</a>.) | |
| </p> | |
| </li> | |
| <li> <p><code>optimize()</code> and <code>uniroot()</code> no longer use a | |
| shared parameter object across calls. (<code>nlm()</code>, | |
| <code>nlminb()</code> and <code>optim()</code> with numerical derivatives | |
| still do, as documented.) | |
| </p> | |
| </li> | |
| <li><p> The <code>all.equal()</code> method for date-times is now | |
| documented: times are regarded as equal (by default) if they | |
| differ by up to 1 msec. | |
| </p> | |
| </li> | |
| <li> <p><code>duplicated()</code> and <code>unique()</code> gain a <code>nmax</code> | |
| argument which can be used to make them much more efficient when | |
| it is known that there are only a small number of unique entries. | |
| This is done automatically for factors. | |
| </p> | |
| </li> | |
| <li><p> Functions <code>rbinom()</code>, <code>rgeom()</code>, <code>rhyper()</code>, | |
| <code>rpois()</code>, <code>rnbinom(),</code> <code>rsignrank()</code> and | |
| <code>rwilcox()</code> now return integer (not double) vectors. This | |
| halves the storage requirements for large simulations. | |
| </p> | |
| </li> | |
| <li> <p><code>sort()</code>, <code>sort.int()</code> and <code>sort.list()</code> now | |
| use radix sorting for factors of less than 100,000 levels when | |
| <code>method</code> is not supplied. So does <code>order()</code> if called | |
| with a single factor, unless <code>na.last = NA</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>diag()</code> as used to generate a diagonal matrix has been | |
| re-written in C for speed and less memory usage. It now forces | |
| the result to be numeric in the case <code>diag(x)</code> since it is | |
| said to have ‘zero off-diagonal entries’. | |
| </p> | |
| </li> | |
| <li> <p><code>backsolve()</code> (and <code>forwardsolve()</code>) are now | |
| internal functions, for speed and support for large matrices. | |
| </p> | |
| </li> | |
| <li><p> More matrix algebra functions (e.g., <code>chol()</code> and | |
| <code>solve()</code>) accept logical matrices (and coerce to numeric). | |
| </p> | |
| </li> | |
| <li> <p><code>sample.int()</code> has some support for <i>n >= 2^31</i>: see its help for the limitations. | |
| </p> | |
| <p>A different algorithm is used for <code>(n, size, replace = FALSE, | |
| prob = NULL)</code> for <code>n > 1e7</code> and <code>size <= n/2</code>. This | |
| is much faster and uses less memory, but does give different results. | |
| </p> | |
| </li> | |
| <li> <p><code>approxfun()</code> and <code>splinefun()</code> now return a | |
| wrapper to an internal function in the <span class="pkg">stats</span> namespace | |
| rather than a <code>.C()</code> or <code>.Call()</code> call. This is more | |
| likely to work if the function is saved and used in a different | |
| session. | |
| </p> | |
| </li> | |
| <li><p> The functions <code>.C()</code>, <code>.Call()</code>, | |
| <code>.External()</code> and <code>.Fortran()</code> now give an error (rather | |
| than a warning) if called with a named first argument. | |
| </p> | |
| </li> | |
| <li> <p><code>Sweave()</code> by default now reports the locations in | |
| the source file(s) of each chunk. | |
| </p> | |
| </li> | |
| <li> <p><code>clearPushBack()</code> is now a documented interface to a | |
| long-existing internal call. | |
| </p> | |
| </li> | |
| <li> <p><code>aspell()</code> gains filters for <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> code, Debian Control | |
| Format and message catalog files, and support for <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> level | |
| dictionaries. In addition, package <span class="pkg">utils</span> now provides | |
| functions <code>aspell_package_R_files()</code> and | |
| <code>aspell_package_C_files()</code> for spell checking <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> and C level | |
| message strings in packages. | |
| </p> | |
| </li> | |
| <li> <p><code>bibentry()</code> gains some support for “incomplete” | |
| entries with a <span class="samp">crossref</span> field. | |
| </p> | |
| </li> | |
| <li> <p><code>gray()</code> and <code>gray.colors()</code> finally allow | |
| <code>alpha</code> to be specified. | |
| </p> | |
| </li> | |
| <li> <p><code>monthplot()</code> gains parameters to control the look of | |
| the reference lines. (Suggestion of Ian McLeod.) | |
| </p> | |
| </li> | |
| <li><p> Added support for new <code>%~%</code> relation | |
| (“is distributed as”) in plotmath. | |
| </p> | |
| </li> | |
| <li> <p><code>domain = NA</code> is accepted by <code>gettext()</code> and | |
| <code>ngettext()</code>, analogously to <code>stop()</code> etc. | |
| </p> | |
| </li> | |
| <li> <p><code>termplot()</code> gains a new argument <code>plot = FALSE</code> | |
| which returns information to allow the plots to be modified for | |
| use as part of other plots, but does not plot them. | |
| (Contributed by Terry Therneau, <a href="https://bugs.R-project.org/show_bug.cgi?id=15076">PR#15076</a>.) | |
| </p> | |
| </li> | |
| <li> <p><code>quartz.save()</code>, formerly an undocumented part of | |
| <code>R.app</code>, is now available to copy a device to a | |
| <code>quartz()</code> device. <code>dev.copy2pdf()</code> optionally does | |
| this for PDF output: <code>quartz.save()</code> defaults to PNG. | |
| </p> | |
| </li> | |
| <li><p> The default method of <code>pairs()</code> now allows | |
| <code>text.panel = NULL</code> and the use of <code><foo>.panel = NULL</code> | |
| is now documented. | |
| </p> | |
| </li> | |
| <li> <p><code>setRefClass()</code> and <code>getRefClass()</code> now return | |
| class generator functions, similar to <code>setClass()</code>, but | |
| still with the reference fields and methods as before | |
| (suggestion of Romain Francois). | |
| </p> | |
| </li> | |
| <li><p> New functions <code>bitwNot()</code>, <code>bitwAnd()</code>, | |
| <code>bitwOr()</code> and <code>bitwXor()</code>, using the internal | |
| interfaces previously used for classes <code>"octmode"</code> and | |
| <code>"hexmode"</code>. | |
| </p> | |
| <p>Also <code>bitwShiftL()</code> and <code>bitwShiftR()</code> for shifting bits | |
| in elements of integer vectors. | |
| </p> | |
| </li> | |
| <li><p> New option <code>"deparse.cutoff"</code> to control the deparsing | |
| of language objects such as calls and formulae when printing. | |
| (Suggested by a comment of Sarah Goslee.) | |
| </p> | |
| </li> | |
| <li> <p><code>colors()</code> gains an argument <code>distinct</code>. | |
| </p> | |
| </li> | |
| <li><p> New <code>demo(colors)</code> and <code>demo(hclColors)</code>, with | |
| utility functions. | |
| </p> | |
| </li> | |
| <li> <p><code>list.files()</code> (aka <code>dir()</code>) gains a new optional | |
| argument <code>no..</code> which allows to exclude <code>"."</code> and | |
| <code>".."</code> from listings. | |
| </p> | |
| </li> | |
| <li><p> Multiple time series are also of class <code>"matrix"</code>; | |
| consequently, <code>head()</code>, e.g., is more useful. | |
| </p> | |
| </li> | |
| <li> <p><code>encodeString()</code> preserves UTF-8 marked encodings. | |
| Thus if factor levels are marked as UTF-8 an attempt is made to | |
| print them in UTF-8 in <code>RGui</code> on Windows. | |
| </p> | |
| </li> | |
| <li> <p><code>readLines()</code> and <code>scan()</code> (and hence | |
| <code>read.table()</code>) in a UTF-8 locale now discard a UTF-8 | |
| byte-order-mark (BOM). Such BOMs are allowed but not recommended | |
| by the Unicode Standard: however Microsoft applications can | |
| produce them and so they are sometimes found on websites. | |
| </p> | |
| <p>The encoding name <code>"UTF-8-BOM"</code> for a connection will | |
| ensure that a UTF-8 BOM is discarded. | |
| </p> | |
| </li> | |
| <li> <p><code>mapply(FUN, a1, ..)</code> now also works when <code>a1</code> (or | |
| a further such argument) needs a <code>length()</code> method (which the | |
| documented arguments never do). (Requested by Hervé Pagès; with a | |
| patch.) | |
| </p> | |
| </li> | |
| <li> <p><code>.onDetach()</code> is supported as an alternative to | |
| <code>.Last.lib</code>. Unlike <code>.Last.lib</code>, this does not need to | |
| be exported from the package's namespace. | |
| </p> | |
| </li> | |
| <li><p> The <code>srcfile</code> argument to <code>parse()</code> may now be a | |
| character string, to be used in error messages. | |
| </p> | |
| </li> | |
| <li><p> The <code>format()</code> method for <code>ftable</code> objects gains | |
| a <code>method</code> argument, propagated to <code>write.ftable()</code> and | |
| <code>print()</code>, allowing more compact output, notably for LaTeX | |
| formatting, thanks to Marius Hofert. | |
| </p> | |
| </li> | |
| <li><p> The <code>utils::process.events()</code> function has been added | |
| to trigger immediate event handling. | |
| </p> | |
| </li> | |
| <li> <p><code>Sys.which()</code> now returns <code>NA</code> (not <code>""</code>) for | |
| <code>NA</code> inputs (related to <a href="https://bugs.R-project.org/show_bug.cgi?id=15147">PR#15147</a>). | |
| </p> | |
| </li> | |
| <li><p> The <code>print()</code> method for class <code>"htest"</code> gives | |
| fewer trailing spaces (wish of <a href="https://bugs.R-project.org/show_bug.cgi?id=15124">PR#15124</a>). | |
| </p> | |
| <p>Also print output from <code>HoltWinters()</code>, <code>nls()</code> and others. | |
| </p> | |
| </li> | |
| <li> <p><code>loadNamespace()</code> allows a version specification to be | |
| given, and this is used to check version specifications given in | |
| the <span class="samp">Imports</span> field when a namespace is loaded. | |
| </p> | |
| </li> | |
| <li> <p><code>setClass()</code> has a new argument, <code>slots</code>, clearer | |
| and less ambiguous than <code>representation</code>. It is recommended | |
| for future code, but should be back-compatible. At the same time, | |
| the allowed slot specification is slightly more general. See the | |
| documentation for details. | |
| </p> | |
| </li> | |
| <li> <p><code>mget()</code> now has a default for <code>envir</code> (the frame | |
| from which it is called), for consistency with <code>get()</code> and | |
| <code>assign()</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>close()</code> now returns an integer status where available, | |
| invisibly. (Wish of <a href="https://bugs.R-project.org/show_bug.cgi?id=15088">PR#15088</a>.) | |
| </p> | |
| </li> | |
| <li><p> The internal method of <code>tar()</code> can now store paths too | |
| long for the <span class="samp">ustar</span> format, using the (widely supported) GNU | |
| extension. It can also store long link names, but these are much | |
| less widely supported. There is support for larger files, up to | |
| the <span class="samp">ustar</span> limit of 8GB. | |
| </p> | |
| </li> | |
| <li><p> Local reference classes have been added to package | |
| <span class="pkg">methods</span>. These are a technique for avoiding unneeded | |
| copying of large components of objects while retaining standard <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> | |
| functional behavior. See <code>?LocalReferenceClasses</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>untar()</code> has a new argument <code>restore_times</code> which | |
| if false (not the default) discards the times in the tarball. | |
| This is useful if they are incorrect (some tarballs submitted to | |
| <acronym><span class="acronym">CRAN</span></acronym> have times in a local time zone or many years in the | |
| past even though the standard required them to be in UTC). | |
| </p> | |
| </li> | |
| <li> <p><code>replayplot()</code> cannot (and will not attempt to) replay | |
| plots recorded under <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> < 3.0.0. It may crash the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> session if | |
| an attempt is made to replay plots created in a different build of | |
| <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> >= 3.0.0. | |
| </p> | |
| </li> | |
| <li><p> Palette changes get recorded on the display list, so | |
| replaying plots (including when resizing screen devices and using | |
| <code>dev.copy()</code>) will work better when the palette is changed | |
| during a plot. | |
| </p> | |
| </li> | |
| <li> <p><code>chol(pivot = TRUE)</code> now defaults to LAPACK, not LINPACK. | |
| </p> | |
| </li> | |
| <li><p> The <code>parse()</code> function has a new parameter | |
| <code>keep.source</code>, which defaults to <code>options("keep.source")</code>. | |
| </p> | |
| </li> | |
| <li><p> Profiling <em>via</em> <code>Rprof()</code> now optionally records | |
| information at the statement level, not just the function level. | |
| </p> | |
| </li> | |
| <li><p> The <code>Rprof()</code> function now quotes function names in | |
| in its output file on Windows, to be consistent with the quoting | |
| in Unix. | |
| </p> | |
| </li> | |
| <li><p> Profiling <em>via</em> <code>Rprof()</code> now optionally records | |
| information about time spent in GC. | |
| </p> | |
| </li> | |
| <li><p> The HTML help page for a package now displays non-vignette | |
| documentation files in a more accessible format. | |
| </p> | |
| </li> | |
| <li><p> To support <code>options(stringsAsFactors = FALSE)</code>, | |
| <code>model.frame()</code>, <code>model.matrix()</code> and | |
| <code>replications()</code> now automatically convert character | |
| vectors to factors without a warning. | |
| </p> | |
| </li> | |
| <li><p> The <code>print</code> method for objects of class <code>"table"</code> | |
| now detects tables with 0-extents and prints the results as, e.g., | |
| <span class="samp">< table of extent 0 x 1 x 2 ></span>. (Wish of <a href="https://bugs.R-project.org/show_bug.cgi?id=15198">PR#15198</a>.) | |
| </p> | |
| </li> | |
| <li><p> Deparsing involving calls to anonymous functions has been | |
| made closer to reversible by the addition of extra parentheses. | |
| </p> | |
| </li> | |
| <li><p> The function <code>utils::packageName()</code> has been added as | |
| a lightweight version of <code>methods::getPackageName()</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>find.package(lib.loc = NULL)</code> now treats loaded | |
| namespaces preferentially in the same way as attached packages | |
| have been for a long time. | |
| </p> | |
| </li> | |
| <li><p> In Windows, the Change Directory dialog now defaults to | |
| the current working directory, rather than to the last directory | |
| chosen in that dialog. | |
| </p> | |
| </li> | |
| <li> <p><code>available.packages()</code> gains a | |
| <code>"license/restricts_use"</code> filter which retains only packages | |
| for which installation can proceed solely based on packages which | |
| are guaranteed not to restrict use. | |
| </p> | |
| </li> | |
| <li><p> New <code>check_packages_in_dir()</code> function in package | |
| <span class="pkg">tools</span> for conveniently checking source packages along with | |
| their reverse dependencies. | |
| </p> | |
| </li> | |
| <li><p> R's completion mechanism has been improved to handle help | |
| requests (starting with a question mark). In particular, help | |
| prefixes are now supported, as well as quoted help topics. To | |
| support this, completion inside quotes are now handled by R by | |
| default on all platforms. | |
| </p> | |
| </li> | |
| <li><p> The memory manager now allows the strategy used to balance | |
| garbage collection and memory growth to be controlled by setting | |
| the environment variable <span class="env">R_GC_MEM_GROW</span>. See <code>?Memory</code> | |
| for more details. | |
| </p> | |
| </li> | |
| <li><p> (‘For experts only’, as the introductory manual | |
| says.) The use of environment variables <span class="env">R_NSIZE</span> and | |
| <span class="env">R_VSIZE</span> to control the initial (= minimum) garbage | |
| collection trigger for number of cons cels and size of heap has | |
| been restored: they can be overridden by the command-line options | |
| <code>--min-nsize</code> and <code>--min-vsize</code>; see <code>?Memory</code>. | |
| </p> | |
| </li> | |
| <li><p> On Windows, the device name for bitmap devices as reported | |
| by <code>.Device</code> and <code>.Devices</code> no longer includes the file | |
| name. This is for consistency with other platforms and was | |
| requested by the <a href="https://CRAN.R-project.org/package=lattice"><span class="pkg">lattice</span></a> maintainer. | |
| </p> | |
| <p><code>win.metafile()</code> still uses the file name: the exact form is | |
| used by package <a href="https://CRAN.R-project.org/package=tkrplot"><span class="pkg">tkrplot</span></a>. | |
| </p> | |
| </li> | |
| <li> <p><code>set.seed(NULL)</code> re-initializes <code>.Random.seed</code> as | |
| done at the beginning of the session if not already set. | |
| (Suggestion of Bill Dunlap.) | |
| </p> | |
| </li> | |
| <li><p> The <code>breaks</code> argument in <code>hist.default()</code> can now be | |
| a function that returns the breakpoints to be used (previously it | |
| could only return the suggested number of breakpoints). | |
| </p> | |
| </li> | |
| <li><p> File ‘<span class="file">share/licenses/licenses.db</span>’ has some | |
| clarifications, especially as to which variants of ‘BSD’ | |
| and ‘MIT’ is intended and how to apply them to packages. | |
| The problematic licence ‘Artistic-1.0’ has been removed. | |
| </p> | |
| </li></ul> | |
| <h4>LONG VECTORS</h4> | |
| <p>This section applies only to 64-bit platforms. | |
| </p> | |
| <ul> | |
| <li><p> There is support for vectors longer than <i>2^31 | |
| - 1</i> elements. This applies to raw, logical, integer, double, | |
| complex and character vectors, as well as lists. (Elements of | |
| character vectors remain limited to <i>2^31 - 1</i> | |
| bytes.) | |
| </p> | |
| </li> | |
| <li><p> Most operations which can sensibly be done with long vectors | |
| work: others may return the error ‘long vectors not | |
| supported yet’. Most of these are because they explicitly work | |
| with integer indices (e.g., <code>anyDuplicated()</code> and | |
| <code>match()</code>) or because other limits (e.g., of character strings | |
| or matrix dimensions) would be exceeded or the operations would be | |
| extremely slow. | |
| </p> | |
| </li> | |
| <li> <p><code>length()</code> returns a double for long vectors, and | |
| lengths can be set to <i>2^31</i> or more by the | |
| replacement function with a double value. | |
| </p> | |
| </li> | |
| <li><p> Most aspects of indexing are available. Generally | |
| double-valued indices can be used to access elements beyond | |
| <i>2^31 - 1</i>. | |
| </p> | |
| </li> | |
| <li><p> There is some support for matrices and arrays with each | |
| dimension less than <i>2^31</i> but total number of | |
| elements more than that. Only some aspects of matrix algebra work | |
| for such matrices, often taking a very long time. In other cases | |
| the underlying Fortran code has an unstated restriction (as was | |
| found for complex <code>svd()</code>). | |
| </p> | |
| </li> | |
| <li> <p><code>dist()</code> can produce dissimilarity objects for more | |
| than 65536 rows (but for example <code>hclust()</code> cannot process | |
| such objects). | |
| </p> | |
| </li> | |
| <li> <p><code>serialize()</code> to a raw vector is unlimited in size | |
| (except by resources). | |
| </p> | |
| </li> | |
| <li><p> The C-level function <code>R_alloc</code> can now allocate | |
| <i>2^35</i> or more bytes. | |
| </p> | |
| </li> | |
| <li> <p><code>agrep()</code> and <code>grep()</code> will return double vectors | |
| of indices for long vector inputs. | |
| </p> | |
| </li> | |
| <li><p> Many calls to <code>.C()</code> have been replaced by | |
| <code>.Call()</code> to allow long vectors to be supported (now or in | |
| the future). Regrettably several packages had copied the non-API | |
| <code>.C()</code> calls and so failed. | |
| </p> | |
| </li> | |
| <li> <p><code>.C()</code> and <code>.Fortran()</code> do not accept long vector | |
| inputs. This is a precaution as it is very unlikely that existing | |
| code will have been written to handle long vectors (and the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> | |
| wrappers often assume that <code>length(x)</code> is an integer). | |
| </p> | |
| </li> | |
| <li><p> Most of the methods for <code>sort()</code> work for long vectors. | |
| </p> | |
| <p><code>rank()</code>, <code>sort.list()</code> and <code>order()</code> support | |
| long vectors (slowly except for radix sorting). | |
| </p> | |
| </li> | |
| <li> <p><code>sample()</code> can do uniform sampling from a long vector. | |
| </p> | |
| </li></ul> | |
| <h4>PERFORMANCE IMPROVEMENTS</h4> | |
| <ul> | |
| <li><p> More use has been made of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> objects representing registered | |
| entry points, which is more efficient as the address is provided | |
| by the loader once only when the package is loaded. | |
| </p> | |
| <p>This has been done for packages <code>base</code>, <code>methods</code>, | |
| <code>splines</code> and <code>tcltk</code>: it was already in place for the | |
| other standard packages. | |
| </p> | |
| <p>Since these entry points are always accessed by the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> entry | |
| points they do not need to be in the load table which can be | |
| substantially smaller and hence searched faster. This does mean | |
| that <code>.C</code> / <code>.Fortran</code> / <code>.Call</code> calls copied from | |
| earlier versions of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> may no longer work – but they were never | |
| part of the API. | |
| </p> | |
| </li> | |
| <li><p> Many <code>.Call()</code> calls in package <span class="pkg">base</span> have been | |
| migrated to <code>.Internal()</code> calls. | |
| </p> | |
| </li> | |
| <li> <p><code>solve()</code> makes fewer copies, especially when <code>b</code> | |
| is a vector rather than a matrix. | |
| </p> | |
| </li> | |
| <li> <p><code>eigen()</code> makes fewer copies if the input has dimnames. | |
| </p> | |
| </li> | |
| <li><p> Most of the linear algebra functions make fewer copies when | |
| the input(s) are not double (e.g., integer or logical). | |
| </p> | |
| </li> | |
| <li><p> A foreign function call (<code>.C()</code> etc) in a package | |
| without a <code>PACKAGE</code> argument will only look in the first DLL | |
| specified in the ‘<span class="file">NAMESPACE</span>’ file of the package rather than | |
| searching all loaded DLLs. A few packages needed <code>PACKAGE</code> | |
| arguments added. | |
| </p> | |
| </li> | |
| <li><p> The <code>@<-</code> operator is now implemented as a primitive, | |
| which should reduce some copying of objects when used. Note that | |
| the operator object must now be in package <span class="pkg">base</span>: do not try | |
| to import it explicitly from package <span class="pkg">methods</span>. | |
| </p> | |
| </li></ul> | |
| <h4>PACKAGE INSTALLATION</h4> | |
| <ul> | |
| <li><p> The transitional support for installing packages without | |
| namespaces (required since <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.14.0) has been removed. | |
| <code>R CMD build</code> will still add a namespace, but a | |
| <code>.First.lib()</code> function will need to be converted. | |
| </p> | |
| <p><code>R CMD INSTALL</code> no longer adds a namespace (so | |
| installation will fail), and a <code>.First.lib()</code> function in a | |
| package will be ignored (with an installation warning for now). | |
| </p> | |
| <p>As an exception, packages without a ‘<span class="file">R</span>’ directory and no | |
| ‘<span class="file">NAMESPACE</span>’ file can still be installed. | |
| </p> | |
| </li> | |
| <li><p> Packages can specify in their ‘<span class="file">DESCRIPTION file</span>’ a line | |
| like </p> | |
| <pre> Biarch: yes | |
| </pre> | |
| <p>to be installed on Windows with <span class="option">--force-biarch</span>. | |
| </p> | |
| </li> | |
| <li><p> Package vignettes can now be processed by other engines | |
| besides <code>Sweave</code>; see ‘Writing R Extensions’ and the | |
| <code>tools::vignetteEngine</code> help topic for details. | |
| </p> | |
| </li> | |
| <li><p> The ‘<span class="file">*.R</span>’ tangled source code for vignettes is now | |
| included in tarballs when <code>R CMD build</code> is used to produce | |
| them. In <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.0.0, ‘<span class="file">*.R</span>’ files not in the sources will be | |
| produced at install time, but eventually this will be dropped. | |
| </p> | |
| </li> | |
| <li><p> The package type <code>"mac.binary"</code> now looks in a path in | |
| the repository without any Mac subtype (which used to be | |
| <span class="samp">universal</span> or <span class="samp">leopard</span>): it looks in | |
| ‘<span class="file">bin/macosx/contrib/3.0</span>’ rather than | |
| ‘<span class="file">bin/macosx/leopard/contrib/2.15</span>’). This is the type used | |
| for the <acronym><span class="acronym">CRAN</span></acronym> binary distribution for OS X as from <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> | |
| 3.0.0. | |
| </p> | |
| </li> | |
| <li><p> File ‘<span class="file">etc/Makeconf</span>’ makes more use of the macros | |
| <code>$(CC)</code>, <code>$(CXX)</code>, <code>$(F77)</code> and <code>$(FC)</code>, so | |
| the compiler in use can be changed by setting just these (and if | |
| necessary the corresponding flags and <code>FLIBS</code>) in file | |
| ‘<span class="file">~/.R/Makevars</span>’. | |
| </p> | |
| <p>This is convenient for those working with binary distributions of | |
| <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>, e.g. on OS X. | |
| </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 calls to <code>abort</code>, <code>assert</code> or | |
| <code>exit</code> in compiled code, and has been able to find the | |
| ‘<span class="file">.o</span>’ file in which the calls occur. | |
| </p> | |
| <p>Such calls can terminate the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> process which loads the package. | |
| </p> | |
| </li> | |
| <li><p> The location of the build and check environment files can | |
| now be specified by the environment variables | |
| <span class="env">R_BUILD_ENVIRON</span> and <span class="env">R_CHECK_ENVIRON</span>, respectively. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD Sweave</code> gains a <span class="option">--compact</span> option | |
| to control possibly reducing the size of the PDF file it creates | |
| when <span class="option">--pdf</span> is given. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD build</code> now omits Eclipse's ‘<span class="file">.metadata</span>’ | |
| directories, and <code>R CMD check</code> warns if it finds them. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check</code> now does some checks on functions | |
| defined within reference classes, including of <code>.Call()</code> etc | |
| calls. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD check --as-cran</code> notes assignments to the | |
| global environment, calls to <code>data()</code> which load into the | |
| global environment, and calls to <code>attach()</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD build</code> by default uses the internal method of | |
| <code>tar()</code> to prepare the tarball. This is more likely to | |
| produce a tarball compatible with <code>R CMD INSTALL</code> and | |
| <code>R CMD check</code>: an external <code>tar</code> program, | |
| including options, can be specified <em>via</em> the environment | |
| variable <span class="env">R_BUILD_TAR</span>. | |
| </p> | |
| </li> | |
| <li> <p><code>tools::massageExamples()</code> is better protected against | |
| packages which re-define base functions such as <code>cat()</code> and | |
| <code>get()</code> and so can cause <code>R CMD check</code> to fail when | |
| checking examples. | |
| </p> | |
| </li> | |
| <li> <p><code>R CMD javareconf</code> has been enhanced to be more | |
| similar to the code used by <code>configure</code>. | |
| </p> | |
| <p>There is now a test that a JNI program can be compiled (like | |
| <code>configure</code> did) and only working settings are used. | |
| </p> | |
| <p>It makes use of custom settings from configuration recorded in | |
| ‘<span class="file">etc/javaconf</span>’. | |
| </p> | |
| </li> | |
| <li><p> The <span class="option">--no-vignettes</span> argument of <code>R CMD | |
| build</code> has been renamed to the more accurate | |
| <span class="option">--no-build-vignettes</span>: its action has always been to | |
| (re)build vignettes and never omitted them. | |
| </p> | |
| <p><code>R CMD check</code> accepts <span class="option">--no-build-vignettes</span> as a | |
| preferred synonym for <span class="option">--no-rebuild-vignettes</span>. | |
| </p> | |
| </li></ul> | |
| <h4>DEPRECATED AND DEFUNCT</h4> | |
| <ul> | |
| <li><p> The <code>ENCODING</code> argument to <code>.C()</code> is defunct. | |
| Use <code>iconv()</code> instead. | |
| </p> | |
| </li> | |
| <li><p> The <code>.Internal(eval.with.vis)</code> non-API function has | |
| been removed. | |
| </p> | |
| </li> | |
| <li><p> Support for the converters for use with <code>.C()</code> has been | |
| removed, including the oft misused non-API header | |
| ‘<span class="file">R_ext/RConverters.h</span>’. | |
| </p> | |
| </li> | |
| <li><p> The previously deprecated uses of <code>array()</code> with a | |
| 0-length <code>dim</code> argument and <code>tapply()</code> with a 0-length | |
| <code>INDEX</code> list are now errors. | |
| </p> | |
| </li> | |
| <li> <p><span class="samp">Translation</span> packages are defunct. | |
| </p> | |
| </li> | |
| <li><p> Calling <code>rep()</code> or <code>rep.int()</code> on a pairlist or | |
| other non-vector object is now an error. | |
| </p> | |
| </li> | |
| <li><p> Several non-API entry points have been transferred to | |
| packages (e.g., <code>R_zeroin2</code>) or replaced by different non-API | |
| entry points (e.g., <code>R_tabulate</code>). | |
| </p> | |
| </li> | |
| <li><p> The ‘internal’ graphics device invoked by | |
| <code>.Call("R_GD_nullDevice", package = "grDevices")</code> has | |
| been removed: use <code>pdf(file = NULL)</code> instead. | |
| </p> | |
| </li> | |
| <li><p> The <code>.Fortran()</code> entry point <code>"dqrls"</code> which has | |
| not been used by <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> since version 2.15.1 is no longer available. | |
| </p> | |
| </li> | |
| <li><p> Functions <code>traceOn()</code> and <code>traceOff()</code> in package | |
| <span class="pkg">methods</span> are now defunct. | |
| </p> | |
| </li> | |
| <li><p> Function <code>CRAN.packages()</code> is finally defunct. | |
| </p> | |
| </li> | |
| <li><p> Use of <code>col2rgb(0)</code> is defunct: use <code>par("bg")</code> or | |
| <code>NA</code> instead. | |
| </p> | |
| </li> | |
| <li><p> The long-defunct functions <code>Rd_parse()</code>, | |
| <code>anovalist.lm()</code>, <code>categpry()</code>, <code>clearNames()</code>, | |
| <code>gammaCody()</code>, <code>glm.fit.null()</code>, <code>lm.fit.null()</code>, | |
| <code>lm.wfit.null()</code>, <code>manglePackageNames()</code>, | |
| <code>mauchley.test()</code>, <code>package.contents()</code>, | |
| <code>print.coefmat()</code>, <code>reshapeLong()</code>, | |
| <code>reshapeWide()</code>, <code>tkclose()</code>, <code>tkcmd()</code>, | |
| <code>tkfile.dir()</code>, <code>tkfile.tail()</code>, <code>tkopen()</code>, | |
| <code>tkputs()</code>, <code>tkread()</code>, <code>trySilent()</code> and | |
| <code>zip.file.extract()</code> have been removed entirely (but are | |
| still documented in the help system). | |
| </p> | |
| </li> | |
| <li><p> The unused <code>dataPath</code> argument to | |
| <code>attachNamespace()</code> has been removed. | |
| </p> | |
| </li> | |
| <li> <p><code>grid.prompt()</code> has been removed: use | |
| <code>devAskNewPage()</code> instead. | |
| </p> | |
| </li> | |
| <li><p> The long-deprecated <code>intensities</code> component is no | |
| longer returned by <code>hist()</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>mean()</code> for data frames and <code>sd()</code> for data | |
| frames and matrices are defunct. | |
| </p> | |
| </li> | |
| <li> <p><code>chol(pivot = FALSE, LINPACK = TRUE)</code>, | |
| <code>ch2inv(LINPACK = TRUE)</code>, <code>eigen(EISPACK = TRUE)</code>, | |
| <code>solve(LINPACK = TRUE)</code> and <code>svd(LINPACK = TRUE)</code> are | |
| defunct: LAPACK will be used, with a warning. | |
| </p> | |
| </li> | |
| <li><p> The <code>keep.source</code> argument to <code>library()</code> and | |
| <code>require()</code> is defunct. This option needs to be set | |
| at install time. | |
| </p> | |
| </li> | |
| <li><p> Documentation for <code>real()</code>, <code>as.real()</code> and | |
| <code>is.real()</code> has been moved to ‘defunct’ and the | |
| functions removed. | |
| </p> | |
| </li> | |
| <li><p> The <code>maxRasters</code> argument of <code>pdf()</code> (unused since | |
| <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.14.0) has been removed. | |
| </p> | |
| </li> | |
| <li><p> The unused <code>fontsmooth</code> argument has been removed from | |
| the <code>quartz()</code> device. | |
| </p> | |
| </li> | |
| <li><p> All the (non-API) EISPACK entry points in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> have been removed. | |
| </p> | |
| </li> | |
| <li> <p><code>chol(pivot = TRUE, LINPACK = TRUE)</code> is deprecated. | |
| </p> | |
| </li> | |
| <li><p> The long-deprecated use of <code>\synopsis</code> in the | |
| <span class="samp">Usage</span> section of ‘<span class="file">.Rd</span>’ files will be removed in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> | |
| 3.1.0. | |
| </p> | |
| </li> | |
| <li> <p><code>.find.package()</code> and <code>.path.package()</code> are | |
| deprecated: only the public versions without the dot have ever | |
| been in the API. | |
| </p> | |
| </li> | |
| <li><p> In a package's ‘<span class="file">DESCRIPTION</span>’ file, </p> | |
| <pre> License: X11</pre> | |
| <p>is deprecated, since it includes | |
| ‘Copyright (C) 1996 X Consortium’ which cannot be | |
| appropriate for a current <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> package. Use ‘MIT’ or | |
| ‘BSD_2_clause’ instead. | |
| </p> | |
| </li></ul> | |
| <h4>CODE MIGRATION</h4> | |
| <ul> | |
| <li><p> The C code underlying base graphics has been migrated to the | |
| <span class="pkg">graphics</span> package (and hence no longer uses | |
| <code>.Internal()</code> calls). | |
| </p> | |
| </li> | |
| <li><p> Most of the <code>.Internal()</code> calls used in the <span class="pkg">stats</span> | |
| package have been migrated to C code in that package. | |
| </p> | |
| <p>This means that a number of <code>.Internal()</code> calls which have | |
| been used by packages no longer exist, including | |
| <code>.Internal(cor)</code> <code>.Internal(cov)</code>, | |
| <code>.Internal(optimhess)</code> and <code>.Internal(update.formula)</code>. | |
| </p> | |
| </li> | |
| <li><p> Some <code>.External()</code> calls to the <code>base</code> package | |
| (really to the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> executable or shared library) have been moved to | |
| more appropriate packages. Packages should not have been using | |
| such calls, but some did (mainly those used by <code>integrate()</code>). | |
| </p> | |
| </li></ul> | |
| <h4>PACKAGE parallel</h4> | |
| <ul> | |
| <li><p> There is a new function <code>mcaffinity()</code> which allows | |
| getting or setting the CPU affinity mask for the current <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> process on | |
| systems that supports this (currently only Linux has been tested | |
| successfully). It has no effect on systems which do not support | |
| process affinity. Users are not expected to use this function | |
| directly (with the exception of fixing libraries that break | |
| affinity settings like OpenBLAS) – the function is rather | |
| intended to support affinity control in high-level parallel | |
| functions. In the future, <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> may supplement lack of affinity | |
| control in the OS by its own bookkeeping <em>via</em> <code>mcaffinity()</code> | |
| related to processes and threads it spawns. | |
| </p> | |
| </li> | |
| <li> <p><code>mcparallel()</code> has a new argument <code>mc.affinity</code> | |
| which attempts to set the affinity of the child process according | |
| to the specification contained therein. | |
| </p> | |
| </li> | |
| <li><p> The port used by socket clusters is chosen randomly: this | |
| should help to avoid clashes observed when two users of a | |
| multi-user machine try to create a cluster at the same time. To | |
| reproduce the previous behaviour set environment variable | |
| <span class="env">R_PARALLEL_PORT</span> to <code>10187</code>. | |
| </p> | |
| </li></ul> | |
| <h4>C-LEVEL FACILITIES</h4> | |
| <ul> | |
| <li><p> There has been some minor re-organization of the non-API | |
| header files. In particular, ‘<span class="file">Rinternals.h</span>’ no longer | |
| includes the non-API header ‘<span class="file">R_exts/PrtUtil.h</span>’, and that no | |
| longer includes ‘<span class="file">R_exts/Print.h</span>’. | |
| </p> | |
| </li> | |
| <li><p> Passing <code>NULL</code> to <code>.C()</code> is now an error. | |
| </p> | |
| </li> | |
| <li> <p><code>.C()</code> and <code>.Fortran()</code> now warn if | |
| <code>"single"</code> arguments are used with <code>DUP = FALSE</code>, as | |
| changes to such arguments are not returned to the caller. | |
| </p> | |
| </li> | |
| <li><p> C entry points <code>R_qsort</code> and <code>R_qsort_I</code> now have | |
| <code>start</code> and <code>end</code> as <code>size_t</code> to allow them to work | |
| with longer vectors on 64-bit platforms. Code using them should | |
| be recompiled. | |
| </p> | |
| </li> | |
| <li><p> A few recently added C entry points were missing the | |
| remapping to <code>Rf_</code>, notably <code>[dpq]nbinom_mu</code>. | |
| </p> | |
| </li> | |
| <li><p> Some of the interface pointers formerly available only to | |
| <code>R.app</code> are now available to front-ends on all | |
| Unix-alikes: one has been added for the interface to | |
| <code>View()</code>. | |
| </p> | |
| </li> | |
| <li> <p><code>PACKAGE = ""</code> is now an error in <code>.C()</code> etc calls: | |
| it was always contrary to the documentation. | |
| </p> | |
| </li> | |
| <li><p> Entry point <code>rcont2</code> has been migrated to package | |
| <span class="pkg">stats</span> and so is no longer available. | |
| </p> | |
| </li> | |
| <li> <p><code>R_SVN_REVISION</code> in ‘<span class="file">Rversion.h</span>’ is now an integer | |
| (rather than a string) and hence usable as e.g. | |
| <code>#if R_SVN_REVISION < 70000</code>. | |
| </p> | |
| </li> | |
| <li><p> The entry points <code>rgb2hsv</code> and <code>hsv2rgb</code> have been | |
| migrated to package <span class="pkg">grDevices</span> and so are no longer available. | |
| </p> | |
| </li> | |
| <li> <p><code>R_GE_version</code> has been increased to <code>10</code> and | |
| <code>name2col</code> removed (use <code>R_GE_str2col</code> instead). <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> | |
| internal colour codes are now defined using the typedef | |
| <code>rcolor</code>. | |
| </p> | |
| </li> | |
| <li><p> The <code>REPROTECT</code> macro now checks that the protect index | |
| is valid. | |
| </p> | |
| </li> | |
| <li><p> Several non-API entry points no longer used by <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> have been | |
| removed, including the Fortran entry points <code>chol</code>, | |
| <code>chol2inv</code>, <code>cg</code>, <code>ch</code> and <code>rg</code>, and the C | |
| entry points <code>Brent_fmin</code>, <code>fft_factor</code> and <code>fft_work</code>. | |
| </p> | |
| </li> | |
| <li><p> If a <code>.External</code> call is registered with a number of | |
| arguments (other than <code>-1</code>), the number of arguments passed | |
| is checked for each call (as for other foreign function calls). | |
| </p> | |
| </li> | |
| <li><p> It is now possible to write custom connection | |
| implementations outside core R using ‘<span class="file">R_ext/Connections.h</span>’. | |
| Please note that the implementation of connections is still | |
| considered internal and may change in the future (see the above | |
| file for details). | |
| </p> | |
| </li></ul> | |
| <h4>INTERNATIONALIZATION</h4> | |
| <ul> | |
| <li><p> The management of translations has been converted to <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> | |
| code: see <code>?tools::update_pkg_po</code>. | |
| </p> | |
| </li> | |
| <li><p> The translations for the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> interpreter and | |
| <code>RGui.exe</code> are now part of the <span class="pkg">base</span> package (rather than | |
| having sources in directory ‘<span class="file">po</span>’ and being installed to | |
| ‘<span class="file">share/locale</span>’). Thus the <span class="pkg">base</span> package supports three | |
| translation domains, <code>R-base</code>, <code>R</code> and <code>RGui</code>. | |
| </p> | |
| </li> | |
| <li><p> The compiled translations which ship with <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> are all | |
| installed to the new package <span class="pkg">translations</span> for easier | |
| updating. The first package of that name found on | |
| <code>.libPaths()</code> at the start of the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> session will be used. | |
| (It is possible messages will be used before <code>.libPaths()</code> is | |
| set up in which case the default translations will be used: set | |
| environment variable <span class="env">R_TRANSLATIONS</span> to point to the location | |
| of the intended <span class="pkg">translations</span> package to use this right from | |
| the start.) | |
| </p> | |
| </li> | |
| <li><p> The translations form a separate group in the Windows | |
| installer, so can be omitted if desired. | |
| </p> | |
| </li> | |
| <li><p> The markup for many messages has been changed to make them | |
| easier to translate, incorporating suggestions from Łukasz Daniel. | |
| </p> | |
| </li></ul> | |
| <h4>INSTALLATION</h4> | |
| <ul> | |
| <li><p> There is again support for building without using the C | |
| ‘long double’ type. This is required by C99, but system | |
| implementations can be slow or flawed. Use <code>configure</code> | |
| option <span class="option">--disable-long-double</span>. | |
| </p> | |
| </li> | |
| <li> <p><code>make pdf</code> and <code>make install-pdf</code> now make | |
| and install the full reference index (including all base and | |
| recommended packages). | |
| </p> | |
| </li> | |
| <li><p> The 'reference manual' on the Windows GUI menu and included | |
| in the installer is now the full reference index, including all | |
| base and recommended packages. | |
| </p> | |
| </li> | |
| <li> <p><span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> help pages and manuals have no ISBNs because ISBN | |
| rules no longer allow constantly changing content to be assigned | |
| an ISBN. | |
| </p> | |
| </li> | |
| <li><p> The Windows installer no longer installs a Start Menu | |
| link to the static help pages; as most pages are generated | |
| dynamically, this led to a lot of broken links. | |
| </p> | |
| </li> | |
| <li><p> Any custom settings for Java configuration are recorded in | |
| file ‘<span class="file">etc/javaconf</span>’ for subsequent use by <code>R CMD | |
| javareconf</code>. | |
| </p> | |
| </li> | |
| <li><p> There is now support for <code>makeinfo</code> version 5.0 | |
| (which requires a slightly different ‘<span class="file">.texi</span>’ syntax). | |
| </p> | |
| </li> | |
| <li><p> The minimum versions for <span class="option">--use-system-zlib</span> and | |
| <code>--use-system-pcre</code> are now tested as 1.2.5 and 8.10 | |
| respectively. | |
| </p> | |
| </li> | |
| <li><p> On Windows, the stack size is reduced to 16MB on 32-bit | |
| systems: misguided users were launching many threads without | |
| controlling the stack size. | |
| </p> | |
| </li> | |
| <li> <p><code>configure</code> no longer looks for file | |
| ‘<span class="file">~/.Rconfig</span>’: ‘<span class="file">~/.R/config</span>’ has long been preferred. | |
| </p> | |
| </li></ul> | |
| <h4>BUG FIXES</h4> | |
| <ul> | |
| <li><p> When <code>R CMD build</code> is run in an encoding other than | |
| the one specified in the package's ‘<span class="file">DESCRIPTION</span>’ file it | |
| tries harder to expand the <code>authors@R</code> field in the specified | |
| encoding. (<a href="https://bugs.R-project.org/show_bug.cgi?id=14958">PR#14958</a>) | |
| </p> | |
| </li> | |
| <li><p> If <code>R CMD INSTALL</code> is required to expand the | |
| <code>authors@R</code> field of the ‘<span class="file">DESCRIPTION</span>’ file, it tries | |
| harder to do so in the encoding specified for the package (rather | |
| than using ASCII escapes). | |
| </p> | |
| </li> | |
| <li><p> Fix in package <span class="pkg">grid</span> for pushing a viewport into a | |
| layout cell, where the layout is within a viewport that has zero | |
| physical width OR where the layout has zero total relative width | |
| (likewise for height). The layout column widths (or row heights) | |
| in this case were being calculated with non-finite values. | |
| (Reported by Winston Chang.) | |
| </p> | |
| </li> | |
| <li> <p><code>solve(A, b)</code> for a vector <code>b</code> gave the answer | |
| names from <code>colnames(A)</code> for <code>LINPACK = TRUE</code> but not in | |
| the default case. | |
| </p> | |
| </li> | |
| <li> <p><code>La.svd()</code> accepts logical matrices (as documented, and | |
| as <code>svd()</code> did). | |
| </p> | |
| </li> | |
| <li> <p><code>legend()</code> now accepts negative <code>pch</code> values, in | |
| the same way <code>points()</code> long has. | |
| </p> | |
| </li> | |
| <li><p> Parse errors when installing files now correctly display | |
| the name of the file containing the bad code. | |
| </p> | |
| </li> | |
| <li><p> In Windows, tcltk windows were not always properly constructed. | |
| (<a href="https://bugs.R-project.org/show_bug.cgi?id=15150">PR#15150</a>) | |
| </p> | |
| </li> | |
| <li><p> The internal functions implementing <code>parse()</code>, | |
| <code>tools::parseLatex()</code> and <code>tools::parse_Rd()</code> were not | |
| reentrant, leading to errors in rare circumstances such as a | |
| garbage collection triggering a recursive call. | |
| </p> | |
| </li> | |
| <li><p> Field assignments in reference class objects <em>via</em> | |
| <code>$<-</code> were not being checked | |
| because the magic incantation to turn methods on for that | |
| primitive operator had been inadvertently omitted. | |
| </p> | |
| </li> | |
| <li> <p><code>setHook(hookname, value, action="replace")</code> set the | |
| hook to be the value, rather than a list containing the value as | |
| documented. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15167">PR#15167</a>) | |
| </p> | |
| </li> | |
| <li><p> If a package used a ‘<span class="file">NEWS.Rd</span>’ file, the main HTML | |
| package index page did not link to it. (Reported by Dirk | |
| Eddelbuettel.) | |
| </p> | |
| </li> | |
| <li><p> The primitive implementation of <code>@<-</code> was not | |
| checking the class of the replacement. It now does a check, | |
| quicker but less general than <code>slot<-</code>. See the help. | |
| </p> | |
| </li> | |
| <li> <p><code>split(x, f)</code> now recycles classed objects <code>x</code> in | |
| the same way as vectors. (Reported by Martin Morgan.) | |
| </p> | |
| </li> | |
| <li> <p><code>pbeta(.28, 1/2, 2200, lower.tail=FALSE, log.p=TRUE)</code> | |
| is no longer <code>-Inf</code>; ditto for corresponding <code>pt()</code> and | |
| <code>pf()</code> calls, such as <code>pt(45, df=5000, lower.tail=FALSE, | |
| log.p=TRUE)</code>. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15162">PR#15162</a>) | |
| </p> | |
| </li> | |
| <li><p> The Windows graphics device would crash <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> if a user | |
| attempted to load the graphics history from a variable that was | |
| not a saved history. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15230">PR#15230</a>) | |
| </p> | |
| </li> | |
| <li><p> The workspace size for the <code>predict()</code> | |
| method for <code>loess()</code> could exceed the maximum integer size. | |
| (Reported by Hiroyuki Kawakatsu.) | |
| </p> | |
| </li> | |
| <li> <p><code>ftable(x, row.vars, col.vars)</code> now also works when the | |
| <code>*.vars</code> arguments are (integer or character vectors) of | |
| length zero. | |
| </p> | |
| </li> | |
| <li><p> Calling <code>cat()</code> on a malformed UTF-8 string could cause | |
| the Windows GUI to lock up. (<a href="https://bugs.R-project.org/show_bug.cgi?id=15227">PR#15227</a>) | |
| </p> | |
| </li> | |
| <li> <p><code>removeClass(cc)</code> gave "node stack overflow" for some | |
| class definitions containing <code>"array"</code> or <code>"matrix"</code>. | |
| </p> | |
| </li></ul> | |
| <h3>CHANGES in previous versions</h3> | |
| <ul> | |
| <li><p> Older news can be found in text format in files | |
| <a href="../NEWS.0">NEWS.0</a>, <a href="../NEWS.1">NEWS.1</a> | |
| and <a href="../NEWS.2">NEWS.2</a> | |
| in the ‘<span class="file">doc</span>’ directory. News in HTML format for | |
| <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> versions from 2.10.0 to 2.15.3 is in | |
| <a href="NEWS.2.html">NEWS.2.html</a>. | |
| </p> | |
| </li></ul> | |
| </div></body></html> |