r4.0.3   R 4.0.3 is now the default version on migale



  • 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.


  • 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 and gfortran (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.


  • The LINPACK argument to chol.default(), chol2inv(), solve.default() and svd() has been defunct since R 3.1.0. Using it now gives a warning which will become an error in R 4.1.0.


  • 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 the ylab improvement for R 4.0.0).

  • addmargins(*, ..) now also works when fn() is a local function, thanks to bug report and patch PR#17124 from Alex Bertram.

  • rank(x) and hence sort(x) now work when x is an object (as per is.object(x)) of type "raw" and provides a valid `[` method, e.g., for gmp::as.bigz(.) numbers.

  • chisq.test(*, simulate.p.value=TRUE) and r2dtable() 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 for pr values slightly outside [0,1], thanks to Suharto Anggono's PR#17891.

    Further, quantile(x, prN, names=FALSE) now works even when prN contains NAs, thanks to Anggono's PR#17892. Ditto for ordered factors or Date objects when type = 1 or 3, 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 is trace()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 gives NaN; 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() allowed data = 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