R 4.0.3 is now the default version on migale
3.12
CHANGES IN R 4.0.3
NEW FEATURES
-
On platforms using
configure
option --with-internal-tzcode, additional values"internal"
and (on macOS only)"macOS"
are accepted for the environment variable TZDIR. (See?TZDIR
.)On macOS,
"macOS"
is used by default if the system timezone database is a newer version than that in the R installation. -
When
install.packages(type = "source")
fails to find a package in a repository it mentions package versions which are excluded by their R version requirement and links to hints on why a package might not be found. -
The default value for
options("timeout")
can be set from enviromnent variable R_DEFAULT_INTERNET_TIMEOUT, still defaulting to 60 (seconds) if that is not set or invalid.This may be needed when child R processes are doing downloads, for example during the installation of source packages which download jars or other forms of data.
LINK-TIME OPTIMIZATION on a UNIX-ALIKE
-
There is now support for parallelized Link-Time Optimization (LTO) with GCC and for ‘thin’ LTO with
clang
via setting the LTO macro. -
There is support for setting a different LTO flag for the Fortran compiler, including to empty when mixing
clang
andgfortran
(as on macOS). See file ‘config.site’. -
There is a new LTO_LD macro to set linker options for LTO compilation, for example to select an alternative linker or to parallelize thin LTO.
DEPRECATED AND DEFUNCT
-
The
LINPACK
argument tochol.default()
,chol2inv()
,solve.default()
andsvd()
has been defunct since R 3.1.0. Using it now gives a warning which will become an error in R 4.1.0.
BUG FIXES
-
The code mitigating stack overflow with PCRE regexps on very long strings is enabled for PCRE2 < 10.30 also when JIT is enabled, since stack overflows have been seen in that case.
-
Fix to correctly show the group labels in
dotchart()
(which where lost in theylab
improvement for R 4.0.0). -
addmargins(*, ..)
now also works whenfn()
is a local function, thanks to bug report and patch PR#17124 from Alex Bertram. -
rank(x)
and hencesort(x)
now work whenx
is an object (as peris.object(x)
) of type"raw"
and provides a valid`[`
method, e.g., forgmp::as.bigz(.)
numbers. -
chisq.test(*, simulate.p.value=TRUE)
andr2dtable()
now work correctly for large table entries (in the millions). Reported by Sebastian Meyer and investigated by more helpers in PR#16184. -
Low-level socket read/write operations have been fixed to correctly signal communication errors. Previously, such errors could lead to a segfault due to invalid memory access. Reported and debugged by Dmitriy Selivanov in PR#17850.
-
quantile(x, pr)
works more consistently forpr
values slightly outside [0,1], thanks to Suharto Anggono's PR#17891.Further,
quantile(x, prN, names=FALSE)
now works even whenprN
containsNA
s, thanks to Anggono's PR#17892. Ditto for ordered factors orDate
objects whentype = 1
or3
, thanks to PR#17899. -
Libcurl-based internet access, including
curlGetHeaders()
, was not respecting the"timeout"
option. If this causes unanticipated timeouts, consider increasing the default by setting R_DEFAULT_INTERNET_TIMEOUT. -
as.Date(<char>)
now also works with an initial""
, thanks to Michael Chirico's PR#17909. -
isS3stdGeneric(f)
now detects an S3 generic also when it it istrace()
d, thanks to Gabe Becker's PR#17917. -
R_allocLD()
has been fixed to return memory aligned for long double type PR#16534. -
fisher.test()
no longer segfaults when called again after its internal stack has been exceeded PR#17904. -
Accessing a long vector represented by a compact integer sequence no longer segfaults (reported and debugged by Hugh Parsonage).
-
duplicated()
now works also for strings with multiple encodings inside a single vector PR#17809. -
phyper(11, 15, 0, 12, log.p=TRUE)
no longer givesNaN
; reported as PR#17271 by Alexey Stukalov. -
Fix incorrect calculation in
logLik.nls()
PR#16100, patch from Sebastian Meyer. -
A very old bug could cause a segfault in
model.matrix()
when terms involved logical variables. Part of PR#17879. -
model.frame.default()
alloweddata = 1
, leading to involuntary variable capture (rest of PR#17879). -
tar()
no longer skips non-directory files, thanks to a patch by Sebastian Meyer, fixing the remaining part of PR#16716.
BIOCONDUCTOR Bioconductor version 3.12 (BiocManager 1.30.10), ?BiocManager::install for help