This blog is updated daily..
A general description is here.
Input from the Rgui console was changing the letter 255 (ÿÿ in Latin-2) in the character set to letter 1.
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)).
The HTML package index was not constructed properly when the library path was specified with backslashes. (Patch submitted by Gabor Grothendieck.)
Input from the Rgui console was changing the letter 255 (ÿÿ in Latin-2) in the character set to letter 1.
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).
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.
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.
The PCRE library has been updated to version 8.00.
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.
[g]sub(perl=FALSE, fixed=FALSE) could use excessive stack space when used with a very long vector containing some non-ASCII data strings.
Rcmd INSTALL once again uses --no-restore, for consistency with the Unix version and R 2.9.2.
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.
The default method of weighted.mean(na.rm = TRUE) did not omit weights for NA observations in 2.10.0. (PR#14032)
trigamma(x) and other psigamma(x, n) calls are now accurate also for very large abs(x). (PR#14020)
'Rcmd open' now works as documented: previously 'Rcmd open.exe' was required.
cat(x, file=) in Rgui tried to interpret UTF-8-encoded strings for the console rather than converting them to the native encoding.
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.
The installer did not properly record help type choices in R_HOME/etc/Rprofile.site.
Unserializing a pre-2.8 workspace containing pure ASCII character objects with a LATIN1 or UTF-8 encoding would corrupt the CHARSXP cache.
cat(x, file=) in Rgui tried to interpre UTF-8-encoded strings for the console rather than converting them to the native encoding.
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.
'Rcmd open' now work as documented: previously 'Rcmd open.exe' was required.
The remaining Perl scripts build, check, Rprof, Sd2Rd in R_HOME/bin now have extension .pl.
Rcmd (or R CMD) can now run .sh (shell) and .pl (Perl) scripts anywhere on the path (as well as .bat and .exe files as before).
Help in base and recommended packages is no longer zipped: text,
HTML, latex and examples files are now built when needed.
Options --use-zip and --use-zip-help in R CMD INSTALL are no longer available and --auto-zip only zips data (or not).
Help in packages installed under 2.9.x may not work correctly, and a warning is given when such a package is attached by library(). Re-installation of all packages is advised (use update.packages(checkBuilt = TRUE)).
Binary packages are installed without CHM help if they contain it (as those intended for 2.9.x may).
Help files are no longer zipped: rendering as text, HTML, latex or examples is now done when needed.
Options --use-zip and --use-zip-help in R CMD INSTALL are no longer available and --auto-zip only zips data (or not).
Help in packages installed under 2.9.x may not work correctly, and a warning is given when such a package is attached by library(). Re-installation of all packages is strongly recommended (use update.packages(checkBuilt = TRUE)).
Binary packages are installed without CHM help if they contain it (as those intended for 2.9.x may).
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.
