This blog is updated daily.
A general description is here.
New macro ‘CXX_VISIBILITY’ analogous to ‘C_VISIBILITY’ (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).
The random number generator tests in ‘tests/p-r-random-tests.R’ no longer fail occasionally as they now randomly sample from “certified” random seeds.
The ‘"glm"’ method of ‘drop1()’ miscalculated the score test (‘test="Rao"’) when the model contained an offset.
Linear multiple empty models such as ‘lm(y ~ 0)’ now have a correctly dimensioned empty coefficient matrix; reported by Brett Presnell.
‘vcov(<empty mlm>)’ and hence ‘confint()’ now work (via a consistency change in ‘summary.lm()’).
‘confint(<multiple lm()>)’ now works correctly; reported on R-devel by Steven Pav.
‘quade.test()’ now also works correctly when its arguments are not yet sorted along ‘groups’, fixing PR#15842.
Installation on a Unix-alike tries harder to link to the ‘pthread’ library where required (rather than relying on OpenMP to provide it: configuring with ‘--disable-openmp’ was failing on some Linux systems).
The ‘data.frame’ method for ‘print(x)’ is fast now also for large data frames ‘x’ and got an optional argument ‘max’, thanks to suggestions by Juan Telleria.
‘hist()’ no longer integer overflows in very rare cases, fixing PR#17450.
‘untar()’ ignored a character ‘compressed’ argument: however many external ‘tar’ programs ignore the flags which should have been set and automagically choose the compression type, and if appropriate ‘gzip’ or ‘bzip2’ compression would have been chosen from the magic header of the tarball.
‘zapsmall(x)’ now works for more “number-like” objects.
The tools-internal function called from ‘R CMD INSTALL’ now gets a ‘warnOption = 1’ argument and only sets ‘options(warn = warnOption)’ when that increases the warning level (PR#17453).
Analogously, the tools-internal function called from ‘R CMD check’ gets a ‘warnOption = 1’ argument and uses the larger of that and ‘getOption("warn")’, also allowing to be run with increased warning level.
Parse data now have deterministic parent nodes (PR#16041).
Calling ‘match()’ with length one ‘x’ and POSIXlt ‘table’ gave a segfault (PR#17459).
Fork clusters could hang due to a race condition in cluster initialization (‘makeCluster()’).
‘nextn(n)’ now also works for larger ‘n’ and no longer loops infinitely for e.g, ‘n <- 214e7’.
‘cooks.distance()’ and ‘rstandard()’ now work correctly for multiple linear models (‘"mlm"’).
‘polym()’ and corresponding ‘lm()’ prediction now also work for a boundary "vector" case fixing PR#17474, reported by Alexandre Courtiol.
With a very large number of variables ‘terms()’ could segfault (PR#17480).
‘cut(rep(0, 7))’ now works, thanks to Joey Reid and Benjamin Tyner (PR#16802).
‘download.file(*, method = "curl", cacheOK = FALSE)’ should work now on Windows, thanks to Kevin Ushey's patch in PR#17323.
‘duplicated(<dataframe with 'f'>)’ now works, too, thanks to Andreas Kersting's PR#17485; ditto for ‘anyDuplicated()’.
‘legend(*, cex = 1:2)’ now works less badly.
The ‘print()’ method for ‘POSIXct’ and ‘POSIXlt’ now correctly obeys ‘getOption("max.print")’, fixing a long-standing typo, and it also gets a corresponding optional ‘max’ argument.
Unserialization of raw vectors serialized in ASCII representation now works correctly.
‘<data frame>[TRUE, <new>] <- list(c1, c2)’ now works correctly, thanks to Suharto Anggono's PR#15362 and Emil Bode's patch in PR#17504.
‘seq.int(*, by=by, length=n)’ no longer wrongly “drops fractional parts” when ‘by’ is integer, thanks to Suharto Anggono's report PR#17506.
Buffering is disabled for ‘file()’ connections to non-regular files (like sockets), as well as ‘fifo()’ and ‘pipe()’ connections. Fixes PR#17470, reported by Chris Culnane.