This blog is updated daily.
A general description is here.
For now only active when environment variable ‘_R_CLASS_MATRIX_ARRAY_’ is set to non-empty, but planned to be the new unconditional behavior when R 4.0.0 is released:
‘matrix’ objects now also inherit from class ‘"array"’, namely, e.g., ‘class(diag(1))’ is ‘c("matrix", "array")’ which invalidates code assuming that ‘length(class(obj)) == 1’, an incorrect assumption that is less frequently fulfilled now.
S3 methods for ‘"array"’, i.e., ‘<someFun>.array()’, are now also dispatched for ‘matrix’ objects.
Better error message for ‘contour(*, levels = Inf)’.
The Fortran code for calculating the ‘coefficients’ component in ‘lm.influence’ was very inefficient. It has (for now) been replaced with much faster R code (PR#17624).
‘cm.colors(n)’ etc no longer append the code for ‘alpha = 1’, ‘"FF"’, to all colors. Hence all eight ‘*.colors()’ functions and ‘rainbow()’ behave consistently (PR#17659).
‘runmed(x, *)’ gains a new option ‘na.action’ determining _how_ to handle ‘NaN’ or ‘NA’ in ‘x’.
‘dotchart()’ gains new options ‘ann’, ‘xaxt’, ‘frame.plot’ and ‘log’.
Source-code changes enable installation on platforms using ‘gcc -fno-common’ (the expected default for ‘gcc 10.x’).
The default standard for C++ in package installation is C++11 (as it has been on other platforms where available since R 3.6.0: the default toolchain on Windows was defaulting to C++98).
‘plot.formula(*, subset = *)’ now also works in a boundary case reported by Robert Schlicht (TU Dresden).