This blog is updated daily.
A general description is here.
Printing a list could segfault if the elements are nested too deeply.
cat() on an unopened connection could close it twice, and file() connections segfaulted on some systems..
cat() on an unopened connection could close it twice, and file() connections segfaulted on some systems..
as.complex() sometimes warned about NAs on coercions and sometimes not (when the C function asComplex was used, e.g. on list elements). (PR#13942)
Names of datasets could clash with temporary filenames used when running examples, causing errors.
On systems using ICU for collation (including Mac OS X), using Sys.setlocale() to change the LC_COLLATE setting is more likely to change the collation provided by ICU.
tools::Rd_parse() is deprecated and will be removed in 2.10.0 (which will use only Rd version 2).
R CMD check --use-valgrind did not run valgrind on the package tests.
The tclvalue() and the print() and as.xxx methods for class "tclObj" crashed R with an invalid object -- seen with an object saved from an earlier session.
R CMD BATCH garbled options -d <debugger> (useful for valgrind, although --debugger=valgrind always worked)
INSTALL with LazyData and Encoding declared in DESCRIPTION might have left options("encoding") set for the rest of the package installation.
The C utility function PrintValue no longer attempts to print attributes for CHARSXPs as those attributes are used internally for the CHARSXP cache. This fixes a segfault when calling Rf_PrintValueit on a CHARSXP from C code.
PDF graphics output was producing TWOtwo instances of anything drawn with the symbol font face. (Report from Baptiste Auguie.)
new.env(hash = TRUE, size = NA) now works, the way it has been documented to for a long time.
R CMD check --use-valgrind did not run valgrind on the package tests.
The tclvalue() and the print() and as.xxx methods for class "tclObj" crashed R with an invalid object -- seen with an object saved from an earlier session.
R CMD BATCH garbled options -d <debugger> (useful for valgrind, although --debugger=valgrind always worked)
The C utility function PrintValue no longer attempts to print attributes for CHARSXPs as those attributes are used internally for the CHARSXP cache. This fixes a segfault when calling Rf_PrintValueit on a CHARSXP from C code.
PDF graphics output was producing TWOtwo instances of anything drawn with the symbol font face. (Report from Baptiste Auguie.)
new.env(hash = TRUE, size = NA) now works, the way it has been documented to for a long time.
seq_along(x) is now equivalent to seq_len(length(x)) even where length() has an S3/S4 method; previously it (intentionally) always used the default method for length().
PCRE has been updated to version 7.9 (for bug fixes).
agrep() uses 64-bit ints where available on 32-bit platforms and so may do a better job with complex matches. (E.g. PR#13789, which failed only on 32-bit systems.)
seq_along(x) is now equivalent to seq_len(length(x)); previously it
was not, when x had a "surprising" length() method.
Some extreme cases of pbeta(log.p = TRUE) are more accurate (finite values < -700 rather than -Inf). (PR#13786)
pbeta() now reports on more cases where the asymptotic expansions lose accuracy (the underlying TOMS708 C code was ignoring some of these, including the PR#13786 example).
new.env(hash = TRUE, size = NA) now works, the way it has been documented to for a long time.
tcltk::tk_choose.files(multi = TRUE) produces better-formatted output with filenames containing spaces. (PR#13875)
The C utility function PrintValue no longer attempts to print attributes for CHARSXPs as those attributes are used internally for the CHARSXP cache. This fixes a segfault when calling Rf_PrintValue on a CHARSXP from C code.
install.packages(NULL) now lists packages only once even if they
occur in more than one repository (as the latest compatible
version of those available will always be downloaded).
approxfun() and approx() now accept a 'rule' of length two, for
easy specification of different interpolation rules on left and
right.
They no longer segfault for invalid zero-length specification of 'yleft, 'yright', or 'f'.
parse_Rd() still did not handle source reference encodings
properly.
PrintValue no longer attempts to print attributes for CHARSXPs
as those attributes are used internally for the CHARSXP cache.
This fixes a segfault when calling Rf_PrintValue on a CHARSXP
from C code.
PDF graphics output was producing TWO instances of anything
drawn with the symbol font face. (Report from Baptiste Auguie.)
length(x) <- newval and grep() could cause memory corruption.
(PR#13837)
If model.matrix() was given too large a model, it could crash
R. (PR#13838, fix found by Olaf Mersmann.)
seq_along(x) is now equivalent to seq_len(length(x)); previously it
was not, when x had a "surprising" length() method.
gzcon() (used by load()) would re-open an open connection,
leaking a file descriptor each time. (PR#13841)
The checks for inconsistent inheritance reported by setClass()
now detect inconsistent superclasses and give better warning messages.
print.anova() failed to recognize the column labelled
P(>|Chi|) from a Poisson/binomial GLM anova as a p-value
column in order to format it appropriately (and as a
consequence it gave no significance stars).
A missing PROTECT caused rare segfaults during calls to
load(). (PR#13880, fix found by Bill Dunlap.)
gsub() in a non-UTF-8 locale with a marked UTF-8 input
could in rare circumstances overrun a buffer and so segfault.
R CMD Rdconv --version was not working correctly.
install.packages(NULL) now lists packages only once even if they occur in more than one repository (as the latest compatible version of those available will always be downloaded).
approxfun() and approx() now accept a 'rule' of length two, for easy specification of different interpolation rules on left and right.
They no longer segfault for invalid zero-length specification of 'yleft, 'yright', or 'f'.
R CMD Rd2txt is deprecated, and will be removed in 2.10.0. (It is just a wrapper for R CMD Rdconv -t txt.)
parse_Rd() still did not handle source reference encodings properly.
PrintValue no longer attempts to print attributes for CHARSXPs as those attributes are used internally for the CHARSXP cache. This fixes a segfault when calling Rf_PrintValue on a CHARSXP from C code.
PDF graphics output was producing TWO instances of anything drawn with the symbol font face. (Report from Baptiste Auguie.)
length(x) <- newval and grep() could cause memory corruption. (PR#13837)
If model.matrix() was given too large a model, it could crash R. (PR#13838, fix found by Olaf Mersmann.)
seq_along(x) is now equivalent to seq_len(length(x)); previously it was not, when x had a "surprising" length() method.
gzcon() (used by load()) would re-open an open connection, leaking a file descriptor each time. (PR#13841)
The checks for inconsistent inheritance reported by setClass() now detect inconsistent superclasses and give better warning messages.
print.anova() failed to recognize the column labelled P(>|Chi|) from a Poisson/binomial GLM anova as a p-value column in order to format it appropriately (and as a consequence it gave no significance stars).
A missing PROTECT caused rare segfaults during calls to load(). (PR#13880, fix found by Bill Dunlap.)
gsub() in a non-UTF-8 locale with a marked UTF-8 input could in rare circumstances overrun a buffer and so segfault.
R CMD Rdconv --version was not working correctly.
Missing PROTECTs in nlm() caused "random" errors. (PR#13381 by Adam D.I. Kramer, analysis and suggested fix by Bill Dunlap.)
There is support for using ICU (International Components for Unicode) for collation, enabled by configure option --with-ICU on a Unix-alike and by a setting in MkRules on Windows. Function icuSetCollate() allows the collation rules (including the locale) to be tuned. [Experimental]
reshape() got column names out of sync with contents in some cases; found by Antonio, Fabio Di Narzo.
On suitably equipped Unix-alike systems, segfaults, illegal operations and bus errors are caught and there is a simple error-handler which gives the user some choice as to what to do in interactive use. [Experimental.]
On Windows access violations and illegal instructions are caught with a simple error handler. [Experimental.]
toLatex(sessionInfo()) produced incorrect LaTeX on some platforms due to special characters in the platform identifier.
* News of 1.x.y and 2.0.0 is in file `ONEWS' * * News of 1.0.0 and earlier is in file `OONEWS' *
%%% Local Variables: %%% mode: text %%% coding: utf-8 %%% End:
R CMD Rdconv --version was not working correctly.
approxfun() and approx() now accept a 'rule' of length two, for easy specification of different interpolation rules on left and right. They also
They no longer segfault for invalid zero-length specification of 'yleft, 'yright', or 'f'.
gsub() in a non-UTF-8 locale with a marked UTF-8 input could in rare circumstances overrun a buffer and so segfault.
A missing PROTECT caused rare segfaults during calls to load(). (PR#13880, fix found by Bill Dunlap.)
gzcon() (used by load()) would re-open an open connection, leaking a file handledescriptor each time. (PR#13841)
print.anova() failed to recognize the column labelled P(>|Chi|) from a Poisson/binomial GLM anova as a p-value column in order to format it appropriately (and as a consequence it gave no significance stars).
The checks for inconsistent inheritance reported by setClass() now detect inconsistent superclasses and give better warning messages.
approxfun() and approx() now accept a 'rule' of length two, for easy specification of different interpolation rules on left and right. They also no longer segfault for invalid zero-length specification of 'yleft, 'yright', or 'f'.
seq_along(x) is now equivalent to seq_len(length(x)); previously it was not, when x had a "surprising" length() method.
gzcon() (used by load()) would re-open an open connection, leaking a file handle each time. (PR#13841)
If model.matrix() was given too large a model, it could crash R. (PR#13838, fix found by Olaf Mersmann.)
length(x) <- newval and grep() could cause memory corruption. (PR#13837.)
length(x) <- newval and grep() could cause memory corruption. (Reported by Hervé Pagès in (PR#13837.)
length(x) <- newval could cause memory corruption. (Reported by Hervé Pagès in PR#13837)
PrintValue no longer attempts to print attributes for CHARSXPs as those attributes are used internally for the CHARSXP cache. This fixes a segfault when calling Rf_PrintValue on a CHARSXP from C code.
PDF graphics output was producing TWO instances of anything drawn with the symbol font face. (Report from Baptiste Auguie.)
install.packages(NULL) now lists packages only once even if they occur isn more than one repository (as the latest compatible version of those available will always be downloaded).
install.packages(NULL) now lists packages only once even if they occur is more than one repository (as the latest compatible version of those available will always be downloaded).
parse_Rd() still did not handle source reference encodings properly.
That R CMD check makes use of a <pkg>/tests/Examples/<pkg>-Ex.Rout.save file as a reference result is now documented in 'Writing R Extensions'.
RSiteSearch has been updated to be consistent with the new layout of the search site itself, which now includes separate options for vignettes, views, and r-sig-mixed-models, as well as changed names for r-help. (Contributed by Jonathan Baron.)
qr(x, LAPACK=TRUE) did not coerce integer x to numeric.
qr.coef() misbehaved in the LAPACK case with a matrix RHS, so that solve(qr(x, LAPACK=TRUE)) gave wrong results. (Found by Avraham Adler, PR#13762 by Ravi Varadhan.)
RSiteSearch has been updated to be consistent with the new layout of the search site itself, which now includes separate options for vignettes, views, and r-sig-mixed-models, as well as changed names for r-help. (Contributed by Jonathan Baron.)
Constructing error messages about unused arguments in calls to closures no longer evaluates the arguments.
New function anyDuplicated(x) returns 0 (= FALSE) or the index
of the first duplicated entry of x.
matplot(), matlines() and matpoints() now also obey a 'lend'
argument, determining line end styles. (Wish of PR#13619).
bw.SJ(), bw.bcv() and bw.ucv() now gain an optional 'tol'
argument allowing more accurate estimates.
new.packages() no longer regards packages with the same name
as a member of an installed bundle as 'new' (this is now
consistent with the dependency checks in install.packages()).
It no longer reports on partially installed bundles (since members can be updated individually if a bundle is unbundled).
old.packages() and hence updates.packages() will look for
updates to members of package bundles before updates to the
whole bundle: this allow bundles to be split and installations
updated.
nlminb() gives better non-convergence messages in some cases.
S3 method dispatch will support S4 class inheritance for S3
methods, for primitives and via UseMethod(), if the argument
S3methods=TRUE is given to setClass(). S4 method dispatch
will use S3 per-object inheritance if S3Class() is set on the
object. See ?Methods and the paper referenced there.
R CMD INSTALL is more tolerant of (malformed) packages with a
'man' directory but no validly named .Rd files.
R CMD check now reports where options are used that cause some
of the checks to be skipped.
print.atomic() (defunct since 1.9.0) has been removed since it
caused confusion for an S4 class union "atomic".
png(type="cairo1") is deprecated -- it was only needed for
platforms with 1.0 <= cairo < 1.2.
The ... argument was not handled properly when ... was found
in the enclosure of the current function, rather than in the
function header itself. (This caused integrate() to fail in
certain cases.)
col2rgb("#00000080", TRUE) would return the background colour.
(Reported by Hadley Wickham.)
interaction() now ensures that the levels of the result are unique.
packageDescription() and hence sessionInfo() now report the correct
package version also for a non-attached loaded namespace of
a version different from the default lib.loc.
smoothScatter() now also works when e.g. xlim[2] < xlim[1].
Invalid use of sprintf() such as sprintf("%S%") now give an error
instead of a segmentation fault, as do very unusual cases such as
sprintf("%s", tryCatch(stop(), error=identity)). (It was
always documented that misuse could crash R in
platform-dependent ways.)
parse_Rd() would mishandle braces when they occurred at
the start of a line within an R string in an Rd file (reported
by Alex Couture-Beil) or when they occurred in an R comment
(reported by Mark Bravington).
readNEWS() missed version numbers with more than one digit.
building R --without-x no longer fails (PR#13665)
printCoefmat(cbind(0,1)) now works too (PR#13677)
bw.SJ(c(1:99, 1e6)) now works too.
Rd2txt() could not handle empty descriptions of items in an Rd
file (reported by Mark Bravington), and did not wrap long lists
of arguments if they were given in a single item.
stars() would do a partial plot when called with plot = FALSE;
it now consistently returns the locations of the stars.
Rd2latex() could not handle empty sections.
old.packages() and hence update.packages() would fail on a
repository which contained only one package but with multiple
versions of that package.
as.character.Rd() added extra braces when displaying two-argument
macros. (Report and fix by Manuel Eugster.)
unsplit() was misbehaving in the case of single-column data
frames. (Reported by Will Gray.)
as(I(1), "vector") and similar coercions from objects of
"unregistered" S3 classes now work.
srcref records produced by parse() and parse_Rd() did not record
the encoding of the source file. (Reported by Romain Francois.)
The X11 version of View() was misbehaving in MBCS locales, and
PgUp/PgDn now behave better, thanks to a patch from Ei-ji Nakama.
R CMD check looked at the environment variable PDFLATEX, but
as from R 2.8.1 R CMD Rd2dvi used R_PDFLATEXCMD in
preference, and that was set by R CMD (and not PDFLATEX). Now
R CMD check looks at R_PDFLATEXCMD.
sprintf() now signals an error when the result of single format
specification would be longer than the limit (8192 bytes); it would
return "somewhat random" results or segfault previously. (PR#13667)
Further, arguments of type "language" or "symbol" are no longer
allowed, as these, e.g., sprintf("%s", quote(list())), typically
lead to unexpected results or hard to understand error messages.
The new (in 2.9.0) 'stringsAsFactors' argument to expand.grid()
was not working: it now does work but has default TRUE for
backwards compatibility.
tcrossprod(<1d-array>, <matrix>) now does work when the arguments
are of compatible dimensions.
qbinom() now is accurate also in (large size, small prob)
cases. (PR#13711)
The calculation of the Spearman p-value in cor.test() is
slightly more accurate in some cases. (PR#13574)
The digamma(), trigamma() and psigamma() functions could be
inaccurate for values of x around 1e-15 due to cancellation.
(PR#13714).
median.default() was altered in 2.8.1 to use sum() rather
than mean(), although it was still documented to use mean().
This caused problems for POSIXt objects, for which mean() but
not sum() makes sense, so the change has been reverted.
Assigning an extra 0-length column to a data frame by
DF$foo <- value gave a corrupt data frame rather than failing.
(PR#13724) This also happened for DF[["foo"]] <- value.
R CMD INSTALL no longer gives a spurious warning about old R
versions ignoring multiple dependencies, if the conditions are
known to be satisfied.
The test for setting dim() allowed a value with two or more
NAs to be set on a 0-length object. (PR#13729) Also, it
allowed an even number of negative values.
xtfrm(), rank(), sort() and order() did not always make use of
custom comparison methods specific to the class of elements
being sorted.
Increase NAMED value on 'seq' value in for() loop so loop code
cannot modify 'seq' value.
Prevent rectangles of size < 0.5 pixel from disappearing in
Quartz when using rastered backend. (PR#13744)
Printing _NA_complex_ had a low-level thinko; patch thanks to
Bill Dunlap.
CP1257 encoding for postscript/PDF has been corrected. (PR#13736)
aov() with an error term was evaluating the ... arguments in
2.9.0 whilst checking their names, so could fail by evaluating
them in the wrong place. (PR#13733)
The print() method for arima() failed if all coefs were fixed.
R CMD INSTALL --no-latex was not implemented in 2.9.0 (only).
Added a needed PROTECT call in RunFinalizers to handle cases where
the routine is called recursively from a GC in a finalizer.
New function anyDuplicated(x) returns 0 (= FALSE) or the index of the first duplicated entry of x.
matplot(), matlines() and matpoints() now also obey a 'lend' argument, determining line end styles. (Wish of PR#13619).
bw.SJ(), bw.bcv() and bw.ucv() now gain an optional 'tol' argument allowing more accurate estimates.
new.packages() no longer regards packages with the same name as a member of an installed bundle as 'new' (this is now consistent with the dependency checks in install.packages()).
It no longer reports on partially installed bundles (since members can be updated individually if a bundle is unbundled).
old.packages() and hence updates.packages() will look for updates to members of package bundles before updates to the whole bundle: this allow bundles to be split and installations updated.
nlminb() gives better non-convergence messages in some cases.
S3 method dispatch will support S4 class inheritance for S3 methods, for primitives and via UseMethod(), if the argument S3methods=TRUE is given to setClass(). S4 method dispatch will use S3 per-object inheritance if S3Class() is set on the object. See ?Methods and the paper referenced there.
R CMD INSTALL is more tolerant of (malformed) packages with a 'man' directory but no validly named .Rd files.
R CMD check now reports where options are used that cause some of the checks to be skipped.
print.atomic() (defunct since 1.9.0) has been removed since it caused confusion for an S4 class union "atomic".
png(type="cairo1") is deprecated -- it was only needed for platforms with 1.0 <= cairo < 1.2.
The ... argument was not handled properly when ... was found in the enclosure of the current function, rather than in the function header itself. (This caused integrate() to fail in certain cases.)
col2rgb("#00000080", TRUE) would return the background colour. (Reported by Hadley Wickham.)
interaction() now ensures that the levels of the result are unique.
packageDescription() and hence sessionInfo() now report the correct package version also for a non-attached loaded namespace of a version different from the default lib.loc.
smoothScatter() now also works when e.g. xlim[2] < xlim[1].
Invalid use of sprintf() such as sprintf("%S%") now give an error instead of a segmentation fault, as do very unusual cases such as sprintf("%s", tryCatch(stop(), error=identity)). (It was always documented that misuse could crash R in platform-dependent ways.)
parse_Rd() would mishandle braces when they occurred at the start of a line within an R string in an Rd file (reported by Alex Couture-Beil) or when they occurred in an R comment (reported by Mark Bravington).
readNEWS() missed version numbers with more than one digit.
building R --without-x no longer fails (PR#13665)
printCoefmat(cbind(0,1)) now works too (PR#13677)
bw.SJ(c(1:99, 1e6)) now works too.
Rd2txt() could not handle empty descriptions of items in an Rd file (reported by Mark Bravington), and did not wrap long lists of arguments if they were given in a single item.
stars() would do a partial plot when called with plot = FALSE; it now consistently returns the locations of the stars.
Rd2latex() could not handle empty sections.
old.packages() and hence update.packages() would fail on a repository which contained only one package but with multiple versions of that package.
as.character.Rd() added extra braces when displaying two-argument macros. (Report and fix by Manuel Eugster.)
unsplit() was misbehaving in the case of single-column data frames. (Reported by Will Gray.)
as(I(1), "vector") and similar coercions from objects of "unregistered" S3 classes now work.
srcref records produced by parse() and parse_Rd() did not record the encoding of the source file. (Reported by Romain Francois.)
The X11 version of View() was misbehaving in MBCS locales, and PgUp/PgDn now behave better, thanks to a patch from Ei-ji Nakama.
R CMD check looked at the environment variable PDFLATEX, but as from R 2.8.1 R CMD Rd2dvi used R_PDFLATEXCMD in preference, and that was set by R CMD (and not PDFLATEX). Now R CMD check looks at R_PDFLATEXCMD.
sprintf() now signals an error when the result of single format specification would be longer than the limit (8192 bytes); it would return "somewhat random" results or segfault previously. (PR#13667) Further, arguments of type "language" or "symbol" are no longer allowed, as these, e.g., sprintf("%s", quote(list())), typically lead to unexpected results or hard to understand error messages.
The new (in 2.9.0) 'stringsAsFactors' argument to expand.grid() was not working: it now does work but has default TRUE for backwards compatibility.
tcrossprod(<1d-array>, <matrix>) now does work when the arguments are of compatible dimensions.
qbinom() now is accurate also in (large size, small prob) cases. (PR#13711)
The calculation of the Spearman p-value in cor.test() is slightly more accurate in some cases. (PR#13574)
The digamma(), trigamma() and psigamma() functions could be inaccurate for values of x around 1e-15 due to cancellation. (PR#13714).
median.default() was altered in 2.8.1 to use sum() rather than mean(), although it was still documented to use mean(). This caused problems for POSIXt objects, for which mean() but not sum() makes sense, so the change has been reverted.
Assigning an extra 0-length column to a data frame by DF$foo <- value gave a corrupt data frame rather than failing. (PR#13724) This also happened for DF[["foo"]] <- value.
R CMD INSTALL no longer gives a spurious warning about old R versions ignoring multiple dependencies, if the conditions are known to be satisfied.
The test for setting dim() allowed a value with two or more NAs to be set on a 0-length object. (PR#13729) Also, it allowed an even number of negative values.
xtfrm(), rank(), sort() and order() did not always make use of custom comparison methods specific to the class of elements being sorted.
Increase NAMED value on 'seq' value in for() loop so loop code cannot modify 'seq' value.
Prevent rectangles of size < 0.5 pixel from disappearing in Quartz when using rastered backend. (PR#13744)
Printing _NA_complex_ had a low-level thinko; patch thanks to Bill Dunlap.
CP1257 encoding for postscript/PDF has been corrected. (PR#13736)
aov() with an error term was evaluating the ... arguments in 2.9.0 whilst checking their names, so could fail by evaluating them in the wrong place. (PR#13733)
The print() method for arima() failed if all coefs were fixed.
R CMD INSTALL --no-latex was not implemented in 2.9.0 (only).
Added a needed PROTECT call in RunFinalizers to handle cases where the routine is called recursively from a GC in a finalizer.
R CMD check now reports where options are used that cause some of the checks to be skipped.
print.atomic() (defunct since 1.9.0) has been removed since it caused confusion for an S4 class union of that name"atomic".
Increase NAMED value on seq value in for loop so loop code cannot
modify seq value.
Increase NAMED value on 'seq' value in for() loop so loop code cannot modify 'seq' value.
Added a needed PROTECT call in RunFinalizers to handle cases where the routine is called recursively from a GC in a finalizer.
R CMD INSTALL is more tolerant of (malformed) packages with a 'man' directory but no validly named .Rd files.
png(type="cairo1") is deprecated -- it was only needed for platforms with 1.0 <= cairo < 1.2.
Changes to S4 and S3 method dispatch will support S4 class inheritance for S3 methods, for primitives and via UseMethod() and do better on S3 inheritance per-instance for S4 methods. , if the argument S3methods=TRUE is given to setClass(). S4 method dispatch will use S3 per-object inheritance if S3Class() is set on the object. See ?Methods and the paper referenced there.
R CMD INSTALL --no-latex was not implemented in 2.9.0 (only).
R CMD INSTALL --no-latex was not implemented in 2.9.0 (only).
cChanges to S4 and S3 method dispatch will support S4 class inheritance for S3 methods, primitive and via UseMethod() and do better on S3 inheritance per-instance for S4 methods. See ?Methods and the paper referenced there.
CP1257 encoding for postscript/PDF has been corrected. (PR#13736)
aov() with an error term was evaluating the ... arguments in 2.9.0 whilst checking their names, so could fail by evaluating them in the wrong place. (PR#13733)
The print() method for arima() failed if all coefs were fixed.
Prevent rectangles of size < 0.5 pixel from disappearing in Quartz when using rastered backend. (PR#13744)
pPrinting _NA_complex_ had a low-level thinko; patch thankeds to Bill Dunlap.
cChanges to S4 and S3 method dispatch will support S4 class inheritance for S3 methods, primitive and via UseMethod() and do better on S3 inheritance per-instance for S4 methods. See ?Methods and the paper referenced there.
CP1257 encoding for postscript/PDF has been corrected. (PR#13736)
aov() with an error term was evaluating the ... arguments in 2.9.0 whilst checking their names, so could fail by evaluating them in the wrong place. (PR#13733)
Prevent rectangles of size < 0.5 pixel from disappearing in Quartz when using rastered backend. (PR#13744)
pPrinting _NA_complex_ had a low-level thinko; patch thankeds to Bill Dunlap.
Prevent rectangles of size < 0.5 pixel from disappearing in Quartz when using rastered backend (PR#13744)
printing _NA_complex_ had a low-level thinko; patch thanked to Bill Dunlap.
Increase NAMED value on seq value in for loop so loop code cannot modify seq value.
nlminb() gives better non-convergence messages in some cases.
The test for setting dim() allowed a value with two or more NAs to be set on a 0-length object. (PR#13729) Also, it allowed an even number of negative values.
xtfrm(), rank(), sort() and order() did not always make use of custom comparison methods specific to the class of elements being sorted.
R CMD INSTALL no longer gives a spurious warning about old R versions ignoring multiple dependencies, if the conditions are known to be satisfied.
Invalid use of sprintf() such as sprintf("%S%") now give an error instead of a segmentation fault, as do very unusual cases such as sprintf("%s", tryCatch(stop(), error=identity)). (It was always documented that misuse could crash R in platform-dependent ways.)
The digamma(), trigamma() and psigamma() functions could be inaccurate for values of x around 1e-15 due to cancellation. (PR#13714).
median.default() was altered in 2.8.1 to use sum() rather than mean(), although it was still documented to use mean(). This caused problems for POSIXt objects, for which mean() but not sum() makes sense, so the change has been reverted.
Assigning an extra 0-length column to a data frame by DF$foo <- value gave a corrupt data frame rather than failing. (PR#13724) This also happened for DF[["foo"]] <- value.
median.default() was altered in 2.8.1 to use sum() rather than mean(), although it was still documented to use mean(). This caused problems for POSIXt objects, for which mean() but not sum() makes sense.
Assigning an extra 0-length column to a data frame by DF$foo <- value gave a corrupt data frame rather than failing. (PR#13724)
The calculation of the Spearman p-value in cor.test() is slightly more accurate in some cases. (PR#13574)
The digamma(), trigamma() and psigamma() functions could be inaccurate for value of x around 1e-15 due to cancellation. (PR#13714).
print.atomic() (defunct since 1.9.0) has been removed since it caused confusion for an S4 class union of that name.
qbinom() now is accurate also in (large size, small prob) cases. (PR#13711)
changes to S4 and S3 method dispatch will support S4 class inheritance for S3 methods, primitive and via UseMethod() and do better on S3 inheritance per-instance for S4 methods. See ?Methods and the paper referenced there.
The new (in 2.9.0) 'stringsAsFactors' argument to expand.grid() was not working: it now does work but has argument default TRUE for backwards compatibility.
expand.grid() gains a 'stringsAsFactors' argument to ask for automatic conversion of character vectors to factors (which happened for many years but was not previously documented). [This did not actually work prior to R 2.9.1.]
sprintf() now signals an error when the result of single format specification would be longer than the limit (8192 bytes); it would return "somewhat random" results or segfault previously. (PR#13667) Further, arguments of type "language" or "symbol" are no longer allowed, as these, e.g., sprintf("%s", quote(list())), typically lead to unexpected results or hard to understand error messages.
The new (in 2.9.0) 'stringsAsFactors' argument to expand.grid() was not working: it now does but has argument default TRUE for backwards compatibility.
tcrossprod(<1d-array>, <matrix>) now does work when the arguments are of compatible dimensions.
expand.grid() by default no longer coerces strings into factors.
expand.grid() gains a 'stringsAsFactors' argument to ask for automatic conversion of character vectors to factors (which happened for many years but was not previously documented, and is no longer the default).
R CMD check looked at the environment variable PDFLATEX, but as from R 2.8.1 R CMD Rd2dvi used R_PDFLATEXCMD in preference, and that was set by R CMD (and not PDFLATEX). Now R CMD check looks at R_PDFLATEXCMD.
as(I(1), "vector") and similar coercions from objects of "unregistered" S3 classes now work.
srcref records produced by parse() and parse_Rd() did not record the encoding of the source file. (Reported by Romain Francois.)
The X11 version of View() was misbehaving in MBCS locales, and PgUp/PgDn now behave better, thanks to a patch from Ei-ji Nakama.
unsplit() was misbehaving in the case of single-column data frames. (Reported by Will Gray.)
new.packages() no longer regards packages with the same name as a member of an installed bundle as 'new' (this is now consistent with the dependency checks in install.packages()).
It no longer reports on partially installed bundles (since members can be updated individually if a bundle is unbundled).
old.packages() and hence updates.packages() will look for updates to members of package bundles before updates to the whole bundle: this allow bundles to be split and installations updated.
interaction() now ensures that its result's levelsthe levels of the result are unique.
newNew function anyDuplicated(x) returns 0 (= FALSE) or the index of the first duplicated entry of x.
Invalid use of sprintf() such as sprintf("%S%") now give an error instead of a segmentation fault, as do very unusual cases such as sprintf("%s", tryCatch(stop(), error=identity)).
old.packages() and hence update.packages() would fail on a repository which contained only one package but with multiple versions of that package.
as.character.Rd() added extra braces when displaying two-argument macros. (Report and fix by Manuel Eugster.)
stars() would do a partial plot when called with plot = FALSE; it now consistently returns the locations of the stars.
Rd2latex() could not handle empty sections.
Rd2txt() could not handle empty descriptions of items in an Rd file (reported by Mark Bravington), and did not wrap long lists of arguments if they were given in a single item.
parse_Rd() would mishandle closing braces when they occurred at the start of a line within an R string in an Rd file. (Rreported by Alex Couture-Beil.)) or when they occurred in an R comment (reported by Mark Bravington).
bw.SJ(), bw.bcv() and bw.ucv() now gain an optional 'tol' argument allowing more accurate estimates.
bw.SJ(c(1:99, 1e6)) now works too.
printCoefmat(cbind(0,1)) now works too (PR#13677)
building R --without-x no longer fails (PR#13665)
readNEWS() missed version numbers with more than one digit.
matplot(), matlines() and matpoints() now also obey a 'lend' argument, determining line end styles. (Wish of PR#13619).
parse_Rd() would mishandle closing braces when they occurred at the start of a line within an R string in an Rd file. (Reported by Alex Couture-Beil.)
smoothScatter() now also works when e.g. xlim[2] < xlim[1].
bxp() now computes the 'ylim' including the outliers only if 'outline = TRUE'. (Wish of PR#13196)
.packages() and .find.packages() no longer check the package info for installed packages with dumped metadata, since this was checked when the package was installed. .packages() only considers such packages to be validly installed (any others were installed in a long-obsolete version of R). Both changes speed up searches in libraries of thousands of packages().
bxp() now computes the 'ylim' including the outliers only if 'outline = TRUE'. (Wish of PR#13196)
.packages() and .find.packages() no longer check the package info for installed packages with dumped metadata, since this was checked when the package was installed. .packages() only considers such packages to be validly installed (any others were installed in a long-obsolete version of R). Both changes speed up searches in libraries of thousands of packages().
new anyDuplicated(x) returns 0 (= FALSE) or the index of the first duplicated entry of x.
The ... argument was not handled properly when ... was found in the enclosure of the current function, rather than in the function header itself. (This caused integrate() to fail in certain cases.)
col2rgb("#00000080", TRUE) would return the background colour. (Reported by Hadley Wickham.)
interaction() now ensures that its result's levels are unique.
packageDescription() and hence sessionInfo() now report the correct package version also for a non-attached loaded namespace of a version different from the default lib.loc.
New selectSuperClasses() utility in package 'methods'.
A new function smoothScatter() has been added to package 'graphics'. It is appropriate for very dense scatter plots and uses density estimation and color to reflect density of plotting.
duplicated(<data frame>, incomparables = NA) now gives the intended error message. (PR#13632)
aA new function smoothScatter has been added to package 'graphics'. It is appropriate for very dense scatter plots and uses density estimation and color to reflect density of plotting.
a new function smoothScatter has been added to graphics. It is appropriate for very dense scatter plots and uses density estimation and color to reflect density of plotting.
Evaluating an assignment expression with a string on the left hand side no longer destructively changes the string to a symbol in the expression.
HoltWinters() now allows parameters alpha and beta to be fixed at 0 and hence beta = FALSE and gamma = FALSE are used to specify restricted models.
nNew selectSuperClasses() utility.
name handling of as.data.frame() has been sanitized somewhat
if(as.raw(1)) TRUE now works as expected. (PR#13630) Also, c(as.raw(12), TRUE) or c(raw(3), pi) do.
duplicated(<data frame>, incomparables = NA) now gives the intended error message.
if(as.raw(1)) TRUE now works as expected. (PR#13630)
massage-Examples.pl has been replaced by an R script share/R/the R function tools:::massage-eExamples.R ().
new selectSuperClasses() utility.
Times in the Packaged: and Built: fields are now recorded in UTC, and in most cases in ISO 8601 format.
Rd conversion was not accepting \p (as in \pkg} or (inwhen using Perl 5.10.x) \k (as in \kbd) in any preamble text in a \value{} section, since those are nowadays interpreted by Perl. (PR#13575)
Times in the Packaged: and Built: fields are now recorded in UTC.
Checks for missing values will no longer occasionally result in an infinite loop or stack overflow error, depending on the compiler. Active bindings are now always considered to be non-missing.
unlink() is now able to remove broken symbolic links on Unix-alikes.
R CMD SHLIB on Windows will call the first target (not 'all') in Makevars[.win] in future versions: so make 'all' the first target if you have any.
R CMD SHLIB now calls the makefiles with target 'all' on all platforms, not just on Windows: this is only relevant when a Makevars[.win] is used that contains targets (not in general recommended): for backwrds compatibility the first target should be named 'allFor R CMD SHLIB on Windows the default 'all' target only makes the DLL, and no longer call targets 'before' and 'after'.
The compiled loess() code hads been updated to the current version of dloess from Netlib. This includes patches from Ben Tyner which correct some errors when degree = 0 and hence solve PR#13570.
unlink() is now able to remove broken symbolic links on Unix-alikes.
R CMD SHLIB now calls the makefiles with target 'all' on all platforms, not just on Windows: this is only relevant when a Makevars[.win] is used that contains targets (not in general recommended): for backwards compatibility the first target should be named 'all'.
The compiled loess() code hads been updated to the current version of dloess from Netlib. This includes patches from Ben Tyner which correct some errors when degree = 0 and hence solve PR#13570.