This blog is updated daily.
A general description is here.
‘R CMD build’ no longer attempts to preserve file permissions on
Windows, because Windows (unlike POSIX-compliant OSes) stops read-only
files being deleted in version-control directories.
‘shell.exec()’ now interprets files relative to the current working
directory (rather than ‘R_HOME’).
‘file.info()’ now accepts ‘file’ names with trailing directory
separators, even though such names are invalid on Windows.
The ‘windows()’ family of devices now supports() per-pixel alpha for
raster images.
Launching the PDF manuals from the Rgui menus did not work on some
versions of Windows.
The windows() screen device would sometimes fail to plot points with
‘pch="."’. PR#14583
‘system()’ and related functions sometimes failed when run in ‘Rgui’.
Saving to PDF from the menu of a ‘windows()’ device used defaults for
‘family’, ‘fg’ and ‘bg’ from ‘ps.options()’ rather than ‘pdf.options()’
(but the factory-fresh defaults were the same).
Shutting down the R session cleaned up the temporary directory before
closing all graphics devices. On Windows this necessitated changing
the working directory, so some devices (e.g. ‘tiff()’) could write
files in the wrong directory in closed during shutdown. The order has
been reversed.
‘R CMD build’ no longer attempts to preserve file permissions on Windows, because Windows (unlike POSIX-compliant OSes) stops read-only files being deleted in version-control directories.
‘shell.exec()’ now interprets files relative to the current working directory (rather than ‘R_HOME’).
‘file.info()’ now accepts ‘file’ names with trailing directory separators, even though such names are invalid on Windows.
The ‘windows()’ family of devices now supports() per-pixel alpha for raster images.
Launching the PDF manuals from the Rgui menus did not work on some versions of Windows.
The windows() screen device would sometimes fail to plot points with ‘pch="."’. PR#14583
‘system()’ and related functions sometimes failed when run in ‘Rgui’.
Saving to PDF from the menu of a ‘windows()’ device used defaults for ‘family’, ‘fg’ and ‘bg’ from ‘ps.options()’ rather than ‘pdf.options()’ (but the factory-fresh defaults were the same).
Shutting down the R session cleaned up the temporary directory before closing all graphics devices. On Windows this necessitated changing the working directory, so some devices (e.g. ‘tiff()’) could write files in the wrong directory in closed during shutdown. The order has been reversed.
‘iconv()’ no longer translates ‘NA’ strings as ‘"NA"’.
‘persp(box = TRUE)’ now warns if the surface extends outside the box
(since occlusion for the box and axes is computed assuming the box is a
bounding box). (PR#202.)
‘RShowDoc()’ can now display the licences shipped with R, e.g.
‘RShowDoc("GPL-3")’.
New wrapper function ‘showNonASCIIfile()’ in package ‘tools’.
‘nobs()’ now has a ‘"mle"’ method in package ‘stats4’.
‘trace()’ now deals correctly with S4 reference classes and
corresponding reference methods (e.g., ‘$trace()’) have been added.
‘xz’ has been updated to 5.0.3 (very minor bugfix release).
‘tools::compactPDF()’ gets more compression (usually a little,
sometimes a lot) by using the compressed object streams of PDF 1.5.
‘cairo_ps(onefile = TRUE)’ generates encapsulated EPS on platforms with
cairo >= 1.6.
Binary reads (e.g. by ‘readChar()’ and ‘readBin()’) are now supported
on clipboard connections. (Wish of PR#14593.)
‘as.POSIXlt.factor()’ now passes ‘...’ to the character method
(suggestion of Joshua Ulrich). [Intended for R 2.13.0 but accidentally
removed before release.]
‘vector()’ and its wrappers such as ‘integer()’ and ‘double()’ now warn
if called with a ‘length’ argument of more than one element. This
helps track down user errors such as calling ‘double(x)’ instead of
‘as.double(x)’.
Building the vignette PDFs in packages ‘grid’ and ‘utils’ is now part
of running ‘make’ from an SVN checkout on a Unix-alike: a separate
‘make vignettes’ step is no longer required.
These vignettes are now made with ‘keep.source = TRUE’ and hence will be laid out differently.
‘make install-strip’ failed under some configuration options.
Packages can customize non-standard installation of compiled code via a
‘src/install.libs.R’ script. This allows packages that have
architecture-specific binaries (beyond the package's shared
objects/DLLs) to be installed in a multi-architecture setting.
‘Sweave()’ and ‘Stangle()’ gain an ‘encoding’ argument to specify the
encoding of the vignette sources if the latter do not contain a
‘\usepackage[]{inputenc}’ statement specifying a single input encoding.
There is a new Sweave option ‘figs.only = TRUE’ to run each figure
chunk only for each selected graphics device, and not first using the
default graphics device. This will become the default in R 2.14.0.
Sweave custom graphics devices can have a custom function ‘foo.off()’
to shut them down.
Warnings are issued when non-portable filenames are found for graphics
files (and chunks if ‘split = TRUE’). Portable names are regarded as
alphanumeric plus hyphen, underscore, plus and hash (periods cause
problems with recognizing file extensions).
The ‘Rtangle()’ driver has a new option ‘show.line.nos’ which is by
default false; if true it annotates code chunks with a comment giving
the line number of the first line in the sources (the behaviour of R >=
2.12.0).
Package installation tangles the vignette sources: this step now
converts the vignette sources from the vignette/package encoding to the
current encoding, and records the encoding (if not ASCII) in a comment
line at the top of the installed ‘.R’ file.
No parts of R are now licensed solely under GPL-2. The licences for
packages ‘rpart’ and ‘survival’ have been changed, which means that the
licence terms for R as distributed are GPL-2 | GPL-3.
The internal functions ‘.readRDS()’ and ‘.saveRDS()’ are now deprecated
in favour of the public functions ‘readRDS()’ and ‘saveRDS()’
introduced in R 2.13.0.
Switching off lazy-loading of code _via_ the ‘LazyLoad’ field of the
‘DESCRIPTION’ file is now deprecated. In future all packages will be
lazy-loaded.
‘R CMD check’ on a multi-architecture installation now skips the user's
‘.Renviron’ file for the architecture-specific tests (which do read the
architecture-specific ‘Renviron.site’ files). This is consistent with
single-architecture checks, which use ‘--no-environ’.
‘R CMD build’ now looks for ‘DESCRIPTION’ fields ‘BuildResaveData’ and
‘BuildKeepEmpty’ for per-package overrides. See ‘Writing R
Extensions’.
‘plot.lm(which = 5)’ was intended to order factor levels in increasing
order of mean standardized residual. It ordered the factor labels
correctly, but could plot the wrong group of residuals against the
label. (PR#14545)
‘mosaicplot()’ could clip the factor labels, and could overlap them
with the cells if a non-default value of ‘cex.axis’ was used. (Related
to PR#14550.)
‘dataframe[[row,col]]’ now dispatches on ‘[[’ methods for the selected
column (spotted by Bill Dunlap).
‘sort.int()’ would strip the class of an object, but leave its object
bit set. (Reported by Bill Dunlap.)
‘pbirthday()’ and ‘qbirthday()’ did not implement the algorithm exactly
as given in their reference and so were unnecessarily inaccurate.
‘pbirthday()’ now solves the approximate formula analytically rather than using ‘uniroot()’ on a discontinuous function.
The description of the problem was inaccurate: the probability is a tail probablity (‘2 _or more_ people share a birthday’)
Complex arithmetic sometimes warned incorrectly about producing NAs
when there were NaNs in the input.
‘seek(origin = "current")’ incorrectly reported it was not implemented
for a ‘gzfile()’ connection.
‘c()’, ‘unlist()’, ‘cbind()’ and ‘rbind()’ could silently overflow the
maximum vector length and cause a segfault. (PR#14571)
The ‘fonts’ argument to ‘X11(type = "Xlib")’ was being ignored.
Reading (e.g. with ‘readBin()’) from a raw connection was not advancing
the pointer, so successive reads would read the same value. (Spotted
by Bill Dunlap.)
Parsed text containing embedded newlines was printed incorrectly by
‘as.character.srcref()’. (Reported by Hadley Wickham.)
‘decompose()’ used with a series of a non-integer number of periods
returned a seasonal component shorter than the original series.
(Reported by Rob Hyndman.)
‘fields = list()’ failed for ‘setRefClass()’. (Reported by Michael
Lawrence.)
Reference classes could not redefine an inherited field which had class
‘"ANY"’. (Reported by Janko Thyson.)
Methods that override previously loaded versions will now be installed
and called. (Reported by Iago Mosqueira.)
‘addmargins()’ called ‘numeric(apos)’ rather than
‘numeric(length(apos))’.
The HTML help search sometimes produced bad links. (PR#14608)
Command completion will no longer be broken if ‘tail.default()’ is
redefined by the user. (Problem reported by Henrik Bengtsson.)
LaTeX rendering of markup in titles of help pages has been improved; in
particular, ‘\eqn{}’ may be used there.
‘isClass()’ used its own namespace as the default of the ‘where’
argument inadvertently.
‘iconv()’ no longer translates ‘NA’ strings as ‘"NA"’.
‘persp(box = TRUE)’ now warns if the surface extends outside the box (since occlusion for the box and axes is computed assuming the box is a bounding box). (PR#202.)
‘RShowDoc()’ can now display the licences shipped with R, e.g. ‘RShowDoc("GPL-3")’.
New wrapper function ‘showNonASCIIfile()’ in package ‘tools’.
‘nobs()’ now has a ‘"mle"’ method in package ‘stats4’.
‘trace()’ now deals correctly with S4 reference classes and corresponding reference methods (e.g., ‘$trace()’) have been added.
‘xz’ has been updated to 5.0.3 (very minor bugfix release).
‘tools::compactPDF()’ gets more compression (usually a little, sometimes a lot) by using the compressed object streams of PDF 1.5.
‘cairo_ps(onefile = TRUE)’ generates encapsulated EPS on platforms with cairo >= 1.6.
Binary reads (e.g. by ‘readChar()’ and ‘readBin()’) are now supported on clipboard connections. (Wish of PR#14593.)
‘as.POSIXlt.factor()’ now passes ‘...’ to the character method (suggestion of Joshua Ulrich). [Intended for R 2.13.0 but accidentally removed before release.]
‘vector()’ and its wrappers such as ‘integer()’ and ‘double()’ now warn if called with a ‘length’ argument of more than one element. This helps track down user errors such as calling ‘double(x)’ instead of ‘as.double(x)’.
Building the vignette PDFs in packages ‘grid’ and ‘utils’ is now part of running ‘make’ from an SVN checkout on a Unix-alike: a separate ‘make vignettes’ step is no longer required.
These vignettes are now made with ‘keep.source = TRUE’ and hence will be laid out differently.
‘make install-strip’ failed under some configuration options.
Packages can customize non-standard installation of compiled code via a ‘src/install.libs.R’ script. This allows packages that have architecture-specific binaries (beyond the package's shared objects/DLLs) to be installed in a multi-architecture setting.
‘Sweave()’ and ‘Stangle()’ gain an ‘encoding’ argument to specify the encoding of the vignette sources if the latter do not contain a ‘\usepackage[]{inputenc}’ statement specifying a single input encoding.
There is a new Sweave option ‘figs.only = TRUE’ to run each figure chunk only for each selected graphics device, and not first using the default graphics device. This will become the default in R 2.14.0.
Sweave custom graphics devices can have a custom function ‘foo.off()’ to shut them down.
Warnings are issued when non-portable filenames are found for graphics files (and chunks if ‘split = TRUE’). Portable names are regarded as alphanumeric plus hyphen, underscore, plus and hash (periods cause problems with recognizing file extensions).
The ‘Rtangle()’ driver has a new option ‘show.line.nos’ which is by default false; if true it annotates code chunks with a comment giving the line number of the first line in the sources (the behaviour of R >= 2.12.0).
Package installation tangles the vignette sources: this step now converts the vignette sources from the vignette/package encoding to the current encoding, and records the encoding (if not ASCII) in a comment line at the top of the installed ‘.R’ file.
No parts of R are now licensed solely under GPL-2. The licences for packages ‘rpart’ and ‘survival’ have been changed, which means that the licence terms for R as distributed are GPL-2 | GPL-3.
The internal functions ‘.readRDS()’ and ‘.saveRDS()’ are now deprecated in favour of the public functions ‘readRDS()’ and ‘saveRDS()’ introduced in R 2.13.0.
Switching off lazy-loading of code _via_ the ‘LazyLoad’ field of the ‘DESCRIPTION’ file is now deprecated. In future all packages will be lazy-loaded.
‘R CMD check’ on a multi-architecture installation now skips the user's ‘.Renviron’ file for the architecture-specific tests (which do read the architecture-specific ‘Renviron.site’ files). This is consistent with single-architecture checks, which use ‘--no-environ’.
‘R CMD build’ now looks for ‘DESCRIPTION’ fields ‘BuildResaveData’ and ‘BuildKeepEmpty’ for per-package overrides. See ‘Writing R Extensions’.
‘plot.lm(which = 5)’ was intended to order factor levels in increasing order of mean standardized residual. It ordered the factor labels correctly, but could plot the wrong group of residuals against the label. (PR#14545)
‘mosaicplot()’ could clip the factor labels, and could overlap them with the cells if a non-default value of ‘cex.axis’ was used. (Related to PR#14550.)
‘dataframe[[row,col]]’ now dispatches on ‘[[’ methods for the selected column (spotted by Bill Dunlap).
‘sort.int()’ would strip the class of an object, but leave its object bit set. (Reported by Bill Dunlap.)
‘pbirthday()’ and ‘qbirthday()’ did not implement the algorithm exactly as given in their reference and so were unnecessarily inaccurate.
‘pbirthday()’ now solves the approximate formula analytically rather than using ‘uniroot()’ on a discontinuous function.
The description of the problem was inaccurate: the probability is a tail probablity (‘2 _or more_ people share a birthday’)
Complex arithmetic sometimes warned incorrectly about producing NAs when there were NaNs in the input.
‘seek(origin = "current")’ incorrectly reported it was not implemented for a ‘gzfile()’ connection.
‘c()’, ‘unlist()’, ‘cbind()’ and ‘rbind()’ could silently overflow the maximum vector length and cause a segfault. (PR#14571)
The ‘fonts’ argument to ‘X11(type = "Xlib")’ was being ignored.
Reading (e.g. with ‘readBin()’) from a raw connection was not advancing the pointer, so successive reads would read the same value. (Spotted by Bill Dunlap.)
Parsed text containing embedded newlines was printed incorrectly by ‘as.character.srcref()’. (Reported by Hadley Wickham.)
‘decompose()’ used with a series of a non-integer number of periods returned a seasonal component shorter than the original series. (Reported by Rob Hyndman.)
‘fields = list()’ failed for ‘setRefClass()’. (Reported by Michael Lawrence.)
Reference classes could not redefine an inherited field which had class ‘"ANY"’. (Reported by Janko Thyson.)
Methods that override previously loaded versions will now be installed and called. (Reported by Iago Mosqueira.)
‘addmargins()’ called ‘numeric(apos)’ rather than ‘numeric(length(apos))’.
The HTML help search sometimes produced bad links. (PR#14608)
Command completion will no longer be broken if ‘tail.default()’ is redefined by the user. (Problem reported by Henrik Bengtsson.)
LaTeX rendering of markup in titles of help pages has been improved; in particular, ‘\eqn{}’ may be used there.
‘isClass()’ used its own namespace as the default of the ‘where’ argument inadvertently.