This blog is updated daily.
A general description is here.
On Windows there is support for making ‘.texi’ manuals using ‘texinfo’ 5.0 or later: the setting is in file ‘src/gnuwin32/MkRules.dist’.
A packaging of the Perl script and modules for ‘texinfo’ 5.2 has been made available at <URL: http://www.stats.ox.ac.uk/pub/Rtools/>.
‘write.table()’ now handles matrices of 2^31 or more elements, for those with large amounts of patience and disc space.
There is a new function, ‘La_version()’, to report the version of LAPACK in use.
The HTML version of ‘An Introduction to R’ now has links to PNG versions of the figures.
There is some support to produce manuals in ebook formats. (See ‘doc/manual/Makefile’. Suggested by Mauro Cavalcanti.)
On a Unix-alike ‘Sys.timezone()’ returns ‘NA’ if the environment variable ‘TZ’ is unset, to distinguish it from an empty string which on some OSes means the ‘UTC’ time zone.
The backtick may now be escaped in strings, to allow names containing them to be constructed, e.g. ‘`\``’. (PR#15621)
‘read.table()’, ‘readLines()’ and ‘scan()’ now warn when an embedded nul is found in the input. (Related to PR#15625 which was puzzled by the behaviour in this unsupported case.)
(Windows only.) ‘file.symlink()’ works around the undocumented restriction of the Windows system call to backslashes. (Wish of PR#15631.)
‘KalmanForecast(fast = FALSE)’ is now the default, and the help contains an example of how ‘fast = TRUE’ can be used in this version. (The usage will change in 3.1.0.)
‘strptime()’ now checks the locale only when locale-specific formats are used and caches the locale in use: this can halve the time taken on OSes with slow system functions (e.g. OS X).
‘strptime()’ and the ‘format()’ methods for classes ‘"POSIXct"’, ‘"POSIXlt"’ and ‘"Date"’ recognize strings with marked encodings: this allows, for example, UTF-8 French month names to be read on (French) Windows.
‘iconv(to = "utf8")’ is now accepted on all platforms (some implementations did already, but GNU ‘libiconv’ did not: however converted strings were not marked as being in UTF-8). The official name, ‘"UTF-8"’ is still preferred.
‘available.packages()’ is better protected against corrupt metadata files. (A recurring problem with Debian package ‘shogun-r’: PR#14713.)
Finalizers are marked to be run at garbage collection, but run only at a somewhat safer later time (when interrupts are checked). This circumvents some problems with finalizers running arbitrary code during garbage collection (the known instances being running ‘options()’ and (C-level) ‘path.expand()’ re-entrantly).
The included version of PCRE has been updated to 8.34. This fixes bugs and makes the behaviour closer to Perl 5.18. In particular, the concept of ‘space’ includes ‘VT’ and hence agrees with POSIX's.
The new field ‘SysDataCompression’ in the ‘DESCRIPTION’ file allows user control over the compression used for ‘sysdata.rda’ objects in the lazy-load database.
‘install.packages(dependencies = value)’ for ‘value = NA’ (the default) or ‘value = TRUE’ omits packages only in ‘LinkingTo’ for binary package installs.
The long undocumented remapping of ‘rround()’ to ‘Rf_fround()’ in header ‘Rmath.h’ is now formally deprecated: use ‘fround()’ directly.
Remapping of ‘prec()’ and ‘trunc()’ in the ‘Rmath.h’ header has been disabled in C++ code (it has caused breakage with ‘libc++’ headers).
‘getParseData()’ truncated the imaginary part of complex number constants. (Reported by Yihui Xie.)
‘dbeta(x, a, b)’ with ‘a’ or ‘b’ within a factor of 2 of the largest representable number could infinite-loop. (Reported by Ioannis Kosmidis.)
‘provideDimnames()’ failed for arrays with a 0 dimension. (PR#15465)
‘rbind()’ and ‘cbind()’ did not handle list objects correctly. (PR#15468)
‘replayPlot()’ now checks if it is replaying a plot from the same session.
‘rasterImage()’ and ‘grid.raster()’ now give error on an empty (zero-length) raster. (Reported by Ben North.)
‘plot.lm()’ would sometimes scramble the labels in plot type 5. (PR#15458 and PR#14837)
‘min()’ did not handle ‘NA_character_’ values properly. (Reported by Magnus Thor Torfason.)
(Windows only.) ‘readRegistry()’ would duplicate default values for keys. (PR#15455)
‘str(..., strict.width = "cut")’ did not handle it properly when more than one line needed to be cut. (Reported by Gerrit Eichner.)
Removing subclass back-references when S4 classes were removed or their namespace unloaded had several bugs (e.g., PR#15481).
‘aggregate()’ could fail when there were too many levels present in the ‘by’ argument. (PR#15004)
‘namespaceImportFrom()’ needed to detect primitive functions when checking for duplicated imports (reported by Karl Forner).
‘getGraphicsEvent()’ did not exit when a user closed the graphics window. (PR#15208)
Errors in vignettes were not always captured and displayed properly. (PR#15495)
‘contour()’ could fail when dealing with extremely small z values. (PR#15454)
Several functions did not handle zero-length vectors properly, including ‘browseEnv()’, ‘format()’, ‘gl()’, ‘relist()’ and ‘summary.data.frame()’. (E.g., PR#15499)
‘Sweave()’ did not restore the R output to the console if it was interrupted by a user in the middle of evaluating a code chunk. (Reported by Michael Sumner.)
Fake installs of packages with vignettes work again.
Illegal characters in the input caused ‘parse()’ (and thus ‘source()’) to segfault. (PR#15518)
The nonsensical use of ‘nmax = 1’ in ‘duplicated()’ or ‘unique()’ is now silently ignored.
‘qcauchy(p, *)’ is now fully accurate even when p is very close to 1. (PR#15521)
The ‘validmu()’ and ‘valideta()’ functions in the standard ‘glm()’ families now also report non-finite values, rather than failing.
Saved vignette results (in a ‘.Rout.save’ file) were not being compared to the new ones during ‘R CMD check’.
Double-clicking outside of the list box (e.g. on the scrollbar) of a Tk listbox widget generated by ‘tk_select.list()’ no longer causes the window to close. (PR#15407)
Improved handling of edge cases in ‘parallel::splitindices()’. (PR#15552)
HTML display of results from ‘help.search()’ and ‘??’ sometimes contained badly constructed links.
‘c()’ and related functions such as ‘unlist()’ converted raw vectors to invalid logical vectors. (PR#15535)
(Windows only) When a call to ‘system2()’ specified one of ‘stdin’, ‘stdout’ or ‘stderr’ to be a file, but the command was not found (e.g. it contained its arguments, or the program was not on the ‘PATH’), it left the file open and unusable until R terminated. (Reported by Mathew McLean.)
The ‘bmp()’ device was not recording ‘res = NA’ correctly: it is now recorded as 72 ppi.
Several potential problems with compiler-specific behaviour have been identified using the ‘Undefined Behaviour Sanitizer’ in conjunction with the ‘clang’ compiler.
‘hcl()’ now honours ‘NA’ inputs (previously they were mapped to black).
Some translations in base packages were being looked up in the main catalog rather than that for the package.
As a result of the 3.0.2 change about ‘the last second before the epoch’, most conversions which should have given ‘NA’ returned that time. (The platforms affected include Linux and OS X, but not Windows nor Solaris.)
‘rowsum()’ has more support for matrices and dataframes with 2^31 or more elements. (PR#15587)
‘predict(<lm object>, interval = "confidence", scale = <something>)’ now works. (PR#15564)
The bug fix in 3.0.2 for PR#15411 was too aggressive, and sometimes removed spaces that should not have been removed. (PR#15583)
Running R code in a ‘tcltk’ callback failed to set the busy flag, which will be needed to tell OS X not to ‘App Nap’.
The code for date-times before 1902 assumed that the offset from GMT in 1902 was a whole number of minutes: that was not true of Paris (as recorded on some platforms).
Using ‘Sys.setlocale’ to set ‘LC_NUMERIC’ to ‘"C"’ (to restore the sane behavior) no longer gives a warning.
‘deparse()’ now deparses complex vectors in a way that re-parses to the original values. (PR#15534, patch based on code submitted by Alex Bertram.)
In some extreme cases (more than 10^15) integer inputs to ‘dpqrxxx()’ functions might have been rounded up by one (with a warning about being non-integer). (PR#15624)
Plotting symbol ‘pch = 14’ had the triangle upside down on some devices (typically screen devices). The triangle is supposed to be point up. (Reported by Bill Venables.)
‘getSrcref()’ did not work on method definitions if ‘rematchDefinition()’ had been used.
‘KalmanForecast(fast = FALSE)’ reported a (harmless) stack imbalance.
The count of observations used by ‘KalmanRun()’ did not take missing values into account.
In locales where the abbreviated name of one month is a partial match for the full name of a later one, the ‘%B’ format in ‘strptime()’ could fail. An example was French on OS X, where ‘juin’ is abbreviated to ‘jui’ and partially matches ‘juillet’. Similarly for weekday names.
‘pbeta(x, a, b, log.p = TRUE)’ sometimes underflowed to zero for very small and very differently sized ‘a’, ‘b’. (PR#15641)
‘approx()’ and ‘approxfun()’ now handle infinite values with the ‘"constant"’ method. (PR#15655)
‘stripchart()’ again respects reversed limits in ‘xlim’ and ‘ylim’. (PR#15664)
‘iconv(to = "utf8")’ is now accepted on all platforms (some implementations did already, but GNU ‘libiconv’ did not: however converted strings were not marked as being in UTF-8). The official name, ‘"UTF-8"’ is still preferred.
Finalizers are marked to be run at garbage collection, but run only at a somewhat safer later time (when interrupts are checked). This circumvents some problems with finalizers running arbitrary code during garbage collection (the known instances being running ‘options()’ and (C-level) ‘path.expand()’ re-entrantly).
Finalizers are marked to be run at garbage collection, but run only at a somewhat safer later time (when interrupts are next checked). This circumvents some problems with finalizers running arbitrary code during garbage collection (the known instance being running ‘options()’ re-entrantly).
‘available.packages()’ is better protected against corrupt metadata files (a recurring problem with Debian package ‘shogun-r’: PR#14713).
‘available.packages()’ is better protected against corrupt metadata files (A recurring problem on Debian: PR#14713).
‘stripchart()’ again respects reversed limits in ‘xlim’ and ‘ylim’. (PR#15664)
‘iconv(to = "utf8")’ is now accepted on all platforms (some implementations did already, but GNU ‘libiconv’ did not). The official name, ‘"UTF-8"’ is still preferred.
‘approx()’ and ‘approxfun()’ now handle infinite values with the ‘"constant"’ method. (PR#15655)
‘deparse()’ now deparses complex vectors in a way that re-parses to the original values. (PR#15534, patch based on code submitted by Alex Bertram.)
(Windows only.) ‘file.symlink()’ works around the undocumented restriction of the Windows system call to backslashes. (Wish of PR#15631.)
‘deparse()’ now deparses complex vectors in a way that re-parse to the original values. (PR#15534, patch based on code submitted by Alex Bertram.)
In some extreme cases (more than 10^15) integer inputs to ‘dpqrxxx()’ functions might have been rounded up by one (with a warning about being non-integer). (PR#15624)
‘pbeta(x, a, b, log.p = TRUE)’ sometimes underflowed to zero for very small and very differently sized ‘a’, ‘b’. (PR#15641)
‘pbeta(x, a,b, log.p=TRUE)’ sometimes lost all precision for very small and very differently sized a,b. (PR#15641)
‘strptime()’ now checks the locale only when locale-specific formats are used and caches the locale in use: this can halve the time taken on OSes with slow system functions (e.g. OS X).
‘strptime()’ and the ‘format()’ methods for classes ‘"POSIXct"’, ‘"POSIXlt"’ and ‘"Date"’ recognize strings with marked encodings: this allows, for example, UTF-8 French month names to be read on (French) Windows.
In locales where the abbreviated name of one month is a partial match for the full name of a later one, the ‘%B’ format in ‘strptime()’ could fail. An example was French on OS X, where ‘juin’ is abbreviated to ‘jui’ and partially matches ‘juillet’. Similarly for weekday names.
‘rowsum()’ has more support for matrices and dataframes with 2^31 or more elements. (PR#15587)
‘KalmanForecast(fast = FALSE)’ is now the default, and the help contains an example of how ‘fast = TRUE’ can be used in this version. (The usage will change in 3.1.0.)
‘KalmanForecast(fast = FALSE)’ reported a (harmless) stack imbalance.
The count of observations used by ‘KalmanRun()’ did not take missing values into account.
(Windows.) ‘file.symlink()’ works around the undocumented restriction of the Windows system call to backslashes. (Wish of PR#15631.)
Plotting symbol ‘pch = 14’ had the triangle upside down on some devices (typically screen devices). The triangle is supposed to be point up. (Reported by Bill Venables.)
‘getSrcref()’ did not work on method definitions if ‘rematchDefinition()’ had been used.
‘read.table()’, ‘readLines()’ and ‘scan()’ now warn when an embedded nul is found in the input. (Related to PR#15625 which was puzzled by the behaviour in this unsupported case.)
Where time zones have changed abbreviations over the years, the
software tries to more consistently use the current abbreviation. On
some platforms where the C function ‘localtime’ changed the ‘tzname’
variables the reported abbreviation could have been that of the last
time converted.
In some extreme cases (more than 10^15) integer inputs to dpqrxxx functions might have been rounded up by one (with a warning about being non-integer). (PR#15624)
‘install.packages(dependencies = value)’ for ‘value = NA’ (the default) or ‘value = TRUE’ omits packages only in ‘LinkingTo’ for binary package installs.
The backtick may now be escaped in strings, to allow names containing them to be constructed, e.g. ‘`\``’. (PR#15621)
Using ‘Sys.setlocale’ to set ‘LC_NUMERIC’ to ‘"C"’ (to restore the sane behavior) no longer gives a warning.
‘deparse()’ now deparses complex vectors more accurately; they will now re-parse to the original values. (PR#15534, patch based on code submitted by Alex Bertram.)
The included version of PCRE has been updated to 8.34. This fixes bugs and makes the behaviour closer to Perl 5.18. In particular, the concept of ‘space’ includes ‘VT’ and hence agrees with POSIX's.
Where time zones have changed abbreviations over the years, the software tries to more consistently use the current abbreviation. On some platforms where the C function ‘localtime’ changed the ‘tzname’ variables the reported abbreviation could have been that of the last time converted.
The code for date-times before 1902 assumed that the offset from GMT in 1902 was a whole number of minutes: that was not true of Paris (as recorded on some platforms).
On a Unix-alike ‘Sys.timezone()’ returns ‘NA’ if the environment variable ‘TZ’ is unset, to distinguish it from an empty string which on some OSes means the ‘UTC’ time zone.
The code for date-times before 1902 assumed that the offset from GMT in 1902 was a whole number of minutes: that was not true of Paris.
There is some support to produce manuals in ebook formats. (See ‘doc/manual/Makefile’. Suggested by Mauro Cavalcanti.)
The HTML version of ‘An Introduction to R’ now has links to PNG versions of the figures.
The new field ‘SysDataCompression’ in the ‘DESCRIPTION’ file allows user control over the compression used for ‘sysdata.rda’ objects in the lazy-load database.
The bug fix in 3.0.2 for PR#15411 was too aggressive, and sometimes removed spaces that should not have been removed. (PR#15583)
‘R CMD check’ analyses ‘:::’ calls.
Running R code in a ‘tcltk’ callback failed to set the busy flag, which will be needed to tell OS X not to ‘App Nap’.
There is a new function, ‘La_version()’, to report the version of LAPACK in use.
The bug fix in 3.0.2 for PR#15411 was too agressive, and sometimes removed spaces that should not have been removed. (PR#15583)
‘predict(<lm object>, interval = "confidence", scale = <something>)’ now works. (PR#15564)
‘untar()’ has a new argument ‘restore_times’ which if false (not the default) discards the times in the tarball. This is useful if they are incorrect (some tarballs submitted to CRAN have times in a local time zone or many years in the past even though the standard required them to be in UTC).
‘rowsum’ has more support for matrices and dataframes with 2^31 or more elements. (PR#15587)
The long undocumented remapping of ‘rround()’ to ‘Rf_fround()’ in
header ‘Rmath.h’ is now formally deprecated: use ‘fround()’ directly.
The remapping of ‘round()’ to ‘Rf_fround()’ in header ‘Rmath.h’ is
deprecated and may be removed in future.
The long undocumented remapping of ‘rround()’ to ‘Rf_fround()’ in header ‘Rmath.h’ is now formally deprecated: use ‘fround()’ directly.
Remapping of ‘prec()’ and ‘trunc()’ in the ‘Rmath.h’ header has been disabled in C++ code (it has caused breakage with ‘libc++’ headers).
As a result of the 3.0.2 change about ‘the last second before the epoch’, most conversions which should have given ‘NA’ returned that time. (The platforms affected include Linux and OS X, but not Windows nor Solaris.)
The long undocumented remapping of ‘rround()’ to ‘Rf_fround()’ in header ‘Rmath.h’ is now formally deprecated: use ‘fround()’ directly.
The remapping of ‘round()’ to ‘Rf_fround()’ in header ‘Rmath.h’ is deprecated and may be removed in future.
As a result of the 3.0.2 change about ‘ the last second before the epoch’, most conversions which should have given ‘NA’ returned that time. (The platforms affected include Linux and OS X, but not Windows nor Solaris.)
Some translations in base packages were being looked up in the main catalog rather than that for the package.
‘write.table()’ now handles matrices of 2^31 or more elements, for those with large amounts of patience and disc space.
Several potential problems with compiler-specific behaviour have been identified using the ‘Undefined Behaviour Sanitizer’ in conjunction with the ‘clang’ compiler.
‘hcl()’ now honours ‘NA’ inputs (previously they were mapped to black).
‘namespaceImportFrom()’ needed to detect primitive functions when checking for duplicated imports (reported by Karl Forner).
Several functions did not handle zero-length vectors properly, including ‘browseEnv()’, ‘format()’, ‘gl()’, ‘relist()’ and ‘summary.data.frame()’. (E.g., PR#15499)
Improved handling of edge cases in ‘parallel::splitindices()’. (PR#15552)
The ‘bmp()’ device was not recording ‘res = NA’ correctly: it is now recorded as 72 ppi.
(Windows only) When a call to ‘system2()’ specified one of ‘stdin’, ‘stdout’ or ‘stderr’ to be a file, but the command was not found (e.g. it contained its arguments, or the program was not on the ‘PATH’), it left the file open and unusable until R terminated. (Reported by Mathew McLean.)
‘c()’ and related functions such as ‘unlist()’ converted raw vectors to invalid logical vectors. (PR#15535)
HTML display of results from ‘help.search()’ and ‘??’ sometimes contained badly constructed links.
Improved handling of edge cases in ‘parallel::splitindices’. (PR#15552)
Saved vignette results (in a '.Rout.save' file) were not being compared to the new ones during 'R CMD check'.
Double-clicking outside of the list box (e.g. on the scrollbar) of a Tk listbox widget generated by 'tk_select.list()' no longer causes the window to close. (PR#15407)
The 'validmu()' and 'valideta()' functions in the standard 'glm()' families now also report non-finite values, rather than failing.
'qcauchy(p, *)' is now fully accurate even when p is very close to 1. (PR#15521)
The nonsensical use of 'nmax = 1' in 'duplicated()' or 'unique()' is now silently ignored.
Illegal characters in the input caused 'parse()' (and thus 'source()') to segfault. (PR#15518)
Fake installs of packages with vignettes work again.
Several functions did not handle zero-length vectors properly, including 'browseEnv()', 'format()', 'gl()', 'relist()' and 'summary.data.frame()'. (e.g., PR#15499)
'Sweave()' did not restore the R output to the console if it was interrupted by a user in the middle of evaluating a code chunk. (Reported by Michael Sumner.)
Several functions did not handle length zero vectors properly, including 'browseEnv()', 'format()', 'gl()', 'relist()' and 'summary.data.frame()'. (e.g., PR#15499)
Errors in vignettes were not always captured and displayed properly. (PR#15495)
'contour()' could fail when dealing with extremely small z values. (PR#15454)
Removing subclass back-references when S4 classes were removed or their namespace unloaded had several bugs (e.g., PR#15481).
‘aggregate()’ could fail when there were too many levels present in the ‘by’ argument. (PR#15004)
‘namespaceImportFrom’ needed to detect primitive functions when checking for duplicated imports (reported by Karl Forner).
‘str(..., strict.width = "cut")’ did not handle it properly when more than one line needed to be cut. (Reported by Gerrit Eichner.)
‘plot.lm()’ would sometimes scramble the labels in plot type 5. (PR#15458 and PR#14837)
On Windows there is support for making ‘.texi’ manuals using ‘texinfo’ 5.0 or later: the setting is in file ‘src/gnuwin32/MkRules.dist’.
A packaging of the Perl script and modules for ‘texinfo’ 5.2 has been made available at <URL: http://www.stats.ox.ac.uk/pub/Rtools/>.
On Windows there is support for making ‘.texi’ manuals using ‘texinfo’
5.0 or later: the setting is in file ‘src/gnuwin32/MkRules.dist’.
‘getParseData()’ truncated the imaginary part of complex number constants. (Reported by Yihui Xie.)
‘dbeta(x, a, b)’ with ‘a’ or ‘b’ within a factor of 2 of the largest representable number could infinite-loop. (Reported by Ioannis Kosmidis.)
‘provideDimnames()’ failed for arrays with a 0 dimension. (PR#15465)
‘rbind()’ and ‘cbind()’ did not handle list objects correctly. (PR#15468)
‘replayPlot()’ now checks if it is replaying a plot from the same session.
‘rasterImage()’ and ‘grid.raster()’ now give error on an empty (zero-length) raster. (Reported by Ben North.)
‘plot.lm’ would sometimes scramble the labels in plot type 5. (PR#15458 and PR#14837)
‘min()’ did not handle ‘NA_character_’ values properly. (Reported by Magnus Thor Torfason.)
(Windows only.) ‘readRegistry()’ would duplicate default values for keys. (PR#15455)
‘getParseData()’ truncated the imaginary part of complex number
constants. (Reported by Yihui Xie.)
‘dbeta(x, a, b)’ with ‘a’ or ‘b’ within a factor of 2 of the largest
representable number could infinite-loop. (Reported by Ioannis
Kosmidis.)
‘provideDimnames()’ failed for arrays with a 0 dimension. (PR#15465)
‘rbind()’ and ‘cbind()’ did not handle list objects correctly.
(PR#15468)
‘replayPlot()’ now checks if it is replaying a plot from the same
session.
‘rasterImage()’ and ‘grid.raster()’ now give error on an empty
(zero-length) raster. (Reported by Ben North.)
‘plot.lm’ would sometimes scramble the labels in plot type 5.
(PR#15458 and PR#14837)
‘min()’ did not handle ‘NA_character_’ values properly. (Reported by
Magnus Thor Torfason.)
(Windows only.) ‘readRegistry()’ would duplicate default values for
keys. (PR#15455)
On Windows there is support for making ‘.texi’ manuals using ‘texinfo’ 5.0 or later: the setting is in file ‘src/gnuwin32/MkRules.dist’.
(Windows only.) ‘readRegistry()’ would duplicate default values for keys. (PR#15455)
‘plot.lm’ would sometimes scramble the labels in plot type 5. (PR#15458 and PR#14837)
‘min()’ did not handle ‘NA_character_’ values properly. (Reported by Magnus Thor Torfason.)
‘getParseData()’ truncated the imaginary part of complex number constants. (Reported by Yihui Xie.)
‘dbeta(x, a, b)’ with ‘a’ or ‘b’ within a factor of 2 of the largest representable number could infinite-loop. (Reported by Ioannis Kosmidis.)
‘provideDimnames()’ failed for arrays with a 0 dimension. (PR#15465)
‘rbind()’ and ‘cbind()’ did not handle list objects correctly. (PR#15468)
‘replayPlot()’ now checks if it is replaying a plot from the same session.
‘rasterImage()’ and ‘grid.raster()’ now give error on an empty (zero-length) raster. (Reported by Ben North.)
‘R CMD build’ now weaves and tangles all vignettes, so suggested packages are not required during package installation if the source tarball was prepared with current ‘R CMD build’.
LaTeX style file ‘upquote.sty’ is no longer included (the version was several years old): it is no longer used in R. A much later version is commonly included in LaTeX distributions but does not play well with the ‘ae’ fonts which are the default for Sweave vignettes.
‘R CMD build’ makes more use of the ‘build’ sub-directory of package sources, for example to record information about the vignettes.
‘R CMD check’ optionally checks for non-standard top-level files and directories (which are often mistakes): this is enabled for ‘--as-cran’.
Processing Sweave and Rd documents to PDF now renders backticks and single quotes better in several instances, including in ‘\code’ and ‘\samp’ expressions.
‘tools::pkgVignettes()’ gains argument ‘check’; if set to ‘TRUE’, it will warn when it appears a vignette requests a non-existent vignette engine.
‘utils::modifyList()’ gets a new argument ‘keep.null’ allowing ‘NULL’ components in the replacement to be retained, instead of causing corresponding components to be deleted.
Processing Sweave and Rd documents to PDF now renders backticks and single quotes better in several instances, including in ‘\code’ and ‘\samp’ expressions.
‘utils::modifyList()’ gets a new argument ‘keep.null’ allowing ‘NULL’ components in the replacement to be retained, instead of causing corresponding components to be deleted.
LaTeX style file ‘upquote.sty’ is no longer included (the version was several years old). A much later version is commonly included in LaTeX distributions but does not play well with the ‘ae’ fonts which are the default for Sweave vignettes.
‘plot()’ for ‘TukeyHSD’ objects did not balance ‘dev.hold()’ and ‘dev.flush()’ calls on multi-page plots. (PR#15449)
Processing Sweave and Rd documents to PDF now renders backticks and single quotes better in several instances, including in ‘\code’ and ‘\samp’ expressions.
‘R CMD build’ now weaves and tangles all vignettes, so suggested packages are never required during package installation.
The default ‘version’ of Bioconductor for its packages has been changed to the upcoming ‘2.13’, but this can be set by the environment variable ‘R_BIOC_VERSION’, e.g. in file ‘Renviron.site’.
‘R CMD check’ does more thorough checking of declared packages and namespaces. It reports
• packages declared in more than one of the ‘Depends’, ‘Imports’, ‘Suggests’ and ‘Enhances’ fields of the ‘DESCRIPTION’ file.
• namespaces declared in ‘Imports’ but not imported from, neither in the ‘NAMESPACE’ file nor using the ‘::’ nor ‘:::’ operators.
• packages which are used in ‘library()’ or ‘requires()’ calls in the R code but were already put on the search path _via_ ‘Depends’.
• packages declared in ‘Depends’ not imported _via_ the ‘NAMESPACE’ file (except the standard packages). Objects used from ‘Depends’ packages should be imported to avoid conflicts and to allow correct operation when the namespace is loaded but not attached.
• objects imported _via_ ‘:::’ calls where ‘::’ would do.
• objects imported by ‘::’ which are not exported.
• objects imported by ‘:::’ calls which do not exist.
See ‘Writing R Extensions’ for good practice.
The ‘NEWS’ files have been re-organized.
This file contains news for R >= 3.0.0: news for the 0.x.y, 1.x.y and 2.x.y releases is in files ‘NEWS.0’, ‘NEWS.1’ and ‘NEWS.2’. The latter files are now installed when R is installed. An HTML version of news from 2.10.0 to 2.15.3 is available as ‘doc/html/NEWS.2.html’.
Methods invoked by ‘NextMethod()’ had a different dynamic parent to the generic. This was causing trouble where S3 methods invoked via lazy evaluation could lose track of their generic. (PR#15267)
‘R CMD check’ does more thorough checking of declared packages and namespaces. It reports
• packages declared in more than one of the ‘Depends’, ‘Imports’, ‘Suggests’ and ‘Enhances’ fields of the ‘DESCRIPTION’ file.
• namespaces declared in ‘Imports’ but not imported from, neither in the ‘NAMESPACE’ file nor using the ‘::’ nor ‘:::’ operators.
• packages which are used in ‘library()’ or ‘requires()’ calls in the R code but were already put on the search path _via_ ‘Depends’.
• packages declared in ‘Depends’ not imported _via_ the ‘NAMESPACE’ file (except the standard packages). Objects used from ‘Depends’ packages should be imported to avoid conflicts and to allow correct operation when the namespace is loaded but not attached.
See ‘Writing R Extensions’ for good practice.
‘mcMap()’ was not exported by package ‘parallel’. (PR#15439)
Functions ‘readNEWS()’ and ‘checkNEWS()’ in package ‘tools’ are deprecated (and they have not worked with current ‘NEWS’ files for a long time).
The ‘NEWS’ files have been re-organized.
This file contains news for R >= 3.0.0: news for the 0.x.y, 1.x.y and 2.x.y releases is in files ‘NEWS.0’, ‘NEWS.1’ and ‘NEWS.2’ in the sources. The latter files are now installed when R is installed.
‘R CMD check’ does more thorough checking of declared packages and namespaces. It reports
• packages declared in more than one of the ‘Depends’, ‘Imports’, ‘Suggests’ and ‘Enhances’ fields of the ‘DESCRIPTION’ file.
• namespaces declared in ‘Imports’ but not imported from, neither in the ‘NAMESPACE’ file nor using the ‘::’ nor ‘:::’ operators.
• packages which are used in ‘library()’ or ‘requires()’ calls in the R code but were already put on the search path _via_ ‘Depends’.
• packages declared in ‘Depends’ not imported _via_ the ‘NAMESPACE’ file (except the standard packages). Objects used from ‘Depends’ packages should be imported to avoid conflicts.
See ‘Writing R Extensions’ for good practice.
The ‘NEWS’ files have been re-organized.
This file contains news for R >= 3.0.0: news for the 0.x.y, 1.x.y and 2.x.y releases is in files ‘NEWS.0’, ‘NEWS.1’ and ‘NEWS.2’ in the sources.
The ‘example()’ and ‘tools::Rd2ex()’ functions now have parameters to allow them to ignore ‘\dontrun’ markup in examples. (Suggested by Peter Solymos.)
Version requirements for ‘LinkingTo’ packages are now recognized: they are checked at installation. (Fields with version requirements were previously silently ignored.)
‘eval’ and ‘applyClosure’ are now protected against package code supplying an invalid ‘rho’.
Two warning/error messages have been corrected: the (optional) warning produced by a partial name match with a pairlist, the error message from a zero-length argument to the ‘:’ operator. (Found by Radford Neal; PR#15358, PR#15356)
‘na.omit()’ and ‘na.exclude()’ added a row to a zero-row data frame. (PR#15399)
(Windows only) Starting R with ‘R’ (instead of ‘Rterm’ or ‘Rgui’) would lose any zero-length strings from the command line arguments. (PR#15406)
The limit of 500 ‘S3method’ entries in a ‘NAMESPACE’ file has been removed.
(Windows) ‘system2()’ now respects specifying ‘stdout’ and ‘stderr’ as files if called from ‘Rgui’. (PR#15393)
Closing an ‘x11()’ device whilst ‘locator()’ or ‘identify()’ is in progress no longer hangs R. (PR#15253)
‘list.dirs(full.names = FALSE)’ was not implemented. (PR#15170)
‘file.show()’ and ‘edit()’ are now more likely to work on file paths containing spaces. (Where external utilities are used, not the norm on Windows nor in ‘R.app’ which should previously have worked.)
Packages using the ‘methods’ package are more likely to work when they import it but it is not attached. (Several parts of its C code were looking for its R functions on the search path rather than in its namespace.)
‘R CMD check’ optionally checks for non-standard top-level files (which are often mistakes): this is enabled for ‘--as-cran’.
‘lgamma(-x)’ is no longer ‘NaN’ for very small x.
Packages using the ‘methods’ package are more likely to work when they import it, even if it is not attached. (Several parts of its C code were looking for its R functions on the search path rather than in its namespace.)
‘R CMD check’ does more thorough checking of declared packages and namespaces. It reports
• packages declared in more than one of the ‘Depends’, ‘Imports’, ‘Suggests’ and ‘Enhances’ fields of the ‘DESCRIPTION’ file.
• namespaces declared in ‘Imports’ but not imported from, neither in the ‘NAMESPACE’ file nor using the ‘::’ nor ‘:::’ operators.
• packages which are used in ‘library()’ or ‘requires()’ calls in the R code but were already put on the search path _via_ ‘Depends’.
• packages declared in ‘Depends’ not imported _via_ the ‘NAMESPACE’ file (except the standard packages). Objects used from ‘Depends’ packages should be imported to avoid conflicts.
• namespaces imported _via_ ‘:::’ calls are reported. (Many of these should be ‘::’ calls.)
See ‘Writing R Extensions’ for good practice.
Version requirements for ‘LinkingTo’ packages are now recognized: they are checked at installation. (They were previously silently ignored.)
‘R CMD check’ does more thorough checking of declared packages and namespaces. It reports
• packages declared in more than one of the ‘Depends’, ‘Imports’, ‘Suggests’ and ‘Enhances’ fields of the ‘DESCRIPTION’ file.
• namespaces declared in ‘Imports’ but not imported from, neither in the ‘NAMESPACE’ file nor using the ‘::’ nor ‘:::’ operators.
• packages which are used in ‘library()’ or ‘requires()’ calls in the R code but were already put on the search path _via_ ‘Depends’.
• packages declared in ‘Depends’ not imported _via_ the ‘NAMESPACE’ file (except the standard packages). Objects used from ‘Depends’ packages should be imported to avoid conflicts.
More of the installation and checking process will work even when ‘TMPDIR’ is set to a path containing spaces, but this is not recommended and external software (such as ‘texi2dvi’) may fail.
More of the installation and checking process will work even when ‘TMPDIR’ is set to a path containing spaces, but this is not recommeneded and external software (such as ‘texi2dvi’) may fail.
‘file.show()’ and ‘edit()’ are now more likely to work on file paths containing spaces. (Where external utilities are used, not the norm on Windows nor in ‘R.app’, which should previously have worked.)
‘system()’ and ‘system2()’ are better protected against users who misguidedly have spaces in the temporary directory path.
‘system()’ and ‘system2()’ are better protected against users who misguidely have spaces in the temporary directory path.
‘R CMD LINK’ did not know about sub-architectures.
(Windows only.) ‘Rscript -e’ requires a non-empty argument for consistency with Unix versions of R. (Also ‘Rterm -e’ and ‘R -e’.)
‘sum()’ for integer arguments now uses an integer accumulator of at least 64 bits and so will be more accurate in the very rare case that a cumulative sum exceeds 2^53 (necessarily summing more than 4 million elements).
Methods invoked by ‘NextMethod()’ had different dynamic parent to the generic. This was causing trouble where S3 methods invoked via lazy evaluation could lose track of their generic (PR#15267).
Code for the negative binomial distribution now treats the case ‘size == 0’ as a one-point distribution at zero.
The minimum version for a system ‘xz’ library is now 5.0.3 (was 4.999). This is in part to avoid 5.0.2, which can compress in ways other versions cannot decompress.
‘is.unsorted(NA)’ returns false as documented (rather than ‘NA’).
‘abbreviate()’ handles without warning non-ASCII input strings which require no abbreviation.
‘read.dcf()’ no longer has a limit of 8191 bytes per line. (Wish of PR#15250.)
‘formatC(x)’ no longer copies the class of ‘x’ to the result, to avoid misuse creating invalid objects as in PR#15303. A warning is given if a class is discarded.
If ‘x’ is a symbol, ‘is.vector(x, "name")’ now returns ‘TRUE’, since ‘"name"’ and ‘"symbol"’ should be synonyms. (Reported by Hervé Pagès.)
‘R CMD rtags’ works on platforms (such as OS X) with a XSI-conformant shell command ‘echo’. (PR#15231)
‘termplot()’ now has an argument ‘transform.x’ to control the display of individual terms in the plot. (PR#15329)
The initialization of the regression coefficients for non-degenerate differenced models in ‘arima()’ has been changed and in some examples avoids a local maximum. (PR#15396)
Dataset ‘npk’ has been copied from ‘MASS’ to allow more tests to be run without recommended packages being installed.
(Windows only) Starting R with ‘R’ (instead of ‘Rterm’ or ‘Rgui’) would lose any zero length strings from the command line arguments. (PR#15406)
Errors in the encoding specified on the command line via ‘--encoding=foo’ were not handled properly. (PR#15405)
‘R CMD INSTALL’ has a new option ‘--no-byte-compile’ which will override a ‘ByteCompile’ field in the package's ‘DESCRIPTION’ file.
License ‘BSD’ is deprecated: use ‘BSD_3_clause’ or ‘BSD_2_clause’ instead.
License ‘X11’ is deprecated: use ‘MIT’ or ‘BSD_2_clause’ instead.
‘eval’ and ‘applyClosure’ qre now protected against package code supplying an invalid ‘rho’.
‘source()’ did not display filenames when reporting syntax errors.
Syntax error reports misplaced the caret pointing out the bad token.
License ‘BSD’ is deprecated: use ‘BSD_2_clause’ or ‘BSD_3_clause’ instead.
License ‘X11’ is deprecated: use ‘MIT’ or ‘BSD_2_clause’ instead.
Configuring with ‘--disable-byte-compilation’ will override the ‘DESCRIPTION’ files of recommended packages, which typically require byte-compilation.
‘R CMD INSTALL’ has a new option ‘--no-byte-compile’ which will override a ‘ByteCompile’ field in the packages's ‘DESCRIPTION’ file.
All the (where necessary cut-down) vignettes are installed if R was configured with ‘--without-recommended-packages’.
When ‘parse()’ finds a syntax error, it now makes partial parse information available up to the location of the error. (Request of Reijo Sund.)
‘na.omit()’ and ‘na.exclude()’ added a row to a zero row data frame. (PR#15399)
‘integrate()’ reverts to the pre-2.12.0 behaviour: from 2.12.0 to 3.0.1 it sometimes failed to achieve the requested tolerance and reported error estimates that were exceeded. (PR#15219)
The parser now enforces C99 syntax for floating point hexadecimal constants (e.g. ‘0x1.1p0’), rather than returning unintended values for malformed constants. (PR#15234)
Subsetting 1D arrays often lost dimnames (PR#15301).
Unary ‘+’ on a logical vector did not coerce to integer, although unary ‘-’ did.
‘model.matrix()’ now works with very long LHS names (more than 500 bytes). (PR#15377)
‘integrate()’ reverts to the pre-2.12.0 behaviour: it sometimes reported error estimates that were exceeded. (PR#15219)
‘seq()’ and ‘seq.int()’ give more explicit error messages if called with invalid (e.g. ‘NaN’) inputs.
‘model.matrix()’ now works with very long lhs names (more than 500 bytes). (PR#15377)
‘integrate()’ reverts to the pre-2.12.0 behaviour. (PR#15219)
‘strptime()’ now handles ‘%W’ fields with value 0. (PR#15915)
R is now better protected against people trying to interact with the console in startup code. (PR#15325)
The macros used for the texinfo manuals have been changed to work better with the incompatible changes made in ‘texinfo 5.x’.
The included version of PCRE has been updated to 8.33.
The included version of ‘zlib’ has been updated to 1.2.8, a bug-fix release.
The included version of xz utils's ‘liblzma’ has been updated to 5.0.5.
Since ‘javareconf’ (see above) is used when R is installed, a stable link for ‘JAVA_HOME’ can be supplied then.
The macros used for the texinfo manuals have been changed to work
better with the incompatible changes made in texinfo 5.x.
The included version of PCRE has been updated to 8.33.
The included version of ‘zlib’ has been updated to 1.2.8, a bug-fix
release.
The included version of xz utils's ‘liblzma’ has been updated to 5.0.5.
‘R CMD javareconf’ now supports the use of symbolic links for ‘JAVA_HOME’ on platforms which have ‘realpath’. So it is now possible to use
R CMD javareconf JAVA_HOME=/usr/lib/jvm/java-1.7.0
on a Linux system and record that value rather than the frequently-changing full path such as ‘/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.25.x86_64’.
‘An Introduction to R’ has a new chapter on using R as a scripting language including interacting with the OS.
‘An Introduction to R’ has a new chapter on using R as a scripting language, interacting with the OS.
Various functions in ‘stats’ and elsewhere that use non-standard evaluation are now more careful to follow the namespace scoping rules. E.g. ‘stats::lm()’ can now find ‘stats::model.frame()’ even if ‘stats’ is not on the search path or if some package defines a function of that name.
If an invalid/corrupt ‘.Random.seed’ object is encountered in the workspace it is ignored with a warning rather than giving an error. (This allows R itself to rely on a working RNG, e.g. to choose a random port.)
The included version of ‘zlib’ has been updated to 1.2.8, a bug-fix release.
There is now support for the LaTeX style file ‘zi4.sty’ which has in some distributions replaced ‘inconsolata.sty’.
The included version of xz utils's ‘liblzma’ has been updated to 5.0.5.
‘stem()’ now discards infinite inputs rather than hanging. (PR#15376)
On systems where ‘mktime()’ does not set ‘errno’, the last second before the epoch could not be converted from ‘POSIXlt’ to ‘POSIXct’. (Reported by Bill Dunlap.)
‘add1.glm()’ miscalculated F-statistics when df > 1. (Bill Dunlap, PR#15386).
‘add1.glm’ miscalculated F-statistics when df > 1. (Bill Dunlap, PR#15386).
The included version of xz's liblzma has been updated to 5.0.5.
New ‘assertCondition()’, etc. utilities in ‘tools’, useful for testing.
‘R CMD javareconf’ now supports the use of symbolic links for ‘JAVA_HOME’ on platforms which have ‘realpath’. So it is now possible to use
R CMD javareconf JAVA_HOME=/usr/lib/jvm/java-1.7.0
on a Linux system and record that value rather than the frequently-changing full path such as ‘/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.25.x86_64’.
Since ‘javareconf’ is used when R is installed, a simplified ‘JAVA_HOME’ can be supplied then.
On system where ‘mktime()’ does not set ‘errno’, the last second before the epoch could not be converted from ‘POSIXlt’ to ‘POSIXct’. (Reported by Bill Dunlap.)
‘mclapply()’ and ‘mcparallel()’ with ‘silent = TRUE’ could break a process that uses ‘stdout’ output unguarded against broken pipes (e.g., ‘zip’ will fail silently). To work around such issues, they now replace ‘stdout’ with a descriptor pointed to ‘/dev/null’ instead. For this purpose, internal ‘closeStdout’ and ‘closeStderr’ functions have gained the ‘to.null’ flag.
‘kmeans(algorithm = "Hartigan-Wong")’ now always stops iterating in the QTran stage. (PR#15364).
‘read.dcf()’ re-allocated incorrectly and so could segfault when called on a file with lines of more than 100 bytes.
Profiling now records non-inlined calls from byte compiled code to BUILTIN functions.