This blog is updated daily.
A general description is here.
‘libcurl’ is now required.
R uses UTF-8 as the native encoding on recent Windows systems (at least Windows 10 version 1903, Windows Server 2022 or Windows Server 1903). As a part of this change, R uses UCRT as the C runtime. UCRT should be installed manually on systems older than Windows 10 or Windows Server 2016 before installing R.
As a temporary measure to ease the transition from MSVCRT to UCRT, R is applying patches to some CRAN and Bioconductor packages at installation time. See <URL: https://developer.r-project.org/Blog/public/2021/12/07/upcoming-changes-in-r-4.2-on-windows>. This measure is intended to end before R 4.2.0 is released.
The default personal library on Windows, folder ‘R\win-library\x.y’ where ‘x.y’ stands for R release ‘x.y.z’, is now a subdirectory of Local Application Data directory (usually a hidden directory ‘C:\Users\username\AppData\Local’). Use ‘shell.exec(.libPaths()[1])’ from R to open the personal library in Explorer when it is first in the list (PR#17842).
R uses a new 64-bit Tcl/Tk bundle. The previous 32-bit/64-bit bundle had a different layout and can no longer be used.
Make files and installer scripts for Windows have been tailored to ‘Rtools42’, the newly recommended 64-bit ‘gcc’ 10.3 MinGW-W64 UCRT toolchain.
R now supports files ‘Makevars.ucrt’, ‘Makefile.ucrt’, ‘configure.ucrt’ and ‘cleanup.ucrt’ in packages, which are used in preference to the ‘.win’ variants. This allows keeping the ‘.win’ files around to support older versions of R. This feature will be removed in the future once support for older versions of R would no longer be needed.
‘R.version’ gains new field ‘crt’ (only on Windows) to denote the C runtime. The value is ‘"ucrt"’.
R now supports installation-time patching of packages. Patches may be installed from a supplied URL or a local directory or disabled. Patches are included into the installed packages for reference. This experimental feature may be removed in the future.
‘Rtools42’ include an unpatched Msys2 build of GNU ‘tar’. Paths including drive letters can be made to work by adding ‘--force-local’ to environment variable ‘TAR_OPTIONS’. (‘Rtools40’ and earlier included a patched version which defaulted to this option.)
Installer builds of R automatically find the ‘Rtools42’ software collection as well as the compiler toolchain. No ‘PATH’ setting is required from the user.
The default installation directory of R for a user-only installation has been changed to the User Program Files directory (usually a hidden directory ‘C:\Users\username\AppData\Local\Programs’) to follow Windows conventions. Use ‘shell.exec(R.home())’ from R to open the R installation directory in Explorer (PR#17842).
‘libcurl’ is now required for building from source.
‘as.vector()’ gains a ‘data.frame’ method which returns a simple named list, also clearing a long standing ‘FIXME’ to enable ‘as.vector(<data.frame>, mode="list")’. This breaks code relying on ‘as.vector(<data.frame>)’ to return the unchanged data frame.