This blog is updated daily.
A general description is here.
‘format.POSIXlt()’ behaved incorrectly in R 3.2.4. E.g. the output of ‘format(as.POSIXlt(paste0(1940:2000,"-01-01"), tz = "CET"), usetz = TRUE)’ ended in two ‘"CEST"’ time formats.
A typo in the Makefile for ‘src/extra/xz’ prevented builds of ‘liblzma.a’. (Notice that this will become unbundled in 3.3.0.)
‘format.POSIXlt()’ behaved incorrectly in R 3.2.4. E.g. the output of ‘format(as.POSIXlt(paste0(1940:2000,"-01-01"), tz = "CET"), usetz = TRUE)’ ended in two ‘"CEST"’ time formats.
‘format.POSIXlt()’ behaved wrongly, e.g., ‘format(as.POSIXlt(paste0(1940:2000,"-01-01"), tz="CET"), usetz=TRUE)’ ended in two ‘"CEST"’ time formats.
‘summary.data.frame()’ now displays ‘NA’s in ‘Date’ columns in all cases. (PR#16709)
‘install.packages()’ and related functions now give a more informative warning when an attempt is made to install a base package.
‘summary(x)’ now prints with less rounding when ‘x’ contains infinite values. (Request of PR#16620.)
‘provideDimnames()’ gets an optional ‘unique’ argument.
‘shQuote()’ gains ‘type = "cmd2"’ for quoting in ‘cmd.exe’ in Windows. (Response to PR#16636.)
The ‘data.frame’ method of ‘rbind()’ gains an optional argument ‘stringsAsFactors’ (instead of only depending on ‘getOption("stringsAsFactors")’).
‘smooth(x, *)’ now also works for long vectors.
‘tools::texi2dvi()’ has a workaround for problems with the ‘texi2dvi’ script supplied by ‘texinfo 6.1’.
It extracts more error messages from the LaTeX logs when in emulation mode.
‘R CMD check’ will leave a log file ‘build_vignettes.log’ from the re-building of vignettes in the ‘.Rcheck’ directory if there is a problem, and always if environment variable ‘_R_CHECK_ALWAYS_LOG_VIGNETTE_OUTPUT_’ is set to a true value.
Use of ‘SUPPORT_OPENMP’ from header ‘Rconfig.h’ is deprecated in favour of the standard OpenMP define ‘_OPENMP’.
(This has been the recommendation in the manual for a while now.)
The ‘make’ macro ‘AWK’ which is long unused by R itself but recorded in file ‘etc/Makeconf’ is deprecated and will be removed in R 3.3.0.
The C header file ‘S.h’ is no longer documented: its use should be replaced by ‘R.h’.
‘kmeans(x, centers = <1-row>)’ now works. (PR#16623)
‘Vectorize()’ now checks for clashes in argument names. (PR#16577)
‘file.copy(overwrite = FALSE)’ would signal a successful copy when none had taken place. (PR#16576)
‘ngettext()’ now uses the same default domain as ‘gettext()’. (PR#14605)
‘array(.., dimnames = *)’ now warns about non-‘list’ dimnames and, from R 3.3.0, will signal the same error for invalid dimnames as ‘matrix()’ has always done.
‘addmargins()’ now adds dimnames for the extended margins in all cases, as always documented.
‘heatmap()’ evaluated its ‘add.expr’ argument in the wrong environment. (PR#16583)
‘require()’ etc now give the correct entry of ‘lib.loc’ in the warning about an old version of a package masking a newer required one.
The internal deparser did not add parentheses when necessary, e.g. before ‘[]’ or ‘[[]]’. (Reported by Lukas Stadler; additional fixes included as well).
‘as.data.frame.vector(*, row.names=*)’ no longer produces ‘corrupted’ data frames from row names of incorrect length, but rather warns about them. This will become an error.
‘url’ connections with ‘method = "libcurl"’ are destroyed properly. (PR#16681)
‘withCallingHandler()’ now (again) handles warnings even during S4 generic's argument evaluation. (PR#16111)
‘deparse(..., control = "quoteExpressions")’ incorrectly quoted empty expressions. (PR#16686)
‘format()’ting datetime objects (‘"POSIX[cl]?t"’) could segfault or recycle wrongly. (PR#16685)
‘plot.ts(<matrix>, las = 1)’ now does use ‘las’.
‘saveRDS(*, compress = "gzip")’ now works as documented. (PR#16653)
(Windows only) The ‘Rgui’ front end did not always initialize the console properly, and could cause R to crash. (PR#16998)
‘dummy.coef.lm()’ now works in more cases, thanks to a proposal by Werner Stahel (PR#16665). In addition, it now works for multivariate linear models (‘"mlm"’, ‘manova’) thanks to a proposal by Daniel Wollschlaeger.
The ‘as.hclust()’ method for ‘"dendrogram"’s failed often when there were ties in the heights.
‘reorder()’ and ‘midcache.dendrogram()’ now are non-recursive and hence applicable to somewhat deeply nested dendrograms, thanks to a proposal by Suharto Anggono in PR#16424.
‘cor.test()’ now calculates very small p values more accurately (affecting the result only in extreme not statistically relevant cases). (PR#16704)
‘smooth(*, do.ends=TRUE)’ did not always work correctly in R versions between 3.0.0 and 3.2.3.
‘pretty(D)’ for date-time objects ‘D’ now also works well if ‘range(D)’ is (much) smaller than a second. In the case of only one unique value in ‘D’, the pretty range now is more symmetric around that value than previously.
Similarly, ‘pretty(dt)’ no longer returns a length 5 vector with duplicated entries for ‘Date’ objects ‘dt’ which span only a few days.
The figures in help pages such as ‘?points’ were accidentally damaged, and did not appear in R 3.2.3. (PR#16708)
‘available.packages()’ sometimes deleted the wrong file when cleaning up temporary files. (PR#16712)
The ‘X11()’ device sometimes froze on Red Hat Enterprise Linux 6. It now waits for ‘MapNotify’ events instead of ‘Expose’ events, thanks to Siteshwar Vashisht. (PR#16497)
‘[dpqr]nbinom(*, size=Inf, mu=.)’ now works as limit case, for ‘dpq’ as the Poisson. (PR#16727) ‘pnbinom()’ no longer loops infinitely in border cases.
‘approxfun(*, method="constant")’ and hence ‘ecdf()’ which calls the former now correctly “predict” ‘NaN’ values as ‘NaN’.
‘R CMD check’ will leave a log file ‘build_vignettes.log’ from the re-building of vignettes in the ‘.Rcheck’ directory if there is a problem, and always if environment variable ‘_R_CHECK_ALWAYS_LOG_VIGNETTE_OUTPUT_’ is set to a true value.
‘smooth(x, *)’ now also works for long vectors.
‘tools::texi2dvi()’ has a workaround for problems with the ‘texi2dvi’ script supplied by ‘texinfo 6.1’.
It extracts more error messages from the LaTeX logs when in emulation mode.
The ‘data.frame’ method of ‘rbind()’ gains an optional argument ‘stringsAsFactors’ (instead of only depending on ‘getOption("stringsAsFactors")’).
The C header file ‘S.h’ is no longer documented: its use should be replaced by ‘R.h’.
The ‘make’ macro ‘AWK’ which is long unused by R itself but recorded in file ‘etc/Makeconf’ is deprecated and will be removed in R 3.3.0.
‘pretty(D)’ for date-time objects ‘D’ now also works well if ‘range(D)’ is (much) smaller than a second. In the case of only one unique value in ‘D’, the pretty range now is more symmetric around that value than previously.
Similarly, ‘pretty(dt)’ no longer returns a length 5 vector with duplicated entries for ‘Date’ objects ‘dt’ which span only a few days.
The X11 device froze on Red Hat Enterprise Linux 6. It now waits for MapNotify events instead of Expose events, thanks to Siteshwar Vashisht. (PR#16497)
‘available.packages()’ sometimes deleted the wrong file when cleaning up temporary files. (PR#16712)
‘dummy.coef.lm()’ now works in more cases, thanks to a proposal by Werner Stahel (PR#16665). In addition, it now works for multivariate linear models (‘"mlm"’, ‘manova’) thanks to a proposal by Daniel Wollschlaeger.
The ‘data.frame’ method of ‘rbind()’ gains an optional argument ‘stringsAsFactors’ (instead of only depending on ‘getOption("stringsAsFactors")’).
‘smooth(x, *)’ now also works for long vectors.
‘smooth(*, do.ends=TRUE)’ did not always work correctly in R versions between 3.0.0 and 3.2.3.
‘pretty(D)’ for date-time objects ‘D’ now also works well if ‘range(D)’ is (much) smaller than a second. In the case of only one unique value in ‘D’, the pretty range now is more symmetric around that value than previously.
The figures in help pages such as ‘?points’ were accidentally damaged, and did not appear in R 3.2.3. (PR#16708)
The ‘as.hclust’ method for ‘"dendrogram"’s failed often when there ties
in the heights.
The ‘as.hclust’ method for ‘"dendrogram"’s failed often when there were ties in the heights.
‘reorder()’ and ‘midcache.dendrogram()’ now are non-recursive and hence applicable to somewhat deeply nested dendrograms, thanks to a proposal by Suharto Anggono in PR#16424.
‘cor.test()’ now calculates very small p values more accurately (affecting the result only in extreme not statistically relevant cases). (PR#16704)
The ‘as.hclust’ method for ‘"dendrogram"’s failed often when there ties in the heights.
(Windows only) The ‘Rgui’ front end did not always initialize the console properly, and could cause R to crash. (PR#16998)
‘saveRDS(*, compress = "gzip")’ now works as documented. (PR#16653)
‘plot.ts(<matrix>, las = 1)’ now does use ‘las’.
‘deparse(..., control = "quoteExpressions")’ incorrectly quoted empty expressions. (PR#16686)
‘format()’ting datetime objects (‘"POSIX[cl]?t"’) could segfault or recycle wrongly. (PR#16685)
The ‘make’ macro ‘AWK’ which is long unused by R itself but recorded in file ‘etc/Makeconf’ is deprecated and will be removed in R 3.3.0.
The C header file ‘S.h’ is no longer documented: its use should be replaced by ‘R.h’.
‘withCallingHandler()’ now (again) handles warnings even during S4 generic's argument evaluation. (PR#16111)
‘url’ connections with ‘method = "libcurl"’ are destroyed properly. (PR#16681)
The ‘data.frame’ method of ‘rbind()’ gains an optional argument ‘stringsAsFactors’ (instead of only depending on ‘getOption("stringsAsFactors")’).
‘as.data.frame.vector(*, row.names=*)’ no longer produces ‘corrupted’ data frames from row names of incorrect length, but rather warns about them. This will become an error.
‘as.data.frame.vector(*, row.names=*)’ no longer produces “corrupted” data frames from row names of wrong length, but rather warns about them. This will become an error.
The internal deparser did not add parentheses when necessary, e.g. before ‘[]’ or ‘[[]]’. (Reported by Lukas Stadler; additional fixes included as well).
‘rbind.data.frame()’ gets optional argument ‘stringsAsFactors’ (instead of only depending on ‘getOption("stringsAsFactors")’).
‘sub()’ and ‘gsub()’ did not handle regular expressions like ‘"\s{2,}"’ properly if the text contained ‘NA’ or non-ASCII elements in a UTF-8 locale. Part of this was due to a bug in the TRE library. (PR#16009)
The ‘make’ macro ‘AWK’ which is long unused by R itself but recorded in file ‘etc/Makeconf’ is deprecated and will be removed in R 3.3.0.
The ‘make’ macro @codeAWK which is long unused by R itself but recorded in file ‘etc/Makeconf’ is deprecated and will be removed in R 3.3.0.
The internal deparser did not add parentheses when necessary before
‘[]’ or ‘[[]]’. (Reported by Lukas Stadler).
The internal deparser did not add parentheses when necessary before ‘[]’ or ‘[[]]’. (Reported by Lukas Stadler).
Use of ‘SUPPORT_OPENMP’ from header ‘Rconfig.h’ is deprecated in favour of the standard OpenMP define ‘_OPENMP’.
(This has been the recommendation in the manual for a while now.)
‘require()’ etc now give the correct entry of ‘lib.loc’ in the warning about an old version of a package masking a newer required one.
‘shQuote()’ gains ‘type = "cmd2"’ for quoting in ‘cmd.exe’ in Windows. (Response to PR#16636.)
‘heatmap()’ evaluated its ‘add.expr’ argument in the wrong environment. (PR#16583)
‘provideDimnames()’ gets an optional ‘unique’ argument.
‘addmargins()’ now adds dimnames for the extended margins in all cases, as always documented.
‘array(.., dimnames = *)’ now warns about non-‘list’ dimnames and, from R 3.3.0, will signal the same error for invalid dimnames as ‘matrix()’ has always done.
‘array(.., dimnames = *)’ now signals the same error for invalid dimnames as ‘matrix()’ has always done.
‘Vectorize()’ now checks for clashes in argument names. (PR#16577)
‘file.copy(overwrite = FALSE)’ would signal a successful copy when none had taken place. (PR#16576)
‘ngettext()’ now uses the same default domain as ‘gettext()’. (PR#14605)
‘summary(x)’ now prints with less rounding when ‘x’ contains infinite values. (Request of PR#16620.)
‘install.packages()’ and related functions now give a more informative warning when an attempt is made to install a base package.
‘kmeans(x, centers = <1-row>)’ now works. (PR#16623)
Some recently-added Windows time zone names have been added to the conversion table used to convert these to Olson names. (Including those relating to changes for Russia in Oct 2014, as in PR#16503.)
(Windows) Compatibility information has been added to the manifests for ‘Rgui.exe’, ‘Rterm.exe’ and ‘Rscript.exe’. This should allow ‘win.version()’ and ‘Sys.info()’ to report the actual Windows version up to Windows 10.
Windows ‘"wininet"’ FTP first tries EPSV / PASV mode rather than only using active mode (reported by Dan Tenenbaum).
‘which.min(x)’ and ‘which.max(x)’ may be much faster for logical and integer ‘x’ and now also work for long vectors.
The ‘emulation’ part of ‘tools::texi2dvi()’ has been somewhat enhanced, including supporting ‘quiet = TRUE’. It can be selected by ‘texi2dvi = "emulation"’.
(Windows) MiKTeX removed its ‘texi2dvi.exe’ command in Sept 2015: ‘tools::texi2dvi()’ tries ‘texify.exe’ if it is not found.
(Windows only) Shortcuts for printing and saving have been added to menus in ‘Rgui.exe’. (Request of PR#16572.)
‘loess(..., iterTrace=TRUE)’ now provides diagnostics for robustness iterations, and the ‘print()’ method for ‘summary(<loess>)’ shows slightly more.
The included version of PCRE has been updated to 8.38, a bug-fix release.
‘View()’ now displays nested data frames in a more friendly way. (Request with patch in PR#15915.)
The included configuration code for ‘libintl’ has been updated to that from ‘gettext’ version 0.19.5.1 - this should only affect how an external library is detected (and the only known instance is under OpenBSD). (Wish of PR#16464.)
‘configure’ has a new argument ‘--disable-java’ to disable the checks for Java.
The ‘configure’ default for ‘MAIN_LDFLAGS’ has been changed for the FreeBSD, NetBSD and Hurd OSes to one more likely to work with compilers other than ‘gcc’ (FreeBSD 10 defaults to ‘clang’).
‘configure’ now supports the OpenMP flags ‘-fopenmp=libomp’ (clang) and ‘-qopenmp’ (Intel C).
Various macros can be set to override the default behaviour of ‘configure’ when detecting OpenMP: see file ‘config.site’.
Source installation on Windows has been modified to allow for MiKTeX installations without ‘texi2dvi.exe’. See file ‘MkRules.dist’.
‘regexpr(pat, x, perl = TRUE)’ with Python-style named capture did not work correctly when ‘x’ contained ‘NA’ strings. (PR#16484)
The description of dataset ‘ToothGrowth’ has been improved/corrected. (PR#15953)
‘model.tables(type = "means")’ and hence ‘TukeyHSD()’ now support ‘"aov"’ fits without an intercept term. (PR#16437)
‘close()’ now reports the status of a ‘pipe()’ connection opened with an explicit ‘open’ argument. (PR#16481)
Coercing a list without names to a data frame is faster if the elements are very long. (PR#16467)
(Unix-only) Under some rare circumstances piping the output from ‘Rscript’ or ‘R -f’ could result in attempting to close the input file twice, possibly crashing the process. (PR#16500)
(Windows) ‘Sys.info()’ was out of step with ‘win.version()’ and did not report Windows 8.
‘topenv(baseenv())’ returns ‘baseenv()’ again as in R 3.1.0 and earlier. This also fixes ‘compilerJIT(3)’ when used in ‘.Rprofile’.
‘detach()’ing the ‘methods’ package keeps ‘.isMethodsDispatchOn()’ true, as long as the methods namespace is not unloaded.
Removed some spurious warnings from ‘configure’ about the preprocessor not finding header files. (PR#15989)
‘rchisq(*, df=0, ncp=0)’ now returns ‘0’ instead of ‘NaN’, and ‘dchisq(*, df=0, ncp=*)’ also no longer returns ‘NaN’ in limit cases (where the limit is unique). (PR#16521)
‘pchisq(*, df=0, ncp > 0, log.p=TRUE)’ no longer underflows (for ncp > ~60).
‘nchar(x, "w")’ returned -1 for characters it did not know about (e.g. zero-width spaces): it now assumes 1. It now knows about most zero-width characters and a few more double-width characters.
Help for ‘which.min()’ is now more precise about behavior with logical arguments. (PR#16532)
The print width of character strings marked as ‘"latin1"’ or ‘"bytes"’ was in some cases computed incorrectly.
‘abbreviate()’ did not give names to the return value if ‘minlength’ was zero, unlike when it was positive.
(Windows only) ‘dir.create()’ did not always warn when it failed to create a directory. (PR#16537)
When operating in a non-UTF-8 multibyte locale (e.g. an East Asian locale on Windows), ‘grep()’ and related functions did not handle UTF-8 strings properly. (PR#16264)
‘read.dcf()’ sometimes misread lines longer than 8191 characters. (Reported by Hervé Pagès with a patch.)
‘within(df, ..)’ no longer drops columns whose name start with a ‘"."’.
The built-in ‘HTTP’ server converted entire ‘Content-Type’ to lowercase including parameters which can cause issues for multi-part form boundaries (PR#16541).
Modifying slots of S4 objects could fail when the ‘methods’ package was not attached. (PR#16545)
‘splineDesign(*, outer.ok=TRUE)’ (‘splines’) is better now (PR#16549), and ‘interpSpline()’ now allows ‘sparse=TRUE’ for speedup with non-small sizes.
If the expression in the traceback was too long, ‘traceback()’ did not report the source line number. (Patch by Kirill Müller.)
The browser did not truncate the display of the function when exiting with ‘options("deparse.max.lines")’ set. (PR#16581)
When ‘bs(*, Boundary.knots=)’ had boundary knots inside the data range, extrapolation was somewhat off. (Patch by Trevor Hastie.)
‘var()’ and hence ‘sd()’ warn about ‘factor’ arguments which are deprecated now. (PR#16564)
‘loess(*, weights = *)’ stored wrong weights and hence gave slightly wrong predictions for ‘newdata’. (PR#16587)
‘aperm(a, *)’ now preserves ‘names(dim(a))’.
‘poly(x, ..)’ now works when either ‘raw=TRUE’ or ‘coef’ is specified. (PR#16597)
‘data(package=*)’ is more careful in determining the path.
‘prettyNum(*, decimal.mark, big.mark)’: fixed bug introduced when fixing PR#16411.
‘View()’ now displays nested data frames in a more friendly way. (Request with patch in PR#15915.)
‘"noquote"’ objects may now be used as columns in data frames. (PR#15997)
‘rowsum()’ has more support for matrices and data frames with 2^31 or more elements. (PR#15587)
Matrix indexing of data frames by two-column numeric indices is now supported for replacement as well as extraction.
The included version of PCRE has been updated to 8.38, a bug-fix release.
‘prettyNum(*, decimal.mark, big.mark)’: fixed bug introduced when fixing PR#16411.
The built-in ‘HTTP’ server converted entire ‘Content-Type’ to lowercase including parameters which can cause issues for multi-part form boundaries (PR#16541).
‘data(package=*)’ is more careful in determining the path.
‘nchar(x, *)’ and ‘nzchar(x)’ gain a new argument ‘keepNA’ which governs how the result for ‘NA’s in ‘x’ is determined. For ‘nzchar()’ in general and ‘nchar()’ in the R 3.2.x series, the default remains ‘FALSE’ which is fully back compatible. From R 3.3.0, ‘nchar()’'s default will change to ‘keepNA = NA’ and you are advised to consider this for code portability.
‘aperm(a, *)’ now preserves ‘names(dim(a))’.
‘poly(x, ..)’ now works when either ‘raw=TRUE’ or ‘coef’ is specified. (PR#16597)
‘loess(..., iterTrace=TRUE)’ now provides diagnostics for robustness iterations, and the ‘print()’ method for ‘summary(<loess>)’ shows slightly more.
‘loess(*, weights = *)’ stored wrong weights and hence gave slightly wrong predictions for ‘newdata’. (PR#16587)
‘var()’ and hence ‘sd()’ warn about ‘factor’ arguments which are deprecated now. (PR#16564)
‘var()’ hence ‘sd()’ now signal an error for ‘factor()’ arguments. (PR#16564)
The browser did not truncate the display of the function when exiting with ‘options("deparse.max.lines")’ set. (PR#16581)
When ‘bs(*, Boundary.knots=)’ had boundary knots inside the data range, extrapolation was somewhat off. (Patch by Trevor Hastie.)
Modifying slots of S4 objects could fail when the ‘methods’ package was not attached. (PR#16545)
(Windows only) Shortcuts for printing and saving have been added to menus in ‘Rgui.exe’. (Request of PR#16572.)
If the expression in the traceback was too long, ‘traceback()’ did not report the source line number. (Patch by Kirill Müller.)
‘within(df, ..)’ no longer drops columns whose name start with a ‘"."’.
‘splineDesign(*, outer.ok=TRUE)’ (‘splines’) is better now (PR#16549), and ‘interpSpline()’ now allows ‘sparse=TRUE’ for speedup with non-small sizes.
The ‘emulation’ part of ‘tools::texi2dvi()’ has been somewhat enhanced, including supporting ‘quiet = TRUE’. It can be selected by ‘texi2dvi = "emulation"’.
(Windows) MiKTeX removed its ‘texi2dvi.exe’ command in Sept 2015: ‘tools::texi2dvi()’ tries ‘texify.exe’ if it is not found.
Source installation on Windows has been modified to allow for MiKTeX installations without ‘texi2dvi.exe’. See file ‘MkRules.dist’.
Modifying slots of S4 objects could fail when the ‘methods’ package was not attached (PR#16545).
Various macros can be set to override the default behaviour of ‘configure’ when detecting OpenMP: see file ‘config.site’.
When operating in a non-UTF-8 multibyte locale (e.g. an East Asian locale on Windows), ‘grep()’ and related functions did not handle UTF-8 strings properly. (PR#16264)
‘read.dcf()’ sometimes misread lines longer than 8191 characters. (Reported by Hervé Pagès with a patch.)
When operating in a multibyte locale, ‘grep()’ and related functions did not handle UTF-8 strings properly. (PR#16264)
‘read.dcf()’ misread lines longer than 8191 characters. (Reported by Hervé Pagès with a patch.)
(Windows only) ‘dir.create()’ did not always warn when it failed to create a directory. (PR#16537)
‘abbreviate()’ did not give names to the return value if ‘minlength’ was zero, unlike when it was positive.
Help for ‘which.min()’ is now more precise about behavior with logical arguments. (PR#16532)
The macros ‘SHLIB_OPENMP_CFLAGS’ etc can be set in e.g. ‘config.site’.
The ‘configure’ default for ‘MAIN_LDFLAGS’ has been changed for the FreeBSD, NetBSD and Hurd OSes to one more likely to work with compilers other than ‘gcc’ (FreeBSD 10 defaults to ‘clang’).
The print width of character strings marked as ‘"latin1"’ or ‘"bytes"’ was in some cases computed incorrectly.
(Unix-only) Under some rare circumstances piping the output from ‘Rscript’ or ‘R -f’ could result in attempting to close the input file twice, possibly crashing the process. (PR#16500)
‘which.min(x)’ and ‘which.max(x)’ may be much faster for logical and integer ‘x’ and now also work for long vectors.
Help for ‘which.min’ is now more precise about behavior with logical arguments. (PR#16532)
‘nchar(x, "w")’ returned -1 for characters it did not know about (e.g. zero-width spaces): it now assumes 1. It now knows about most zero-width characters and a few more double-width characters.
‘nchar(x, "w")’ assumed -1 for characters it did not know about (e.g. zero-width spaces): it now assumes 1. It now knows about zero-width characters and a few extra double-width characters.
The macros ‘SHLIB_OPENMP_CFLAGS’ etc can be set in e.g. ‘config.site’.
This is needed for ‘clang’ 3.7.0 which needs a compiler option for
OpenMP not known to the standard ‘autoconf’ macro used.
The macros ‘SHLIB_OPENMP_CFLAGS’ etc can be set in e.g. ‘config.site’.
‘configure’ now supports the OpenMP flags ‘-fopenmp=libomp’ (clang) and ‘-qopenmp’ (Intel C).
Various OpenMP macros can be set to override the default behaviour of ‘configure’: see file ‘config.site’.
‘nchar(x, "w")’ assumed -1 for characters it did not know about (e.g. zero-width spaces): it now assumes 1 (and knows about zero-width characters).
The macros ‘SHLIB_OPENMP_CFLAGS’ etc can be set in e.g. ‘config.site’. This is needed for ‘clang’ 3.7.0 which needs a compiler option for OpenMP not known to the standard ‘autoconf’ macro used.
The included configuration code for ‘libintl’ has been updated to that from ‘gettext’ version 0.19.5.1 - this should only affect how an external library is detected (and the only known instance is under OpenBSD). (Wish of PR#16464.)
The 'configure' default for 'MAIN_LDFLAGS' has been changed for FreeBSD, NetBSD and Hurd OSes to one more likely to work with compilers other than 'gcc' (FreeBSD 10 defaults to 'clang').
'rchisq(*, df=0, ncp=0)' now returns '0' instead of 'NaN', and 'dchisq(*, df=0, ncp=*)' also no longer returns 'NaN' in limit cases (where the limit is unique). (PR#16521)
'pchisq(*, df=0, ncp > 0, log.p=TRUE)' no longer underflows (for ncp > ~60).
'configure' has a new argument '--disable-java' to disable the checks for Java.
'topenv(baseenv())' returns 'baseenv()' again as in R 3.1.0 and earlier. This also fixes 'compilerJIT(3)' when used in '.Rprofile'.
Removed some spurious warnings from 'configure' about the preprocessor not finding header files. (PR#15989)
The included configuration code for 'libintl' has been updated to that from 'gettext' version 0.19.5.1 - this should only affect how an external library is detected. (Wish of PR#16464.)
(Windows) Compatibility information has been added to the manifests for 'Rgui.exe', 'Rterm.exe' and 'Rscript.exe'. This should allow 'win.version()' and 'Sys.info()' to report the actual Windows version up to Windows 10.
Some recently-added Windows time zone names have been added to the conversion table used to convert these to Olson names. (Including those relating to changes for Russia in Oct 2014, as in PR#16503.)
Windows '"wininet"' FTP first tries EPSV / PASV mode rather than only using active mode (reported by Dan Tenenbaum).
'close()' now reports the status of a 'pipe()' connection opened with an explicit 'open' argument. (PR#16481)
'detach()'ing the 'methods' package keeps '.isMethodsDispatchOn()' true, as long as the methods namespace is not unloaded.
It is now easier to use secure downloads from 'https://' URLs on builds which support them: no longer do non-default options need to be selected to do so. In particular, packages can be installed from repositories which offer 'https://' URLs, and those listed by 'setRepositories()' now do so (for some of their mirrors).
Support for 'https://' URLs is available on Windows, and on other platforms if support for 'libcurl' was compiled in and if that supports the 'https' protocol (system installations can be expected to do). So 'https://' support can be expected except on rather old OSes (an example being OS X 'Snow Leopard', where a non-system version of 'libcurl' can be used).
(Windows only) The default method for accessing URLs _via_ 'download.file()' and 'url()' has been changed to be '"wininet"' using Windows API calls. This changes the way proxies need to be set and security settings made: there have been some reports of 'ftp:' sites being inaccessible under the new default method (but the previous methods remain available).
(Windows only) 'setInternet2(TRUE)' is now the default. The command-line option '--internet2' and environment variable 'R_WIN_INTERNET2' are now ignored.
Thus by default the '"internal"' method for 'download.file()' and 'url()' uses the '"wininet"' method: to revert to the previous default use 'setInternet2(FALSE)'.
This means that 'https://' URLs can be read by default by 'download.file()' (they have been readable by 'file()' and 'url()' since R 3.2.0).
There are implications for how proxies need to be set (see '?download.file').
Windows '"wininet"' FTP first tries EPSV / PASV mode (reported by Dan Tenenbaum).
A few more timezone Windows names have been added to the conversion table used to convert these to Olson names. (Including that from PR#16503.)
'regexpr(pat, x, perl = TRUE)' with Python-style named capture did not work correctly when 'x' contained 'NA' strings. (PR#16484)
The description of dataset 'ToothGrowth' has been improved/corrected. (PR#15953)
'model.tables(type = "means")' and hence 'TukeyHSD()' now support '"aov"' fits without an intercept term. (PR#16437)
Coercing a list without names to a data frame is faster if the elements are very long. (PR#16467)
(Unix-only) Under some circumstances piping the output from 'Rscript' or 'R -f' could result in attempting to close the input file twice, possibly crashing the process. (PR#16500)
(Windows) 'Sys.info()' was out of step with 'win.version()' and did not report Windows 8.
It is now easier to use secure downloads from 'https://' URLs on builds which support them: no longer do non-default options need to be selected to do so. In particular, packages can be installed from repositories which offer 'https://' URLs, and those listed by 'setRepositories()' now do so (for some of their mirrors).
Support for 'https://' URLs is available on Windows, and on other platforms if support for 'libcurl' was compiled in and if that supports the 'https' protocol (system installations can be expected to do). So 'https://' support can be expected except on rather old OSes (an example being OS X 'Snow Leopard', where a non-system version of 'libcurl' can be used).
(Windows only) The default method for accessing URLs _via_ 'download.file()' and 'url()' has been changed to be '"wininet"' using Windows API calls. This changes the way proxies need to be set and security settings made: there have been some reports of sites being inaccessible under the new default method (but the previous methods remain available).
(Non-Windows only) 'download.file()' with default 'method = "auto"' now chooses '"libcurl"' if that is available and a 'https://' or 'ftps://' URL is used.
It is now easier to use secure downloads from 'https://' URLs on builds which support them: no longer do non-default options need to be selected to do so. In particular, packages can be installed from repositories which offer 'https://' URLs, and those listed by 'setRepositories()' now do so (for some of their mirrors).
Support for 'https://' URLs is available on Windows, and on other platforms if support for 'libcurl' was compiled in and if that supports the 'https' protocol (system installations can be expected to do). So 'https://' support can be expected except on rather old OSes (an example being OS X 'Snow Leopard').
(Windows only) 'setInternet2(TRUE)' is now the default. The command-line option '--internet2' and environment variable 'R_WIN_INTERNET2' are now ignored.
Thus by default the '"internal"' method for 'download.file()' and 'url()' uses the '"wininet"' method: to revert to the previous default use 'setInternet2(FALSE)'.
This means that 'https://' can be read by default by 'download.file()' (they have been readable by 'file()' and 'url()' since R 3.2.0).
There are implications for how proxies need to be set (see '?download.file'): also, 'cacheOK = FALSE' is not supported.
'read.table()' now always uses the names for a named 'colClasses'
argument (previously names were only used when 'colClasses' was too
short). (In part, wish of PR#16478.)
'ttkimage()' did not (and could not) work so was removed. Ditto for 'tkimage.cget()' and 'tkimage.configure()'. Added two Ttk widgets and missing subcommands for Tk's 'image' command: 'ttkscale()', 'ttkspinbox()', 'tkimage.delete()', 'tkimage.height()', 'tkimage.inuse()', 'tkimage.type()', 'tkimage.types()', 'tkimage.width()'. (PR#15372, PR#16450)
'capture.output()' gets optional arguments 'type' and 'split' to pass to 'sink()', and hence can be used to capture messages.
'read.table()' now always uses the names for a named 'colClasses' argument (previously names were only used when 'colClasses' was too short). (In part, wish of PR#16478.)
'getClass("foo")' now also returns a class definition when it is found in the cache more than once.
If the 'na.action' argument was used in 'model.frame()', the original data could be modified. (PR#16436)
'cmdscale()' gets new option 'list.' for increased flexibility when a list should be returned.
'configure' now supports 'texinfo' version 6.0, which (unlike the change from 4.x to 5.0) is a minor update. (Wish of PR#16456.)
(Windows only) 'setInternet2(TRUE)' is now the default, so 'https://' URLs should be readable. The command line option '--internet2' and the environment variable 'R_WIN_INTERNET2' are now ignored.
(Non-Windows only:) 'download.file()' with default 'method = "auto"' now chooses '"libcurl"' if that is available and a 'https://' or 'ftps://' url is used.
'chooseCRANmirror()' and 'chooseBioCmirror()' now offer HTTPS mirrors in preference to HTTP mirrors. This changes the interpretation of their 'ind' arguments: see their help pages.
'capture.output()' gets optional arguments 'type' and 'split' to pass to 'sink()', and hence can be used capture messages.
'read.table()' now uses the names for a named 'colClasses' argument (previously names were only used when 'colClasses' was too short). (Wish of PR#16478.)
Header 'Rconfig.h' now defines 'HAVE_ALLOCA_H' if the platform has the 'alloca.h' header (it is needed to define 'alloca' on Solaris and AIX, at least: see 'Writing R Extensions' for how to use it).
The 'libtool' script generated by 'configure' has been modified to support FreeBSD >= 10 (PR#16410).
The HTML help page links to demo code failed due to a change in R 3.2.0. (PR#16432)
If 'na.action' was used in 'model.frame()', the original data could be modified. (PR#16436)
'getGraphicsEvent()' could cause a crash if a graphics window was closed while it was in use. (PR#16438)
'matrix(x, nr, nc, byrow = TRUE)' failed if 'x' was an object of type '"expression"'.
'strptime()' could overflow the allocated storage on the C stack when the timezone had a non-standard format much longer than the standard formats. (Part of PR#16328.)
'options(OutDec = s)' now signals a warning (which will become an error in the future) when 's' is not a string with exactly one character, as that has been a documented requirement.
'prettyNum()' gains a new option 'input.d.mark' which together with other changes, e.g., the default for 'decimal.mark', fixes some 'format()'ting variants with non-default 'getOption("OutDec")' such as in PR#16411.
'download.packages()' failed for 'type' equal to either '"both"' or '"binary"'. (Reported by Dan Tenenbaum.)
The 'dendrogram' method of 'labels()' is much more efficient for large dendrograms, now using 'rapply()'. (Comment #15 of PR#15215)
The '"port"' algorithm of 'nls()' could give spurious errors. (Reported by Radford Neal.)
Reference classes that inherited from reference classes in another package could invalidate methods of the inherited class. Fixing this requires adding the ability for methods to be "external", with the object supplied explicitly as the first argument, named '.self'. See "Inter-Package Superclasses" in the documentation.
'readBin()' could fail on the SPARC architecture due to alignment issues. (Reported by Radford Neal.)
'qt(*, df=Inf, ncp=.)' now uses the natural 'qnorm()' limit instead of returning 'NaN'. (PR#16475)
Auto-printing of S3 and S4 values now searches for 'print()' in the base namespace and 'show()' in the 'methods' namespace instead of searching the global environment.
'polym()' gains a 'coefs = NULL' argument and returns class '"poly"' just like 'poly()' which gets a new 'simple=FALSE' option. They now lead to correct 'predict()'ions, e.g., on subsets of the original data.
'rhyper(nn, <large>)' now works correctly. (PR#16489)
'ttkimage()' did not (and could not) work so was removed. Ditto for 'tkimage.cget()' and 'tkimage.configure()'. Added two Ttk widgets and missing subcommands for Tk's 'image' command: 'ttkscale()', 'ttkspinbox()', 'tkimage.delete()', 'tkimage.height()', 'tkimage.inuse()', 'tkimage.type()', 'tkimage.types()', 'tkimage.width()'. (PR#15372, PR#16450)
'chooseCRANmirror()' and 'chooseBioCmirror()' now offer HTTPS mirrors in preference to HTTP mirrors. This changes the intepretation of their 'ind' arguments: see their help pages.
'ttkimage()' did not (and could not) work so was removed. Ditto for 'tkimage.cget()' and 'tkimage.configure()'. Added two Ttk widgets and missing subcommands for Tk's 'image' command: 'ttkscale()', 'ttkspinbox()', 'tkimage.delete()', 'tkimage.height()', 'tkimage.inuse()', 'tkimage.type()', 'tkimage.types()', 'tkimage.width()'. (PR#15372, PR#16450)
The 'libtool' script generated by 'configure' has been modified to support FreeBSD >= 10 (PR#16410).
'capture.output()' gets optional arguments 'type' and 'split' to pass to 'sink()', and hence can be used capture messages.
'polym()' gains a 'coefs = NULL' argument and returns class '"poly"' just like 'poly()' which gets a new 'simple=FALSE' option. They now lead to correct 'predict()'ions, e.g., on subsets of the original data.
'rhyper(nn, <large>)' now works correctly. (PR#16489)
‘strptime()’ could overflow the allocated storage on the C stack when the timezone had a non-standard format much longer than the standard formats. (Part of PR#16328.)
‘download.packages()’ failed for ‘type’ equal to either ‘"both"’ or ‘"binary"’. (Reported by Dan Tenenbaum.)
Header ‘Rconfig.h’ now defines ‘HAVE_ALLOCA_H’ if the platform has the ‘alloca.h’ header (it is needed to define ‘alloca’ on Solaris and AIX, at least: see ‘Writing R Extensions’ for how to use it).
Auto-printing of S3 and S4 values now searches for ‘print()’ in the base namespace and ‘show()’ in the ‘methods’ namespace instead of searching the global environment.
‘qt(*, df=Inf, ncp=.)’ now uses the natural ‘qnorm()’ limit instead of returning ‘NaN’. (PR#16475)
(Non-Windows only:) ‘download.file()’ with default ‘method = "auto"’ now chooses ‘"libcurl"’ if that is available and a ‘https://’ or ‘ftps://’ url is used.
(Non-Windows only:) ‘download.file()’ with default ‘method = "auto"’ now chooses ‘"libcurl"’ if that is available and a ‘https://’ or ‘fttps://’ url is used.
The ‘dendrogram’ method of ‘labels()’ is much more efficient for large dendrograms, now using ‘rapply()’. (Comment #15 of PR#15215)
The ‘"port"’ algorithm of ‘nls()’ could give spurious errors. (Reported by Radford Neal.)
‘readBin()’ could fail on the SPARC architecture due to alignment issues. (Reported by Radford Neal.)
‘chooseCRANmirror()’ now offers HTTPS mirrors in preference to HTTP mirrors.
Reference classes that inherited from reference classes in another package could invalidate methods of the inherited class. Fixing this requires adding the ability for methods to be “external”, with the object supplied explicitly as the first argument, named ‘.self’. See "Inter-Package Superclasses" in the documentation.
‘download.packages()’ failed for ‘type’ equal to ‘"both"’ or ‘"binary"’. (Reported by Dan Tenenbaum.)
‘configure’ now supports ‘texinfo’ version 6.0, which (unlike the change from 4.x to 5.0) is a minor update. (Wish of PR#16456.)
‘options(OutDec = s)’ now signals a warning (which will become an error in the future) when ‘s’ is not a string with exactly one character, as that has been a documented requirement.
‘prettyNum()’ gains a new option ‘input.d.mark’ which together with other changes, e.g., the default for ‘decimal.mark’, fixes some ‘format()’ting variants with non-default ‘getOption("OutDec")’ such as in PR#16411.
Under some circumstances using the internal PCRE when building R from source would cause external libs such as ‘-llzma’ to be omitted from the main link.
(Windows only) ‘setInternet2(TRUE)’ is now the default, so ‘https://’ URLs should be readable. The command line option ‘--internet2’ and the environment variable ‘R_WIN_INTERNET2’ are now ignored.
‘configure’ now supports ‘texinfo’ version 6.0, which (unlike the change from 4.x to 5.0) is minor update. (Wish of PR#16456.)
‘cmdscale()’ gets new option ‘list.’ for increased flexibility when a list should be returned.
‘configure’ now supports ‘texinfo’ version 6.0. (Wish of PR#16456.)
‘strptime()’ could overflow the C stack when the timezone had a non-standard format much longer than the standard formats. (Part of PR#16328.)
‘matrix(x, nr, nc, byrow = TRUE)’ failed if ‘x’ was an object of type ‘"expression"’.
If ‘na.action’ was used in ‘model.frame()’, the original data could be modified. (PR#16436)
‘getGraphicsEvent()’ could cause a crash if a graphics window was closed while it was in use. (PR#16438)
‘getGraphicsEvent’ could cause a crash if a graphics window was closed while it was in use. (PR#16438)
If ‘na.action’ was used in ‘model.frame’, the original data could be modified. (PR#16436)
The HTML help page links to demo code failed due to a change in R 3.2.0. (PR#16432)
‘utf8ToInt()’ now checks that its input is valid UTF-8 and returns ‘NA’ if it is not.
‘install.packages()’ now allows ‘type = "both"’ with ‘repos = NULL’ if it can infer the type of file.
‘nchar(x, *)’ and ‘nzchar(x)’ gain a new argument ‘keepNA’ which governs how the result for ‘NA’s in ‘x’ is determined. For the R 3.2.x series, the default remains ‘FALSE’ which is fully back compatible. From R 3.3.0, the default will change to ‘keepNA = NA’ and you are advised to consider this for code portability.
‘news()’ more flexibly extracts dates from package ‘NEWS.Rd’ files.
‘lengths(x)’ now also works (trivially) for atomic ‘x’ and hence can be used more generally as an efficient replacement of ‘sapply(x, length)’ and similar.
The included version of PCRE has been updated to 8.37, a bug-fix release.
‘diag()’ no longer duplicates a matrix when extracting its diagonal.
‘as.character.srcref()’ gains an argument to allow characters corresponding to a range of source references to be extracted.
‘acf()’ and ‘ccf()’ now guarantee values strictly in [-1,1] (instead of sometimes very slightly outside). PR#15832.
‘as.integer("111111111111")’ now gives NA (with a warning) as it does for the corresponding numeric or negative number coercions. Further, ‘as.integer(M + 0.1)’ now gives ‘M’ (instead of NA) when M is the maximal representable integer.
On some platforms ‘nchar(x, "c")’ and ‘nchar(x, "w")’ would return values (possibly ‘NA’) for inputs which were declared to be UTF-8 but were not, or for invalid strings without a marked encoding in a multi-byte locale, rather than give an error. Additional checks have been added to mitigate this.
‘apply(a, M, function(u) c(X = ., Y = .))’ again has dimnames containing "X" and "Y" (as in R < 3.2.0).
(Windows only) In some cases, the ‘--clean’ option to ‘R CMD INSTALL’ could fail. (PR#16178)
(Windows only) ‘choose.files()’ would occasionally include characters from the result of an earlier call in the result of a later one. (PR#16270)
A change in ‘RSiteSearch()’ in R 3.2.0 caused it to submit invalid URLs. (PR#16329)
‘Rscript’ and command line ‘R’ silently ignored incomplete statements at the end of a script; now they are reported as parse errors. (PR#16350)
Parse data for very long strings was not stored. (PR#16354)
‘plotNode()’, the workhorse of the ‘plot’ method for ‘"dendrogram"’s is no longer recursive, thanks to Suharto Anggono, and hence also works for deeply nested dendrograms. (PR#15215)
The parser could overflow internally when given numbers in scientific format with extremely large exponents. (PR#16358)
If the CRAN mirror was not set, ‘install.packages(type = "both")’ and related functions could repeatedly query the user for it. (Part of PR#16362)
The low-level functions ‘.rowSums()’ etc. did not check the length of their argument, so could segfault. (PR#16367)
The ‘quietly’ argument of ‘library()’ is now correctly propagated from ‘.getRequiredPackages2()’.
Under some circumstances using the internal PCRE when building R fron source would cause external libs such as ‘-llzma’ to be omitted from the main link.
The .Primitive default methods of the logic operators, i.e., ‘!’, ‘&’ and ‘|’, now give correct error messages when appropriate, e.g., for ‘`&`(TRUE)’ or ‘`!`()’. (PR#16385)
‘cummax(x)’ now correctly propagates ‘NA’s also when ‘x’ is of type ‘integer’ and begins with an ‘NA’.
‘summaryRprof()’ could fail when the profile contained only two records. (PR#16395)
HTML vignettes opened using ‘vignette()’ did not support links into the rest of the HTML help system. (Links worked properly when the vignette was opened using ‘browseVignettes()’ or from within the help system.)
‘arima(*, xreg = .)’ (for d >= 1) computes estimated variances based on a the number of effective observations as in R version 3.0.1 and earlier. (PR#16278)
‘slotNames(.)’ is now correct for ‘"signature"’ objects (mostly used internally in ‘methods’).
On some systems, the first string comparison after a locale change would result in ‘NA’.
On some systems, the first string comparison after a locale change would result in ‘NA’.
‘slotNames(.)’ is now correct for ‘"signature"’ objects (mostly used internally in ‘methods’).
‘news()’ now displays R and package news files within the HTML help
system if it is available. If no news file is found, a visible ‘NULL’
is returned to the console.
‘news()’ more flexibly extracts dates from package ‘NEWS.Rd’ files.
(Windows only) ‘choose.files()’ would occasionally include characters from the result of an earlier call in the result of a later one. (PR#16270)
‘arima(*, xreg = .)’ (for d >= 1) computes estimated variances based on a the number of effective observations as in R version 3.0.1 and earlier. (PR#16278)
On some platforms ‘nchar(x, "c")’ and ‘nchar(x, "w")’ would return values (possibly ‘NA’) for inputs which were declared to be UTF-8 but were not, or for invalid strings without a marked encoding in a multi-byte locale, rather than give an error. Additional checks have been added to mitigate this.
The ‘quietly’ argument of ‘library()’ is now correctly propagated from ‘.getRequiredPackages2()’.
Under some circumstances using the internal PCRE when building R fron source would cause external libs such as ‘-llzma’ to be omitted from the main link.