This blog is updated daily.
A general description is here.
R_HOME/bin/helpPRINT.bat now contains an example of use with
MiKTeX to produce a PDF version of the help file.
The windows() device now works around the total clipping of
semi-transparent rectangles and circles that extend outside
the device region.
The script editor did not respect user preferences for the
background colour.
normalizePath() no longer returns a garbage string when the
input is bad; it now signals an error. (PR#13199)
File share/sh/dcf.sh was not distributed with the binary
build. (PR#13200)
dir.create() did not print the path correctly in warning messages.
The C-level function consolecmd had been broken in non-Latin-1
single-byte locales in R 2.8.0 by changes intended to support
the Japanese IME. This affected some menu items in Rgui
(e.g. to source R files with non-Latin-1 names) and submitting
commands from the script editor, but only in rarer encodings
such as Central European, Greek and Cyrillic. (PR#13195,
probably also PR#13120)
The attenpt to make the 'Load' button in the GUI preferences
start in the home directory failed if the latter was specified
with forwward slashes, and reset the current search directory
for other file open dialogs (e.g. for opening a script).
The installer would sometimes write the current version
information to the registry even if that option was not
checked.
Rcmd INSTALL --with-package-versions now works in a few more
cases (of lazy loading and lazy data), but still many of the
options are not supported (e.g. --use-zip). Versioned
installs are now deprecated, so regard them as unsupported on
Windows (and a warning is given). (PR#13284)
R_HOME/bin/helpPRINT.bat now contains an example of use with MiKTeX to produce a PDF version of the help file.
The windows() device now works around the total clipping of semi-transparent rectangles and circles that extend outside the device region.
The script editor did not respect user preferences for the background colour.
normalizePath() no longer returns a garbage string when the input is bad; it now signals an error. (PR#13199)
File share/sh/dcf.sh was not distributed with the binary build. (PR#13200)
dir.create() did not print the path correctly in warning messages.
The C-level function consolecmd had been broken in non-Latin-1 single-byte locales in R 2.8.0 by changes intended to support the Japanese IME. This affected some menu items in Rgui (e.g. to source R files with non-Latin-1 names) and submitting commands from the script editor, but only in rarer encodings such as Central European, Greek and Cyrillic. (PR#13195, probably also PR#13120)
The attenpt to make the 'Load' button in the GUI preferences start in the home directory failed if the latter was specified with forwward slashes, and reset the current search directory for other file open dialogs (e.g. for opening a script).
The installer would sometimes write the current version information to the registry even if that option was not checked.
Rcmd INSTALL --with-package-versions now works in a few more cases (of lazy loading and lazy data), but still many of the options are not supported (e.g. --use-zip). Versioned installs are now deprecated, so regard them as unsupported on Windows (and a warning is given). (PR#13284)
sum() now has a method for "difftime" objects (via the Summary
group).
max(), min() and range() applied to "difftime" object(s) now return a result in the common units of the objects, if there is one.
installed.packages() is now tolerant of malformed DESCRIPTION
files in installed packages (it ignores them, with a warning).
qt() now works for 0 < df < 1.
For consistency with matrix() and array(), dimnames(x) <-
list() removes the dimnames (as assigning NULL would do).
It was previously an error.
nlminb() copies names from 'start' to the parameter vector
used (for consistency with optim()).
legend() gains a 'title.col' argument: the title colour was
previously set from the first element of 'text.col' (which
remains the default).
In an Rd file, use of top-level \itemize{} inside a \value{}
block is unnecessary and almost always gave a faulty
conversion. Most cases are now detected and corrected, but
give a warning as such code will not work correctly in earlier
versins of R.
Also, use of \code{} inside a code block such as \examples{} will give a erroneous conversion that is now detected and warned against.
Autoflushing of stdout is turned on when Rd processing, so
warnings/error are likely to appear in the right place in
redirected output (such as that from R CMD check).
R_PDFLATEXCMD is added to the environment variables set by
'R CMD' and is used by R CMD Rd2dvi.
R_LATEXCMD, R_PDFLATEXCMD, R_MAKEINDEXCMD and R_DVIPSCMD default to 'latex', 'pdflatex', 'makeindex' and 'dvips' respectively if no suitable executable was found at configure time (since they might well be available at run time, particularly for binary installations of R). This affects R CMD Rd2dvi and help(offline=TRUE).
R CMD Rd2dvi now gives an explicit error message if latex (or pdflatex) fails.
R CMD Rd2dvi gains a --no-index argument: processing some special characters on PDF indices gave errors which used to be ignored.
R CMD INSTALL --with-package-versions is deprecated (and
support has always been incomplete on Windows).
So is install.packages(installWithVers = TRUE).
add1.glm() no longer warns if applied to a binomial glm with a
factor response.
aggregate.data.frame() now does something sensible with a
zero-column 'x' rather than failing with an obscure error
message. It gives an explicit error message if called with a
zero-row 'x'.
integrate() now accepts integer results from f(): as documented,
but only double was accepted.
contrib.url() produced an incorrect URL for the type
"mac.binary".
pairwise.wilcox.test() did not pass on the 'paired' argument
(caught by Matthias Kohl)
bmp(), jpeg(), and png() on unix with type="cairo" would segfault
on closure if the output file could not be opened.
tiff() on unix would not write the output file for the first page
when multiple pages were plotted.
str(1 + structure(1, class = "test")) no longer recurses indefinitely.
pf(x, .., ncp, lower.tail=FALSE, log=TRUE) is much more accurate
for large x now.
dev2bitmap() failed in 2.8.0 if 'taa' and 'gaa' were both NA.
Under rare circumstances equality tests for character strings
could fail to report equality in 2.8.0 in the same way as
2.7.2. (This needed a current encoding of Latin-1 or UTF-8,
one string whose encoding was marked as that encoding and one
that was marked as "unknown". In that circumstance the two
strings are not actually known to be equal, but earlier
versions of R assumed that "unknown" meant the current
encoding, and this is done once again.)
R CMD config could echo messages from GNU make if called from
within a Makefile (as e.g. package Rcpp does), especially from
within a parallel make run.
Rounding error could affect window(extend=TRUE) when applied
to monthly series. (PR#13272)
Offline help on a Unix-alike now works even if options
"latexcmd" and "dvipscmd" contain spaces
(e.g. "dvips -Pmy_printer").
Informative error messages are given if running latex or dvips fail.
Using plot.lm() on a "glm" object since 2.7.1 with which=5
caused the Pearson rather than deviance residuals to be used
in which=2 or 3 (including in the default case). (Thanks to
Effie Greathouse and Greg Snow.)
plot.lm() did not report on omitting observations with leverage one if they also had residual exactly zero. This was seen in example(occupationalStatus).
deparse(nlines=) no longer pads short results with blank
lines. (PR#13299)
legend(xpd=) now restores 'xpd' correctly. (PR#12756)
The "formula" method for lines() now works if 'subset' is
supplied and no 'data' argument (as that for points() did).
Sweave() now takes the defaults for the options 'pdf.version'
and 'pdf.encoding' of its RweaveLatex driver from pdf.options().
prettyNum(x, drop0trailing=TRUE) treated "1.1e20" as "1.1e2"
and hence str() did as well, in 2.8.0 only.
dchisq(x, df, ncp) no longer hangs for large x and ncp > 0,
and is more accurate in some cases (PR#13309).
installed.packages(lib.loc = D, priority="NA") now also works when
D contains a single package. (PR#13332)
legend(...., merge=TRUE) now warns and has no effect in the
case where no line segments are drawn. (PR#13340)
transform.data.frame() works better when two or more columns are
added.
Deparsing argument lists with non-syntactic names (e.g. that for
transform()) now uses backticks rather than double quotes to
produce syntactically valid output.
matrix() failed to check for 0-length 'dimnames': it now
treats them as NULL (as array did). (PR#13361)
0^NA is now NA, not Inf, consistent with x^NA, x != 1.
anova.mlm() did not work if T had only one row (including
e.g. the case M = ~1).
axis.POSIXct() mislabelled for some time ranges of a few hours
(reported by Martin Becker).
mantelhaen.test() with 'exact=FALSE' was not respecting
'alternative'. It now does one-sided tests similarly to
prop.test().
anova.mlm() had trouble with some designs where near-zero rows of
the tranformation matrix were not removed (caught by Nils Skutara).
Rd conversion was handling expressions like
'\item{foo}{see \eqn{x}}' (with one argument to \eqn
immediately followed by a right brace) incorrectly, sometimes
giving a spurious warning about 'missing text'.
R CMD INSTALL used the C locale to install the DESCRIPTION
file, and so escaped non-ASCII characters in packages with a
declared encoding of "latin1" or "UTF-8". (However, the
installed DESCRIPTION file was rarely used since the dumped
metadata are available.)
xspline() now respects inline par settings.
It and grid.xspline() now handle the special case of only two control points, and splines with control points that are located well outside the device (e.g., a zoomed view of a larger curve). (Both cases were giving the error "reached MAXNUMPTS").
In setClass("C", contains="list"); x <- new("C", 1:3), x[2:3] now
remains of class "C". So does rep(x, 2) or rep.int(x, 3).
median.default() now also works for "numeric"-like vectors.
The pdf() device can now handle the case where an image uses a
very large number of colours with different levels of
semi-transparency (alpha-values). It used to segfault.
(Also PR#13264)
window() failed to apply a fuzz to 'start' or 'end' and so
sometimes warned incorrectly for time series with 'freq' not a
power of two (e.g. 12 or 24).
unique.default() now preserves the "tzone" attribute on
"POSIXct" objects.
If all the packages had dependency lists of equal lengths,
occasionally install.packages() would compute an incorrect
sort order.
col(x, as.factor=TRUE) and row(x, as.factor=TRUE) would fail
if x had no column (row) names. It was documented
incorrectly, and now returns a matrix factor.
setRepositories() failed if "pkgType" was set to
"mac.binary.leopard".
sum() now has a method for "difftime" objects (via the Summary group).
max(), min() and range() applied to "difftime" object(s) now return a result in the common units of the objects, if there is one.
installed.packages() is now tolerant of malformed DESCRIPTION files in installed packages (it ignores them, with a warning).
qt() now works for 0 < df < 1.
For consistency with matrix() and array(), dimnames(x) <- list() removes the dimnames (as assigning NULL would do). It was previously an error.
nlminb() copies names from 'start' to the parameter vector used (for consistency with optim()).
legend() gains a 'title.col' argument: the title colour was previously set from the first element of 'text.col' (which remains the default).
In an Rd file, use of top-level \itemize{} inside a \value{} block is unnecessary and almost always gave a faulty conversion. Most cases are now detected and corrected, but give a warning as such code will not work correctly in earlier versins of R.
Also, use of \code{} inside a code block such as \examples{} will give a erroneous conversion that is now detected and warned against.
Autoflushing of stdout is turned on when Rd processing, so warnings/error are likely to appear in the right place in redirected output (such as that from R CMD check).
R_PDFLATEXCMD is added to the environment variables set by 'R CMD' and is used by R CMD Rd2dvi.
R_LATEXCMD, R_PDFLATEXCMD, R_MAKEINDEXCMD and R_DVIPSCMD default to 'latex', 'pdflatex', 'makeindex' and 'dvips' respectively if no suitable executable was found at configure time (since they might well be available at run time, particularly for binary installations of R). This affects R CMD Rd2dvi and help(offline=TRUE).
R CMD Rd2dvi now gives an explicit error message if latex (or pdflatex) fails.
R CMD Rd2dvi gains a --no-index argument: processing some special characters on PDF indices gave errors which used to be ignored.
R CMD INSTALL --with-package-versions is deprecated (and support has always been incomplete on Windows).
So is install.packages(installWithVers = TRUE).
add1.glm() no longer warns if applied to a binomial glm with a factor response.
aggregate.data.frame() now does something sensible with a zero-column 'x' rather than failing with an obscure error message. It gives an explicit error message if called with a zero-row 'x'.
integrate() now accepts integer results from f(): as documented, but only double was accepted.
contrib.url() produced an incorrect URL for the type "mac.binary".
pairwise.wilcox.test() did not pass on the 'paired' argument (caught by Matthias Kohl)
bmp(), jpeg(), and png() on unix with type="cairo" would segfault on closure if the output file could not be opened.
tiff() on unix would not write the output file for the first page when multiple pages were plotted.
str(1 + structure(1, class = "test")) no longer recurses indefinitely.
pf(x, .., ncp, lower.tail=FALSE, log=TRUE) is much more accurate for large x now.
dev2bitmap() failed in 2.8.0 if 'taa' and 'gaa' were both NA.
Under rare circumstances equality tests for character strings could fail to report equality in 2.8.0 in the same way as 2.7.2. (This needed a current encoding of Latin-1 or UTF-8, one string whose encoding was marked as that encoding and one that was marked as "unknown". In that circumstance the two strings are not actually known to be equal, but earlier versions of R assumed that "unknown" meant the current encoding, and this is done once again.)
R CMD config could echo messages from GNU make if called from within a Makefile (as e.g. package Rcpp did), especially from within a parallel make run.
Rounding error could affect window(extend=TRUE) when applied to monthly series. (PR#13272)
Offline help on a Unix-alike now works even if options "latexcmd" and "dvipscmd" contain spaces (e.g. "dvips -Pmy_printer").
Informative error messages are given if running latex or dvips fail.
Using plot.lm() on a "glm" object since 2.7.1 with which=5 caused the Pearson rather than deviance residuals to be used in which=2 or 3 (including in the default case). (Thanks to Effie Greathouse and Greg Snow.)
plot.lm() did not report on omitting observations with leverage one if they also had residual exactly zero. This was seen in example(occupationalStatus).
deparse(nlines=) no longer pads short results with blank lines. (PR#13299)
legend(xpd=) now restores 'xpd' correctly. (PR#12756)
The "formula" method for lines() now works if 'subset' is supplied and no 'data' argument (as that for points() did).
Sweave() now takes the defaults for the options 'pdf.version' and 'pdf.encoding' of its RweaveLatex driver from pdf.options().
prettyNum(x, drop0trailing=TRUE) treated "1.1e20" as "1.1e2" and hence str() did as well, in 2.8.0 only.
dchisq(x, df, ncp) no longer hangs for large x and ncp > 0, and is more accurate in some cases (PR#13309).
installed.packages(lib.loc = D, priority="NA") now also works when D contains a single package. (PR#13332)
legend(...., merge=TRUE) now warns and has no effect in the case where no line segments are drawn. (PR#13340)
transform.data.frame() works better when two or more columns are added.
Deparsing argument lists with non-syntactic names (e.g. that for transform()) now uses backticks rather than double quotes to produce syntactically valid output.
matrix() failed to check for 0-length 'dimnames': it now treats them as NULL (as array did). (PR#13361)
0^NA is now NA, not Inf, consistent with x^NA, x != 1.
anova.mlm() did not work if T had only one row (including e.g. the case M = ~1).
axis.POSIXct() mislabelled for some time ranges of a few hours (reported by Martin Becker).
mantelhaen.test() with 'exact=FALSE' was not respecting 'alternative'. It now does one-sided tests similarly to prop.test().
anova.mlm() had trouble with some designs where near-zero rows of the tranformation matrix were not removed (caught by Nils Skutara).
Rd conversion was handling expressions like '\item{foo}{see \eqn{x}}' (with one argument to \eqn immediately followed by a right brace) incorrectly, sometimes giving a spurious warning about 'missing text'.
R CMD INSTALL used the C locale to install the DESCRIPTION file, and so escaped non-ASCII characters in packages with a declared encoding of "latin1" or "UTF-8". (However, the installed DESCRIPTION file was rarely used since the dumped metadata are available.)
xspline() now respects inline par settings.
It and grid.xspline() now handle the special case of only two control points, and splines with control points that are located well outside the device (e.g., a zoomed view of a larger curve). (Both cases were giving the error "reached MAXNUMPTS").
In setClass("C", contains="list"); x <- new("C", 1:3), x[2:3] now remains of class "C". So does rep(x, 2) or rep.int(x, 3).
median.default() now also works for "numeric"-like vectors.
The pdf() device can now handle the case where an image uses a very large number of colours with different levels of semi-transparency (alpha-values). It used to segfault. (Also PR#13264.)
window() failed to apply a fuzz to 'start' or 'end' and so sometimes warned incorrectly for time series with 'freq' not a power of two (e.g. 12 or 24).
unique.default() now preserves the "tzone" attribute on "POSIXct" objects.
If all the packages had dependency lists of equal lengths, occasionally install.packages() would compute an incorrect sort order.
col(x, as.factor=TRUE) and row(x, as.factor=TRUE) would fail if x had no column (row) names. It was documented incorrectly, and now returns a matrix factor.
setRepositories() failed if "pkgType" was set to "mac.binary.leopard".
formals<-() changed the body of the function if this was a length-one list.
body<-() failed if the function had no arguments. It now warns if discarding elements from a 'value' of type "expression".