This blog is updated daily.
A general description is here.
[In progress]
There is support for a package to indicate the version of the C standard which should be used to compile it, and for the installing user to specify this. Current options are:
USE_C17 Use a standard that is at most C17. The intention is to allow legacy packages to still be installed when later C standards become the default. For example, packages using new keywords as identifiers or with K&R-style function declarations.
USE_C90 Use the C90 (aka C89) standard.
USE_C99 Use the C99 standard. This should be rarely needed - it avoids the few new features of C11/C17 which can be useful if a package assumes them if C17 is specified and they are not implemented.
USE_C23 Use C23 (or in future, later). Compiler/library support for C23 is still being implemented, but LLVM clang 15 and the upcoming GCC 13 have quite extensive support.
These can be specified as part of the ‘SystemRequirements’ field in the package's ‘DESCRIPTION’ file or _via_ options ‘--use-C17’ and so on of ‘R CMD INSTALL’ and ‘R CMD SHLIB’.
For further details see “Writing R Extensions” §1.2.5.
BLAS detection now works also with system-provided libraries not available as regular files. This fixes detection of the Accelerate framework on macOS since Big Sur. Reported by David Novgorodsky.
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>’.