Skip to content

R 4.3.2

Compare
Choose a tag to compare
@gaborcsardi gaborcsardi released this 01 Nov 11:19
· 2703 commits to trunk since this release
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 variable R_REPOSITORIES to NULL 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 than NA_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 of iconv()).

  • 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
    generator RANDOM_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 strings x when L > nchar(x), thanks to a report and patch
    by 'Architect 95'.

  • contrib.url(character()) now returns 0-length character() 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 functions read()/write() on
    pipes (seen on macOS where a restriction to INT_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
    process Authors@R, fixing NA results when the package DESCRIPTION
    omits Author and Maintainer 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.