R 3.4.2 (codename “Short Summer”) was released yesterday. You can get the latest binaries version from here. (or the .tar.gz source code from here).
As mentioned by David Smith, R 3.4.2 includes a performance improvement for names:
c()
andunlist()
are now more efficient in constructing thenames(.)
of their return value, thanks to a proposal by Suharto Anggono. (PR#17284)
The full list of bug fixes and new features is provided below.
Thank you Duncan Murdoch !
On a related note, following the announcement on R 3.4.2, Duncan Murdoch wrote yesterday:
I’ve just finished the Windows build of R 3.4.2. It will make it to CRAN and its mirrors over the next few hours.
This is the last binary release that I will be producing. I’ve been building them for about 15 years, and it’s time to retire. Builds using different tools and scripts are available from https://mran.microsoft.com/download/. I’ll be putting my own scripts on CRAN soon in case anyone wants to duplicate them.
Nightly builds of R-patched and R-devel will continue to run on autopilot for the time being, without maintenance.
I will also be retiring from maintenance of the Rtools collection.
I am grateful to Duncan for contributing so much of his time and expertise throughout the years. And I am confident that other R users, using the binaries for the Windows OS, share this sentiment.
Upgrading to R 3.4.2 on Windows
If you are using Windows you can easily upgrade to the latest version of R using the installr package. Simply run the following code in Rgui:
install.packages("installr") # install
setInternet2(TRUE) # only for R versions older than 3.3.0
installr::updateR() # updating R.
# If you wish it to go faster, run: installr::updateR(T)
Running “updateR()” will detect if there is a new R version available, and if so it will download+install it (etc.). There is also a step by step tutorial (with screenshots) on how to upgrade R on Windows, using the installr package. If you only see the option to upgrade to an older version of R, then change your mirror or try again in a few hours (it usually take around 24 hours for all CRAN mirrors to get the latest version of R).
I try to keep the installr package updated and useful, so if you have any suggestions or remarks on the package – you are invited to open an issue in the github page.
CHANGES IN R 3.4.2
NEW FEATURES
- Setting the
LC_ALL
category inSys.setlocale()
invalidates any cached locale-specific day/month names and the AM/PM indicator forstrptime()
(as settingLC_TIME
has since R 3.1.0). - The version of LAPACK included in the sources has been updated to 3.7.1, a bug-fix release.
- The default for
tools::write_PACKAGES(rds_compress=)
has been changed to"xz"
to match the compression used by CRAN. c()
andunlist()
are now more efficient in constructing thenames(.)
of their return value, thanks to a proposal by Suharto Anggono. (PR#17284)
UTILITIES
R CMD check
checks for andR CMD build
corrects CRLF line endings in shell scriptsconfigure
andcleanup
(even on Windows).
INSTALLATION on a UNIX-ALIKE
- The order of selection of OpenMP flags has been changed: Oracle Developer Studio 12.5 accepts -fopenmp and -xopenmp but only the latter enables OpenMP so it is now tried first.
BUG FIXES
within(List, rm(x1, x2))
works correctly again, including whenList[["x2"]]
isNULL
.regexec(pattern, text, *)
now appliesas.character(.)
to its first two arguments, as documented.write.table()
and related functions,writeLines()
, 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. (PR#17243)rt()
assumed thencp
parameter was a scalar. (PR#17306)menu(choices)
with more than 10 choices which easily fit into onegetOption("width")
-line no longer erroneously repeats choices. (PR#17312)length()<-
on a pairlist succeeds. (https://stat.ethz.ch/pipermail/r-devel/2017-July/074680.html)- Language objects such as
quote(("\n"))
or R functions are correctly printed again, where R 3.4.1 accidentally duplicated the backslashes. - Construction of
names()
for very large objects inc()
andunlist()
now works, thanks to Suharto Anggono’s patch proposals in PR#17292. - Resource leaks (and similar) reported by Steve Grubb fixed. (PR#17314, PR#17316, PR#17317, PR#17318, PR#17319, PR#17320)
model.matrix(~1, mf)
now gets the row names frommf
also when they differ from1:nrow(mf)
, fixing PR#14992 thanks to the suggestion by Sebastian Meyer.sigma(fm)
now takes the correct denominator degrees of freedom for a fitted model withNA
coefficients. (PR#17313)hist(x, "FD")
no longer “dies” with a somewhat cryptic error message whenx
has extreme outliers orIQR()
zero:nclass.FD(x)
tries harder to find a robust bin width h in the latter case, andhist.default(*, breaks)
now checks and corrects a too largebreaks
number. (PR#17274)callNextMethod()
works for...
methods.qr.coef(qd, y)
now has correct names also whenqd
is a complex QR or stems fromqr(*, LAPACK=TRUE)
.- Setting
options(device = *)
to an invalid function no longer segfaults when plotting is initiated. (PR#15883) encodeString(<very large string>)
no longer segfaults. (PR#15885)- It is again possible to use
configure --enable-maintainer-mode
without having installednotangle
(it was required in R 3.4.[01]). - S4 method dispatch on
...
calls the method by name instead of.Method
(for consistency with default dispatch), and only attempts to pass non-missing arguments from the generic. readRDS(textConnection(.))
works again. (PR#17325)(1:n)[-n]
no longer segfaults forn <- 2.2e9
(on a platform with enough RAM).x <- 1:2; tapply(x, list(x, x), function(x) "")[1,2]
now correctly returnsNA
. (PR#17333)- Running of finalizers after explicit GC request moved from the R interface
do_gc
to theC
interfaceR_gc
. This helps with reclaiming inaccessible connections. help.search(topic)
and??topic
matching topics in vignettes with multiple file name extensions (e.g., ‘*.md.rsp’ but not ‘*.Rmd’) failed with an error when usingoptions(help_type = "html")
.- The X11 device no longer uses the Xlib backing store (PR#16497).
array(character(), 1)
now gives (a 1D array with)NA
as has been documented for a long time as in the other cases of zero-length array initialization and also compatibly withmatrix(character(), *)
. As mentioned there, this also fixes PR#17333.splineDesign(.., derivs = 4)
no longer segfaults.fisher.test(*, hybrid=TRUE)
now (again) will use the hybrid method when Cochran’s conditions are met, fixing PR#16654.