This blog is updated daily.
A general description is here.
The parser now signals _classed_ errors, notably in case of the pipe operator ‘|>’. The error object and message now give line and column numbers, mostly as proposed and provided by Duncan Murdoch in PR#18328.
The flag ‘-fno-optimize-sibling-calls’ is no longer forced for ‘gfortran’ 7 and later. It should no longer be needed now using ‘hidden’ character-length arguments when calling BLAS/LAPACK routines from C/C++ is the default even for packages. (Unless perhaps packages call Fortran code from C/C++ without using R's headers and without allowing for these arguments.)
‘USE_FC_LEN_T’ is the default: this uses the correct (compiler-dependent) prototypes for Fortran BLAS/LAPACK routines called from C/C++, and requires adjustment of many such calls - see ‘Writing R Extensions’ §6.6.1.
The deprecated legacy typedefs of ‘Sint’ and ‘Sfloat’ in header ‘R.h’ can be excluded by defining macro ‘NO_S_TYPEDEFS’ before including the header. This is defined when using ‘R CMD check --as-cran’ or by defining the environment variable ‘_R_NO_S_TYPEDEFS_’ to a true value when running ‘R CMD check’.
If these are excluded, ‘R.h’ no longer includes header ‘limits.h’ (nor ‘climits’ from C++).
[This is intended to become the default before release.]
‘R CMD check’ does more checking of package ‘.Rd’ files, warning about invalid email addresses and (some) invalid URIs and noting empty ‘\item’ labels in description lists.
New function ‘utils::findCRANmirror()’ to find out if a CRAN mirror has been selected, otherwise fallback to the main site. This behaves in the same way as ‘tools::CRAN_package_db()’ and is intended for packages wishing to access CRAN for purposes other than installing packages.
The need for this was shown by a day when the main CRAN website was offline and a dozen or so packages which had its URL hardcoded failed their checks.