R 4.3.2
CHANGES IN R 4.3.2
NEW FEATURES:
-
The default initialization of the "repos" option from the
repositories file at startup can be skipped by setting
environment variableR_REPOSITORIES
toNULL
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 thanNA_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 oficonv()
). -
tiff(type = "quartz")
(the default on macOS) now warns if
compression is specified: it continues to be ignored.
INSTALLATION on a UNIX-ALIKE:
-
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).
UTILITIES:
-
R CMD check
reports the use of the Fortran 90 random number
generatorRANDOM_NUMBER()
and the subroutines to initialize it.'Writing R Extensions' has example code to use R's RNGs from
Fortran.
BUG FIXES:
-
substr(x, n, L) <- cc
now works (more) correctly for multibyte
UTF-8 stringsx
whenL > nchar(x)
, thanks to a report and patch
by 'Architect 95'. -
contrib.url(character())
now returns 0-lengthcharacter()
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 functionsread()
/write()
on
pipes (seen on macOS where a restriction toINT_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
processAuthors@R
, fixingNA
results when the packageDESCRIPTION
omitsAuthor
andMaintainer
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. -
tools::checkRd()
no longer produces spurious notes about
"unnecessary braces" from multi-line Rd results of\Sexpr
macros.