This blog is updated daily.
A general description is here.
The list of base and recommended package names is now provided by ‘tools::standard_package_names()’.
‘L %||% R’ newly in ‘base’ is an expressive idiom for the ‘if(!is.null(L)) L else R’ or ‘if(is.null(L)) R else L’ phrases.
‘R CMD check’ now visits ‘inst/NEWS.Rd’ and OS-specific ‘man’ subdirectories when checking Rd files.
‘is.R()’ is deprecated as no other S dialect is known to be in use (and this could only identify historical dialects, not future ones).
For now, further information on calls can be obtained by setting environment variable ‘_R_DEPRECATED_IS_R_’. Value ‘warn’ gives a warning as per the default except immediately, value ‘error’ turns this warning into an error (so by default gives a traceback), value ‘traceback’ gives a traceback in a message (not a warning, as that may truncate) and value ‘where’ gives the call to the function (if any) calling ‘is.R’ and which namespace it is from. Value ‘self’ is a variant of ‘where’ for use by ‘R CMD check --as-cran’.
The level reported in the ‘browser’ prompt was often too large. It now shows the number of browser contexts on the stack.
‘pmatch(x, table)’ for large ‘table’, also called for data frame row selection, ‘dfrm[nm, ]’, is now interruptible, fixing PR#18656.
‘cov2cor(<0 x 0>)’ now works, fixing PR#18423 thanks to Mikael Jagan and Elin Waring.
‘inherits(x, what)’ now accepts values other than a simple character vector for argument ‘what’. A new generic, ‘nameOfClass()’, is called to resolve the class name from ‘what’. This supports experimenting with alternative object systems. Based on contributions by Tomasz Kalinowski in PR#18485.
Functions ‘axis.Date()’ and ‘axis.POSIXct()’ are rewritten to gain better default tick locations and better default formats by using ‘prettyDate()’. Thanks to Swetlana Herbrandt.
The makefiles and installer scripts for Windows have been tailored to Rtools43, an update of the Rtools42 toolchain. It is based on GCC 12 and newer versions of MinGW-W64, binutils and libraries. At this time R-devel can still be built using Rtools42 without changes, but when R-devel is installed via the installer, it will by default look for Rtools43.
When ‘example(foo, ..)’ produces graphics on an interactive device it needs to open itself, it now leaves ‘devAskNewPage()’ unchanged even when it was ‘FALSE’, thus fixing a 14 years old ‘FIXME’.
‘parallel::detectCores()’ drops support for IRIX (retired in 2013).
Internet access based on libcurl, including ‘curlGetHeaders()’, was not respecting the ‘"timeout"’ option. If this causes unanticipated timeouts, consider increasing the default by setting ‘R_DEFAULT_INTERNET_TIMEOUT’.
‘readBin()’ and ‘writeBin()’ now report an error for an invalid ‘endian’ value. The affected code needs to be fixed with care as the old undocumented behavior was to swap endianness in such cases.