This blog is updated daily.
A general description is here.
tools::readNEWS() now accepts a digit as the first character of a news section.
tools::readNEWS() now accepts a digit as the first character of a news section.
contrasts<- (in the 'stats' package) no longer has an undeclared dependence on 'methods' (introduced in 2.10.0).
contrasts<- (in the 'stats' package) no longer has an undeclared dependence on 'methods' (introduced in 2.10.0).
Startup files will now be found if their paths exceed 255 bytes. (PR#14228)
Changing both line texture and line cap (end) resulted in the latter to be ommitted form the PDF code. In addition, line cap (end) and join are now set explicitly in PDF output to ensure correct defaults.
plot(ecdf(), log="x") no longer gives a wrongn incorrect warning.
Startup files will now be found if their paths exceed 255 bytes. (PR#14228)
Changing both line texture and line cap (end) resulted in the latter to be ommitted form the PDF code. In addition, line cap (end) and join are now set explicitly in PDF output to ensure correct defaults.
plot(ecdf(), log="x") no longer gives a wrongn incorrect warning.
read.fwf() works again when 'file' is a connection.
system.time() had sys.child component wrong (copied user.child instead) on systems with HAVE_GETRUSAGE (PR#14210)
plot(ecdf(), log="x") no longer gives a wrong warning.
The suppression of auto-rotation in bitmap() and dev2bitmap() with the 'pdfwrite' device was not working correctly.
The suppression of auto-rotation in bitmap() and dev2bitmap() with the 'pdfwrite' device was not working correctly.
Changing both line texture and line cap (end) resulted in the latter to be ommitted form the PDF code. In additon, line cap (end) and join are now set explicitly in PDF output to ensure correct defaults.
A change to options(scipen=) was only implemented when printing next occurred, even though it should have affected intervening calls to axis(), contour() and filledcontour().
prettyNum(drop0trailing=TRUE) did not handle signs of imaginary parts of complex numbers correctly (and this was used by str(): PR#14201).
The "nls" method for df.residual() gave incorrect results for models fitted with na.action = na.exclude. (PR#14194)
tools::showNonASCII() failed to detect non-ASCII characters if iconv() (incorrectly) converted them to ASCII.different ASCII characters. (Seen on Windows only.)
match(incomparables=<non-NULL>) could in rare cases infinite- loop.
poisson.test() needed to pass 'conf.level' to binom.test() (PR#14195)
match(incomparables=<non-NULL>) could in rare cases infinite-loop.
det(m) and determinant.matrix(m) now return NaN when m
contains NA or NaN's in crucial entries.
The PCRE library has been updated to version 8.01, a bug-fix release.
match(incomparables=<non-NULL>) could in rare cases infinite-loop.
QThe quartz() device did not restore the clipping region when filling the background for a new page. This could be observed in multi-page bitmap output as stale outer regions of the plot.
tcrossprod() wrongly failed in some cases, when one of the arguments was a vector and the other a matrix.
tools::showNonASCII() failed to detect non-ASCII characters if iconv() converted them to ASCII.
[cr]bind(..., deparse.level=2) was not always giving names when documented to do so. (Discovered whilst investigating PR#14189.)
[cr]bind(..., deparse.level=2) was not always giving names when documented to do so. (Discovered whilst investigating PR#14189.)
det(m) and determinant.matrix(m) now return NaN when m contains NA or NaN's in crucial entries.
tcrossprod() wrongly failed in some cases, when one of the arguments was a vector and the other a matrix.
Quartz device did not restore clipping region when filling background for a new page. This could be observed in multi-page bitmap output as stale outer regions of the plot.
p.adjust(*, method, n) now works correctly for the rare case n > length(p), also when method differs from "bonferroni" or "none", thanks to a patch from Gordon Smyth.
sprintf() was not re-entrant, which potentially caused problems if an as.character() method called it.
sprintf() was no re-entrant, which potentially caused problems if an as.character() method called it.
readBin()/readChar() when reading millions of character strings in a single call used excessive amounts of memory (which also slowed them down).
R CMD SHLIB could fail if used with paths that were not alphanumeric, e.g. contained '+'. (PR#14168)
Escaping of braces in quoted strings in R-code sections of Rd files is allowed again. This had been changed for the new Rd format in R 2.10.0 but was only documented on the developer site and was handled inconsistently by the converters: text and example conversion removed the escapes but HTML conversion did not.
Although \eqn{} in Rd files is defined as a 'verbatim' macro, many packages expected \dots and \ldots to be interpreted there (as was the case in R < 2.10.0), so this is now done (using an ellipsis in HTML rendering).
Although \eqn{} in Rd files is defined as a 'verbatim' macro, many packages expected \dots and \ldots to be interpreted there (as was the case in R < 2.10.0), so this is now done (using an ellipsis in HTML rendering).
ks.test() could give a p-value that was off by one observation due to rounding error. (PR#14145)
ks.test() could give a p-value that was off by one observation due to rounding error. (PR#14145)
Help links containing special characters (e.g. "?") were not
generated correctly when rendered in HTML. (PR#14155)
lchoose(a,k) is now defined as log(abs(choose(a,k))), analogously to lfactorial().
Help links containing special characters (e.g. "?") were not generated correctly when rendered in HTML. (PR#14155)
Help links containing special characters (e.g. "?") were not generated correctly when rendered in HTML. (PR#14155)
lchoose(a,k) no longer wrongly gives NaN for negative a.
The dynamic HTML help system reported the wrong MIME type for the style sheet.
tools::codoc() (used by R CMD check) was missing cases where the function had no arguments but was documented to have some.
Functions related to string comparison (e.g. unique(), match()) could cause crashes when used with strings not in the native encoding, e.g. UTF-8 strings on Windows. (PR#14114 and PR#14125)
x[ , drop=TRUE] dropped an NA level, even if it was in use.
The PCRE library has been updated to version 8.00.
R CMD INSTALL has new options --no-R, --no-libs, --no-data,
--no-help, --no-demo, --no-exec, and --no-inst to suppress
installation of the specified part of the package. These are
intended for special purposes (e.g. building a database
of help pages without fully installing all packages).
The documented line-length limit of 4095 bytes when reading
from the console now also applies also to parse(file="")
(which previously had a limit of around 1024 bytes).
A Bioconductor mirror can be set for use by setRepositories()
via the option "BioC_mirror", e.g. the European mirror can be
selected by
options(BioC_mirror="http://bioconductor.statistik.tu-dortmund.de")
Double-clicking in a tk_select.list() list box now selects the
item and closes the list box (as happens on the Windows
select.list() widget).
configure will be able to find a usable libtiff in some rare
circumstances where it did not previously (where libtiff
needed to be linked explicitly against -ljpeg).
Making refman.pdf works around a problem with the indexing
with hyperref 6.79d and later.
The 'extended' argument is deprecated in strsplit(), grep(),
grepl(), sub(), gsub(), regexpr() and gregexpr() (not just the
value extended = FALSE) and will be removed in R 2.11.0.
trigamma(x) and other psigamma(x, n) calls are now accurate for
very large abs(x). (PR#14020)
[g]sub(perl=FALSE, fixed=FALSE) could use excessive stack space
when used with a very long vector containing some non-ASCII
strings.
The default method of weighted.mean(na.rm = TRUE) did not omit
weights for NA observations in 2.10.0. (PR#14032)
[g]regexpr(pattern, fixed = TRUE) returned match positions in
bytes (not characters) in an MBCS locale if 'pattern' was a
single byte.
[g]sub(fixed = TRUE) with a single-byte pattern could conceivably have matched part of a multibyte character in a non-UTF-8 MBCS.
findLineNum() and setBreakpoint() would sometimes fail if the
specified file was not in the current directory.
Package tcltk's demo(tkdensity) was broken in 2.9.0 when demo()
was changed to set par(ask = TRUE).
gsub() with backrefs could fail on extremely long strings
(hundreds of thousands of characters) due to integer overflow
in a length calculation.
abline(*, untf=TRUE) now uses a better x-grid in log-scale, e.g.,
for plot(c(1,300), c(1,300), log="xy") ; abline(4,1, untf=TRUE).
detach/unloadNamespace() arrange to flush the package's
lazyload cache of R objects once the package/namespace is no
longer needed.
There have been small fixes to the rendering of help,
e.g. \command is now rendered verbatim (so e.g. -- is not
interpreted, PR#14045).
Also, there are many small changes to help files where the new converters were not rendering them in the same way as before.
available.packages() would fail when run on a repository
with no packages meeting the filtering conditions. (PR#14042)
rep(x, times, each = 2) gave invalid results when the 'times'
argument is a vector longer than 'x'. Reported by Bill Dunlap.
An error when unloadNamespace() attempted to run the .onUnload()
function gave an error in the reporting function and so was
not reported properly.
Text help rendering did not handle very long input lines
properly.
promptMethods() generated signature documentation improperly.
pgamma(x, a, lower.tail=FALSE) and qgamma(..) are now
considerably more accurate in some regions for very small 'a'.
qgamma() now correctly returns 0 instead of NaN in similar
extreme cases, and qgamma() no longer warns in the case of
small 'a', see (PR#12324).
unname() now also removes names from a zero length vector.
Printing results from ls.str() no longer evaluates unevaluated
calls.
complete.cases() failed on a 0-column data frame argument.
(Underlies PR#14066.)
It could return nonsensical results if no input determined the number of cases (seen in the no-segfault tests).
An error in nls() with a long formula could cause a segfault.
(PR#14059)
qchisq(p, df, ncp, lower.tail = FALSE) with ncp >= 80 was
inaccurate for small p (as the help page said): it is now
less inaccurate. (In part, PR#13999.)
For ncp less than but close to 80, pchisq() and qchisq() are more accurate for probablilities very close to 1 (a series expansion was truncated slightly too early).
pchisq(x, df, ncp) can no longer return values just larger than one for large values of ncp.
intToUtf8() could fail when asked to produce 10Mb or more
strings, something it was never intended to do: unfortunately
Windows crashed R (other OSes reported a lack of resources).
(PR#14068)
chisq.test() could fail when given argument 'x' or 'y' which
deparsed to more than one line. (Reported by Laurent Gauthier.)
S4 methods are uncached whenever the name space containing
them is unloaded (by unloadNamespace() as well as by
detach(unload = TRUE)).
The internal record-keeping by dyn.load/dyn.unload was
incomplete, which could crash R if a DLL that registered
.External routines had earlier been unloaded.
bessel[JY](x, nu) with nu a negative integer (a singular case)
is now correct, analogously to besselI(), see PR#13556, below.
tools::file_path_as_absolute() doubled the file separator when
applied to a file such as "/vmunix" or (on Windows) "d:/afile"
in a directory for which getwd() would return a path with a
trailing separator (largely cosmetic, as reasonable file
systems handle such a path correctly). (Perhaps what was
meant by PR#14078.)
unsplit(drop = TRUE) applied to a data frame failed to pass
'drop' to the computation of row names. (PR#14084)
The "difftime" method of mean() ignored its 'na.rm' argument.
tcltk::tk_select.list() is now more likely to remove the
widget immediately after selection is complete.
Adding/subtracting a "difftime" object to/from a "POSIXt" or
"Date" object works again (it was broken by the addition of
Ops.difftime).
Conversion to latex of an Rd file with no aliases failed.
wilcox.test(*, conf.int=TRUE) has achieved.level corrected and, for
exact=FALSE, now gives an 'estimate' which does not depend on the
alternative used.
help.search() failed when the package argument was specified.
(PR#14113)
switch(EXPR = "A") now returns NULL, as switch(1) {which used to
signal an error}.
The handling of line textures in the postscript() and pdf() devices was set up for round end caps (the only type which existed at the time): it has now been adjusted for butt endcaps.
Using read.table(header=TRUE) on a header with an embedded new line would copy part of the header into the data. (PR#14103)
qpois(p = 1, lambda = 0) now gives 0 as for all other p. (PR#14135)
x[ , drop=TRUE] dropped an NA level, even if it was in use.
The PCRE library has been updated to version 8.00.
R CMD INSTALL has new options --no-R, --no-libs, --no-data, --no-help, --no-demo, --no-exec, and --no-inst to suppress installation of the specified part of the package. These are intended for special purposes (e.g. building a database of help pages without fully installing all packages).
The documented line-length limit of 4095 bytes when reading from the console now also applies also to parse(file="") (which previously had a limit of around 1024 bytes).
A Bioconductor mirror can be set for use by setRepositories() via the option "BioC_mirror", e.g. the European mirror can be selected by options(BioC_mirror="http://bioconductor.statistik.tu-dortmund.de")
Double-clicking in a tk_select.list() list box now selects the item and closes the list box (as happens on the Windows select.list() widget).
configure will be able to find a usable libtiff in some rare circumstances where it did not previously (where libtiff needed to be linked explicitly against -ljpeg).
Making refman.pdf works around a problem with the indexing with hyperref 6.79d and later.
The 'extended' argument is deprecated in strsplit(), grep(), grepl(), sub(), gsub(), regexpr() and gregexpr() (not just the value extended = FALSE) and will be removed in R 2.11.0.
trigamma(x) and other psigamma(x, n) calls are now accurate for very large abs(x). (PR#14020)
[g]sub(perl=FALSE, fixed=FALSE) could use excessive stack space when used with a very long vector containing some non-ASCII strings.
The default method of weighted.mean(na.rm = TRUE) did not omit weights for NA observations in 2.10.0. (PR#14032)
[g]regexpr(pattern, fixed = TRUE) returned match positions in bytes (not characters) in an MBCS locale if 'pattern' was a single byte.
[g]sub(fixed = TRUE) with a single-byte pattern could conceivably have matched part of a multibyte character in a non-UTF-8 MBCS.
findLineNum() and setBreakpoint() would sometimes fail if the specified file was not in the current directory.
Package tcltk's demo(tkdensity) was broken in 2.9.0 when demo() was changed to set par(ask = TRUE).
gsub() with backrefs could fail on extremely long strings (hundreds of thousands of characters) due to integer overflow in a length calculation.
abline(*, untf=TRUE) now uses a better x-grid in log-scale, e.g., for plot(c(1,300), c(1,300), log="xy") ; abline(4,1, untf=TRUE).
detach/unloadNamespace() arrange to flush the package's lazyload cache of R objects once the package/namespace is no longer needed.
There have been small fixes to the rendering of help, e.g. \command is now rendered verbatim (so e.g. -- is not interpreted, PR#14045).
Also, there are many small changes to help files where the new converters were not rendering them in the same way as before.
available.packages() would fail when run on a repository with no packages meeting the filtering conditions. (PR#14042)
rep(x, times, each = 2) gave invalid results when the 'times' argument is a vector longer than 'x'. Reported by Bill Dunlap.
An error when unloadNamespace() attempted to run the .onUnload() function gave an error in the reporting function and so was not reported properly.
Text help rendering did not handle very long input lines properly.
promptMethods() generated signature documentation improperly.
pgamma(x, a, lower.tail=FALSE) and qgamma(..) are now considerably more accurate in some regions for very small 'a'. qgamma() now correctly returns 0 instead of NaN in similar extreme cases, and qgamma() no longer warns in the case of small 'a', see (PR#12324).
unname() now also removes names from a zero length vector.
Printing results from ls.str() no longer evaluates unevaluated calls.
complete.cases() failed on a 0-column data frame argument. (Underlies PR#14066.)
It could return nonsensical results if no input determined the number of cases (seen in the no-segfault tests).
An error in nls() with a long formula could cause a segfault. (PR#14059)
qchisq(p, df, ncp, lower.tail = FALSE) with ncp >= 80 was inaccurate for small p (as the help page said): it is now less inaccurate. (In part, PR#13999.)
For ncp less than but close to 80, pchisq() and qchisq() are more accurate for probablilities very close to 1 (a series expansion was truncated slightly too early).
pchisq(x, df, ncp) can no longer return values just larger than one for large values of ncp.
intToUtf8() could fail when asked to produce 10Mb or more strings, something it was never intended to do: unfortunately Windows crashed R (other OSes reported a lack of resources). (PR#14068)
chisq.test() could fail when given argument 'x' or 'y' which deparsed to more than one line. (Reported by Laurent Gauthier.)
S4 methods are uncached whenever the name space containing them is unloaded (by unloadNamespace() as well as by detach(unload = TRUE)).
The internal record-keeping by dyn.load/dyn.unload was incomplete, which could crash R if a DLL that registered .External routines had earlier been unloaded.
bessel[JY](x, nu) with nu a negative integer (a singular case) is now correct, analogously to besselI(), see PR#13556, below.
tools::file_path_as_absolute() doubled the file separator when applied to a file such as "/vmunix" or (on Windows) "d:/afile" in a directory for which getwd() would return a path with a trailing separator (largely cosmetic, as reasonable file systems handle such a path correctly). (Perhaps what was meant by PR#14078.)
unsplit(drop = TRUE) applied to a data frame failed to pass 'drop' to the computation of row names. (PR#14084)
The "difftime" method of mean() ignored its 'na.rm' argument.
tcltk::tk_select.list() is now more likely to remove the widget immediately after selection is complete.
Adding/subtracting a "difftime" object to/from a "POSIXt" or "Date" object works again (it was broken by the addition of Ops.difftime).
Conversion to latex of an Rd file with no aliases failed.
wilcox.test(*, conf.int=TRUE) has achieved.level corrected and, for exact=FALSE, now gives an 'estimate' which does not depend on the alternative used.
help.search() failed when the package argument was specified. (PR#14113)
switch(EXPR = "A") now returns NULL, as switch(1) {which used to signal an error}.
toLatex(sessionInfo()) produced incorrect LaTeX on some platforms due to special characters in the platform identifier.
* Older news is available in the sources: * * 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:
switch(EXPR = "A") now returns NULL, as switch(1) {which used to signal an error}.
help.search() failed when the package argument was specified. (PR#14113)
wilcox.test(*, conf.int=TRUE) has achieved.level corrected and, for exact=FALSE, now gives an 'estimate' which does not depend on the alternative used.
Double-clicking in a tk_select.list() list box now selects the item and closes the list box (as happens on the Windows select.list() widget).
Conversion to latex of an Rd file with no aliases failed.
A Bioconductor mirror can be set for use by setRepositories() via the option "BioC_mirror", e.g. the European mirror can be selected by options(BioC_mirror="http://bioconductor.statistik.tu-dortmund.de")
The documented line-length limit of 4095 bytes when reading from the console now also applies also to parse(file="") (which previously had a limit of around 1024 bytes).
Adding/subtracting a "difftime" object to/from a "POSIXt" or "Date" object works again (it was broken by the addition of Ops.difftime).
Making refman.pdf works around a problem with the indexing with hyperref 6.79fd and later.
qchisq(p, df, ncp, lower.tail = FALSE) with ncp >= 80 was inaccurate for small p (as the help page said): it is now less inaccurate. (In part, PR#13999.)
For ncp less than but close to 80, pchisq() and qchisq() are more accurate for probablilities very close to 1 (a series expansion was truncated slightly too early).
pchisq(x, df, ncp) can no longer can return values just larger than one for large values of ncp.
unsplit(drop = TRUE) applied to a data frame failed to pass 'drop' to the computation of row names. (PR#14084)
Making refman.pdf works around a problem with the indexing with hyperref 6.79fd and later.
qchisq(p, df, ncp, lower.tail = FALSE) with ncp >= 80 was inaccurate for small p (as the help page said): it is now less inaccurate. (In part, PR#13999.)
For ncp less than but close to 80, pchisq() and qchisq() are more accurate for probablilities very close to 1 (a series expansion was truncated slightly too early).
pchisq(x, df, ncp) can no longer can return values just larger than one for large values of ncp.
unsplit(drop = TRUE) applied to a data frame failed to pass 'drop' to the computation of row names. (PR#14084)
unsplit(drop = TRUE) applied to a data frame failed to pass 'drop' to the computation of row names.
The "difftime" method of mean() ignored its 'na.rm' argument.
tcltk::tk_select.list() is now more likely to remove the widget immediately after selection is complete.
Making the refman.pdf works around a problem with the indexing with hyperref 6.79f.
pchisq(x, df, ncp=L) no longer can return values slightly larger
than one for large L.
pgamma(x, a, lower.tail=FALSE) and qgamma(..) are now considerably more accurate in some regions for very small 'a'. qgamma() now correctly returns 0 instead of NaN in similar extreme cases, and qgamma() no longer warns in the case of small 'a', see (PR#12324).
qchisq(p, df, ncp, lower.tail = FALSE) with ncp >= 80 was inaccurate for small p (as the help page said): it is now less inaccurate. (In part, PR#13999.)
For ncp less than but close to 80, pchisq() and qchisq() are more accurate for probablilities very close to 1 (a series expansion was truncated slightly too early).
pchisq(x, df, ncp) no longer can return values just larger than one for large values of ncp.
The internal record-keeping by dyn.load/dyn.unload was incomplete, which this could crash R if a DLL that registered .External routines had earlier been unloaded.
tools::file_path_as_absolute() doubled the file separator when applied to a file such as "/vmunix" or (on Windows) "d:/afile" in a directory for which getwd() would return a path with a trailing separator (largely cosmetic, as reasonable file systems handle such a path correctly). (Perhaps what was meant by PR#14078.)
pchisq(x, df, ncp=L) no longer can return values slightly larger than 1, and for now gives an accuracy warning for L > 80one for large L.
bessel[JY](x, nu) with nu a negative integer (a singular case) is now correct, analogously to besselI(), see PR#13556, below.
pchisq(x, df, ncp=L) no longer can return values slightly larger than 1, and for now gives an accuracy warning for L > 80.
Making the refman.pdf works around a problem with the indexing with hyperref 6.79f.
R CMD INSTALL has new options --no-R, --no-libs, --no-data, --no-help, --no-demo, --no-exec, and --no-inst to suppress installation of the specified part of the package. These are intended for special purposes (e.g. building a database of help pages without fully installing all packages).
The internal record-keeping by dyn.load/dyn.unload was incomplete, which this could crash R if a DLL that registered .External routines had earlier been unloaded.
chisq.test() could fail when given argument 'x' or 'y' which deparsed to more than one line. (Reported by Laurent Gauthier.)
S4 methods are uncached whenever the name space containing them is unloaded (by unloadNamespace() as well as by detach(unload = TRUE)).
intToUtf8() could fail when asked to produce 10Mb or more strings, something it was never intended to do: unfortunately Windows crashed R (other OSes reported a lack of resources). (PR#14068)
complete.cases() failed on a 0-column data frame argument. (Underlies PR#14066.)
It could return nonsensical results if no input determined the number of cases (seen in the no-segfault tests).
qnchisq(p, df,chisq(p, df, ncp, lower.tail = FALSE) with ncp >= 80 was inaccurate for small p (as the help page said): it is now less inaccurate. (In part, PR#13999.)
For ncp, lower.tail = FALSE) with ncp >= 80 was inaccurate for small p (as the help page said): it is now less inaccurateess than but close to 80, pchisq() and qchisq() are more accurate for probablilities very close to 1 (a series expansion was truncated slightly too early).
complete.cases() failed on a 0-column data frame argument. (Underlies PR#14066.)
An error in nls() with a long formula could cause a segfault. (PR#14059)
qnchisq(p, df, ncp, lower.tail = FALSE) with ncp >= 80 was inaccurate for small p (as the help page said): it is now less inaccurate.
pPrinting ls.str() resultsresults from ls.str() no longer evaluates unevaluated calls.
unname() now also removes names from a zero length vector.
printing ls.str() results no longer evaluates unevaluated calls.
pgamma(x, a, lower.tail=FALSE) and qgamma(..) are now considerably more accurate in some regions for very small 'a'. qgamma() now correctly returns 0 instead of NaN in similar extreme cases, and qgamma() no longer warns in the case of small 'a', see (PR#12324).
pgamma(x, a, lower.tail=FALSE) and qgamma(..) are now considerably more accurate in some regions for very small 'a'. qgamma() now correctly returns 0 instead of NaN in similar extreme cases, and qgamma() no longer warns in the case of small 'a', see (PR#12324).
New as.raw() method for "tclObj" objects (wish of PR#1357758).
promptMethods() generated signature documentation improperly.
An error when unloadNamespace() attempted to run the .onUnload() function gave an error in the reporting function and so was not reported properly.
Text help rendering did not handle very long input lines properly.
available.packages() cwould fail when run on a small repository repository with no packages meeting the filtering conditions. (PR#14042).
rep(x, times, each= = 2) gave invalid results when the 'times' argument is a vector longer than 'x'. Reported by Bill Dunlap.
The PCRE library has been updated to version 8.00.
detach/unloadNamespace() arrange to flush the package's lazyload cache of R objects once the package/namespace is no longer needed.
There have been small fixes to the rendering of help, e.g. \command is now rendered verbatim (so e.g. -- is not interpreted, PR#14045).
Also, there are many small changes to help files where the new converters were not rendering them in the same way as before.
available.packages() could fail when run on a small repository (PR#14042).
rep(x, times, each=2) gave invalid results when the 'times' argument is a vector longer than 'x'. Reported by Bill Dunlap.
[g]sub(perl=FALSE, fixed=FALSE) could use excessive stack space when used with a very long vector containing some non-ASCII data strings.
abline(*, untf=TRUE) now uses a better x-grid in log-scale, e.g., for plot(c(1,300), c(1,300), log="xy") ; abline(4,1, untf=TRUE).
gsub() with backrefs could fail on extremely long strings (hundreds of thousands of characters) due to integer overflow in a length calculation.
gsub() with backrefs could fail on extremely long strings (hundreds of thosands of characters) due to integer overflow in a length calculation.
Package tcltk's demo(tkdensity) was broken in 2.9.0 when demo() was changed to set par(ask = TRUE).
[g]regexpr(pattern, fixed = TRUE) returned match positions in bytes (not characters) in an MBCS locale if 'pattern' was a single byte.
[g]sub(fixed = TRUE) with a single-byte pattern could conceivably have matched part of a multibyte character in a non-UTF-8 MBCS.
findLineNum() and setBreakpoint() would sometimes fail if the specified file was not in the current directory.
[g]sub() could use excessive stack space when used with a very long vector ofcontaining some non-ASCII data.
The 'extended' argument is deprecated in strsplit(), grep(), grepl(), sub(), gsub(), regexpr() and gregexpr() (not just the value extended = FALSE) and will be removed in R 2.11.0.
trigamma(x) and other psigamma(x, n) calls are now accurate also for very large abs(x). (PR#14020)
The default method of weighted.mean(na.rm = TRUE) did not omit weights for NA observations in 2.10.0. (PR#14032)
configure will be able to find a usable libtiff isn some rare circumstances where it did not previously (where libtiff needed to be linked explicitly against -ljpeg).
[g]sub() could use excessive stack space when used with a very long vector of non-ASCII data.
configure will be able to find a usable libtiff is some rare circumstances where it did not previously (where libtiff needed to be linked explicitly against -ljpeg).
trigamma(x) and other psigamma(x,n) calls are now accurate also for very large abs(x). (PR#14020)
New print() (S3) method for class "function", also used for auto-printing. Further, .Primitive functions now print and auto-print identically. The new method is based on code suggestions by Romain Franççois.
A new dynamic HTML help system is used by default, and may be controlled using tools::startDynamicHelp(). With this enabled, HTML help pages will be generated on request, resolving links by searching through the current .libPaths(). The user may set options("help.ports") to control which IP port is used by the server.
Trying to assign into a raw vector with an index vector containing NAs could cause a segfault. Reported by Hervéé Pagèès.
gregexpr() no longer segfaults when "" is given as the search pattern. Thanks to Hervéé Pagèès for the bug report.
CHAR() now returns (const char *) since CHARSXPs should no longer be modified in place. This change allows compilers to warn or error about improper modification. Thanks to Hervéé Pagèès for the suggestion.
Unserializing a pre-2.8 workspace containing pure ASCII character objects with a LATIN1 or UTF-8 encoding would corrupt the CHARSXP cache.
Unserializing a pre-2.8 workspace containing pure ASCII character objects with a LATIN1 or UTF-8 encoding would corrupt the CHARSXP cache.
A new dynamic HTML help system is used by default, and may be controlled using tools::startDynamicHelp(). With this enabled, HTML help pages will be generated on request, resolving links by searching through the current .libPaths(). The user may set option("help.ports") to control which IP port is used by the server.
pbeta(x, *, log.p = TRUE) is sometimes more accurate, e.g., for very small x.
help.start() no longer fails on unix when "browser" is a function.
gzfile() looks at the file header and so can now also read bzip2-ed files and xvz-compressed files.
file() for open = "", "r" or "rt" will automagically detect compressed files (from gzip, bzip2 or xvz). This means that compressed files can be specified by file name (rather than via a gzfile() connection) to read.table(), readlines(), scan() and so on.
R CMD INSTALL has a new option --data-compress to control the compression used when lazy-loading data. One new option isNew possibilities are --data-compress=bzip2 which will give ca 15% better compression at the expense of slower installation times. Also, and --data-compress=xz, often giving even better compression on large datasets at the expense of much longer installation times. (The latter is used for the recommended packages: it is particularly effective for 'survival'.)
file() for open = "", "r" or "rt" will automagically detect compressed files (from gzip, bzip2 or xv). This means that compressed files can be specified by file name to (rather than via a gzfile() connection) to read.table(), readlines(), scan() and so on.
The 'type' argument of index.search() is deprecated: there are no longer directories of types other than 'help'.
Having a version of 'tar' capable of automagically detecting compressed archives is useful for utils::untar(), and so 'gtar' (a common name for GNU tar) is preferred to 'tar': set environment variable TAR to specify a particular 'tar' command.
R CMD replaced TEXINPUTS rather than appending to it (as documented and intended).
load(), save(), dput() and dump() now open a not-yet-open connection in the appropriate mode (as other functions using connections directly already did).
Tags \if, \ifelse and \out have been added to allow format-specific (or more general, using \Sexpr) conditional text in man pages.
The 'type' argument of index.search() is deprecated: there are no longer directories of types other than 'help'.
load(), save(), dput() and dump() now open a not-yet-open connection in the appropriate mode (as other functions using connections directly already did).
Tags \if and \out have been added to allow format-specific (or more general, using \Sexpr) conditional text in man pages.
file() for open = "", "r" or "rt" will automagically detect compressed files (from gzip, bzip2 or xv). This means that compressed files can be specified by file name to read.table(), readlines(), scan() and so on.
data() can handle compressed text files with extensions .{txt,tab,csv}.{gz,bz2,xz} .
stripchart() allows par 'bg' to be passed in for the background colour for pch = 21 (wish of PR#13984).
New generic function .DollarNames() to enable class authors to customize completion after the $ extractor.
There are the beginnings of a Nynorsk translation by Karl Ove Hufthammer.
prettyNum(z, drop0trailing=TRUE) did not work correctly when z was a complex vector. Consequently, str(z, ...) also did not. (PR#13985)
'make distclean' removed too many files in etc/ if builddir = srcdir.
arrows() and segments() allow one of x1 or y1 to be omitted to simplify the specification of vertical or horizontal lines (suggestion of Tim Hesterberg).
approxfun() is faster by avoiding repeated NA checks (diagnosis and patch by Karline Soetaert & Thomas Petzoldt).
Logic operations with complex numbers now work, as they were always documented to, and as in S.
order() was missing a PROTECT() call and so could segfault when called on character data under certain (rare) circumstances involving marked non-native encodings.
R_ReplDLLinit() initializes the top-level jump so that embedding some embedded applications on Windows no longer crash on error.
ATrying to assigning into a raw vector with an index vector containing NAs could cause a segfault. Reported by Hervé Pagès.
Rscript wcould segfault if (by user error) its filename argument was not providedmissing. Reported by Martin Morgan.
getAnywhere() (and functions that use it, including argument completion in the console) did not handle special built-in functions properly. Reported by Romain Francois.
parse_Rd() now recognizes the \var tag within a quoted string in R-like text.
parse_Rd() now treats the argument of \command as LaTeX-like, rather than verbatim.
Tags \if and \out have been added to allow format-specific (or more general, using \Sexpr) conditional text in man pages.
getAnywhere (and functions that use it, including argument completion in the console) did not handle special built-in functions properly. Reported by Romain Francois.
Logic operations with complex numbers now work, as they were always documented, and as in S.
More functions now have an implicit (S4) generic definition.
File ~/.R/config is used in preference to ~/.Rconfig, and these are now documented in 'R Installation and Administration'.
Use of ~/.Rconf (which was deprecated in favour of ~/.Rconfig in 2004) has finally been removed.