r-changelog

With each release of R a bulleted list of changes are published and are organized by major release.

The release notes include sections for

We will link out to the specific versions, and note the signifiant user-visible changes here.

Version 4.5.x

Version 4.4.x

Version 4.3.x

  • Version 4.3.3

  • Version 4.3.2

  • Version 4.3.1

  • Version 4.3.0

    • Significant User-Visible Changes:

      • Calling && or || with LHS or (if evaluated) RHS of length greater than one is now always an error, with a report of the form

        ‘length = 4’ in coercion to ‘logical(1)’

      Environment variable R_CHECK_LENGTH_1_LOGIC2 no longer has any effect.

    • New Features: there are many, we highlight:

      • As an experimental feature the placeholder _ can now also be used in the rhs of a forward pipe |> expression as the first argument in an extraction call, such as _$coef. More generally, it can be used as the head of a chain of extractions, such as _$coef[[2]].

Version 4.2.x

  • Version 4.2.3

  • Version 4.2.2

  • Version 4.2.1

  • Version 4.2.0

    • Significant User-Visible Changes:

      • The formula method of aggregate() now matches the generic in naming its first argument x (resolving PR#18299 by Thomas Soeiro).

        This means that calling aggregate() with a formula as a named first argument requires name formula in earlier versions of R and name x now, so portable code should not name the argument (code in many packages did).

      • Calling && or || with either argument of length greater than one now gives a warning (which it is intended will become an error).

      • Calling if() or while() with a condition of length greater than one gives an error rather than a warning. Consequently, environment variable R_CHECK_LENGTH_1_CONDITION no longer has any effect.

      • Windows users should consult the WINDOWS section below for some profound changes including

        • Support for 32-bit builds has been dropped.

        • UTF-8 locales are used where available.

        • The default locations for the R installation and personal library folder have been changed.

        Thanks to Tomas Kalibera for months of work on the Windows port for this release.

    • New Features: there are many, we highlight:

      • In a forward pipe |> expression it is now possible to use a named argument with the placeholder _ in the rhs call to specify where the lhs is to be inserted. The placeholder can only appear once on the rhs.

Version 4.1.x

  • Version 4.1.3

  • Version 4.1.2

  • Version 4.1.1

  • Version 4.1.0

    • Future Directions:
      • It is planned that the 4.1.x series will be the last to support 32-bit Windows, with production of binary packages for that series continuing until early 2023.
    • Significant User-Visible Changes
      • Data set esoph in package datasets now provides the correct numbers of controls; previously it had the numbers of cases added to these. (Reported by Alexander Fowler in PR#17964.)
    • New Features: there are many, we highlight:
      • R now provides a simple native forward pipe syntax |>. The simple form of the forward pipe inserts the left-hand side as the first argument in the right-hand side call. The pipe implementation as a syntax transformation was motivated by suggestions from Jim Hester and Lionel Henry.

Version 4.0.x

  • Version 4.0.5

  • Version 4.0.4

  • Version 4.0.3

  • Version 4.0.2

  • Version 4.0.1

  • Version 4.0.0

    • Significant User-Visible Changes:

      • Packages need to be (re-)installed under this version (4.0.0) of R.

      • matrix objects now also inherit from class “array”, so e.g., class(diag(1)) is c(“matrix”, “array”). This invalidates code incorrectly assuming that class(matrix_obj)) has length one.

      • S3 methods for class “array” are now dispatched for matrix objects.

      • There is a new syntax for specifying raw character constants similar to the one used in C++: r”(…)” with … any character sequence not containing the sequence ‘⁠)“⁠’. This makes it easier to write strings that contain backslashes or both single and double quotes. For more details see ?Quotes.

      • R now uses a ‘⁠stringsAsFactors = FALSE⁠’ default, and hence by default no longer converts strings to factors in calls to data.frame() and read.table().

        A large number of packages relied on the previous behaviour and so have needed/will need updating.

      • The plot() S3 generic function is now in package base rather than package graphics, as it is reasonable to have methods that do not use the graphics package. The generic is currently re-exported from the graphics namespace to allow packages importing it from there to continue working, but this may change in future.

        Packages which define S4 generics for plot() should be re-installed and package code using such generics from other packages needs to ensure that they are imported rather than rely on their being looked for on the search path (as in a namespace, the base namespace has precedence over the search path).

Version 3.6.x

  • Version 3.6.3

  • Version 3.6.2

  • Version 3.6.1

  • Version 3.6.0

    • Significant User-Visible Changes:
      • Serialization format version 3 becomes the default for serialization and saving of the workspace (save(), serialize(), saveRDS(), compiler::cmpfile()). Serialized data in format 3 cannot be read by versions of R prior to version 3.5.0. Serialization format version 2 is still supported and can be selected by version = 2 in the save/serialization functions. The default can be changed back for the whole R session by setting environment variables R_DEFAULT_SAVE_VERSION and R_DEFAULT_SERIALIZE_VERSION to 2. For maximal back-compatibility, files ‘vignette.rds’ and ‘partial.rdb’ generated by R CMD build are in serialization format version 2, and resave by default produces files in serialization format version 2 (unless the original is already in format version 3).

      • The default method for generating from a discrete uniform distribution (used in sample(), for instance) has been changed. This addresses the fact, pointed out by Ottoboni and Stark, that the previous method made sample() noticeably non-uniform on large populations. See PR#17494 for a discussion. The previous method can be requested using RNGkind() or RNGversion() if necessary for reproduction of old results. Thanks to Duncan Murdoch for contributing the patch and Gabe Becker for further assistance.

        The output of RNGkind() has been changed to also return the ‘kind’ used by sample().

Version 3.5.x

  • Version 3.5.3

  • Version 3.5.2

  • Version 3.5.1

  • Version 3.5.0

    • Significant User-Visible Changes:
      • All packages are by default byte-compiled on installation. This makes the installed packages larger (usually marginally so) and may affect the format of messages and tracebacks (which often exclude .Call and similar).