C-LEVEL FACILITIES:
* Functions R_atof and R_strtod declared in header R_ext/Utils.h
are now documented in 'Writing R Extensions' and so formally part
of the API.
* The non-API entry points Rf_setSVector, Rf_StringFalse,
Rf_StringTrue and Rf_isBlankString have been added to those
reported by R CMD check.
* The new function Rf_allocLang is now available. This provides an
alternative to the idiom of calling Rf_allocList followed by
SET_TYPEOF.
UTILITIES:
* R CMD check now reports as warnings what gfortran calls 'Fortran
2018 deleted features', all of which have long been marked as
'obsolescent' and some of which were deleted in Fortran 2008 or
earlier. Fortran compilers are no longer required to support
these.
BUG FIXES:
* as.numeric(), scan(), type.convert() and other places which use
the internal C function R_strtod now require a _non-empty_ digit
sequence in a decimal or binary exponent. This aligns with the
C/POSIX standard for strtod and with ?NumericConstants.
* as.data.frame(m, make.names=NA) now works correctly for a matrix
m with NA's in row names.
* The error message from <POSIXlt>[["hour"]] and similar now
mentions *[[, "hour"]], as wished for in PR#17409 and proposed by
Michael Chirico.
* qbinom() and potentially qpois(), qnbinom(), no longer sometimes
fail accurate inversion (of pbinom(), etc), thanks to Christopher
Chang's report and patch in PR#18711.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:R:released/R-base?expand=0&rev=142
SIGNIFICANT USER-VISIBLE CHANGES:
* Startup banners, R --version, sessionInfo() and R CMD check no
longer report (64-bit) as part of the platform as this is almost
universal - the increasingly rare 32-bit platforms will still
report (32-bit).
On Windows, ditto for window titles.
* is.atomic(NULL) now returns FALSE, as NULL is not an atomic
vector. Strict back-compatibility would replace is.atomic(foo)
by (is.null(foo) || is.atomic(foo)) but should happen only
sparingly.
NEW FEATURES:
* The confint() methods for "glm" and "nls" objects have been
copied to the stats package. Previously, they were stubs which
called versions in package MASS. The MASS namespace is no longer
loaded if you invoke (say) confint(glmfit). Further, the "glm"
method for profile() and the plot() and pairs() methods for class
"profile" have been copied from MASS to stats. (profile.nls()
and plot.profile.nls() were already in stats.)
* The confint() and profile methods for "glm" objects have gained a
possibility to do profiling based on the Rao Score statistic in
addition to the default Likelihood Ratio. This is controlled by a
new test = argument.
* The pairs() method for "profile" objects has been extended with a
which = argument to allow plotting only a subset of the
parameters.
* The "glm" method for anova() computes test statistics and
p-values by default, using a chi-squared test or an F test
depending on whether the dispersion is fixed or free. Test
statistics can be suppressed by giving argument test a false
OBS-URL: https://build.opensuse.org/package/show/devel:languages:R:released/R-base?expand=0&rev=140
NEW FEATURES:
* iconv() now fixes up variant encoding names such as "utf8"
case-insensitively.
DEPRECATED AND DEFUNCT:
* The legacy encoding = "MacRoman" is deprecated in pdf() and
postscript(): support was incomplete in earlier versions of R.
BUG FIXES:
* Arguments are now properly forwarded to methods on S4 generics
with ... in the middle of their formal arguments. This was broken
for the case when a method introduced an argument but did not
include ... in its own formals. Thanks to Herv'e Pag`es for the
report PR#18538.
* Some invalid file arguments to pictex(), postscript() and xfig()
opened a file called NA rather than throw an error. These
included postscript(NULL) (which some people expected to work
like pdf(NULL)).
* Passing filename = NA to svg(), cairo_pdf(), cairo_ps() or the
Cairo-based bitmap devices opened a file called NA: it now throws
an error.
* quartz(file = NA) opened a file called NA, including when used as
a Quartz-based bitmap device. It now gives an error.
* rank(<long vector>) now works, fixing PR#18617, thanks to Ilia
Kats.
* seq.int() did not adequately check its length.out argument.
* match(<POSIXct>, .) is correct again for differing time zones,
ditto for "POSIXlt", fixing PR#18618 reported by Bastian Klein.
* drop.terms(*, dropx = <0-length>) now works, fixing PR#18563 as
proposed by Mikael Jagan.
* drop.terms(*) keeps + offset(.) terms when it should, PR#18565,
OBS-URL: https://build.opensuse.org/package/show/devel:languages:R:released/R-base?expand=0&rev=138
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:
OBS-URL: https://build.opensuse.org/package/show/devel:languages:R:released/R-base?expand=0&rev=136
C-LEVEL FACILITIES:
* The C-level API version of R's integrate(), Rdqags() in Applic.h,
now returns the correct number of integrand evaluations neval,
fixing PR#18515 reported and diagnosed by Stephen Wade.
* The C prototypes for LAPACK calls dspgv and dtptrs in
R_exts/Lapack.h had one too many and one too few character length
arguments - but this has not caused any known issues. To get the
corrected prototypes, include
#include <Rconfig.h> // for PR18534fixed
#ifdef PR18534fixed
# define usePR18534fix 1
#endif
#include <R_exts/Lapack.h>
in your C/C++ code (PR#18534).
INSTALLATION:
* Many of the checks of esoteric Internet operations and those
using unreliable external sites have been moved to a new target
that is not run by default and primarily intended for the core
developers. To run them use
cd tests; make test-Internet-dev
BUG FIXES:
* .S3methods(), typically called from methods(), again marks
methods from package base as visible.
Also, the visibility of non-base methods is again determined by
the method's presence in search().
* tools::Rdiff() is now more robust against invalid strings, fixing
installation tests on Windows without Rtools installed
OBS-URL: https://build.opensuse.org/package/show/devel:languages:R:released/R-base?expand=0&rev=134
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:
* The included BLAS sources have been updated to those shipped with
LAPACK version 3.10.1. (This caused some platform-dependent
changes to package check output.) And then to the sources from
LAPACK version 3.11.0 (with changes only to double complex
subroutines).
* The included LAPACK sources have been updated to include the four
Fortran 90 routines rather than their Fortran 77 predecessors.
This may give some different signs in SVDs or
eigendecompositions.. (This completes the transition to LAPACK
3.10.x begun in R 4.2.0.)
* The LAPACK sources have been updated to version 3.11.0. (No new
subroutines have been added, so this almost entirely bug fixes:
Those fixes do affect some computations with NaNs, including R's
NA.)
* The parser now signals _classed_ errors, notably in case of the
pipe operator |>. The error object and message now give line and
column numbers, mostly as proposed and provided by Duncan Murdoch
in PR#18328.
* toeplitz() is now generalized for asymmetric cases, with a
toeplitz2() variant.
* xy.coords() and xyz.coords() and consequently, e.g., plot(x,y,
OBS-URL: https://build.opensuse.org/package/show/devel:languages:R:released/R-base?expand=0&rev=132
C-LEVEL FACILITIES:
* The definition of DL_FUNC in R_ext/Rdynload.h has been changed to
be fully C-compliant. This means that functions loaded _via_ for
example R_GetCCallable need to be cast to an appropriate type if
they have any arguments.
* .Machine has a new element sizeof.time_t to identify old systems
with a 32-bit type and hence a limited range of date-times (and
limited support for dates millions of years from present).
PACKAGE INSTALLATION:
* (Windows) The default C++ standard had accidentally been left at
C++11 when it was changed to C++14 on Unix.
BUG FIXES:
* As "POSIXlt" objects may be "partially filled" and their list
components meant to be recycled, length() now is the length of
the longest component.
* as.POSIXlt.Date() could underflow for dates in the far past (more
than half a million years BCE).
* as.Date.POSIXlt(x) would return "1970-01-01" instead of NA in R
4.2.2, e.g., for
x <- as.POSIXlt(c("2019-01-30","2001-1-1"))
x$mon <- c(0L, NA); as.Date(x)
* R CMD check failed to apply enabled _R_CHECK_SUGGESTS_ONLY_ to
examples and vignettes (regression in R 4.2.0).
* R CMD check did not re-build vignettes in separate processes by
default (regression in R 4.2.0).
* Running examples from HTML documentation now restores previous
knitr settings and options (PR#18420).
* Quartz: fonts are now located using Core Graphics API instead of
OBS-URL: https://build.opensuse.org/package/show/devel:languages:R:released/R-base?expand=0&rev=129
NEW FEATURES:
* tools::Rdiff(useDiff = TRUE) checks for the presence of an
external diff command and switches to useDiff = FALSE if none is
found. This allows R CMD Rdiff to always work.
* On Windows, environment variable R_LIBCURL_SSL_REVOKE_BEST_EFFORT
can be used to switch to only 'best-effort' SSL certificate
revocation checks with the default "libcurl" download method.
This reduces security, but may be needed for downloads to work
with MITM proxies (PR#18379).
* (macOS) The run-time check for libraries from XQuartz for X11 and
Tcl/Tk no longer uses otool from the Apple Developer Tools
(PR#18400).
* The LaTeX style for producing the PDF manuals, Rd.sty, now loads
the standard amsmath, amsfonts and amssymb packages for greater
coverage of math commands in the Rd \eqn and \deqn macros. The
\mathscr LaTeX command is also provided (via the mathrsfs
package, if available, or the amsfonts bundle otherwise),
fulfilling the wish of PR#18398.
* (Windows) The default format of readClipboard() and
writeClipboard() has been changed to 13 (CF_UNICODETEXT).
INSTALLATION on a UNIX-ALIKE:
* The PDF manuals (if built) can be compacted by the new target
make compact-pdf (at the top level or in directory doc/manual).
* There is now configure support for LLVM clang 15 on Linux, which
defaults to position-independent (PIE) executables whereas
gfortran does not.
* Many small changes to ease compilation (and suppress warnings)
with LLVM clang 15.
BUG FIXES:
OBS-URL: https://build.opensuse.org/package/show/devel:languages:R:released/R-base?expand=0&rev=127
NEW FEATURES:
* New function utils::findCRANmirror() to find out if a CRAN mirror
has been selected, otherwise fallback to the main site. This
behaves in the same way as tools::CRAN_package_db() and is
intended for packages wishing to access CRAN for purposes other
than installing packages.
The need for this was shown by a day when the main CRAN website
was offline and a dozen or so packages which had its URL
hardcoded failed their checks.
INSTALLATION on a UNIX-ALIKE:
* The libraries searched for by --with-blas (without a value) now
include BLIS (after OpenBLAS but before ATLAS). And on macOS,
the Accelerate framework (after ATLAS). (This is patterned after
the AX_BLAS macro from the Autoconf Archive.)
* The included LAPACK sources have been updated to 3.10.1.
UTILITIES:
* The (full path to) the command tidy to be used for HTML
validation can be set by environment variable R_TIDYCMD.
* Setting environment variable _R_CHECK_RD_VALIDATE_RD2HTML_ to a
false value will override R CMD check --as-cran and turn off HTML
validation. This provides a way to circumvent a problematic
tidy.
The 2006 version that ships with macOS is always skipped.
C-LEVEL FACILITIES:
* The undocumented legacy declarations of Sint, Sfloat, SINT_MAX
and SINT_MIN in header R.h are deprecated.
BUG FIXES:
* fisher.test(d) no longer segfaults for "large" d; fixing PR#18336
by preventing/detecting an integer overflow reliably.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:R:released/R-base?expand=0&rev=125
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:
* matrix(x, n, m) now warns in more cases where length(x) differs
from n * m, as suggested by Abby Spurdle and Wolfgang Huber in
Feb 2021 on the R-devel mailing list.
This warning can be turned into an error by setting environment
variable _R_CHECK_MATRIX_DATA_ to TRUE: R CMD check --as-cran
does so unless it is already set.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:R:released/R-base?expand=0&rev=123
NEW FEATURES:
* The default version of Bioconductor has been changed to 3.14.
(This is used by setRepositories and the menus in GUIs.)
UTILITIES:
* R CMD check --as-cran has a workaround for a bug in versions of
file up to at least 5.41 which mis-identify DBF files last
changed in 2022 as executables.
C-LEVEL FACILITIES:
* The legacy S-compatibility macros SINGLE_* in R_ext/Constants.h
(included by R.h) are deprecated and will be removed in R 4.2.0.
BUG FIXES:
* Initialization of self-starting nls() models with initialization
functions following the pre-R-4.1.0 API (without the ...
argument) works again for now, with a deprecation warning.
* Fixed quoting of ~autodetect~ in Java setting defaults to avoid
inadvertent user lookup due to leading ~, reported in PR#18231 by
Harold Gutch.
* substr(., start, stop) <- v now treats _negative_ stop values
correctly. Reported with a patch in PR#18228 by Brodie Gaslam.
* Subscripting an array x without dimnames by a
length(dim(x))-column character matrix gave "random" non-sense,
now an error; reported in PR#18244 by Mikael Jagan.
* ...names() now matches names(list(...)) closely, fixing PR#18247.
* all.equal(*, scale = s) now works as intended when length(s) > 1,
partly thanks to Michael Chirico's PR#18272.
* print(x) for long vectors x now also works for named atomic
vectors or lists and prints the correct number when reaching the
getOption("max.print") limit; partly thanks to a report and
proposal by Hugh Parsonage to the R-devel list.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:R:released/R-base?expand=0&rev=121
C-LEVEL FACILITIES:
* The workaround in headers R.h and Rmath.h (using namespace std;)
for the Oracle Developer Studio compiler is no longer needed now
C++11 is required so has been removed. A couple more usages of
log() (which should have been std::log()) with an int argument
are reported on Solaris.
* The undocumented limit of 4095 bytes on messages from the
S-compatibility macros PROBLEM and MESSAGE is now documented and
longer messages will be silently truncated rather than
potentially causing segfaults.
* If the R_NO_SEGV_HANDLER environment variable is non-empty, the
signal handler for SEGV/ILL/BUS signals (which offers recovery
user interface) is not set. This allows more reliable debugging
of crashes that involve the console.
DEPRECATED AND DEFUNCT:
* The legacy S-compatibility macros PROBLEM, MESSAGE, ERROR, WARN,
WARNING, RECOVER, ... are deprecated and will be hidden in R
4.2.0. R's native interface of Rf_error and Rf_warning has long
been preferred.
BUG FIXES:
* .mapply(F, dots, .) no longer segfaults when dots is not a list
and uses match.fun(F) as always documented; reported by Andrew
Simmons in PR#18164.
* hist(<Date>, ...) and hist(<POSIXt>, ...) no longer pass
arguments for rect() (such as col and density) to axis().
(Thanks to Sebastian Meyer's PR#18171.)
* \Sexpr{ch} now preserves Encoding(ch). (Thanks to report and
patch by Jeroen Ooms in PR#18152.)
* Setting the RNG to "Marsaglia-Multicarry" e.g., by RNGkind(), now
OBS-URL: https://build.opensuse.org/package/show/devel:languages:R:released/R-base?expand=0&rev=120
NEW FEATURES:
* require(pkg, quietly = TRUE) is quieter and in particular does
not warn if the package is not found.
DEPRECATED AND DEFUNCT:
* Use of ftp:// URIs should be regarded as deprecated, with
on-going support confined to method = "libcurl" and not routinely
tested. (Nowadays no major browser supports them.)
* The non-default method = "internal" is deprecated for http:// and
ftp:// URIs for both download.file and url.
* On Windows, method = "wininet" is deprecated for http://,
https:// and ftp:// URIs for both download.file and url. (A
warning is only given for ftp://.)
For ftp:// URIs the default method is now "libcurl" if available
(which it is on CRAN builds).
method = "wininet" remains the default for http:// and https://
URIs but if libcurl is available, using method = "libcurl" is
preferred.
INSTALLATION:
* make check now works also without a LaTeX installation. (Thanks
to Sebastian Meyer's PR#18103.)
BUG FIXES:
* make check-devel works again in an R build configured with
--without-recommended-packages.
* qnbinom(p, size, mu) for large size/mu is correct now in a range
of cases (PR#18095); similarly for the (size, prob)
parametrization of the negative binomial. Also qpois() and
qbinom() are better and or faster for extreme cases. The
underlying C code has been modularized and is common to all four
cases of discrete distributions.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:R:released/R-base?expand=0&rev=118
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:
* www.omegahat.net is no longer one of the repositories known by
default to setRepositories(). (Nowadays it only provides source
packages and is often unavailable.)
* Function package_dependencies() (in package tools) can now use
different dependency types for direct and recursive dependencies.
* The checking of the size of tarball in R CMD check --as-cran
<pkg> may be tweaked via the new environment variable
_R_CHECK_CRAN_INCOMING_TARBALL_THRESHOLD_, as suggested in
PR#17777 by Jan Gorecki.
* Using c() to combine a factor with other factors now gives a
factor, an ordered factor when combining ordered factors with
identical levels.
* apply() gains a simplify argument to allow disabling of
simplification of results.
* The format() method for class "ftable" gets a new option justify.
(Suggested by Thomas Soeiro.)
* New ...names() utility. (Proposed by Neal Fultz in PR#17705.)
* type.convert() now warns when its as.is argument is not
specified, as the help file always said it _should_. In that
case, the default is changed to TRUE in line with its change in
OBS-URL: https://build.opensuse.org/package/show/devel:languages:R:released/R-base?expand=0&rev=113
BUG FIXES:
* The change to the internal table in R 4.0.4 for iswprint has been
reverted: it contained some errors in printability of 'East
Asian' characters.
* For packages using LazyData, R CMD build ignored the
--resave-data option and the BuildResaveData field of the
DESCRIPTION file (in R versions 4.0.0 to 4.0.4).
OBS-URL: https://build.opensuse.org/package/show/devel:languages:R:released/R-base?expand=0&rev=109
NEW FEATURES:
* File share/texmf/tex/latex/jss.cls has been updated to work with
LaTeX versions since Oct 2020.
* Unicode character width tables (as used by nchar(, type = "w"))
have been updated to Unicode 12.1 by Brodie Gaslam (PR#17781),
including many emoji.
* The internal table for iswprint (used on Windows, macOS and AIX)
has been updated to include many recent Unicode characters.
INSTALLATION on a UNIX-ALIKE:
* If an external BLAS is specified by --with-blas=foo or _via_
environment variable BLAS_LIBS is not found, this is now a
configuration error. The previous behaviour was not clear from
the documentation: it was to continue the search as if
--with-blas=yes was specified.
BUG FIXES:
* all.equal(x,y) now "sees" the two different NAs in factors,
thanks to Bill Dunlap and others in PR#17897.
* (~ NULL)[1] and similar formula subsetting now works, thanks to a
report and patch by Henrik Bengtsson in PR#17935. Additionally,
subsetting leaving an empty formula now works too, thanks to
suggestions by Suharto Anggono.
* .traceback(n) keeps source references again, as before R 4.0.0,
fixing a regression; introduced by the PR#17580, reported
including two patch proposals by Brodie Gaslam.
* unlist(plst, recursive=FALSE) no longer drops content for
pairlists with list components, thanks to the report and patch by
Suharto Anggono in PR#17950.
* iconvlist() now also works on MUSL based (Linux) systems, from a
report and patch suggestion by Wesley Chan in PR#17970.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:R:released/R-base?expand=0&rev=107
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 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.
DEPRECATED AND DEFUNCT:
* The LINPACK argument to chol.default(), chol2inv(),
solve.default() and svd() has been defunct since R 3.1.0. Using
OBS-URL: https://build.opensuse.org/package/show/devel:languages:R:released/R-base?expand=0&rev=105
UTILITIES:
* R CMD check skips vignette re-building (with a warning) if the
VignetteBuilder package(s) are not available.
BUG FIXES:
* Paths with non-ASCII characters caused problems for package
loading on Windows PR#17833.
* Using tcltk widgets no longer crashes R on Windows.
* source(*, echo=TRUE) no longer fails in some cases with empty
lines; reported by Bill Dunlap in PR#17769.
* on.exit() now correctly matches named arguments, thanks to
PR#17815 (including patch) by Brodie Gaslam.
* regexpr(*, perl=TRUE) no longer returns incorrect positions into
text containing characters outside of the Unicode Basic
Multilingual Plane on Windows.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:R:released/R-base?expand=0&rev=103
NEW FEATURES:
* paste() and paste0() gain a new optional argument recycle0. When
set to true, zero-length arguments are recycled leading to
character(0) after the sep-concatenation, i.e., to the empty
string "" if collapse is a string and to the zero-length value
character(0) when collapse = NULL.
A package whose code uses this should depend on R (>= 4.0.1).
* The summary(<warnings>) method now maps the counts correctly to
the warning messages.
BUG FIXES:
* aov(frml, ...) now also works where the formula deparses to more
than 500 characters, thanks to a report and patch proposal by Jan
Hauffa.
* Fix a dozen places (code, examples) as Sys.setlocale() returns
the new rather than the previous setting.
* Fix for adding two complex grid units via sum(). Thanks to Gu
Zuguang for the report and Thomas Lin Pedersen for the patch.
* Fix parallel::mclapply(..., mc.preschedule=FALSE) to handle raw
vector results correctly. PR#17779
* Computing the base value, i.e., 2, "everywhere", now uses
FLT_RADIX, as the original machar code looped indefinitely on the
ppc64 architecture for the longdouble case.
* In R 4.0.0, sort.list(x) when is.object(x) was true, e.g., for x
<- I(letters), was accidentally using method = "radix".
Consequently, e.g., merge(<data.frame>) was much slower than
previously; reported in PR#17794.
* plot(y ~ x, ylab = quote(y[i])) now works, as e.g., for xlab;
related to PR#10525.
* parallel::detect.cores(all.tests = TRUE) tries a matching OS name
OBS-URL: https://build.opensuse.org/package/show/devel:languages:R:released/R-base?expand=0&rev=101
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).
REFERENCE COUNTING:
OBS-URL: https://build.opensuse.org/package/show/devel:languages:R:released/R-base?expand=0&rev=99
NEW FEATURES:
* The included LAPACK has been updated to version 3.9.0 (for the
included routines, just bug fixes).
BUG FIXES:
* Fixed a C level integer overflow in rhyper(); reported by
Benjamin Tyner in PR#17694.
* Uses of url(gzcon(.)) needing to extend buffer size have failed
(with HTTP/2 servers), reported by G'abor Cs'ardi.
* predict(loess(..), se=TRUE) now errors out (instead of
seg.faulting etc) for large sample sizes, thanks to a report and
patch by Benjamin Tyner in PR#17121.
* tools:assertCondition(., "error") and hence assertError() no
longer return errors twice (invisibly).
* update(form, new) in the case of a long new formula sometimes
wrongly eliminated the intercept from form, or (more rarely)
added a garbage term (or seg.faulted !); the fix happened by
simplifying the C-level logic of terms.formula(). Reported by
Mathias Amb"uhl in PR#16326.
* The error message from stopifnot(.., <error producing call>)
again contains the full "stopifnot(.......)" call: Its attempted
suppression did not work consistently.
* On Windows, download.file(., , "wininet", headers=character())
would fail; reported with patch proposal by Kevin Ushey in
PR#17710.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:R:released/R-base?expand=0&rev=97
NEW FEATURES:
* runmed(x, *) gains a new option na.action determining _how_ to
handle NaN or NA in x.
* dotchart() gains new options ann, xaxt, frame.plot and log.
INSTALLATION on a UNIX-ALIKE:
* Detection of the C stack direction has been moved from run-time
to configure: this is safer with LTO builds and allows the
detection to be overridden - see file config.site.
* Source-code changes enable installation on platforms using gcc
-fno-common (the expected default for gcc 10.x).
C-LEVEL FACILITIES:
* installTrChar (which is nowadays is wrapped by installChar) is
defined in Rinternals.h. (Neither are part of the API.)
PACKAGE INSTALLATION:
* Header Rconfig.h contains the value of FC_LEN_T deduced at
installation which is used by the prototypes in headers
R_ext/BLAS.h and R_ext/Lapack.h but to avoid extensive breakage
this is only exposed when USE_FC_LEN_T is defined.
If a package's C/C++ calls to BLAS/LAPACK allow for the 'hidden'
arguments used by most Fortran compilers to pass the lengths of
Fortran character arguments, define USE_FC_LEN_T and include
Rconfig.h (possibly _via_ R.h) before including R_ext/BLAS.h or
R_ext/Lapack.h.
* A package with Fortran source code and perhaps C (but not C++)
sources can request for its shared object/DLL to be linked by the
Fortran compiler by including a line USE_FC_TO_LINK= in
src/Makevars[.win] and using $(SHLIB_OPENMP_FFLAGS) as part of
PKG_LIBS.
The known reason for doing so is a package which uses Fortran
OBS-URL: https://build.opensuse.org/package/show/devel:languages:R:released/R-base?expand=0&rev=92
INSTALLATION on a UNIX-ALIKE:
* The default detection of the shell variable libNN is overridden
for derivatives of Debian Linux, some of which have started to
have a /usr/lib64 directory. (E.g. Ubuntu 19.04.) As before, it
can be specified in config.site.
UTILITIES:
* R CMD config knows the values of AR and RANLIB, often set for LTO
builds.
DEPRECATED AND DEFUNCT:
* The use of a character vector with .Fortran() is formally
deprecated and gives a non-portability warning. (It has long
been strongly discouraged in 'Writing R Extensions'.)
BUG FIXES:
* On Windows, GUI package installation via menuInstallPkgs() works
again, thanks to Len Weil's and Duncan Murdoch's PR#17556.
* R CMD check on data() fixing PR#17558 thanks to Duncan Murdoch.
* quasi(*, variance = list(..)) now works more efficiently, and
should work in all cases fixing PR#17560. Further, quasi(var =
mu(1-mu)) and quasi(var = "mu ^ 3") now work, and quasi(variance
= "log(mu)") now gives a correct error message.
* Creation of lazy loading database during package installation is
again robust to Rprofile changing the current working directory
(PR#17559).
* boxplot(y ~ f, horizontal=TRUE) now produces correct x- and
y-labels.
* rbind.data.frame() allows to keep <NA> levels from factor columns
(PR#17562) via new option factor.exclude.
Additionally, it works in one more case with matrix-columns which
had been reported on 2017-01-16 by Krzysztof Banas.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:R:released/R-base?expand=0&rev=85
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().
NEW FEATURES:
* Sys.setFileTime() has been vectorized so arguments path and time
of length greater than one are now supported.
* axis() gets new option gap.axis = NA for specifying a
multiplication factor for the minimal "gap" (distance) between
OBS-URL: https://build.opensuse.org/package/show/devel:languages:R:released/R-base?expand=0&rev=83
INSTALLATION on a UNIX-ALIKE:
* Detection of flags for C++98/11/14/17 has been improved: in
particular if CXX??STD is set, it is tried first with no
additional flags.
PACKAGE INSTALLATION:
* New macro F_VISIBILITY as an alternative to F77_VISIBILITY. This
will become the preferred form in R 3.6.0.
BUG FIXES:
* writeLines(readLines(fnam), fnam) now works as expected, thanks
to Peter Meissner's PR#17528.
* setClassUnion() no longer warns, but uses message() for now, when
encountering "non local" subclasses of class members.
* stopifnot(exprs = T) no longer fails.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:R:released/R-base?expand=0&rev=81
PACKAGE INSTALLATION:
* New macro CXX_VISIBILITY analogous to C_VISIBILITY (which several
packages have been misusing for C++ code) for the default C++
compiler (but not necessarily one used for non-default C++
dialects like C++14).
TESTING:
* The random number generator tests in tests/p-r-random-tests.R no
longer fail occasionally as they now randomly sample from
"certified" random seeds.
BUG FIXES:
* The "glm" method of drop1() miscalculated the score test
(test="Rao") when the model contained an offset.
* Linear multiple empty models such as lm(y ~ 0) now have a
correctly dimensioned empty coefficient matrix; reported by Brett
Presnell.
* vcov(<empty mlm>) and hence confint() now work (via a consistency
change in summary.lm()).
* confint(<multiple lm()>) now works correctly; reported on R-devel
by Steven Pav.
* quade.test() now also works correctly when its arguments are not
yet sorted along groups, fixing PR#15842.
* Installation on a Unix-alike tries harder to link to the pthread
library where required (rather than relying on OpenMP to provide
it: configuring with --disable-openmp was failing on some Linux
systems).
* The data.frame method for print(x) is fast now also for large
data frames x and got an optional argument max, thanks to
suggestions by Juan Telleria.
* hist() no longer integer overflows in very rare cases, fixing
OBS-URL: https://build.opensuse.org/package/show/devel:languages:R:released/R-base?expand=0&rev=77
BUG FIXES:
* file("stdin") is no longer considered seekable.
* dput() and dump() are no longer truncating when
options(deparse.max.lines = *) is set.
* Calls with an S3 class are no longer evaluated when printed,
fixing part of PR#17398, thanks to a patch from Lionel Henry.
* Allow file argument of Rscript to include space even when it is
first on the command line.
* callNextMethod() uses the generic from the environment of the
calling method. Reported by Herv'e Pag`es with well documented
examples.
* Compressed file connections are marked as blocking.
* optim(*, lower = c(-Inf, -Inf)) no longer warns (and switches the
method), thanks to a suggestion by John Nash.
* predict(fm, newdata) is now correct also for models where the
formula has terms such as splines::ns(..) or stats::poly(..),
fixing PR#17414, based on a patch from Duncan Murdoch.
* simulate.lm(glm(*, gaussian(link = <non-default>))) has been
corrected, fixing PR#17415 thanks to Alex Courtiol.
* unlist(x) no longer fails in some cases of nested empty lists.
Reported by Steven Nydick.
* qr.coef(qr(<all 0, w/ colnames>)) now works. Reported by Kun
Ren.
* The radix sort is robust to vectors with >1 billion elements (but
long vectors are still unsupported). Thanks to Matt Dowle for the
fix.
* Terminal connections (e.g., stdin) are no longer buffered. Fixes
PR#17432.
* deparse(x), dput(x) and dump() now respect c()'s argument names
OBS-URL: https://build.opensuse.org/package/show/devel:languages:R:released/R-base?expand=0&rev=75
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).
NEW FEATURES:
* factor() now uses order() to sort its levels, rather than
sort.list(). This allows factor() to support custom vector-like
objects if methods for the appropriate generics are defined. It
has the side effect of making factor() succeed on empty or
length-one non-atomic vector(-like) types (e.g., "list"), where
it failed before.
* diag() gets an optional names argument: this may require updates
to packages defining S4 methods for it.
* chooseCRANmirror() and chooseBioCmirror() no longer have a
useHTTPS argument, not needed now all R builds support https://
downloads.
* New summary() method for warnings() with a (somewhat
experimental) print() method.
* (methods package.) .self is now automatically registered as a
global variable when registering a reference class method.
* tempdir(check = TRUE) recreates the tempdir() directory if it is
no longer valid (e.g. because some other process has cleaned up
the /tmp directory).
* New askYesNo() function and "askYesNo" option to ask the user
binary response questions in a customizable but consistent way.
(Suggestion of PR#17242.)
* New low level utilities ...elt(n) and ...length() for working
with ... parts inside a function.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:R:released/R-base?expand=0&rev=73
CHANGES IN R 3.4.4:
NEW FEATURES:
* Sys.timezone() tries more heuristics on Unix-alikes and so is
more likely to succeed (especially on Linux). For the slowest
method, a warning is given recommending that TZ is set to avoid
the search.
* The version of LAPACK included in the sources has been updated to
3.8.0 (for the routines used by R, a very minor bug-fix change).
* parallel::detectCores(logical = FALSE) is ignored on Linux
systems, since the information is not available with virtualized
OSes.
INSTALLATION on a UNIX-ALIKE:
* configure will use pkg-config to find the flags to link to jpeg
if available (as it should be for the recently-released jpeg-9c
and libjpeg-turbo). (This amends the code added in R 3.3.0 as
the module name in jpeg-9c is not what that tested for.)
DEPRECATED AND DEFUNCT:
* Sys.timezone(location = FALSE) (which was a stop-gap measure for
Windows long ago) is deprecated. It no longer returns the value
of environment variable TZ (usually a location).
* Legacy support of make macros such as CXX1X is formally
deprecated: use the CXX11 forms instead.
BUG FIXES:
* power.prop.test() now warns when it cannot solve the problem,
typically because of impossible constraints. (PR#17345)
* removeSource() no longer erroneously removes NULL in certain
cases, thanks to D'enes T'oth.
* nls(`NO [mol/l]` ~ f(t)) and nls(y ~ a) now work. (Partly from
PR#17367)
OBS-URL: https://build.opensuse.org/package/show/devel:languages:R:released/R-base?expand=0&rev=68
CHANGES IN R 3.4.3:
INSTALLATION on a UNIX-ALIKE:
* A workaround has been added for the changes in location of
time-zone files in macOS 10.13 'High Sierra' and again in
10.13.1, so the default time zone is deduced correctly from the
system setting when R is configured with --with-internal-tzcode
(the default on macOS).
* R CMD javareconf has been updated to recognize the use of a Java
9 SDK on macOS.
BUG FIXES:
* raw(0) & raw(0) and raw(0) | raw(0) again return raw(0) (rather
than logical(0)).
* intToUtf8() converts integers corresponding to surrogate code
points to NA rather than invalid UTF-8, as well as values larger
than the current Unicode maximum of 0x10FFFF. (This aligns with
the current RFC3629.)
* Fix calling of methods on S4 generics that dispatch on ... when
the call contains ....
* Following Unicode 'Corrigendum 9', the UTF-8 representations of
U+FFFE and U+FFFF are now regarded as valid by utf8ToInt().
* range(c(TRUE, NA), finite = TRUE) and similar no longer return
NA. (Reported by Lukas Stadler.)
* The self starting function attr(SSlogis, "initial") now also
works when the y values have exact minimum zero and is slightly
changed in general, behaving symmetrically in the y range.
* The printing of named raw vectors is now formatted nicely as for
other such atomic vectors, thanks to Lukas Stadler.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:R:released/R-base?expand=0&rev=64
CHANGES IN R 3.4.2:
NEW FEATURES:
* Setting the LC_ALL category in Sys.setlocale() invalidates any
cached locale-specific day/month names and the AM/PM indicator
for strptime() (as setting LC_TIME has since R 3.1.0).
* The version of LAPACK included in the sources has been updated to
3.7.1, a bug-fix release.
* The default for tools::write_PACKAGES(rds_compress=) has been
changed to "xz" to match the compression used by CRAN.
* c() and unlist() are now more efficient in constructing the
names(.) of their return value, thanks to a proposal by Suharto
Anggono. (PR#17284)
UTILITIES:
* R CMD check checks for and R CMD build corrects CRLF line endings
in shell scripts configure and cleanup (even on Windows).
INSTALLATION on a UNIX-ALIKE:
* The order of selection of OpenMP flags has been changed: Oracle
Developer Studio 12.5 accepts -fopenmp and -xopenmp but only the
latter enables OpenMP so it is now tried first.
BUG FIXES:
* within(List, rm(x1, x2)) works correctly again, including when
List[["x2"]] is NULL.
* regexec(pattern, text, *) now applies as.character(.) to its
first two arguments, as documented.
* write.table() and related functions, writeLines(), and perhaps
other functions writing text to connections did not signal errors
when the writes failed, e.g. due to a disk being full. Errors
will now be signalled if detected during the write, warnings if
detected when the connection is closed. (PR#17243)
OBS-URL: https://build.opensuse.org/package/show/devel:languages:R:released/R-base?expand=0&rev=62
CHANGES IN R 3.4.1:
INSTALLATION on a UNIX-ALIKE:
* The deprecated support for PCRE versions older than 8.20 has been
removed.
BUG FIXES:
* getParseData() gave incorrect column information when code
contained multi-byte characters. (PR#17254)
* Asking for help using expressions like ?stats::cor() did not
work. (PR#17250)
* readRDS(url(....)) now works.
* R CMD Sweave again returns status = 0 on successful completion.
* Vignettes listed in .Rbuildignore were not being ignored
properly. (PR#17246)
* file.mtime() no longer returns NA on Windows when the file or
directory is being used by another process. This affected
installed.packages(), which is now protected against this.
* R CMD INSTALL Windows .zip file obeys --lock and --pkglock flags.
* (Windows only) The choose.files() function could return incorrect
results when called with multi = FALSE. (PR#17270)
* aggregate(<data.frame>, drop = FALSE) now also works in case of
near-equal numbers in by. (PR#16918)
* fourfoldplot() could encounter integer overflow when calculating
the odds ratio. (PR#17286)
* parse() no longer gives spurious warnings when extracting srcrefs
from a file not encoded in the current locale.
This was seen from R CMD check with inst/doc/*.R files, and check
has some additional protection for such files.
* print.noquote(x) now always returns its argument x (invisibly).
* Non-UTF-8 multibyte character sets were not handled properly in
OBS-URL: https://build.opensuse.org/package/show/devel:languages:R:released/R-base?expand=0&rev=58
CHANGES IN R 3.4.0:
SIGNIFICANT USER-VISIBLE CHANGES:
* (Unix-alike) The default methods for download.file() and url()
now choose "libcurl" except for file:// URLs. There will be
small changes in the format and wording of messages, including in
rare cases if an issue is a warning or an error. For example,
when HTTP re-direction occurs, some messages refer to the final
URL rather than the specified one.
Those who use proxies should check that their settings are
compatible (see ?download.file: the most commonly used forms work
for both "internal" and "libcurl").
* table() has been amended to be more internally consistent and
become back compatible to R <= 2.7.2 again. Consequently,
table(1:2, exclude = NULL) no longer contains a zero count for
<NA>, but useNA = "always" continues to do so.
* summary.default() no longer rounds, but its print method does
resulting in less extraneous rounding, notably of numbers in the
ten thousands.
* factor(x, exclude = L) behaves more rationally when x or L are
character vectors. Further, exclude = <factor> now behaves as
documented for long.
* Arithmetic, logic (&, |) and comparison (aka 'relational', e.g.,
<, ==) operations with arrays now behave consistently, notably
for arrays of length zero.
Arithmetic between length-1 arrays and longer non-arrays had
silently dropped the array attributes and recycled. This now
gives a warning and will signal an error in the future, as it has
always for logic and comparison operations in these cases (e.g.,
compare matrix(1,1) + 2:3 and matrix(1,1) < 2:3).
OBS-URL: https://build.opensuse.org/package/show/devel:languages:R:released/R-base?expand=0&rev=56