This blog is updated daily.
A general description is here.
optim(*, control = list(...)) now warns when '...' contains unexpected names, instead of silently ignoring them.
pairwise.t.test() and pairwise.wilcox.test() now more explicitly allow paired tests. In the former case it is now flagged as an error if both 'paired' and 'pool.SD' are set TRUE (formerly, 'paired' was silently ignored), and one-sided tests are generated according to 'alternative' also if 'pool.SD' is TRUE.
On platforms where we can detect that mktime sets errno (e.g. Solaris but not glibcand the code used on Windows but not Linux nor Mac OS X), "1969-12-31 23:59:59" GMT is converted from POSIXlt to POSIXct as -1 and not NA.
sprintf() now does all the conversions needed in a first pass if length(fmt) == 1, and so can be many times faster if called with long vector arguments.
There is a new version of the X11() device based on cairo graphics which is selected by type = "cairo", and is available on machines with cairo installed and preferably pango (which most machines with gtk+ >= 2.8 will have). This version supports translucent colours and normally does a better job of font selection so it has been possible to display (e.g.) English, Polish, Russian and Japanese text on a single X11() window. It is the default where available.
There is a companion function, savePlot(), to save the current plot to a PNG file.
On Unix-alikes, devices jpeg() and png() also accept type = "cairo", and with that option do not need a running X server. The meaning of capabilities("jpeg") and capabilities("png") has changed to reflect this. On MacOS X, there is a further type = "quartz". The default type is selected by the new option "bitmapType", and is "quartz" or "cairo" where available.
Where cairo is supported, there is a svg() device to write SVG files, and cairo_pdf() and cairo_ps() devices to write (possibly bitmap) PDF and postscript files via cairo.
Some features require cairo >= 1.2, and some which are nominally supported under 1.2 seem to need 1.4 to work correctlywell.
strwidth() and strheight() gain 'font' and 'vfont' arguments and accept in-line pars such as 'family' in the same way as text() does. (Longstanding wish of PR#776)
oOption( "device.ask.default") replaces "par.ask.default" now it applies also to grid.prompt().
The 'device-independent' family "symbol" is deprecated as it was highly locale- and device-dependent (it only did something useful in single-byte localsingle-byte locales on most devices) and font=5 (base) or fontface=5 (grid) did the job it was intended to do more reliably.
The search for tclConfig.sh and tkConfig.sh now only looks in containing directoriesdirectories with names containing $(LIBnn) in the hope of finding the version for the appropriate architecture (e.g. x86_64 or i386).
Rprintf() and REprintf() now use 'const char *' for their format argument -- this should reduce warnings when called from C++.
A new header 'R_ext/Visibility.h' contains some definitions for controlling the visibility of entry points, and how to control visibility is now documented in 'Writing R Extensions'.
optim(*, control = list(...)) now warns when '...' contains
unexpected names, instead of silently ignoring them.
read.dcf(all = TRUE) was leaking connections.
co[rv](use = "complete.obs") now always gives an error if there are no complete cases: they used to give NA if method = "pearson" but an error for the other two methods. (Note that this is pretty arbitrary, but zero-length vectors always give an error so it is at least consistent.)
cor(use="pair") used to give diagonal 1 even if the variable was completely missing for the rank methods but NA for the Pearson method: it now gives NA in all cases.
cor(use="pair") for the rank methods gave a matrix result with dimensions > 0 even if one of the inputs had 0 columns.
rnorm(n, mu = Inf) now returns rep(Inf, n) instead of NaN; similar sensible changes are applied to rlnorm(), rexp(), etc.
MS4 methods with missing arguments in the definition are handled correctly when non-signature arguments exist, and check for conflicting local names in the method definition.