The new function asplit() allow splitting an array or matrix by its margins.
Experimentally, setting environment variable _R_CHECK_LENGTH_1LOGIC2 will lead to warnings (or errors if the variable is set to a ‘true’ value) when && or || encounter and use arguments of length more than one.
convertColor() is now vectorized, so a lot faster for converting many colours at once. The new argument vectorized to colorConverter() ensures that non-vectorized colour converters still work. (Thanks to Brodie Gaslam.)
Performance of substr() and substring() has been improved. (but how much, faintly recall not much)
stopifnot() has been simplified thanks to Suharto Anggono's proposals to become considerably faster for cheap expressions. (this is a big deal)
substr() and substring() now signal an error when the input is invalid UTF-8.
Fixes to convertColor() for chromatic adaptation; thanks to Brodie Gaslam PR#17473.
Class unions are unloaded when their namespace is unloaded (PR#17531, adapted from a patch by Brodie Gaslam).