This blog is updated daily.
A general description is here.
For now only active when environment variable ‘_R_CLASS_MATRIX_ARRAY_’
is set to something true (i.e., one of ‘TRUE’, ‘True’, ‘true’, or ‘T’),
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.
R now builds by default against a PCRE2 library for Perl-like regular expressions if available at build time on non-Windows platforms (otherwise PCRE1 is used as in older versions of R).
PCRE2 is stricter in some cases and reports errors for some regular expressions that were accepted by PCRE1. A hyphen now has to be escaped in a character class to be interpreted as a literal (unless first or last in the class definition). ‘\R’, ‘\B’ and ‘\X’ are no longer allowed in character classes (PCRE1 treated these as literals).
Option ‘PCRE_study’ is no longer used, and reported as ‘FALSE’.
The version of PCRE used can be obtained via ‘extSoftVersion()’, PCRE1 has versions < 10, PCRE2 versions >= 10.
‘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.