This blog is updated daily..
A general description is here.
readline() in non-interactive use returns "" and does not attempt to read from the 'terminal'.
The use of .required by require/detach has been replaced by .Depends which is set from the 'Depends' field of a package (even in packages with name spaces). By default detach() prevents such dependencies from being detached in interactive use, and warns otherwise. [The default is intended to be changed before release.]: this can be overridden by the argument 'force'.
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).
detach() when applied to an object other than a package returns the environment that has been detached.
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)).
bquote() has been extended to work on function definitions (wish of PR#14031).
The use of .required by require/detach has been replaced by .Depends which is set from the 'Depends' field of a package (even in packages with name spaces). By default detach() prevents such dependencies from being detached in interactive use, and warns otherwise. [The default is intended to be changed before release.]
Placeholder.
Using with(), eval() etc with a list with some unnamed elements now works. (PR#14035)
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)
The index page for HTML help for a package now collapses multiple signatures for S4 methods into a single entry.
The [ method for class "AsIs" allows the next method to change the underlying class. (Wish of Jens Oehlschläägel.)
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).
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.
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 main HTML help page now links to this NEWS file. (Suggested by Henrik Bengtsson.) Package index files link to a list of demos when using dynamic help.
The [ method for class "AsIs" allows the next method to change the underlying class. (Wish of Jens Oehlschlägel.)
write.csv[2] no longer allow 'append' to be changed.
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.
A new function vapply() has been added, based on a suggestion from Bill Dunlap. It requires that a template for the function value be specified, and uses it to determine the output type and to check for consistency in the function values.
prop.table(x) now accepts a one-dimensional table for x.
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).
prop.table(x) now accepts a one-dimensional table for x
New as.raw() method for "tclObj" objects (wish of PR#1357758).
index.search() is no longer exported and has a different
argument list.
index.search() (which was deprecated in 2.10.0) is no longer exported and has a different argument list.
promptMethods() generated signature documentation improperly.
R CMD check now also checks if the package and namespace can be unloaded: this provides a check of the .Last.lib() and .onUnload() hook functions (unless --install=fake).
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.
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 treTRE library has been updated to version 0.8.0 (minor bugfixes).
rep(x, times, each=2) gave invalid results when the times
argument is a vector longer than x. Reported by Bill Dunlap.
Placeholder.
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.
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.
gsub() with backrefs could fail on extremely long strings (hundreds of thousands of characters) due to integer overflow in a length calculation.
rep(x, times, each=2) gave invalid results when the times argument is a vector longer than x. Reported by Bill Dunlap.
gsub() with backrefs could fail on extremely long strings (hundreds of thosands of characters) due to integer overflow in a length calculation.
Package tcltk now sends strings to Tcl in UTF-8: this means that strings with a marked UTF-8 encoding are supported in non-UTF-8 locales.
The graphics engine now supports rendering of raster (bitmap) images, though not all graphics devices can provide (full) support. Graphics device packages, e.g., RSvgDevice, will need to be reinstalled.
There is also support in the graphics engine for capturing raster images from graphics devices (again not supported on all graphics devices).
Package tcltk's demo(tkdensity) was broken in 2.9.0 when demo() was changed to set par(ask = TRUE).
More validity checking of UTF-8 and MBCS strings is done by agrep() and the regular-expression matching functions.
The PCRE library has been updated to version 8.00.
The undocumented restriction on gregexpr() to length(text) > 0 has been removed.
grep[l], [g]sub and [g]regexpr now work in bytes in an 8-bit locales if there is no marked UTF-8 input string: this will be somewhat faster, and for [g]sub() give the result in the native encoding rather than in UTF-8 (which was the behaviour prior to R 2.10.0).
A new argument 'skipCalls' has been added to browser() so that it can report the original context when called by other debugging functions.
[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.
Basic regular expressions (extended = FALSE) are defunct in , and strsplit(), grep and friends(), grepl(), sub(), gsub(), regexpr() and gregexpr() no longer have an 'extended' argument.
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)
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.
The tre library has been updated to version 0.8.0 (minor bugfixes).
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)
trigamma(x) and other psigamma(x,n) calls are now accurate also for
very large abs(x). (PR#14020)
[will move to '2.10 patched']
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.
R CMD check has a new option '--timings' for record per-example timings in file <pkg>.Rcheck/<pkg>-Ex.timings.
trigamma(x) and other psigamma(x,n) calls are now accurate also for very large abs(x). (PR#14020) [will move to '2.10 patched']
help(try.all.packages = TRUE) is much faster (although the time taken by the OS to find all the packages the first time it is used can dominate the time).
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.
An experimental tag \Sexpr has been added to Rd files, to evaluate expressions at build, install, or render time. (Currently install time and render time evaluation is not supported.)are supported but not used in base or contributed packages unless the environment variable USE_NEW_HELP is set during installation.
length(x) <- newval could cause memory corruption. (Reported by Hervé Pagès in PR#13837)
help.start() no longer fails on unix when "browser" is a function.
R CMD INSTALL now uses the internal untar() in package utils: this ensures that all platforms can install bzip2- and xz-compressed tarballs.
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).
New generic function .DollarNames() to enable class authors
to customize completion after the $ extractor.
The 'open' modes for connections are now interpreted more consistently. open = "r" is now equivalent to open = "rt" for all connections. The default open = "" now means "rt" for all connections except the compressed file connections gzfile(), bzfile() and xzfile() for which it means "rb".
index.search() is no longer exported and has a different argument list.
New generic function .DollarNames() to enable class authors to customize completion after the $ extractor.
load(), save(), dput() and dump() now open a not-yet-open connection in the appropriate mode (as other functions using connections directly already did).
The 'type' argument of index.search() is deprecated: there are no longer directories of types other than 'help'.
New generic function .DollarNames() to enable class authors
to customize completion after the $ extractor.
The 'open' modes for connections are now interpreted more consistently. open = "r" is now equivalent to open = "rt" for all connections. The default open = "" now means "rt" for all connections except the compressed file connections gzfile(), bzfile() and xzfile() for which it means "rb".
New Rd tag \ifelse to complement \if.
New generic function .DollarNames() to enable class authors to customize completion after the $ extractor.
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.
Packages must have been installed under R 2.10.0 or later, as the current help system is the only one now supported.
stripchart() allows par 'bg' to be passed in for the background colour for pch = 21 (wish of PR#13984).
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} .
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.
New as.raw() method for "tclObj" objects (wish of PR#13578).
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 Francçois.
Outlier symbols drawn by boxplot() now obey the 'outlwd' argument. Reported by Jüürgen Kluge.
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.
srcref records produced by parse() and parse_Rd() did not record the encoding of the source file. (Reported by Romain Franççois.)
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.
Assigning into a raw vector with an index vector containing NA could cause a segfault. Reported by Hervé Pagès.
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.
Tags \if, \ifelse and \out have been added to allow format-specific (or more general, using \Sexpr) conditional text in man pages.
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.
Bundles of packages are defunct. [In progress: so far R CMD build cannot build them, and R CMD check refuses them.]
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'.
Bundles of packages are defunct. [In progress: so far R CMD build cannot build them, and R CMD check refuses them.]
stats::clearNames() is defunct: use unname().
Basic regular expressions (extended = FALSE) are defunct in strsplit, grep and friends.
methods::trySilent() is defunct.
Use of ~/.Rconf (which was deprecated in favour of ~/.Rconfig in 2004) has finally been removed.
Package help is now converted from Rd by the R-based converters that were first introduced in 2.9.0. This means
- Packages that were installed by R-devel after 2009-08-09 should not be used with earlier versions of R, and somemost aspects of package help (including the runnable examples) will be missing if they are so used. (Text, HTML and latex help and the runnable examples.)
- Text, HTML and latex help and examples for packages installed under the new system are converted on-demand from stored parsed Rd files. (Conversions stored in packages installed under R < 2.10.0 are used if no parsed Rd files are found.)
- Rd version 2 is required in help files. It is recommended that such packages be re-installed.)
HTML help is now generated dynamically using an HTTP server running in the R process and listening on the loopback interface.
- Those who need to worryorried about security implications of such a server can disable it by setting the environment variable R_DISABLE_HTTPD to a non-empty value. This disables help.start() and HTML help (so text help is shown instead).
- The Java/Javascript search engine has been replaced by an HTML interface to help.search(). help.start() no longer has an argument 'searchEngine' as it is no longer needed.
- The HTML help can now locate cross-references of the form \link[pkg]{foo} and \link[pkg:foo]{bar} where 'foo' is an alias in the package, rather than the documented (basename of a) filename (since the documentation has been much ignored).
- Details may change before release.
codocClasses(), which checks consistency of S4 class slots' documentationthe documentation of S4 class slots, now does thisso in considerably more cases. The documentation of inherited slots (from superclasses) is now optional. This affects 'R CMD check <pkg>' when the package defines S4 classes.
[Experimental] File NEWS is now in UTF-8, and has a BOM (often invisible) on the first line, and Emacs local variables set for UTF-8 at the end. RShowDoc("NEWS") should display this correctly, given suitable fonts.
The argument f='f' to showMethods() can be an expression evaluating to a generic function, allowing methods to be shown for non-exported generics and other nonstandard cases.
It is possible to ask for static HTML pages to be prebuilt via the configure option --enable-prebuilt-html. This may be useful for those who wish to make HTML help available outside R, e.g. on a local web site.
help() has a new argument 'help_type' (with default set by the option of that name) to supersede 'offline', 'htmlhelp' and 'chmhelp' (although for now they still work if 'help_type' is unset). There is a new type, "PDF" to allow offline PDF (rather than PostScript).
A function offline_help_helper() will be used if this exists in the workspace or further down the search path, otherwise the function of that name in the 'utils' name space is used.
Plain text help is now used as the fallback for HTML help (as it always has beenwas for Compiled HTML help on Windows).
R CMD INSTALL has a new option --data-compress to control the compression used when lazy-loading data. One new option is --data-compress=bzip2 which will give ca 15% better compression at the expense of slower installation times. Also --data-compress=xz, often giving even better compression on large datasets at the expense of much slownger installation times.
help() arguments 'offline', 'htmlhelp' and 'chmhelp' are deprecated in favour of 'help_type'.
methods::trySilent() is deprecated for try(*, silent=TRUE) or -- more efficiently and flexibly-- - something like tryCatch(*, error= = function(e) e).
Assigning into a raw vector with an index vector containing NAs could cause a segfault. Reported by Hervé Pagès.
Names of datasets could clash with temporary filenames used
when running examples, causing errors.
On systems using zipped data and help (Windows) the names of datasets could clash with temporary filenames used when running examples, causing errors.
cat() on an unopened connection could close it twice, and with file() connections segfaulted on some systems.
Package help is now converted from Rd by the R-based converters that were first introduced in 2.9.0. This means
- Packages that were installed by R-devel after 2009-08-09 should not be used with earlier versions of R, and some aspects of package help will be missing if therey are so used. (Text, HTML and latex help and the runnable examples.)
- Text, HTML and latex help and examples for packages installed under the new system are converted on-demand from stored parsed Rd files. (Conversions stored in R < 2.10.0 are used if no parsed Rd files are found.)
- Rd version 2 is required in help files.
Name subscripts in data.frame methods for [ and [[ now gives a
warning. (Names are ignored in the default method, but could
have odd semantics for other methods, and do for the
data.frame ones.)
Naming subscripts (e.g. x[i=1, j=2]) in data.frame methods for [ and [[ now gives a warning. (Names are ignored in the default method, but could have odd semantics for other methods, and do for the data.frame ones.)
for(), while(), and repeat() loops now always return NULL as their (invisible) value. This change was needed to address a reference counting bug without creating performance penalties for some common use cases.
factor(NULL) now returns the same as factor(''[0])character(0)) instead of an error, and table(NULL) consequently does analogously.
New function xzfile() for use with xz-compressed files, if suitable OS support is found at configuration. (This can also read files compressed by some versions of 'lzma'.) The new capabilities("xz") reports if it is supported.
gzfile() looks at the file header and so can now also read bzip2-ed files and xv-compressed files (where supported).
There isare the new options of save(compress = "bzip2") and "xz" to use bzip2 or xz compression (which will be slower, but can give substantially smaller files).smaller files). Argument compression_level gives finer control over the space/time tradeoffs.
load() can read such saves (but only as from this version of R). Also "xz" where supported.
R CMD INSTALL has a new option --data-compress to control the compression used when lazy-loading data. One new option is --data-compress=bzip2 which will give ca 15% better compression at the expense of slower installation times. Also --data-compress=xz where supported, often giving even better compression on large datasets at the expense of much slower installation times.
Assigning into a raw vector with an index vector containing NA could cause a segfault. Reported by Hervé Pagès.
Rscript would segfault if its filename argument was not provided. Reported by Martin Morgan.
list.files() (also known as dir()) has a new argument
'include.dirs' to control whether directories are included in
the listing: the default of include.dirs = !recursive is
unchanged.
Package 'tools' has new functions checkRdaFiles() and resaveRdaFiles() to report on the format of .rda/.RData data files, and to re-save them in a different compressed format, including choosing the most compact format available.
A new INSTALL option, --resave-data, makes use of this.
New function Sys.readlink() for information about symbolic links, including if a file is a symbolic link.
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..
HTML help is now generated dynamically using an HTTP server running in the R process and listening on the loopback interface.
- Those who need to worry about security implications of such a server can disable it by setting the environment variable R_DISABLE_HTTPD to a non-empty value. This disables help.start() and HTML help (so text help is shown instead).
- The Java/Javascript search engine has been replaced by an HTML interface to help.search(). help.start() no longer has an argument 'searchEngine' as it is no longer needed.
- The HTML help can now locate cross-references of the form \link[pkg]{foo} and \link[pkg:foo]{bar} where 'foo' is an alias in the package, rather than the documented (basename of a) filename (since the documneentation has been much ignored).
- Details may change before release.
list.files() (also known as dir()) has a new argument 'include.dirs' to control whether directories are included in the listing: the default of include.dirs = !recursive is unchanged.
A different regular expression engine is used for basic and extended regexps and is also for approximate matching. This is based on the TRE library of Ville Laurikari, a modifed copy of which is included in the R sources.
This is often faster, especially in a MBCS locale.
Some known differences are that it is less tolerant of invalid inputs in MBCS locales, and in its interpretation of undefined (extended) regexps such as "^*". Also, the interpretation of ranges such as [W-z] in caseless matching is no longer to map the range to lower case.
This engine may in future be used in 'literal' mode for fixed = TRUE, and there is a compile-time option in src/main/grep.c to do so.
Basic and extendedExtended (and basic) regexps now support same set of options as for fixed = TRUE and perl = TRUE, including 'useBytes' and support for UTF-8-encoded strings in non-UTF-8 locales.
The algorithm used by strsplit() has been reordered to batch by elements of 'split': this can be much faster for fixed = FALSE (as multiple compilation of regexps is avoided).
New functions memCompress() and memDecopmmpress() for in-memory compression and decompression.
gzfile() looks at the file header and so can now also read bzip2-ed files and xv-comppressed files (where supported).
The check for consistent ordering of superclasses was not ignoring all conditional relations (the symptom was usually spurious warnings for classes extending "array").
sprintf() now supports '%o' for octal conversions.
New function Sys.readlink() for information about symbolic links.
In registering an S3 class by a call to setOldClass(), the data part (e.g., the object type) required for the class can be included as one of the superclasses in the Classes argument.
The argument f= to showMethods() can be an expression evaluating to a generic function, allowing methods to be shown for non-exported generics and other nonstandard cases.
New function tar() to create (possibly compressed) tar archives.
New function untar() to list or unpack tar archives, possibly compressed. This uses either an external 'tar' command or an internal implementation.
New functions memCompress() and memDecopmress() for in-memory compression and decompression.
bzfile() has a 'compress' argument to select the amount of effort put into compression when writing.
New function xzfile() for use with xz-compressed files, if suitable OS support is found at configuration. (This can also read files compressed by some versions of 'lzma'.) The new capabilities("xz") reports if it is supported.
gzfile() looks at the file header and so can now also read bzip2-ed files and xv-comppressed files (where supported).
There is the new option of save(compress = "bzip2") to use bzip2 compression (which will be slower, but can give substantially smaller files). load() can read such saves (but only as from this version of R). Also "xz" where supported.
R CMD INSTALL/check and tools::writePACKAGES accept a wider range of compressed tar archives. Precisely how wide depends on the capabilities of the host system's 'tar' command: they almost always include .tar.bz2 archives, and with modern versions of 'tar' other forms of compression such as lzma and xz, and arbitrary extensions.
R CMD INSTALL has a new option --data-compress to control the compression used when lazy-loading data. One new option is --data-compress=bzip2 which will give ca 15% better compression at the expense of slower installation times. Also --data-compress=xz where supported, often giving even better compression on large datasets at the expense of much slower installation times.
New function untar() to list or unpack tar archives, possibly
compressed. This uses either an external 'tar' command or an
internal implementation.
R CMD INSTALL/check and tools::writePACKAGES accept a wider
range of compressed tar archives. Precisely how wide depends
on the capabilities of the host system's 'tar' command: they
almost always include .tar.bz2 archives, and with modern
versions of 'tar' other forms of compression such as lzma and
xz, and arbitrary extensions.
New function xzfile() for use with xz-compressed files (if
suitable OS support is found at configuration). This can also
read files compressed by some versions of 'lzma'.
gzfile() looks at the file header and so can now also read
bzip2-ed files and xv-comppressed files (where supported).
There is the new option of save(compress = "bzip2") to use bzip2
compression (which will be slower, but can give substantially
smaller files). load() can read such saves (but only as from
this version of R).
R CMD INSTALL has a new option --data-compress to control the
compression used when lazy-loading data. One new option is
--data-compress=bzip2 which will give ca 15% better
compression at the expense of slower installation times.
Where there is suitable OS support --data-compress=xz can be
used, often giving substantially better compression on large
datasets at the expense of much slower installation times.
New function memCompress() memDecopmress() for in-memory
compression and decompression.
In registering an S3 class by a call to setOldClass(), the data part (e.g., the object type) required for the class can be included as one of the superclasses in the Classes argument.
The argument f= to showMethods() can be an expression evaluating to a generic function, allowing methods to be shown for non-exported generics and other nonstandard cases.
gzfile() can recognize and decompress files compressed by 'xz'
if suitable OS support is found at configuration. Since
gzfile() is widely used to read files, this means that for
example load() can read files compressed by 'xv' (and it can
save substantial amounts of space on large data files).
New function xzfile() for use with xz-compressed files (if suitable OS support is found at configuration). This can also read files compressed by some versions of 'lzma'.
New function memCompress() memDecopmress() for in-memory compression and decompression.
gzfile() looks at the file header and so can now also openread bzip2-ed files. It is planned in future to extend this to other forms of compression such as lzma and xz and xv-comppressed files (where supported).
detach() now has an argument 'character.only' with the same meaning as infor library() or require().
R CMD INSTALL has a new option --data-compress to control the compression used when lazy-loading data. THe default is 'gzip': 'bzip2' will give ca 15% better compressionOne new option is --data-compress=bzip2 which will give ca 15% better compression at the expense of slower installation times. Where there is suitable OS support --data-compress=xz can be used, often giving substantially better compression on large datasets at the expense of much slower installation times.
cat() on an unopened connection could close it twice, and file() connections segfaulted on some systems..
methods::trySilent() is now a simple direct wrapper around
tryCatch(), instead of building on try().
pPairlists may now be assigned as elements of lists. (Lists could always be created with pairlist elements, but [[<- didn't support assigning them.)
New function untar() to list or unpack tar archives, possibly compressed. This uses either an external 'tar' command or an internal implementation.
R CMD INSTALL has a new option --data-compress to control the compression used when lazy-loading data. THe default is 'gzip': 'bzip2' will give ca 15% better compression at the expense of slower installation times. More methods are planned for future releases.
[Experimental] gzfile() can recognize and decompress files compressed by 'xz' if suitable OS support is found at configuration. Since gzfile() is widely used to read files, this means that for example load() can read files compressed by 'xv' (and it can save substantial amounts of space on large data files).
methods::trySilent() is deprecated for try(*, silent=TRUE) or --more efficiently and flexibly--something like tryCatch(*, error=function(e)e).
methods::trySilent() is now a simple direct wrapper around tryCatch(), instead of building on try().
[Experimental] gzfile() can recognize and decompress files compressed by 'xz' if suitable OS support is found at configuration. Since gzfile() is widely used to read files, this means that for example load() can read files compressed by 'xv' (and it can save substantial amounts of space on large data files).
available.packages() gains a 'filters' argument for specifying the filtering operations performed on the packages found in the repositories. A new built-in 'license/FOSS' filter only retains packages for which installation can proceed solely based on packages which can be verified as Free or Open Source Software (FOSS) employing the available license specifications.
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)
R CMD INSTALL/check and tools::writePACKAGES accept a wider range of compressed tar archives. Precisely how wide depends on the capabilities of the host system's 'tar' command: they almost always include .tar.bz2 archives, and with modern versions of 'tar' other forms of compression such as lzma and xz, and arbitrary extensions.
gzfile() looks at the file header and so can now also open bzip2-ed files. It is planned in future to extend this to other forms of compression such as lzma and xz.
There is the new option of save(compress = "bzip2") to use bzip2 compression (which will be slower, but can give substantially smaller files). load() can read such saves (but only as from this version of R).
detach() now has an argument 'character.only' with the same meaning as in library() or require().
R CMD INSTALL has a new option --data-compress to control the compression used when lazy-loading data. THe default is 'gzip': 'bzip2' will give ca 15% better compression at the expense of slower installation times. More methods are planned for future releases.
methods(f) used to warn unnecessarily for an S4 generic 'f' which had been created based on an existing S3 generic.
Names of datasets could clash with temporary filenames used when running examples, causing errors.
New function untar() to list or unpack tar archives, possibly compressed.
available.packages() by default only returns information on the latest versions of packages whose version requirements are satisified by the currently running R: use 'duplicates = TRUE' to return information on all available versions.
Basic regular expressions (extended = FALSE) are deprecated in strsplit, grep and friends. There is a precise POSIX standard for them, but it is not what recent RE engines implement, and it seems that in almost all cases package authors intended fixed = TRUE when using extended = FALSE.
Namespace importing is more careful about warning on masked generics, thanks to a patch by Yohan Chalabi.
The help pages, including ?regexp, have been updated and should be consulted for details of the new implementations.
A different regular expression engine is used for basic and extended regexps and also for approximate matching. This is based on the TRE library of Ville Laurikari, a modifed copy of which is included in the R sources.
This is often faster, especially in a MBCS locale.
KSome known differences are that it is less tolerant of invalid inputs in MBCS locales, and conforms more strictly to the POSIX standard in its interpretation of incorrect regexps such as "^*"in its interpretation of undefined (extended) regexps such as "^*". Also, the interpretation of ranges such as [W-z] in caseless matching is no longer to map the range to lower case.
This engine may in future be used in 'literal' mode for fixed = TRUE, and there is a compile-time option in src/main/grep.c to do so.
The use of repeated boundary regexps in gsub() and gregexpr() as warned about in the help page does not work in this engine (it did in the previous one since 2005).
The algorithm used by strsplit() has been reordered to batch by elements of 'split': this can be much faster where regexps are usedfor fixed = FALSE (as multiple compilation is avoided).
clearNames() ('stats') is deprecated for unname().
strsplit() gains a 'useBytes' argument.
The algorithm used by strsplit() has been reordered to batch by elements of 'split': this can be much faster where regexps are used (as multiple compilation is avoided).
A different regular expression engine for basic and extended regexps and also for approximate matching. This based on the TRE library of Ville Laurikari, a modifed copy of which is included in the R sources.
This is often faster, especially in a MBCS locale.
Known differences are that it is less tolerant of invalid inputs in MBCS locales, and conforms more strictly to the POSIX standard in its interpretation of incorrect regexps such as "^*".
This engine may in future be used in 'literal' mode for fixed = TRUE.
[g]sub use a single-pass algorithm instead of matching twice and so is usually faster.
identical() failed to take the encoding of character strings into account, so identical byte patterns are not necessarily identical strings, and similarly Latin-1 and UTF-8 versions of the same string differ in byte pattern.
A different regular expression engine for basic and extended regexps and also for approximate matching. This based on the TRE library of Ville Laurikari, a modifed copy of which is included in the R sources.
This is often faster, especially in a MBCS locale.
Known differences are that it is less tolerant of invalid inputs in MBCS locales, and conforms more strictly to the POSIX standard in its interpretation of incorrect regexps such as "^*".
The use of repeated boundary regexps in gsub() and gregexpr() warned about in the help page does not work in this engine (it did in the previous one since 2005).
Basic and extended regexps now support same set of options as for fixed = TRUE and perl = TRUE, including 'useBytes' and support for UTF-8-encoded strings in non-UTF-8 locales.
agrep() now has full support for MBCS locales with a modest speed penalty. This enables help.search() to use approximate matching character-wise rather than byte-wise.
[g]sub use a single-pass algorithm instead of matching twice.
The perl = TRUE versions now work correctly in a non-UTF-8 MBCS locale, by translating the inputs to UTF-8.
useBytes = TRUE now inhibits the translation of inputs with marked encodings.
grep() and friends now use useBytes=TRUE to inhibit the
translation of inputs with marked encodings.
The perl=TRUE versions of strsplit(), grep() and friends now
work in a non-UTF-8 MBCS locale, by translating the inputs to
UTF-8.
agrep() now makes use of the TRE library of Ville Laurikari
rather than apse, and so has full support for MBCS locales
(and enables help.search() to use approximate matching
characterwise rather than bytewise).
There is a different regular expression engine for basic and
extended regexps, based on the TRE library. This is often
faster, especially in a MBCS locale, and it allows us to
implement the same set of options as for fixed = TRUE and perl
= TRUE, including 'useBytes' and support for UTF-8-encoded
strings in all locales.
One known difference is that it is less tolerant of invalid inputs in MBCS locales, and conforms more strictly to the POSIX standard in its interpretation of incorrect regexps such as "^*".
[Currently experimental, can be deselected by the configure option --without-TRE.]
"\uxxxx" and "\Uxxxxxxxx" escapes can now be parsed to a UTF-8 encoded string even in non-UTF-8 locales (this has been implemented on Windows since R 2.7.0). The semantics have been changed slightly: a string containing such escapes is always stored in UTF-8 (and hence is suitable for portably including Unicode text in packages). Use of such escape requires MBCS support.
The parser now supports C-preprocessor-like #line directives, so error messages and source references may refer to the original file rather than an intermediate one.
New functions findLineNum() and setBreakpoint() work with the source references to find the location of source lines and set breakpoints (using trace()) at those lines.
There is a different regular expression engine for basic and extended regexps, based on the TRE library. This is often faster, especially in a MBCS locale, and it allows us to implement the same set of options as for fixed = TRUE and perl = TRUE, including 'useBytes' and full support for UTF-8 encoded strings in all locales.-encoded strings in all locales.
One known difference is that it is less tolerant of invalid inputs in MBCS locales, and conforms more strictly to the POSIX standard in its interpretation of incorrect regexps such as "^*".
[Currently experimental, can be deselected by the configure option --without-TRE.]
agrep() now makes use of the TRE library of Ville Laurikari rather than apse, and so has full support for MBCS locales (and enables help.search() to use approximate matching characterwise rather than bytewise).
There is a different regular expression engine for basic and extended regexps, based on the TRE library. This is often faster, especially in a MBCS locale, and it allows us to implement the same set of options as for fixed = TRUE and perl = TRUE, including 'useBytes' and full support for UTF-8 encoded strings in all locales. [Currently experimental, selected by the configure option --with-TRE.]
Indexing with a vector index to [[]] has now been extended to all recursive types.
pairlists may now be assigned as elements of lists. (Lists could always be created with pairlist elements, but [[<- didn't support assigning them.)
The perl=TRUE versions of strsplit(), grep() and friends now work in a non-UTF-8 MBCS locale, by translating the inputs to UTF-8.
C99 support for MBCS is now required, and configure option --disable-mbcs has been withdrawn.
A suitable iconv() is now required: support for configure option --without-iconv has been withdrawn (it was deprecated in R 2.5.0).
Indexing with a vector index to [[]] has now been extended to all recursive types.
pairlists may now be assigned as elements of lists. (Lists could always be created with pairlist elements, but [[<- didn't support assigning them.)
The perl=TRUE versions of strsplit(), grep() and friends now work in a non-UTF-8 MBCS locale, by translating the inputs to UTF-8.
C99 support for MBCS is now required, and configure option --disable-mbcs has been withdrawn.
A suitable iconv() is now required: support for configure option --without-iconv has been withdrawn (it was deprecated in R 2.5.0).
Package help is now converted from Rd by the R-based converters that were first introduced in 2.9.0. This means
- Packages that were installed by R-devel after 2009-08-09 should not be used with earlier versions of R, and some aspects of package help will be missing if there are so used. (Text, HTML and latex help and the runnable examples.)
- Text, HTML and latex help and examples for packages installed under the new system isare converted on-demand from stored parsed Rd files. (Conversions stored in R < 2.10.0 are used if no parsed Rd files are found.)
- Rd version 2 is required in help files.
HTML help is now generated dynamically using a HTTP server running in the R process and listening on the loopback interface.
- Those who need to worry about security implications of such a server can disable it by setting the environment variable R_DISABLE_HTTPD to a non-empty value. This disables help.start() and HTML help (so text help is shown instead).
- The Java/Javascript search engine has been replaced by an HTML interface to help.search(). help.start() no longer has an argument 'searchEngine' as it is no longer needed.
- The dynamicHTML help can now locate cross-references of the form \link[pkg]{foo} and \link[pkg:foo]{bar} where 'foo' is an alias in the package, rather than the documented (basename of a) filenamefilename (since the documnetation has been much ignored).
- Details may change before release.
help.start() no longer sets options(htmlhelp = TRUE) (it used to on Unix but not on Windows). Nor does it on Unix reset the "browser" option if given an argument of that name.
Arguments 'update' and 'remote' are now available on all platforms: the default is update = FALSE since the http server will update the package index at first use.
Package help is now converted from Rd by the R-based converters that were first introduced in 2.9.0. This means
- Packages that were installed by R-devel after 2009-08-09 should not be used with earlier versions of R, and some aspects of package help will be missing if there are so used. (Text, HTML and latex help and the runnable examples.)
- Text, HTML and latex help and examples for packages installed under the new system isare converted on-demand from stored parsed Rd files. (Conversions stored in R < 2.10.0 are used if no parsed Rd files are found.)
- Rd version 2 is required in help files.
HTML help is now generated dynamically using a HTTP server running in the R process and listening on the loopback interface.
- Those who need to worry about security implications of such a server can disable it by setting the environment variable R_DISABLE_HTTPD to a non-empty value. This disables help.start() and HTML help (so text help is shown instead).
- The Java/Javascript search engine has been replaced by an HTML interface to help.search(). help.start() no longer has an argument 'searchEngine' as it is no longer needed.
- The dynamicHTML help can now locate cross-references of the form \link[pkg]{foo} and \link[pkg:foo]{bar} where 'foo' is an alias in the package, rather than the documented (basename of a) filenamefilename (since the documnetation has been much ignored).
- Details may change before release.
Package help is now converted from Rd by the R-based converters that were first introduced in 2.9.0. This means
- Packages that were installed by R-devel after 2009-08-09 should not be used with earlier versions of R, and some aspects of package help will be missing if there are so used. (Text, HTML and latex help and the runnable examples.)
- Text, HTML and latex help and examples for packages installed under the new system is converted on-demand from stored parsed Rd files. (Conversions stored in R < 2.10.0 are used if no parsed Rd files are found.)
HTML help is now generated dynamically using a HTTP server running in the R process and listening on the loopback interface.
- The implementation is not quite complete.
- Those who need to worry about security implications of such a server can disable it by setting the environment variable R_DISABLE_HTTPD to a non-empty value. They may want to build static HTML pages, which is done by the configure option --enable-prebuilt-html (which adds --html to the default for installing packages).
- If the server is disabled and there are no static HTML pages, a HTML help page wthout links is generated as a file:// URLis disables help.start() and HTML help (so text help is shown instead).
- The Java/Javascript search engine has been replaced by an HTML interface to help.search(): this means tha. help.start() no longer has an argument 'search from HTML is only available if the HTTP server is used. help.start() no longer has an argument 'searchEngine' as it is no longer neededEngine' as it is no longer needed.
- The dynamic help can now locate cross-references of the form \link[pkg]{foo} and \link[pkg:foo]{bar} where 'foo' is an alias in the package, rather than the documented (base of a) filename.
- Details may change before release.
help(offline = TRUE) now calls a function
offline_help_helper() if this exists in the workspace or
further down the search path, otherwise the function of that
name in the 'utils' name space.
For the default helper, options(offline_PDF = TRUE) will select PDF output rather than the default PostScript.
help() has a new argument 'help_type' (with default set by the option of that name) to supersede 'offline', 'htmlhelp' and 'chmhelp' (although for now they still work if 'help_type' is unset). There is a new type, "PDF" to allow offline PDF (rather than PostScript).
A function offline_help_helper() will be used if this exists in the workspace or further down the search path, otherwise the function of that name in the 'utils' name space.
help.start() no longer sets options(htmlhelp = TRUE) (it used to on Unix but not on Windows). Nor does it on Unix reset the "browser" option if given an argument of that name.
Arguments 'update' and 'remote' are now available on all platforms.
HTML help is now generated dynamically using a HTTP server running in the R process and listening on the loopback interface.
- The implementation is not quite complete.
- Those who need to worry about security implications of such a server can disable it by setting the environment variable R_DISABLE_HTTPD to a non-empty value. They may want to build static HTML pages, which is done by the configure option --enable-prebuilt-html (which adds --html to the default for installing packages).
- If the server is disabled and there are no static HTML pages, a HTML help page wthout links is generated as a file:// URL.
- The Java/Javascript search engine has been replaced by an HTML interface to help.search(): currently this means that search from HTML is only available if the HTTP server is used. help.start() no longer has an argument 'searchEngine' as it is no longer needed.
- Details may change before release.
legend() now can specify the 'border' color of filled boxes, thanks to a patch from Frederic Schutz.
An experimental tag \Sexpr has been added to Rd files, to
evaluate expressions at build, install, or render time.
Currently install time and render time evaluation are
supported.
The parse_Rd() parser has been made more tolerant of coding
errors in Rd files: now all syntax errors are reported as
warnings, and an attempt is made to continue parsing.
parse_Rd() now has an argument 'fragment' (default FALSE) to
accept small fragments of Rd files (so that \Sexpr can output
Rd code which is then parsed).
parse_Rd() now always converts its input to UTF-8. The Rd2*
rendering functions have a new parameter, 'outputEncoding',
which controls how their output is encoded.
parse_Rd() no longer includes the newline as part of a
"%"-style comment.
There have been various bug fixes and code reorganization in
the Rd renderers Rd2HTML, Rd2latex, Rd2txt, and Rd2ex.
All example files are now created with either ASCII or UTF-8 encoding, and the encoding is only marked in the file if there is any non-UTF-8 code (previously it was marked if the help file had non-ASCII contents, possibly in other sections).
print.Rd() now adds necessary escape characters so that
printing and re-parsing an Rd object should produce an
equivalent object.
parse_Rd() was incorrectly handling multiple backslashes in
R code strings, converting 4n+3 backslashes to 2n+1 instead
of 2n+2.
A new dynamic help system may be started using
tools::startDynamicHelp(). With this option, HTML help pages
will be generated on request, resolving links by searching
through all installed packages.
An experimental tag \Sexpr has been added to Rd files, to evaluate expressions at build, install, or render time. Currently install time and render time evaluation are supported.
The parse_Rd() parser has been made more tolerant of coding errors in Rd files: now all syntax errors are reported as warnings, and an attempt is made to continue parsing.
parse_Rd() now has an argument 'fragment' (default FALSE) to accept small fragments of Rd files (so that \Sexpr can output Rd code which is then parsed).
parse_Rd() now always converts its input to UTF-8. The Rd2* rendering functions have a new parameter, 'outputEncoding', which controls how their output is encoded.
parse_Rd() no longer includes the newline as part of a "%"-style comment.
There have been various bug fixes and code reorganization in the Rd renderers Rd2HTML, Rd2latex, Rd2txt, and Rd2ex.
All example files are now created with either ASCII or UTF-8 encoding, and the encoding is only marked in the file if there is any non-UTF-8 code (previously it was marked if the help file had non-ASCII contents, possibly in other sections).
print.Rd() now adds necessary escape characters so that printing and re-parsing an Rd object should produce an equivalent object.
parse_Rd() was incorrectly handling multiple backslashes in R code strings, converting 4n+3 backslashes to 2n+1 instead of 2n+2.
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().
help.start() no longer sets options(htmlhelp = TRUE) (it used to on Unix but not on Windows).
help(offline = TRUE) now calls a function offline_help_helper() if this exists in the workspace or further down the search path, otherwise the function of that name in the 'utils' name space.
For the default helper, options(offline_PDF = TRUE) will select PDF output rather than the default PostScript.
Plain text help is now used as the fallback for HTML help (as it always has been for Compiled HTML help on Windows).
HTML help is now generated dynamically using a HTTP server running in the R process and listening on the loopback interface.
- The implementation is not quite complete.
- Those who need to worry about security implications of such a server can disable it by setting the environment variable R_DISABLE_HTTPD to a non-empty value. They may want to build static HTML pages, which is done by the configure option --enable-prebuilt-html (which adds --html to the default for installing packages).
- If the server is disabled and there are no static HTML pages, a HTML help page wthout links is generated as a file:// URL.
- The Java/Javascript search engine has been replaced by an HTML interface to help.search(): currently this means that search from HTML is only available if the HTTP server is used. help.start() no longer has an argument 'searchEngine' as it is no longer needed.
- Details may change before release.
R CMD check now check Rd crossreferences when as links where a package is specified (\link[pkg]{file} or \link[pkg:file]{topic}), if the package is specified,available. It notes if the package is not available, as in many cases this is an error in the link.
An experimental tag \Sexpr has been added to Rd files, to
evaluate expressions at build, install, or render time.
Currently install time and render time evaluation are
supported.
The parse_Rd() parser has been made more tolerant of coding
errors in Rd files: now all syntax errors are reported as
warnings, and an attempt is made to continue parsing.
parse_Rd() now has an argument 'fragment' (default FALSE) to
accept small fragments of Rd files (so that \Sexpr can output
Rd code which is then parsed).
parse_Rd() now always converts its input to UTF-8. The Rd2*
rendering functions have a new parameter, 'outputEncoding',
which controls how their output is encoded.
parse_Rd() no longer includes the newline as part of a
"%"-style comment.
There have been various bug fixes and code reorganization in
the Rd renderers Rd2HTML, Rd2latex, Rd2txt, and Rd2ex.
All example files are now created with either ASCII or UTF-8 encoding, and the encoding is only marked in the file if there is any non-UTF-8 code (previously it was marked if the help file had non-ASCII contents, possibly in other sections).
print.Rd() now adds necessary escape characters so that
printing and re-parsing an Rd object should produce an
equivalent object.
parse_Rd() was incorrectly handling multiple backslashes in
R code strings, converting 4n+3 backslashes to 2n+1 instead
of 2n+2.
A new dynamic help system may be started using
tools::startDynamicHelp(). With this option, HTML help pages
will be generated on request, resolving links by searching
through all installed packages.
An experimental tag \Sexpr has been added to Rd files, to evaluate expressions at build, install, or render time. Currently install time and render time evaluation are supported.
The parse_Rd() parser has been made more tolerant of coding errors in Rd files: now all syntax errors are reported as warnings, and an attempt is made to continue parsing.
parse_Rd() now has an argument 'fragment' (default FALSE) to accept small fragments of Rd files (so that \Sexpr can output Rd code which is then parsed).
parse_Rd() now always converts its input to UTF-8. The Rd2* rendering functions have a new parameter, 'outputEncoding', which controls how their output is encoded.
parse_Rd() no longer includes the newline as part of a "%"-style comment.
There have been various bug fixes and code reorganization in the Rd renderers Rd2HTML, Rd2latex, Rd2txt, and Rd2ex.
All example files are now created with either ASCII or UTF-8 encoding, and the encoding is only marked in the file if there is any non-UTF-8 code (previously it was marked if the help file had non-ASCII contents, possibly in other sections).
print.Rd() now adds necessary escape characters so that printing and re-parsing an Rd object should produce an equivalent object.
parse_Rd() was incorrectly handling multiple backslashes in R code strings, converting 4n+3 backslashes to 2n+1 instead of 2n+2.
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().
help.start() no longer sets options(htmlhelp = TRUE) (it used to on Unix but not on Windows).
help(offline = TRUE) now calls a function offline_help_helper() if this exists in the workspace or further down the search path, otherwise the function of that name in the 'utils' name space.
For the default helper, options(offline_PDF = TRUE) will select PDF output rather than the default PostScript.
R CMD check now check Rd crossreferences when as links where a package is specified (\link[pkg]{file} or \link[pkg:file]{topic}), if the package is specified,available. It notes if the package is not available, as in many cases this is an error in the link.
identical() gains three logical arguments, which allow for even more differentiation, notably '-0' and '0'.
Package help is now converted from Rd by the R-based converters that were first introduced in 2.9.0. This means
- Packages that were installed by R-devel after 2009-08-09 should not be used with earlier versions of R, and some aspects of package help will be missing if there are so used. (Text and latex help and the runnable examples.)
- Text help,, HTML and latex help and examples for packages installed under the new system is converted on-demand from stored parsed Rd files. (Conversions stored in R < 2.10.0 are used if no parsed Rd files are found.)
The converters are still being polished; but almost all errors in packages are previously undetected/corrected errors in the package sources or changes in the Rd dialect.
HTML help is now generated dynamically using a httpHTTP server running in the R process and listening on the loopback interface.
- The implementation is currently innot quite complete.
- Those who need to worry about security implications of such a server can disable it by setting the environment variable R_DISABLE_HTTPD to a non-empty value.
- Those using the server do not need to build or install static HTML pages and can useThey may want to build static HTML pages, which is done by the configure option --disenable-prebuilt-html. This sets (which adds --html to the default for installing packages.).
- If the server is disabled and there are no static HTML pages, a HTML help page wthout links is generated dynamically.
- The documentation has not caught up with this set of changes: das a file:// URL.
- Details may change before release.
R_ReplDLLinit() initializes top-level jump so that embedding applications on Windows no longer crash on error.
HTML help is now generated dynamically using a http server running in the R process and listening on the loopback connectioninterface.
- tThe implementation is currently incomplete, for example browsing vignette directories is only minimally implemented and not much error reporting is in plac.
- Those who need to worry about security implications of such a server can disable it by setting the environment variable R_DISABLE_HTTPD to a non-empty value.
- tThose who need to worry about security implications of such a server should not use HTML help until more security measures are in place -- the server is started at first uusing the server do not need to build or install static HTML pages and can use the configure option --disable-prebuilt-html. This sets the default for installing packages. If the server is disabled and there are no static HTML pages, a page wthout links is generated dynamically.
- The documentation has not caught up with this set of changes: details may change before release.
R CMD check now check Rd crossreferences when a package is specified, if the package is available.
New debugonce() function; further, getOption("deparse.max.lines") is now observed as well when debugging, from a code suggestion by John Brzustowski. (PR#13647/8)
HTML help is now generated dynamically using a http server running in the R process and listening on the loopback connection.
- the implementation is currently incomplete, for example browsing vignette directories is only minimally implemented and not much error reporting is in place.
- those who need to worry about security implications of such a server should not use HTML help until more security measures are in place -- the server is started at first use.
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.
R CMD Rd2pdf is available as a shortcut for R CMD Rd2dvi --pdf.
A new dynamic help system may be started using tools::startDynamicHelp(). With this option, HTML help pages will be generated on request, resolving links by searching through all installed packages.
R CMD Rd2txt is defunct: use R CMD Rdconv -t txt or tools::Rd2txt().
A system 'glob' function is now essential (a working Sys.glob() has been assumed since R 2.9.0 at least).
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.
R CMD Rd2txt is deprecated, and will be removed in 2.10.0. . (It is just a wrapper for R CMD Rdconv -t txt.)
textConnection() gains an 'encoding' argument to determine how input strings with marked encodings will be handled.
"\uxxxx" and "\Uxxxxxxxx" escapes can now be parsed to a UTF-8 encoded string even in non-UTF-8 locales (this has been implemented on Windows since R 2.7.0). (Use of such escapes requires Unicode wide characterThe semantics have been changed slightly: a string containing such escapes is always stored in UTF-8 (and hence is suitable for portably including Unicode text in packages). Use of such escape requires MBCS support.)
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.
"\uxxxx" and "\Uxxxxxxxx" escapes can now be parsed to a UTF-8 encoded string even in non-UTF-8 locales (this has been implemented on Windows since R 2.7.0). (Use of such escapes requires MBCSUnicode wide character support.)
contr.sum() etc gain an argument 'sparse' which allows sparse matrices to be returned.
contrasts() also gains a 'sparse' argument which it passes to the actual contrast function if that has a formal argument 'sparse'.
'contrasts(f, .) <- val' now also works when 'val' is a sparse Matrix. It is planned that model.matrix() will work with such factors 'f' in the future.
Rd.sty now makes a better job of setting email addresses, including using a monospaced font.
tools::Rd_parse() is defunct (as this version of R uses only Rd version 2).
tools::Rd_parse() is deprecated and will be removed in 2.10.0 (which will use only Rd version 2).
New as.raw() method for "tclObj" objects (wish of PR#13578).
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 Francçois.
Outlier symbols drawn by boxplot() now obey the 'outlwd' argument. Reported by Jüurgen Kluge.
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.
srcref records produced by parse() and parse_Rd() did not record the encoding of the source file. (Reported by Romain Françcois.)
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.
PCRE has been updated to version 7.9 (for bug fixes).
z^n for integer n and complex z or (numeric z and 2 < |n| <= 256) is more accurate now, notably in the complex case ( if |n| <= 65536).
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.
Package help is now converted from Rd by the R-based converters that were first introduced in 2.9.0. This means
- Packages that were installed by R-devel after 2009-08-09 should not be used with earlier versions of R, and some aspects of package help will be missing if there are so used. (Text and latex help and the the runnable examples.)
- Text help, latex help and examples for packages installed under the new system is converted on-demand from stored parsed Rd files. (Conversions stored in earlier installations are still useR < 2.10.0 are used if no parsed Rd files are found.)
The converters are still being polished; but almost all errors in packages are previously undetected/corrected errors in the package sources or changes in the Rd dialect.
parse_Rd() was incorrectly handling multiple backslashes in R code strings, converting 4n+3 backslashes to 2n+1 instead of 2n+2.
R CMD Rd2txt is defunct: use R CMD Rdconv -t txt or tools::Rd2txt().
Perl is no longer 'essential'. R can be built without it, but scripts R CMD build, check, Rprof and Sd2d require it.
n:m now returns <integer> in a few more boundary cases.
n:m now returns a result of type "integer" in a few more boundary cases.
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)
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.
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.)
That R CMD check makes use of a <pkg>/scriptests/Examples/<pkg>-Ex.Rout.save file as a reference result is now documented in 'Writing R Extensions'.
print.Rd() now adds necessary escape characters so that printing and re-parsing an Rd object should produce an equivalent object.
parse_Rd() now always converts its input to UTF-8. The Rd2* rendering functions have a new parameter, 'outputEncoding', which controls how their output is encoded: by default in the local encoding.
Package help is now converted from Rd by the R-based converters that were first introduced in 2.9.0. This means
- Packages that were installed by R-devel after 2009-08-09 should not be used with earlier versions of R, and some aspects of package help will be missing if there are so used. (Currently tText and latex help, eventually also and the the run-nable examples.)
- Text help, latex help and examples for packages installed under the new system is converted on-demand from stored parsed Rd files. (Conversions stored in earlier installations are still used.)
The converters are still being polished; but almost all errors in packages are previously undetected/corrected errors in the package sources or changes in the Rd dialect..
"\uxxxx" and "\Uxxxxxxxx" escapes can now be parsed to a UTF-8 encoded string even in non-UTF-8 locales (this has been implemented on Windows since R 2.7.0). (Use of such escapes requires MBCS support.)
parse_Rd() no longer includes the newline as part of a "%"-style comment.
Package help is now converted from Rd by the R-based converters that were first introduced in 2.9.0. This means
- Packages that were installed by R-devel after 2009-08-09 should not be used with earlier versions of R, and some aspects of package help will be missing if there are so used. (Currently text and latex help, eventually also the run-able examples.)
- Text help, latex help and examples for packages installed under the new system is converted on-demand from stored parsed Rd files. (Conversions stored in earlier installations are still used.)
The converters are still being polished and produce incorrect latex or HTML conersions for ca 20 packages. However, they correct fewer errors in the inputs and most errors seen have been the result of errors in package sources; but almost all errors in packages are previously undetected/corrected errors in the package sources or changes in the Rd dialect..
DESCRIPTION 'LinkingTo' specs are now recognized as installation dependencies, and included in package management computations.
Standardized DESCRIPTION 'License' specs are now available for package management computations.
Package help is now converted from Rd by the R-based converters that were first introduced in 2.9.0. This means
- Packages that were installed by R-devel after 2009-08-09 should not be used with earlier versions of R, and some aspects of package help will be missing if there are so used. (Currently text and latex help, eventually also the run-able examples.)
- Text help, latex help and examples for packages installed under the new system is converted on-demand from stored parsed Rd files. (Conversions stored in earlier installations are still used.)
The converters are still being polished and produce incorrect latex or HTML conersions for ca 20 packages. However, they correct fewer errors in the inputs and most errors seen have been the result of errors in package sources.
An experimental tag \Sexpr has been added to Rd files, to evaluate expressions at build, install, or render time. Currently install time and render time evaluation are supported but not used in base or contributed packages unless the environment variable USE_NEW_HELP is set during installation.
There have been various bug fixes and code reorganization in the Rd renderers Rd2HTML, Rd2latex, Rd2txt, and Rd2ex.
All example files are now created with either ASCII or UTF-8 encoding, and the encoding is only marked in the file if there is any non-UTF-8 code (previously it was marked if the help file had non-ASCII contents, possibly in other sections).
Package help is now converted from Rd by the R-based converters that were first introduced in 2.9.0. This means
- Packages that were installed by R-devel after 2009-08-09 should not be used with earlier versions of R, and some aspects of package help will be missing if there are so used. (Currently text help, but eventually latex help and the runable examples.)
- Text help is converted 'on demand': this will soon apply to latex help and examples.
The converters are still being polished and produce incorrect latex or HTML conersions for ca 20 packages. However, they correct fewer errors in the inputs and most errors are the result of errors in package sources.
An experimental tag \Sexpr has been added to Rd files, to evaluate expressions at build, install, or render time. Currently install time and render time evaluation are supported but not used in base or contributed packages unless the environment variable USE_NEW_HELP is set during installation.
There have been various bug fixes and code reorganization in the Rd renderers Rd2HTML, Rd2latex, Rd2txt, and Rd2ex.
All example files are now created with either ASCII or UTF-8 encoding, and the encoding is only marked in the file if there is any non-UTF-8 code (previously it was marked if the help file had non-ASCII contents, possibly in other sections).
iconv() has a new argument 'mark' which can be used (by experts) to suppress the declaration of encodings.
grep() and friends now use useBytes=TRUE to inhibit the translation of inputs with marked encodings.
There have been various bug fixes and code reorganization in the Rd renderers Rd2HTML, Rd2latex, Rd2txt, and Rd2ex.
All example files are now created with ASCII or UTF-8 encoding, and the encoding is only marked in the file if there is any non-UTF-8 code (previously it was marked if the help file had non-ASCII contents, possibly in other sections).
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.
writeLines(), writeBin() and writeChar() have a new argument 'useBytes'. If false, character strings with marked encodings are translated to the current locale (as before) but if true they are written byte-by-byte.
Outlier symbols drawn by boxplot() now obey the 'outlwd' argument. Reported by Jürgen Kluge.
as.data.frame.vector() (and its copies) is slightly faster by avoiding a copy if there are no names (following a suggestion of Tim Hesterbuerg).
printCoefmat() formatted groups of columns together, not just the cs.ind group but also the zap.ind group and a residual group. It now formats all columns except the cs.ind group separately (and zaps the zap.ind group column-by-column). The main effect will be see in the output from print.anova, as this grouped SS-like columns in the zap.ind group.
A missing PROTECT caused rare segfaults during calls to load(). (PR#13880, fix found by Bill Dunlap.)
srcref records produced by parse() and parse_Rd() did not record the encoding of the source file. (Reported by Romain François.)
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.
z^n for integer n and complex z or (numeric z and 2 < |n| <= 256) is more accurate now, notably in the complex case (if |n| <= 65536).
factor(NULL) now returns the same as factor(''[0]) instead of an error, and table(NULL) consequently does analogously.
as.data.frame.vector() (and its copies) is slightly faster by avoiding a copy if there are no names (following a suggestion of Tim Hesterburg).
z^n for integer n and complex z or (numeric z and 2 < |n| <= 256) is now
more accurate, notably in the complex case (when |n| <= 65536).
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).
New function news() for building and querying R or package news information.
terms.formula(simplify = TRUE) now does not deparse the LHS and so preserves non-standard responses such as `a: b` (requested by Sundar Dorai-Raj).
The 'zap.ind' argument to printCoefmat() did not usually work as other code attempted to ensure that non-zero values had a non-zero representation.
z^n for integer n and complex z or (numeric z and 2 < |n| <= 256) is now more accurate, notably in the complex case (when |n| <= 65536).
term.formula(simplify = TRUE) now does not deparse the LHS and so preserves non-standard responses such as `a: b` (requested by Sundar Dorai-Raj).
That R CMD check makes use of a <pkg>/tesscripts/Examples/<pkg>-Ex.Rout.save file as a reference result is now documented in 'Writing R Extensions'.
[Experimental] File NEWS is now in UTF-8, and has a BOM (often invisible) on the first line, and Emacs local variables set for UTF-8 at the end. RShowDoc("NEWS") should display this correctly, given suitable fonts.
contr.sum() etc gain an argument 'sparse' which allows sparse matrices to be returned.
contrasts() also gains a 'sparse' argument which it passes to the actual contrast function if that has a formal argument 'sparse'.
newNew utility function inheritedSlotNames() utility for S4 class programming.
tabulate() now allows NAs to pass through (and be ignored).
iIf debug() is called on an S3 generic function then all methods are debugged as well.
oOutlier symbols drawn by boxplot() now obey the 'outlwd' argument. Reported by Juürgen Kluge.
svd(x) and eigen(x) now behave analogously to qr(x), in also accepting logical matrices x.
gzcon() (used by load()) would re-open an open connection, leaking a file handledescriptor each time. (PR#13841)
srcref records produced by parse() and parse_Rd() did not record the encoding of the source file. (Reported by Romain Francçois.)
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]
gregexpr() no longer segfaults when "" is given as the search pattern. Thanks to Herveé Pageès for the bug report.
reshape() got column names out of sync with contents in some cases; found by Antonio, Fabio Di Narzo.
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 Herveé Pageès for the suggestion.
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:
outlier symbols drawn by boxplot() now obey the 'outlwd' argument. Reported by Jurgen Kluge.
svd(x) and eigen(x) now behave analogously to qr(x), in also accepting logical matrices x.
outlier symbols drawn by boxplot() now obey the 'outlwd'
argument. Reported by Jurgen Kluge.
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'.
if debug is called on an S3 generic function then all methods are debugged as well.
outlier symbols drawn by boxplot() now obey the 'outlwd' argument. Reported by Jurgen Kluge.
plot() methods for "stepfun" and hence "ecdf" no longer plot points by default for n >= 10000.
tabulate now allows NAs to pass through (and be ignored).
parse_Rd() now always converts its input to UTF-8. The Rd2* rendering functions have a new parameter, 'outputEncoding', which controls how their output is encoded: by default in the local encoding.
tabulate now allows NAs to pass through (and be ignored)
