This blog is updated daily.
A general description is here.
Control of symbol visibility is now supported on macOS (the previous
check only worked on ELF platforms).
New dataset ‘gait’ thanks to Heather Turner and Ella Kaye, used in examples.
A C23 compiler (if available) can be selected for compilation of R and
packages _via_ the ‘configure’ flag ‘--with-C23’. The compliance test
is of support of new keywords: C23 does have feature-tests macros for
many of its new features.
It is intended that this will become the default before release: already R's ‘configure’ may select a compiler which defaults to C23 (such as GCC 15).
When C23 is selected, packages using R's compiler settings can ask not to use C23 _via_ including ‘USE_C17’ in ‘SystemRequirements’ or can be installed by ‘R CMD INSTALL --use-C17’.
A C23 compiler (if available) is now selected by default for compilation of R and packages. R builds can opt out _via_ the ‘configure’ flag ‘--without-C23’, unless the specified or default (usually ‘gcc’) compiler defaults to C23: ‘gcc’ 15 does.
A C23 compiler is known to be selected with ‘gcc’ 13-15, LLVM ‘clang’ 18-20 (and 15 should), Apple ‘clang’ 15-16 and Intel 2024.2 (and 2022.2 should).
Control of symbol visibility is now supported on macOS (the previous check only worked on ELF platforms).
Packages are now installed using C23 where supported by the OS and R build.
Packages using R's compiler settings can ask *not* to use C23 _via_ including ‘USE_C17’ in ‘SystemRequirements’ or can be installed by ‘R CMD INSTALL --use-C17’. (Some packages ignore these settings in their ‘configure’ script or when compiling in sub-directiories af ‘src’, as will those using a ‘src/Makefile’.)
There is preliminary support for C++26 with GCC >= 14, Apple ‘clang++’ >= 16 and LLVM ‘clang++’ >= 17.
R can be installed using C23 (for example with ‘-std=gnu23’ or ‘-std=gnu2x’) with recent compilers including ‘gcc’ 12-14, Apple ‘clang’ 16 and LLVM ‘clang’ 17-19. (LLVM ‘clang’ 18 and 19 objected to apparently valid code using attributes accepted by all the other compilers.)
It can be installed with the upcoming (at the time of writing) ‘gcc’ 15, which defaults to C23.
The functions ‘R_strtod’ and ‘R_atof’ now allow hexadecimal constants without an exponent, for compatibility with their C99 versions (PR#18805).
‘R CMD build’ and ‘R CMD check’ now allow reference output for demo scripts (‘demo/<demo>.Rout.save’ files) to be shipped with the package, as proposed by Torsten Hothorn in PR#18816.
‘kappa(A, exact=TRUE)’ for singular ‘A’ returns ‘Inf’ more generally, fixing PR#18817 reported by Mikael Jagan.
Fixed URLs of the sun spots (‘sunspot.month’ etc) data sets and mention future changes due to recalibration.
The parser now accepts hexadecimal constants with a decimal point without an exponent (taken as ‘p0’) as documented in ‘?NumericConstants’ (PR#18819).
‘rbind()’ now works correctly when inputs include a raw vector and a logical, integer or double vector - previously the inclusion of the latter was garbled.
‘smooth.spline()’ checks validity of its arguments ‘df.offset’ and ‘penalty’: it could segfault if they were ‘NULL’.
‘isGeneric(<primitive>, fdef=*, getName=TRUE)’ now also returns the name instead of just ‘TRUE’, fixing PR#18829 reported by Mikael Jagan.
‘isGeneric(fdef = print)’ now works, fixing PR#18369 thanks to Mikael Jagan.
‘sort(x, method = "qsort")’ made illegal accesses when ‘x’ has length 0.
‘dir.create()’ is protected against being passed an empty string as its ‘path’ argument.
Silent integer overflow could occur in the ‘exact’ computations for ‘fisher.test()’ for unrealistic inputs: this is now an error.
Some invalid C-level memory accesses are avoided for ‘loglin(, margin = NULL)’.
‘loglin(, param = TRUE)’ no longer gives an error in corner cases such as a one-dimensional input.
‘dev.capabilities() $ events’ now reports ‘"Idle"’ if the device provides it, fixing PR#18836, thanks to Trevor Davis.
‘arima(.., seasonal = <wrong-vector>)’ correctly errors now, ditto for ‘arima0()’, thanks to Norbert Kuder's report on the R-devel list.
‘binomial(<link>)$linkinv(eta)’ and ‘.. $mu.eta(eta)’ now also work for ‘"logit"’ link when ‘is.integer(eta)’.
‘as.roman(x)’ now should work platform independently, also for, e.g., ‘x = "IIIII"’ (= V) and ‘x = "IIIIII"’ (= VI).
‘R CMD Rd2pdf’ works again on an installed package directory containing LaTeX help (from option ‘--latex’), thanks to a report by Peter Ruckdeschel.