This blog is updated daily.
A general description is here.
The parser now treats ‘\Unnnnnnnn’ escapes larger than ‘"\U10FFFF"’ as an error as they cannot be represented by valid UTF-8.
Where such escapes are use for outputting non-printable characters, 6 (not 8) hex digits are used (as it was decided that the first two would always be zero).
‘all.equal(f, g)’ for ‘function’s now by default also compares their ‘environment(.)’s, notably via new ‘all.equal’ method for class ‘function’. Comparison of ‘nls()’ fits, e.g., may now need ‘all.equal(m1, m2, check.environment = FALSE)’.
Parsing strings containing UTF-16 surrogate pairs such as ‘"\uD834\uDD1E"’ works better on some (uncommon) platforms.
‘unsplit()’ had trouble with tibbles due to unsound use of ‘rep(NA, len)’-indexing, which should use ‘NA_integer_’ Reported to R-devel by Mario Annau.
‘pnorm(x, log.p = TRUE)’ underflows to ‘-Inf’ slightly later.
‘show(<hidden S4 generic>)’ prints better and without quotes for non-hidden S4 generics.
‘read.table()’ and relatives treated an "NA" column name as missing when ‘check.names = FALSE’ PR#18007.