This blog is updated daily.
A general description is here.
The default initialization of the ‘"repos"’ option from the ‘repositories’ file at startup can be skipped by setting environment variable ‘R_REPOSITORIES’ to ‘NULL’ such that ‘getOption("repos")’ is empty if not set elsewhere.
‘qr.X()’ is now an implicit S4 generic in ‘methods’.
‘iconv(to = "ASCII//TRANSLIT")’ is emulated using substitution on platforms which do not support it (notably Alpine Linux). This should give a human-readable conversion in ASCII on all platforms (rather than ‘NA_character_’).
‘trans3d()’ gains options ‘continuous’ and ‘verbose’ addressing the problem of possible “wrap around” when projecting too long curves, as reported by Achim Zeileis in PR#18537.
‘tools::showNonASCII()’ has been rewritten to work better on macOS 14 (which has a changed implementation of ‘iconv()’).
‘tiff(type = "quartz")’ (the default on macOS) now warns if ‘compression’ is specified: it continues to be ignored.
There is some support for building with Intel's LLVM-based compilers on ‘x86_64’ Linux, such as (C) ‘icx’, (C++) ‘ipcx’ and (Fortran) ‘ifx’ from oneAPI 2023.x.y.
There is support for using LLVM's ‘flang-new’ as the Fortran compiler from LLVM 16.0.x (preferably 17.0.0 or later).
‘R CMD check’ reports the use of the Fortran 90 random number generator ‘RANDOM_NUMBER()’ and the subroutines to initialize it.
‘Writing R Extensions’ has example code to use R's RNGs from Fortran.
‘substr(x, n, L) <- cc’ now works (more) correctly for multibyte UTF-8 strings ‘x’ when ‘L > nchar(x)’, thanks to a report and patch by ‘Architect 95’.
‘contrib.url(character())’ now returns 0-length ‘character()’ as documented, which also avoids spurious warnings from ‘available.packages()’ et al. in the edge case of an empty vector of repository URLs.
‘readChar(., 4e8)’ no longer fails, thanks to Kodi Arfer's report (PR#18557).
‘lapply(<list>, as.data.frame)’ no longer warns falsely for some base vector components.
Communication between parent and child processes in the ‘multicore’ part of ‘parallel’ could fail on platforms that do not support an arbitrarily large payload in system functions ‘read()’/‘write()’ on pipes (seen on macOS where a restriction to ‘INT_MAX’ bytes is documented, without doing a partial read unlike Linux). The payload is now split into 1Gb chunks to avoid that problem. (PR#18571)
‘qqplot(x,y, conf.level=.)’ gives better confidence bounds when ‘length(x) != length(y)’, thanks to Alexander Ploner's report and patch proposal (PR#18557).
‘norm(<0-length>, "2")’ now gives zero instead of an error, as all the other norm types, thanks to Mikael Jagan's PR#18542.
Build-stage Rd macros \packageAuthor and \packageMaintainer now process ‘Authors@R’, fixing ‘NA’ results when the package ‘DESCRIPTION’ omits ‘Author’ and ‘Maintainer’ fields.
Formatting and printing complex numbers could give things like ‘0.1683-0i’ because of rounding error: ‘-0i’ is now replaced by ‘+0i’.
‘postscript()’ refused to accept a ‘title’ comment containing the letter “W” (PR#18599).
‘isoreg(c(1,Inf))’ signals an error instead of segfaulting, fixing PR#18603.
‘tiff(type = "Xlib")’ was only outputting the last page of multi-page plots.
‘tools::latexToUtf8()’ again knows about ‘\~{n}’ and other letters with tilde, fixing a regression in R 4.3.0, and about ‘\^{i}’ as an alternative to ‘\^{\i}’ (similarly with other accents). Furthermore, LaTeX codes for accented I letters are now correctly converted, also fixing related mistakes in ‘tools::encoded_text_to_latex()’.
‘tar(*, tar = "internal")’ no longer creates out-of-spec tar files in the very rare case of user or group names longer than 32 bytes, fixing PR#17871 with thanks to Ivan Krylov.
When using the “internal” timezone datetime code, adding a fraction of a second no longer adds one second, fixing PR#16856 from a patch by Ivan Krylov.