pkgsrc/math/R/distinfo

12 lines
760 B
Text
Raw Normal View History

Update to 4.1.0 Upstream changes: CHANGES IN R 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: * 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 read.table() (related to stringsAsFactor) in R 4.0.0. * When printing list arrays, classed objects are now shown _via_ their format() value if this is a short enough character string, or by giving the first elements of their class vector and their length. * capabilities() gets new entry "Rprof" which is TRUE when R has been configured with the equivalent of --enable-R-profiling (as it is by default). (Related to Michael Orlitzky's report PR#17836.) * str(xS4) now also shows extraneous attributes of an S4 object xS4. * Rudimentary support for vi-style tags in rtags() and R CMD rtags has been added. (Based on a patch from Neal Fultz in PR#17214.) * checkRdContents() is now exported from tools; it and also checkDocFiles() have a new option chkInternal allowing to check Rd files marked with keyword "internal" as well. The latter can be activated for R CMD check via environment variable _R_CHECK_RD_INTERNAL_TOO_. * New functions numToBits() and numToInts() extend the raw conversion utilities to (double precision) numeric. * Functions URLencode() and URLdecode() in package utils now work on vectors of URIs. (Based on patch from Bob Rudis submitted with PR#17873.) * path.expand() can expand ~user on most Unix-alikes even when readline is not in use. It tries harder to expand ~, for example should environment variable HOME be unset. * For HTML help (both dynamic and static), Rd file links to help pages in external packages are now treated as references to topics rather than file names, and fall back to a file link only if the topic is not found in the target package. The earlier rule which prioritized file names over topics can be restored by setting the environment variable _R_HELP_LINKS_TO_TOPICS_ to a false value. * c() now removes NULL arguments before dispatching to methods, thus simplifying the implementation of c() methods, _but_ for back compatibility keeps NULL when it is the first argument. (From a report and patch proposal by Lionel Henry in PR#17900.) * Vectorize()'s result function's environment no longer keeps unneeded objects. * Function ...elt() now propagates visibility consistently with ..n. (Thanks to Lionel Henry's PR#17905.) * capture.output() no longer uses non-standard evaluation to evaluate its arguments. This makes evaluation of functions like parent.frame() more consistent. (Thanks to Lionel Henry's PR#17907.) * packBits(bits, type="double") now works as inverse of numToBits(). (Thanks to Bill Dunlap's proposal in PR#17914.) * curlGetHeaders() has two new arguments, timeout to specify the timeout for that call (overriding getOption("timeout")) and TLS to specify the minimum TLS protocol version to be used for https:// URIs (_inter alia_ providing a means to check for sites using deprecated TLS versions 1.0 and 1.1). * For nls(), an optional constant scaleOffset may be added to the denominator of the relative offset convergence test for cases where the fit of a model is expected to be exact, thanks to a proposal by John Nash. nls(*, trace=TRUE) now also shows the convergence criterion. * Numeric differentiation _via_ numericDeriv() gets new optional arguments eps and central, the latter for taking central divided differences. The latter can be activated for nls() via nls.control(nDcentral = TRUE). * nls() now passes the trace and control arguments to getInitial(), notably for all self-starting models, so these can also be fit in zero-noise situations via a scaleOffset. For this reason, the initial function of a selfStart model must now have ... in its argument list. * bquote(splice = TRUE) can now splice expression vectors with attributes: this makes it possible to splice the result of parse(keep.source = TRUE). (Report and patch provided by Lionel Henry in PR#17869.) * textConnection() gets an optional name argument. * get(), exists(), and get0() now signal an error if the first argument has length greater than 1. Previously additional elements were silently ignored. (Suggested by Antoine Fabri on R-devel.) * R now provides a shorthand notation for creating functions, e.g. \(x) x + 1 is parsed as function(x) x + 1. * 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. * all.equal(f, g) for functions now by default also compares their environment(.)s, notably via new all.equal method for class function. Comparison of nls() fits, e.g., may now need all.equal(m1, m2, check.environment = FALSE). * .libPaths() gets a new option include.site, allowing to _not_ include the site library. (Thanks to Dario Strbenac's suggestion and Gabe Becker's PR#18016.) * Lithuanian translations are now available. (Thanks to Rimantas Zakauskas.) * names() now works for DOTSXP objects. On the other hand, in R-lang, the R language manual, we now warn against relying on the structure or even existence of such dot-dot-dot objects. * all.equal() no longer gives an error on DOTSXP objects. * capabilities("cairo") now applies only to the file-based devices as it is now possible (if very unusual) to build R with Cairo support for those but not for X11(). * There is optional support for tracing the progress of loadNamespace() - see its help. * (Not Windows.) l10n_info() reports an additional element, the name of the encoding as reported by the OS (which may differ from the encoding part (if any) of the result from Sys.getlocale("LC_CTYPE"). * New function gregexec() which generalizes regexec() to find _all_ disjoint matches and well as all substrings corresponding to parenthesized subexpressions of the given regular expression. (Contributed by Brodie Gaslam.) * New function charClass() in package utils to query the wide-character classification functions in use (such as iswprint). * The names of quantile()'s result no longer depend on the global getOption("digits"), but quantile() gets a new optional argument digits = 7 instead. * grep(), sub(), regexp and variants work considerably faster for long factors with few levels. (Thanks to Michael Chirico's PR#18063.) * Provide grouping of x11() graphics windows within a window manager such as Gnome or Unity; thanks to a patch by Ivan Krylov posted to R-devel. * The split() method for class data.frame now allows the f argument to be specified as a formula. * sprintf now warns on arguments unused by the format string. * New palettes "Rocket" and "Mako" for hcl.colors() (approximating palettes of the same name from the 'viridisLite' package). Contributed by Achim Zeileis. * The base environment and its namespace are now locked (so one can no longer add bindings to these or remove from these). * Rterm handling of multi-byte characters has been improved, allowing use of such characters when supported by the current locale. * Rterm now accepts ALT+ +xxxxxxxx sequences to enter Unicode characters as hex digits. * Environment variable LC_ALL on Windows now takes precedence over LC_CTYPE and variables for other supported categories, matching the POSIX behaviour. * duplicated() and anyDuplicated() are now optimized for integer and real vectors that are known to be sorted via the ALTREP framework. Contributed by Gabriel Becker via PR#17993. GRAPHICS: * The graphics engine version, R_GE_version, has been bumped to 14 and so packages that provide graphics devices should be reinstalled. * Graphics devices should now specify deviceVersion to indicate what version of the graphics engine they support. * Graphics devices can now specify deviceClip. If TRUE, the graphics engine will never perform any clipping of output itself. The clipping that the graphics engine does perform (for both canClip = TRUE and canClip = FALSE) has been improved to avoid producing unnecessary artifacts in clipped output. * The grid package now allows gpar(fill) to be a linearGradient(), a radialGradient(), or a pattern(). The viewport(clip) can now also be a grob, which defines a clipping path, and there is a new viewport(mask) that can also be a grob, which defines a mask. These new features are only supported so far on the Cairo-based graphics devices and on the pdf() device. * (Not Windows.) A warning is given when a Cairo-based type is specified for a png(), jpeg(), tiff() or bmp() device but Cairo is unsupported (so type = "Xlib" is tried instead). * grSoftVersion() now reports the versions of FreeType and FontConfig if they are used directly (not _via_ Pango), as is most commonly done on macOS. C-LEVEL FACILITIES: * The _standalone_ libRmath math library and R's C API now provide log1pexp() again as documented, and gain log1mexp(). INSTALLATION on a UNIX-ALIKE: * configure checks for a program pkgconf if program pkg-config is not found. These are now only looked for on the path (like almost all other programs) so if needed specify a full path to the command in PKG_CONFIG, for example in file config.site. * C99 function iswblank is required - it was last seen missing ca 2003 so the workaround has been removed. * There are new configure options --with-internal-iswxxxxx, --with-internal-towlower and --with-internal-wcwidth which allows the system functions for wide-character classification, case-switching and width (wcwidth and wcswidth) to be replaced by internal ones. The first has long been used on macOS, AIX (and Windows) but this enables it to be unselected there and selected for other platforms (it is the new default on Solaris). The second is new in this version of R and is selected by default on macOS and Solaris. The third has long been the default and remains so as it contains customizations for East Asian languages. System versions of these functions are often minimally implemented (sometimes only for ASCII characters) and may not cover the full range of Unicode points: for example Solaris (and Windows) only cover the Basic Multilingual Plane. * Cairo installations without X11 are more likely to be detected by configure, when the file-based Cairo graphics devices will be available but not X11(type = "cairo"). * There is a new configure option --with-static-cairo which is the default on macOS. This should be used when only static cairo (and where relevant, Pango) libraries are available. * Cairo-based graphics devices on platforms without Pango but with FreeType/FontConfig will make use of the latter for font selection. LINK-TIME OPTIMIZATION on a UNIX-ALIKE: * Configuring with flag --enable-lto=R now also uses LTO when installing the recommended packages. * R CMD INSTALL and R CMD SHLIB have a new flag --use-LTO to use LTO when compiling code, for use with R configured with --enable-lto=R. For R configured with --enable-lto, they have the new flag --no-use-LTO. Packages can opt in or out of LTO compilation _via_ a UseLTO field in the DESCRIPTION file. (As usual this can be overridden by the command-line flags.) BUILDING R on Windows: * for GCC >= 8, FC_LEN_T is defined in config.h and hence character lengths are passed from C to Fortran in _inter alia_ BLAS and LAPACK calls. * There is a new text file src/gnuwin32/README.compilation, which outlines how C/Fortran code compilation is organized and documents new features: * R can be built with Link-Time Optimization with a suitable compiler - doing so with GCC 9.2 showed several inconsistencies which have been corrected. * There is support for cross-compiling the C and Fortran code in R and standard packages on suitable (Linux) platforms. This is mainly intended to allow developers to test later versions of compilers - for example using GCC 9.2 or 10.x has detected issues that GCC 8.3 in Rtools40 does not. * There is experimental support for cross-building R packages with C, C++ and/or Fortran code. * The R installer can now be optionally built to support a single architecture (only 64-bit or only 32-bit). PACKAGE INSTALLATION: * The default C++ standard has been changed to C++14 where available (which it is on all currently checked platforms): if not (as before) C++11 is used if available otherwise C++ is not supported. Packages which specify C++11 will still be installed using C++11. C++14 compilers may give deprecation warnings, most often for std::random_shuffle (deprecated in C++14 and removed in C++17). Either specify C++11 (see 'Writing R Extensions') or modernize the code and if needed specify C++14. The latter has been supported since R 3.4.0 so the package's DESCRIPTION would need to include something like Depends: R (>= 3.4) PACKAGE INSTALLATION on Windows: * R CMD INSTALL and R CMD SHLIB make use of their flag --use-LTO when the LTO_OPT make macro is set in file etc/${R_ARCH}/Makeconf or in a personal/site Makevars file. (For details see 'Writing R Extensions' SS4.5.) This provides a valuable check on code consistency. It does work with GCC 8.3 as in Rtools40, but that does not detect everything the CRAN checks with current GCC do. PACKAGE INSTALLATION on macOS: * The default personal library directory on builds with --enable-aqua (including CRAN builds) now differs by CPU type, one of ~/Library/R/x86_64/x.y/library ~/Library/R/arm64/x.y/library This uses the CPU type R (and hence the packages) were built for, so when a x86_64 build of R is run under Rosetta emulation on an arm64 Mac, the first is used. UTILITIES: * R CMD check can now scan package functions for bogus return statements, which were possibly intended as return() calls (wish of PR#17180, patch by Sebastian Meyer). This check can be activated via the new environment variable _R_CHECK_BOGUS_RETURN_, true for --as-cran. * R CMD build omits tarballs and binaries of previous builds from the top-level package directory. (PR#17828, patch by Sebastian Meyer.) * R CMD check now runs sanity checks on the use of LazyData, for example that a data directory is present and that LazyDataCompression is not specified without LazyData and has a documented value. For packages with large LazyData databases without specifying LazyDataCompression, there is a reference to the code given in 'Writing R Extensions' SS1.1.6 to test the choice of compression (as in all the CRAN packages tested a non-default method was preferred). * R CMD build removes LazyData and LazyDataCompression fields from the DESCRIPTION file of packages without a data directory. ENCODING-RELATED CHANGES: * The parser now treats \Unnnnnnnn escapes larger than the upper limit for Unicode points (\U10FFFF) as an error as they cannot be represented by valid UTF-8. Where such escapes are used for outputting non-printable (including unassigned) characters, 6 hex digits are used (rather than 8 with leading zeros). For clarity, braces are used, for example \U{0effff}. * The parser now looks for non-ASCII spaces on Solaris (as previously on most other OSes). * There are warnings (including from the parser) on the use of unpaired surrogate Unicode points such as \uD834. (These cannot be converted to valid UTF-8.) * Functions nchar(), tolower(), toupper() and chartr() and those using regular expressions have more support for inputs with a marked Latin-1 encoding. * The character-classification functions used (by default) to replace the system iswxxxxx functions on Windows, macOS and AIX have been updated to Unicode 13.0.0. The character-width tables have been updated to include new assignments in Unicode 13.0.0. * The code for evaluating default (extended) regular expressions now uses the same character-classification functions as the rest of R (previously they differed on Windows, macOS and AIX). * There is a build-time option to replace the system's wide-character wctrans C function by tables shipped with R: use configure option --with-internal-towlower or (on Windows) -DUSE_RI18N_CASE in CFLAGS when building R. This may be needed to allow tolower() and toupper() to work with Unicode characters beyond the Basic Multilingual Plane where not supported by system functions (e.g. on Solaris where it is the new default). * R is more careful when truncating UTF-8 and other multi-byte strings that are too long to be printed, passed to the system or libraries or placed into an internal buffer. Truncation will no longer produce incomplete multibyte characters. DEPRECATED AND DEFUNCT: * Function plclust() from the package stats and package.dependencies(), pkgDepends(), getDepList(), installFoundDepends(), and vignetteDepends() from package tools are defunct. * Defunct functions checkNEWS() and readNEWS() from package tools and CRAN.packages() from utils have been removed. * R CMD config CXXCPP is defunct (it was deprecated in R 3.6.2). * parallel::detectCores() drops support for Irix (retired in 2013). * The LINPACK argument to chol.default(), chol2inv(), solve.default() and svd() has been defunct since R 3.1.0. It was silently ignored up to R 4.0.3 but now gives an error. * Subsetting/indexing, such as ddd[*] or ddd$x on a DOTSXP (dot-dot-dot) object ddd has been disabled; it worked by accident only and was undocumented. BUG FIXES: * Many more C-level allocations (mainly by malloc and strdup) are checked for success with suitable alternative actions. * Bug fix for replayPlot(); this was turning off graphics engine display list recording if a recorded plot was replayed in the same session. The impact of the bug became visible if resize the device after replay OR if attempted another savePlot() after replay (empty display list means empty screen on resize or empty saved plot). * R CMD check etc now warn when a package exports non-existing S4 classes or methods, also in case of no "methods" presence. (Reported by Alex Bertram; reproducible example and patch by Sebastian Meyer in PR#16662.) * boxplot() now also accepts calls for labels such as ylab, the same as plot(). (Reported by Marius Hofert.) * The help page for xtabs() now correctly states that addNA is setting na.action = na.pass among others. (Reported as PR#17770 by Thomas Soeiro.) * The R CMD check <pkg> gives a longer and more comprehensible message when DESCRIPTION misses dependencies, e.g., in Imports:. (Thanks to the contributors of PR#17179.) * update.default() now calls the generic update() on the formula to work correctly for models with extended formulas. (As reported and suggested by Neal Fultz in PR#17865.) * The horizontal position of leaves in a dendrogram is now correct also with center = FALSE. (PR#14938, patch from Sebastian Meyer.) * all.equal.POSIXt() no longer warns about and subsequently ignores inconsistent "tzone" attributes, but describes the difference in its return value (PR#17277). This check can be disabled _via_ the new argument check.tzone = FALSE as suggested by Sebastian Meyer. * as.POSIXct() now populates the "tzone" attribute from its tz argument when x is a logical vector consisting entirely of NA values. * x[[2^31]] <- v now works. (Thanks to the report and patch by Suharto Anggono in PR#17330.) * In log-scale graphics, axis() ticks and label positions are now computed more carefully and symmetrically in their range, typically providing _more_ ticks, fulfilling wishes in PR#17936. The change really corresponds to an improved axisTicks() (package grDevices), potentially influencing grid and lattice, for example. * qnorm(<very large negative>, log.p=TRUE) is now correct to at least five digits where it was catastrophically wrong, previously. * sum(df) and similar "Summary"- and "Math"-group member functions now work for data frames df with logical columns, notably also of zero rows. (Reported to R-devel by Martin "b706".) * unsplit() had trouble with tibbles due to unsound use of rep(NA, len)-indexing, which should use NA_integer_ (Reported to R-devel by Mario Annau.) * pnorm(x, log.p = TRUE) underflows to -Inf slightly later. * show(<hidden S4 generic>) prints better and without quotes for non-hidden S4 generics. * read.table() and relatives treated an "NA" column name as missing when check.names = FALSE PR#18007. * Parsing strings containing UTF-16 surrogate pairs such as "\uD834\uDD1E" works better on some (uncommon) platforms. sprintf("%X", utf8ToInt("\uD834\uDD1E")) should now give "1D11E" on all platforms. * identical(x,y) is no longer true for differing DOTSXP objects, fixing PR#18032. * str() now works correctly for DOTSXP and related exotics, even when these are doomed. Additionally, it no longer fails for lists with a class and "irregular" method definitions such that e.g. lapply(*) will necessarily fail, as currently for different igraph objects. * Too long lines in environment files (e.g. Renviron) no longer crash R. This limit has been increased to 100,000 bytes. (PR#18001.) * There is a further workaround for FreeType giving incorrect italic font faces with cairo-based graphics devices on macOS. * add_datalist(*, force = TRUE) (from package tools) now actually updates an existing data/datalist file for new content. (Thanks to a report and patch by Sebastian Meyer in PR#18048.) * cut.Date() and cut.POSIXt() could produce an empty last interval for breaks = "months" or breaks = "years". (Reported as PR#18053 by Christopher Carbone.) * Detection of the encoding of 'regular' macOS locales such as en_US (which is UTF-8) had been broken by a macOS change: fortunately these are now rarely used with en_US.UTF-8 being preferred. * sub() and gsub(pattern, repl, x, *) now keep attributes of x such as names() also when pattern is NA (PR#18079). * Time differences ("difftime" objects) get a replacement and a rep() method to keep "units" consistent. (Thanks to a report and patch by Nicolas Bennett in PR#18066.) * The \RdOpts macro, setting defaults for \Sexpr options in an Rd file, had been ineffective since R 2.12.0: it now works again. (Thanks to a report and patch by Sebastian Meyer in PR#18073.) * mclapply and pvec no longer accidentally terminate parallel processes started before by mcparallel or related calls in package parallel (PR#18078). * grep and other functions for evaluating (extended) regular expressions handle in Unicode also strings not explicitly flagged UTF-8, but flagged native when running in UTF-8 locale. * Fixed a crash in fifo implementation on Windows (PR#18031). * Binary mode in fifo on Windows is now properly detected from argument open (PR#15600, PR#18031).
2021-06-13 15:10:46 +02:00
$NetBSD: distinfo,v 1.88 2021/06/13 13:10:46 wen Exp $
Update to 4.1.0 Upstream changes: CHANGES IN R 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: * 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 read.table() (related to stringsAsFactor) in R 4.0.0. * When printing list arrays, classed objects are now shown _via_ their format() value if this is a short enough character string, or by giving the first elements of their class vector and their length. * capabilities() gets new entry "Rprof" which is TRUE when R has been configured with the equivalent of --enable-R-profiling (as it is by default). (Related to Michael Orlitzky's report PR#17836.) * str(xS4) now also shows extraneous attributes of an S4 object xS4. * Rudimentary support for vi-style tags in rtags() and R CMD rtags has been added. (Based on a patch from Neal Fultz in PR#17214.) * checkRdContents() is now exported from tools; it and also checkDocFiles() have a new option chkInternal allowing to check Rd files marked with keyword "internal" as well. The latter can be activated for R CMD check via environment variable _R_CHECK_RD_INTERNAL_TOO_. * New functions numToBits() and numToInts() extend the raw conversion utilities to (double precision) numeric. * Functions URLencode() and URLdecode() in package utils now work on vectors of URIs. (Based on patch from Bob Rudis submitted with PR#17873.) * path.expand() can expand ~user on most Unix-alikes even when readline is not in use. It tries harder to expand ~, for example should environment variable HOME be unset. * For HTML help (both dynamic and static), Rd file links to help pages in external packages are now treated as references to topics rather than file names, and fall back to a file link only if the topic is not found in the target package. The earlier rule which prioritized file names over topics can be restored by setting the environment variable _R_HELP_LINKS_TO_TOPICS_ to a false value. * c() now removes NULL arguments before dispatching to methods, thus simplifying the implementation of c() methods, _but_ for back compatibility keeps NULL when it is the first argument. (From a report and patch proposal by Lionel Henry in PR#17900.) * Vectorize()'s result function's environment no longer keeps unneeded objects. * Function ...elt() now propagates visibility consistently with ..n. (Thanks to Lionel Henry's PR#17905.) * capture.output() no longer uses non-standard evaluation to evaluate its arguments. This makes evaluation of functions like parent.frame() more consistent. (Thanks to Lionel Henry's PR#17907.) * packBits(bits, type="double") now works as inverse of numToBits(). (Thanks to Bill Dunlap's proposal in PR#17914.) * curlGetHeaders() has two new arguments, timeout to specify the timeout for that call (overriding getOption("timeout")) and TLS to specify the minimum TLS protocol version to be used for https:// URIs (_inter alia_ providing a means to check for sites using deprecated TLS versions 1.0 and 1.1). * For nls(), an optional constant scaleOffset may be added to the denominator of the relative offset convergence test for cases where the fit of a model is expected to be exact, thanks to a proposal by John Nash. nls(*, trace=TRUE) now also shows the convergence criterion. * Numeric differentiation _via_ numericDeriv() gets new optional arguments eps and central, the latter for taking central divided differences. The latter can be activated for nls() via nls.control(nDcentral = TRUE). * nls() now passes the trace and control arguments to getInitial(), notably for all self-starting models, so these can also be fit in zero-noise situations via a scaleOffset. For this reason, the initial function of a selfStart model must now have ... in its argument list. * bquote(splice = TRUE) can now splice expression vectors with attributes: this makes it possible to splice the result of parse(keep.source = TRUE). (Report and patch provided by Lionel Henry in PR#17869.) * textConnection() gets an optional name argument. * get(), exists(), and get0() now signal an error if the first argument has length greater than 1. Previously additional elements were silently ignored. (Suggested by Antoine Fabri on R-devel.) * R now provides a shorthand notation for creating functions, e.g. \(x) x + 1 is parsed as function(x) x + 1. * 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. * all.equal(f, g) for functions now by default also compares their environment(.)s, notably via new all.equal method for class function. Comparison of nls() fits, e.g., may now need all.equal(m1, m2, check.environment = FALSE). * .libPaths() gets a new option include.site, allowing to _not_ include the site library. (Thanks to Dario Strbenac's suggestion and Gabe Becker's PR#18016.) * Lithuanian translations are now available. (Thanks to Rimantas Zakauskas.) * names() now works for DOTSXP objects. On the other hand, in R-lang, the R language manual, we now warn against relying on the structure or even existence of such dot-dot-dot objects. * all.equal() no longer gives an error on DOTSXP objects. * capabilities("cairo") now applies only to the file-based devices as it is now possible (if very unusual) to build R with Cairo support for those but not for X11(). * There is optional support for tracing the progress of loadNamespace() - see its help. * (Not Windows.) l10n_info() reports an additional element, the name of the encoding as reported by the OS (which may differ from the encoding part (if any) of the result from Sys.getlocale("LC_CTYPE"). * New function gregexec() which generalizes regexec() to find _all_ disjoint matches and well as all substrings corresponding to parenthesized subexpressions of the given regular expression. (Contributed by Brodie Gaslam.) * New function charClass() in package utils to query the wide-character classification functions in use (such as iswprint). * The names of quantile()'s result no longer depend on the global getOption("digits"), but quantile() gets a new optional argument digits = 7 instead. * grep(), sub(), regexp and variants work considerably faster for long factors with few levels. (Thanks to Michael Chirico's PR#18063.) * Provide grouping of x11() graphics windows within a window manager such as Gnome or Unity; thanks to a patch by Ivan Krylov posted to R-devel. * The split() method for class data.frame now allows the f argument to be specified as a formula. * sprintf now warns on arguments unused by the format string. * New palettes "Rocket" and "Mako" for hcl.colors() (approximating palettes of the same name from the 'viridisLite' package). Contributed by Achim Zeileis. * The base environment and its namespace are now locked (so one can no longer add bindings to these or remove from these). * Rterm handling of multi-byte characters has been improved, allowing use of such characters when supported by the current locale. * Rterm now accepts ALT+ +xxxxxxxx sequences to enter Unicode characters as hex digits. * Environment variable LC_ALL on Windows now takes precedence over LC_CTYPE and variables for other supported categories, matching the POSIX behaviour. * duplicated() and anyDuplicated() are now optimized for integer and real vectors that are known to be sorted via the ALTREP framework. Contributed by Gabriel Becker via PR#17993. GRAPHICS: * The graphics engine version, R_GE_version, has been bumped to 14 and so packages that provide graphics devices should be reinstalled. * Graphics devices should now specify deviceVersion to indicate what version of the graphics engine they support. * Graphics devices can now specify deviceClip. If TRUE, the graphics engine will never perform any clipping of output itself. The clipping that the graphics engine does perform (for both canClip = TRUE and canClip = FALSE) has been improved to avoid producing unnecessary artifacts in clipped output. * The grid package now allows gpar(fill) to be a linearGradient(), a radialGradient(), or a pattern(). The viewport(clip) can now also be a grob, which defines a clipping path, and there is a new viewport(mask) that can also be a grob, which defines a mask. These new features are only supported so far on the Cairo-based graphics devices and on the pdf() device. * (Not Windows.) A warning is given when a Cairo-based type is specified for a png(), jpeg(), tiff() or bmp() device but Cairo is unsupported (so type = "Xlib" is tried instead). * grSoftVersion() now reports the versions of FreeType and FontConfig if they are used directly (not _via_ Pango), as is most commonly done on macOS. C-LEVEL FACILITIES: * The _standalone_ libRmath math library and R's C API now provide log1pexp() again as documented, and gain log1mexp(). INSTALLATION on a UNIX-ALIKE: * configure checks for a program pkgconf if program pkg-config is not found. These are now only looked for on the path (like almost all other programs) so if needed specify a full path to the command in PKG_CONFIG, for example in file config.site. * C99 function iswblank is required - it was last seen missing ca 2003 so the workaround has been removed. * There are new configure options --with-internal-iswxxxxx, --with-internal-towlower and --with-internal-wcwidth which allows the system functions for wide-character classification, case-switching and width (wcwidth and wcswidth) to be replaced by internal ones. The first has long been used on macOS, AIX (and Windows) but this enables it to be unselected there and selected for other platforms (it is the new default on Solaris). The second is new in this version of R and is selected by default on macOS and Solaris. The third has long been the default and remains so as it contains customizations for East Asian languages. System versions of these functions are often minimally implemented (sometimes only for ASCII characters) and may not cover the full range of Unicode points: for example Solaris (and Windows) only cover the Basic Multilingual Plane. * Cairo installations without X11 are more likely to be detected by configure, when the file-based Cairo graphics devices will be available but not X11(type = "cairo"). * There is a new configure option --with-static-cairo which is the default on macOS. This should be used when only static cairo (and where relevant, Pango) libraries are available. * Cairo-based graphics devices on platforms without Pango but with FreeType/FontConfig will make use of the latter for font selection. LINK-TIME OPTIMIZATION on a UNIX-ALIKE: * Configuring with flag --enable-lto=R now also uses LTO when installing the recommended packages. * R CMD INSTALL and R CMD SHLIB have a new flag --use-LTO to use LTO when compiling code, for use with R configured with --enable-lto=R. For R configured with --enable-lto, they have the new flag --no-use-LTO. Packages can opt in or out of LTO compilation _via_ a UseLTO field in the DESCRIPTION file. (As usual this can be overridden by the command-line flags.) BUILDING R on Windows: * for GCC >= 8, FC_LEN_T is defined in config.h and hence character lengths are passed from C to Fortran in _inter alia_ BLAS and LAPACK calls. * There is a new text file src/gnuwin32/README.compilation, which outlines how C/Fortran code compilation is organized and documents new features: * R can be built with Link-Time Optimization with a suitable compiler - doing so with GCC 9.2 showed several inconsistencies which have been corrected. * There is support for cross-compiling the C and Fortran code in R and standard packages on suitable (Linux) platforms. This is mainly intended to allow developers to test later versions of compilers - for example using GCC 9.2 or 10.x has detected issues that GCC 8.3 in Rtools40 does not. * There is experimental support for cross-building R packages with C, C++ and/or Fortran code. * The R installer can now be optionally built to support a single architecture (only 64-bit or only 32-bit). PACKAGE INSTALLATION: * The default C++ standard has been changed to C++14 where available (which it is on all currently checked platforms): if not (as before) C++11 is used if available otherwise C++ is not supported. Packages which specify C++11 will still be installed using C++11. C++14 compilers may give deprecation warnings, most often for std::random_shuffle (deprecated in C++14 and removed in C++17). Either specify C++11 (see 'Writing R Extensions') or modernize the code and if needed specify C++14. The latter has been supported since R 3.4.0 so the package's DESCRIPTION would need to include something like Depends: R (>= 3.4) PACKAGE INSTALLATION on Windows: * R CMD INSTALL and R CMD SHLIB make use of their flag --use-LTO when the LTO_OPT make macro is set in file etc/${R_ARCH}/Makeconf or in a personal/site Makevars file. (For details see 'Writing R Extensions' SS4.5.) This provides a valuable check on code consistency. It does work with GCC 8.3 as in Rtools40, but that does not detect everything the CRAN checks with current GCC do. PACKAGE INSTALLATION on macOS: * The default personal library directory on builds with --enable-aqua (including CRAN builds) now differs by CPU type, one of ~/Library/R/x86_64/x.y/library ~/Library/R/arm64/x.y/library This uses the CPU type R (and hence the packages) were built for, so when a x86_64 build of R is run under Rosetta emulation on an arm64 Mac, the first is used. UTILITIES: * R CMD check can now scan package functions for bogus return statements, which were possibly intended as return() calls (wish of PR#17180, patch by Sebastian Meyer). This check can be activated via the new environment variable _R_CHECK_BOGUS_RETURN_, true for --as-cran. * R CMD build omits tarballs and binaries of previous builds from the top-level package directory. (PR#17828, patch by Sebastian Meyer.) * R CMD check now runs sanity checks on the use of LazyData, for example that a data directory is present and that LazyDataCompression is not specified without LazyData and has a documented value. For packages with large LazyData databases without specifying LazyDataCompression, there is a reference to the code given in 'Writing R Extensions' SS1.1.6 to test the choice of compression (as in all the CRAN packages tested a non-default method was preferred). * R CMD build removes LazyData and LazyDataCompression fields from the DESCRIPTION file of packages without a data directory. ENCODING-RELATED CHANGES: * The parser now treats \Unnnnnnnn escapes larger than the upper limit for Unicode points (\U10FFFF) as an error as they cannot be represented by valid UTF-8. Where such escapes are used for outputting non-printable (including unassigned) characters, 6 hex digits are used (rather than 8 with leading zeros). For clarity, braces are used, for example \U{0effff}. * The parser now looks for non-ASCII spaces on Solaris (as previously on most other OSes). * There are warnings (including from the parser) on the use of unpaired surrogate Unicode points such as \uD834. (These cannot be converted to valid UTF-8.) * Functions nchar(), tolower(), toupper() and chartr() and those using regular expressions have more support for inputs with a marked Latin-1 encoding. * The character-classification functions used (by default) to replace the system iswxxxxx functions on Windows, macOS and AIX have been updated to Unicode 13.0.0. The character-width tables have been updated to include new assignments in Unicode 13.0.0. * The code for evaluating default (extended) regular expressions now uses the same character-classification functions as the rest of R (previously they differed on Windows, macOS and AIX). * There is a build-time option to replace the system's wide-character wctrans C function by tables shipped with R: use configure option --with-internal-towlower or (on Windows) -DUSE_RI18N_CASE in CFLAGS when building R. This may be needed to allow tolower() and toupper() to work with Unicode characters beyond the Basic Multilingual Plane where not supported by system functions (e.g. on Solaris where it is the new default). * R is more careful when truncating UTF-8 and other multi-byte strings that are too long to be printed, passed to the system or libraries or placed into an internal buffer. Truncation will no longer produce incomplete multibyte characters. DEPRECATED AND DEFUNCT: * Function plclust() from the package stats and package.dependencies(), pkgDepends(), getDepList(), installFoundDepends(), and vignetteDepends() from package tools are defunct. * Defunct functions checkNEWS() and readNEWS() from package tools and CRAN.packages() from utils have been removed. * R CMD config CXXCPP is defunct (it was deprecated in R 3.6.2). * parallel::detectCores() drops support for Irix (retired in 2013). * The LINPACK argument to chol.default(), chol2inv(), solve.default() and svd() has been defunct since R 3.1.0. It was silently ignored up to R 4.0.3 but now gives an error. * Subsetting/indexing, such as ddd[*] or ddd$x on a DOTSXP (dot-dot-dot) object ddd has been disabled; it worked by accident only and was undocumented. BUG FIXES: * Many more C-level allocations (mainly by malloc and strdup) are checked for success with suitable alternative actions. * Bug fix for replayPlot(); this was turning off graphics engine display list recording if a recorded plot was replayed in the same session. The impact of the bug became visible if resize the device after replay OR if attempted another savePlot() after replay (empty display list means empty screen on resize or empty saved plot). * R CMD check etc now warn when a package exports non-existing S4 classes or methods, also in case of no "methods" presence. (Reported by Alex Bertram; reproducible example and patch by Sebastian Meyer in PR#16662.) * boxplot() now also accepts calls for labels such as ylab, the same as plot(). (Reported by Marius Hofert.) * The help page for xtabs() now correctly states that addNA is setting na.action = na.pass among others. (Reported as PR#17770 by Thomas Soeiro.) * The R CMD check <pkg> gives a longer and more comprehensible message when DESCRIPTION misses dependencies, e.g., in Imports:. (Thanks to the contributors of PR#17179.) * update.default() now calls the generic update() on the formula to work correctly for models with extended formulas. (As reported and suggested by Neal Fultz in PR#17865.) * The horizontal position of leaves in a dendrogram is now correct also with center = FALSE. (PR#14938, patch from Sebastian Meyer.) * all.equal.POSIXt() no longer warns about and subsequently ignores inconsistent "tzone" attributes, but describes the difference in its return value (PR#17277). This check can be disabled _via_ the new argument check.tzone = FALSE as suggested by Sebastian Meyer. * as.POSIXct() now populates the "tzone" attribute from its tz argument when x is a logical vector consisting entirely of NA values. * x[[2^31]] <- v now works. (Thanks to the report and patch by Suharto Anggono in PR#17330.) * In log-scale graphics, axis() ticks and label positions are now computed more carefully and symmetrically in their range, typically providing _more_ ticks, fulfilling wishes in PR#17936. The change really corresponds to an improved axisTicks() (package grDevices), potentially influencing grid and lattice, for example. * qnorm(<very large negative>, log.p=TRUE) is now correct to at least five digits where it was catastrophically wrong, previously. * sum(df) and similar "Summary"- and "Math"-group member functions now work for data frames df with logical columns, notably also of zero rows. (Reported to R-devel by Martin "b706".) * unsplit() had trouble with tibbles due to unsound use of rep(NA, len)-indexing, which should use NA_integer_ (Reported to R-devel by Mario Annau.) * pnorm(x, log.p = TRUE) underflows to -Inf slightly later. * show(<hidden S4 generic>) prints better and without quotes for non-hidden S4 generics. * read.table() and relatives treated an "NA" column name as missing when check.names = FALSE PR#18007. * Parsing strings containing UTF-16 surrogate pairs such as "\uD834\uDD1E" works better on some (uncommon) platforms. sprintf("%X", utf8ToInt("\uD834\uDD1E")) should now give "1D11E" on all platforms. * identical(x,y) is no longer true for differing DOTSXP objects, fixing PR#18032. * str() now works correctly for DOTSXP and related exotics, even when these are doomed. Additionally, it no longer fails for lists with a class and "irregular" method definitions such that e.g. lapply(*) will necessarily fail, as currently for different igraph objects. * Too long lines in environment files (e.g. Renviron) no longer crash R. This limit has been increased to 100,000 bytes. (PR#18001.) * There is a further workaround for FreeType giving incorrect italic font faces with cairo-based graphics devices on macOS. * add_datalist(*, force = TRUE) (from package tools) now actually updates an existing data/datalist file for new content. (Thanks to a report and patch by Sebastian Meyer in PR#18048.) * cut.Date() and cut.POSIXt() could produce an empty last interval for breaks = "months" or breaks = "years". (Reported as PR#18053 by Christopher Carbone.) * Detection of the encoding of 'regular' macOS locales such as en_US (which is UTF-8) had been broken by a macOS change: fortunately these are now rarely used with en_US.UTF-8 being preferred. * sub() and gsub(pattern, repl, x, *) now keep attributes of x such as names() also when pattern is NA (PR#18079). * Time differences ("difftime" objects) get a replacement and a rep() method to keep "units" consistent. (Thanks to a report and patch by Nicolas Bennett in PR#18066.) * The \RdOpts macro, setting defaults for \Sexpr options in an Rd file, had been ineffective since R 2.12.0: it now works again. (Thanks to a report and patch by Sebastian Meyer in PR#18073.) * mclapply and pvec no longer accidentally terminate parallel processes started before by mcparallel or related calls in package parallel (PR#18078). * grep and other functions for evaluating (extended) regular expressions handle in Unicode also strings not explicitly flagged UTF-8, but flagged native when running in UTF-8 locale. * Fixed a crash in fifo implementation on Windows (PR#18031). * Binary mode in fifo on Windows is now properly detected from argument open (PR#15600, PR#18031).
2021-06-13 15:10:46 +02:00
SHA1 (R-4.1.0.tar.gz) = c84697f2a0a5b89ff75dfe10fcb87656cc68144c
RMD160 (R-4.1.0.tar.gz) = fe7de80b43c678ed20fada00b4cad89d8df56d10
SHA512 (R-4.1.0.tar.gz) = 41519bf06a1ebc2bb582e9a7c35d0e82e213312dec8147861a7f9b28ee750cd40dfbf02737602d05698641fcea6182b0da8131e83edacc358e98eca0a393b729
Size (R-4.1.0.tar.gz) = 33714683 bytes
Update to 3.6.0 Upstream changes: CHANGES IN R 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(). 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 axis labels drawn. Its default is 1 for labels _parallel_ to the axis, and 0.25 for perpendicular ones. Perpendicular labels no longer overlap, fixing bug PR#17384. * The default method of plot() gains new arguments xgap.axis = NA and ygap.axis = NA to be passed to the x- and y- axis(.., gap.axis=*) calls. * removeSource() now works not only for functions but also for some language objects. * as.call(), rep.int(), rep_len() and nchar() dispatch internally. * is(object, class2) looks for class2 in the calling namespace after looking in the namespace of class(object). * extendrange(.., f) with a length-2 f now extends separately to the left and the right. * lengths() dispatches internally to S4 methods. * download.file() on Windows now uses URLdecode() to determine the file extension, and uses binary transfer (mode = "wb") also for file extension .rds. The help page for download.file() now contains the same information on all platforms. * Setting C locale for collation _via_ environment variables LC_ALL and LC_COLLATE and _via_ a call to Sys.setlocale() now takes precedence over environment variable R_ICU_LOCALE. * There is a new function, nullfile(), to give the file name of the null system device (e.g., /dev/null) on the current platform. * There are two new options, keep.parse.data and keep.parse.data.pkgs, which control whether parse data are included into sources when keep.source or keep.source.pkgs is TRUE. By default, keep.parse.data.pkgs is now FALSE, which changes previous behavior and significantly reduces space and time overhead when sources are kept when installing packages. * In rapply(x, ..), x can also be "list-like" and of length >= 2^{31}. * trimws() gets new optional whitespace argument, allowing more extensive definitions of "space", such as including Unicode spaces (as wished in PR#17431). * weighted.mean() no longer coerces the weights to a double/numeric vector, since sum() now handles integer overflow. This makes weighted.mean() more polymorphic and endomorphic, but be aware that the results are no longer guaranteed to be a vector of type double. * When loading namespaces, S3 method registrations which overwrite previous registrations are now noted by default (using packageStartupMessage()). * compiler::cmpfile() gains a version argument, for use when the output file should be saved in serialization format 2. * The axis labeling in the default method of pairs() may now be toggled by new options horOdd and verOdd. * (Not Windows nor macOS.) Package tcltk now supports an environment variable R_DONT_USE_TK which if set disables Tk initialization. This is intended for use to circumvent errors in loading the package, e.g. with recent Linux running under an address sanitizer. * The numeric method of all.equal() gets optional arguments countEQ and formatFUN. If countEQ is true, the mean error is more sensible when many entries are *eq*ual. * outer(x,y, FUN = "*") is more efficient using tcrossprod(u,v) instead of u %*% t(v). * vcov(<mlm>) is more efficient via new optional arguments in summary.mlm(). * The default method of summary() gets an option to choose the _kind_ of quantile()s to use; wish of PR#17438. * Fitting multiple linear models _via_ lm() does work with _matrix_ offsets, as suggested in PR#17407. * The new functions mem.maxVSize() and mem.maxMSize() allow the maximal size of the vector heap and the maximal number of nodes allowed in the current R process to be queried and set. * news() gains support for NEWS.md files. * An effort has been started to have our reference manuals, i.e., all help pages. show platform-independent information (rather than Windows or Unix-alike specifics visible only on that platform). Consequently, the Windows version of X11() / x11() got identical formal arguments to the Unix one. * sessionInfo()$running has been factored out in a new variable osVersion. * slice.index() now also works for multi-dimensional margins. * untar() used with an external tar command assumes this supports decompression including xz and automagically detecting the compression type. This has been true of all mainstream implementations since 2009 (for GNU tar, since version 1.22): older implementations are still supported _via_ the new argument support_old_tars whose default is controlled by environment variable R_SUPPORT_OLD_TARS. (It looks like NetBSD and OpenBSD have 'older' tar commands for this purpose.) * The new function asplit() allow splitting an array or matrix by its margins. * New functions errorCondition() and warningCondition() provide a convenient way to create structured error and warning objects. .Deprecated() now signals a warning of class "deprecatedWarning", and .Defunct() now signals an error of class "defunctError". * Many 'package not found' errors are now signaled as errors of class "packageNotFoundError". * As an experimental feature, when loadNamespace() fails because the requested package is not available the error is initially signaled with a retry_loadNamespace restart available. This allows a calling handler to try to install the package and continue. * S3method() directives in NAMESPACE can now also be used to perform _delayed_ S3 method registration. * Experimentally, setting environment variable _R_CHECK_LENGTH_1_LOGIC2_ will lead to warnings (or errors if the variable is set to a 'true' value) when && or || encounter and use arguments of length more than one. * Added "lines" and "chars" coordinate systems to grconvertX() and grconvertY(). * getOption() is more efficient notably for the rare case when called with two arguments, from several contributors in PR#17394. * In .col(dim) and .row(dim), dim now may also be an integer-valued "double". * sQuote() and dQuote() get an explicit q argument with obvious default instead of using getOption("fancyQuotes") implicitly and unconditionally. * unzip() can list archives with comments and with spaces in file names even using an external unzip command. * Command line completion has a new setting rc.settings(dots = FALSE) to remove ... from the list of possible function arguments. * library() no longer checks packages with compiled code match R.version$platform. loadNamespace() never has, and increasingly the 'canonical name' does not reflect the important characteristics of compiled code. * The primitive functions drop() and unclass() now avoid duplicating their data for atomic vectors that are large enough, by returning ALTREP wrapper objects with adjusted attributes. R-level assignments to change attributes will also use wrapper objects to avoid duplicating data for larger atomic vectors. R functions like structure() and unname() will therefore not duplicate data in these settings. Generic vectors as produced by list() are not yet covered by this optimization but may be in due course. * In formals(), envir becomes an optional argument instead of being hardwired. * Instead of signalling an error for an invalid S4 object x, str(x) now gives a warning and subsequently still shows most parts of x, e.g., when slots are missing. * gamma(x) and lgamma(x) no longer warn when correctly returning Inf or underflowing to zero. This helps maximum likelihood and similar computations. * convertColor() is now vectorized, so a lot faster for converting many colours at once. The new argument vectorized to colorConverter() ensures that non-vectorized colour converters still work. (Thanks to Brodie Gaslam.) * download.file() and url() get new argument headers for custom HTTP headers, e.g., allowing to perform basic http authentication, thanks to a patch contributed by G'abor Cs'ardi. * File-based connection functions file(), gzfile(), bzfile() and xzfile() now signal an error when used on a directory. * For approx(), splinefun() _etc_, a new setting ties = c("ordered", <fun>) allows skipping the sorting and still treat ties. * format(x) gives a more user friendly error message in the case where no method is defined. A minimal method is provided in format.default(x) when isS4(x) is true. * which(x) now also works when x is a long vector, thanks to Suharto Anggono's PR#17201. *NB*: this may return a double result, breaking the previous guarantee of an integer result. * seq.default() is more careful to return an integer (as opposed to double) result when its arguments are large and/or classed objects; see comment #9 of Suharto Anggono's PR#17497. * The plot() method for lm and glm fits, plot.lm(), gains a new option iter.smooth with a default of 0 for binomial fits, no longer down-weighting when smoothing the residuals. * zip() passes its list of files _via_ standard input to the external command when too long for the command line (on some platforms). * data() gains an overwrite argument. * t.test() now also returns the standard error (in list component stderr). * model.matrix(*, contrasts.arg = CC) now warns about invalid contrasts.args. * Performance of substr() and substring() has been improved. * stopifnot() has been simplified thanks to Suharto Anggono's proposals to become considerably faster for cheap expressions. * The default 'user agent' has been changed when accessing http:// and https:// sites using libcurl. (A site was found which caused libcurl to infinite-loop with the previous default.) * sessionInfo() now also contains RNGkind() and prints it when it differs from the default; based on a proposal and patch by Gabe Becker in PR#17535. Also, RNGversion(getRversion()) works directly. * library() and require() now allow more control over handling search path conflicts when packages are attached. The policy is controlled by the new conflicts.policy option. * barplot() gets a formula method, thanks to a patch proposal by Arni Magnusson in PR#17521. * pmax() and pmin(x) now also work for long vectors, thanks to Suharto Anggono's PR#17533. * bxp() now warns when omitting duplicated arguments. * New hcl.colors() function to provide wide range of HCL-based colour palettes with much better perceptual properties than the existing RGB/HSV-based palettes like rainbow(). Also a new hcl.pals() function to list available palette names for hcl.colors(). Contributed by Achim Zeileis. * The default colours for image() and filled.contour() are now based on hcl.colors(). * The palette-generating functions rainbow(), gray.colors(), etc. get a new rev argument to facilitate reversing the order of colors. * New str2lang() and str2expression() as streamlined versions of parse(text=., keep.source=FALSE) allow to abstract typical call constructions, e.g., in formula manipulations. (Somewhat experimental) * Add update_PACKAGES() for incrementally updating a package repository index, instead of rebuilding the index from scratch. Thanks to Gabe Becker in PR#17544 for the patch, based on part of his switchr package. INSTALLATION on a UNIX-ALIKE: * The options selected for the C++ compiler default to the C++11 standard if supported, otherwise to the C++98 standard. * Visibility macros such as C_VISIBILITY can now be user-set (including to empty), e.g. in config.site. * Macro FCLIBS, which has sometimes been needed on Solaris, has been renamed to FCLIBS_XTRA. * Macro F77 is always set to the value of FC, so the latter should be set to user-select the Fortran compiler for both fixed-form and free-form Fortran. In particular, gfortran is now the first choice for F77, not f95. Macros FFLAGS and FCFLAGS remain distinct to allow for a compiler which needs a flag to select free- or fixed-form Fortran (most use the source-file extension to choose: .f is fixed-form and .f90 and .f95 are free-form). If only one of them is set, its value is used for both. * The special-casing of CFLAGS, CXXFLAGS and FFLAGS for Intel compilers on Linux has been removed: we do not have recent experience but the generic defaults now chosen are the same as those previously special-cased for x86_64. If necessary, override the defaults on the configure command line or in file config.site. * Long-untested configure support for HP-UX and very old versions of Linux has been removed. * configure --with-blas (without specifying a value) includes OpenBLAS in its search (before ATLAS and a generic BLAS). This follows recent versions of the ax_blas autoconf macro. * The configure macro MAKEINFO has been updated to TEXI2ANY. * Support for make install-strip has been enhanced. PACKAGE INSTALLATION: * Source package installation is by default 'staged': the package is installed into a temporary location under the final library directory and moved into place once the installation is complete. The benefit is that partially-installed packages are hidden from other R sessions. The overall default is set by environment variable R_INSTALL_STAGED. R CMD INSTALL has new options --staged-install and --no-staged-install, and packages can use the StagedInstall field in their DESCRIPTION file to opt out. (That opt-out is a temporary measure which may be withdrawn in future.) Staged installation requires either --pkglock or --lock, one of which is used by default. * The interpretation of source code with extension .f is changing. Previously this denoted FORTRAN 77 code, but current compilers no longer have a FORTRAN 77 mode and interpret it as 'fixed-form' Fortran 90 (or later where supported) code. Extensions .f90 and .f95 continue to indicate 'free-form' Fortran code. Legal FORTRAN 77 code is also legal fixed-form Fortran 9x; however this change legitimizes the use of later features, in particular to replace features marked 'obsolescent' in Fortran 90 and 'deleted' in Fortran 2018 which gfortran 8.x and later warn about. * Packages containing files in the src directory with extensions .f90 or .f95 are now linked using the C or C++ compiler rather than the Fortran 9x compiler. This is consistent with fixed-form Fortran code and allows mixing of C++ and free-form Fortran on most platforms. Consequentially, a package which includes free-form Fortran 9x code which uses OpenMP should include SHLIB_OPENMP_CFLAGS (or the CXXFLAGS version if they also include C++ code) in PKG_LIBS rather than SHLIB_OPENMP_FCFLAGS - fortunately on almost all current platforms they are the same flag. * Macro PKG_FFLAGS will be used for the compilation of both fixed-form and free-form Fortran code unless PKG_FCFLAGS is also set (in src/Makevars or src/Makevars.win). * The make macro F_VISIBILITY is now preferred for both fixed-form and free-form Fortran, for use in src/Makevars and similar. * R CMD INSTALL gains a new option --strip which (where supported) strips installed shared object(s): this can also be achieved by setting the environment variable _R_SHLIB_STRIP_ to a true value. The new option --strip-lib attempts stripping of static and shared libraries installed under lib. These are most useful on platforms using GNU binutils (such as Linux) and compiling with -g flags. * There is more support for installing UTF-8-encoded packages in a strict Latin-1 locale (and probably for other Latin locales): non-ASCII comments in R code (and NAMESPACE files) are worked around better. UTILITIES: * R CMD check now optionally checks makefiles for correct and portable use of the SHLIB_OPENMP_*FLAGS macros. * R CMD check now evaluates \Sexpr{} expressions (including those in macros) before checking the contents of Rd files and so detects issues both in evaluating the expressions and in the expanded contents. * R CMD check now lists missing packages separated by commas and with regular quotes such as to be useful as argument in calling install.packages(c(..)); from a suggestion by Marcel Ramos. * tools::Rd2latex() now uses UTF-8 as its default output encoding. * R CMD check now checks line endings of files with extension .hpp and those under inst/include. The check now includes that a non-empty file is terminated with a newline. R CMD build will correct line endings in such files. * R CMD check now tries re-building all vignettes rather than stopping at the first error: whilst doing so it adds 'bookmarks' to the log. By default (see the 'R Internals' manual) it re-builds each vignette in a separate process. It now checks for duplicated vignette titles (also known as 'index entries'): they are used as hyperlinks on CRAN package pages and so do need to be unique. * R CMD check has more comprehensive checks on the data directory and the functioning of data() in a package. * R CMD check now checks autoconf-generated configure files have their corresponding source files, including optionally attempting to regenerate them on platforms with autoreconf. * R CMD build has a new option --compression to select the compression used for the tarball. * R CMD build now removes src/*.mod files on all platforms. C-LEVEL FACILITIES: * New pointer protection C functions R_PreserveInMSet and R_ReleaseFromMSet have been introduced to replace UNPROTECT_PTR, which is not safe to mix with UNPROTECT (and with PROTECT_WITH_INDEX). Intended for use in parsers only. * NAMEDMAX has been raised to 7 to allow further protection of intermediate results from (usually ill-advised) assignments in arguments to BUILTIN functions. Properly written package code should not be affected. * R_unif_index is now considered to be part of the C API. * R_GetCurrentEnv() allows C code to retrieve the current environment. DEPRECATED AND DEFUNCT: * Argument compressed of untar() is deprecated - it is only used for external tar commands which increasingly for extraction auto-detect compression and ignore their zjJ flags. * var(f) and hence sd(f) now give an error for factor arguments; they gave a deprecation warning since R 3.2.3, PR#16564. * Package tools' vignetteDepends() has been deprecated (it called a function deprecated since Feb 2016), being partly replaced by newly exported vignetteInfo(). * The f77_f2c script has been removed: it no longer sufficed to compile the .f files in R. * The deprecated legacy support of make macros such as CXX1X has been removed: use the CXX11 forms instead. * Make macro F77_VISIBILITY is deprecated in favour of F_VISIBILITY. * Make macros F77, FCPIFCPLAGS and SHLIB_OPENMP_FCFLAGS are deprecated in favour of FC, FPICFLAGS and SHLIB_OPENMP_FFLAGS respectively. * $.data.frame had become an expensive version of the default method, so has been removed. (Thanks to Radford Neal for picking this up and to Duncan Murdoch for providing a patch.) BUG FIXES: * replayPlot(r) now also works in the same R session when r has been "reproduced" from serialization, typically after saving to and reading from an RDS file. * substr() and substring() now signal an error when the input is invalid UTF-8. * file.copy() now works also when its argument to is of length greater than one. * mantelhaen.test() no longer suffers from integer overflow in largish cases, thanks to Ben Bolker's PR#17383. * Calling setGeneric("foo") in a package no longer fails when the enclosing environment of the implicit generic foo() is .GlobalEnv. * untar(file("<some>.tar.gz"), *) now gives a better error message, suggesting to use gzfile() instead. * Method dispatch uses more relevant environments when looking up class definitions. * The documentation for identify() incorrectly claimed that the indices of identified points were returned in the order that the points were selected. identify() now has a new argument order to allow the return value to include the order in which points were identified; the documentation has been updated. Reported by Richard Rowe and Samuel Granjeaud. * order(...., decreasing=c(TRUE, FALSE)) could fail in some cases. Reported from StackOverflow via Karl Nordstr"om. * User macros in Rd files now accept empty and multi-line arguments. * Changes in print.*(), thanks to Lionel Henry's patches in PR#17398: * Printing lists, pairlists or attributes containing calls with S3 class no longer evaluate those. * Printing S4 objects within lists and pairlists dispatches with show() rather than print(), as with auto-printing. * The indexing tags (names or [[<n>]]) of recursive data structures are now printed correctly in complex cases. * Arguments supplied to print() are now properly forwarded to methods when printing lists, pairlists or attributes containing S3 objects. * The print parameters are now preserved when printing S3 objects or deparsing symbols and calls. Previously, printing lists containing S3 objects or expressions would reset these parameters. * Printing lists, pairlists or attributes containing functions now uses srcref attributes if present. * Calling install.packages() with a length zero pkgs argument now is a no-op (PR#17422). * unlist(x) now returns a correct factor when x is a nested list with factor leaves, fixing PR#12572 and PR#17419. * The documentation help(family) gives more details about the aic component, thanks to Ben Bolker's prompting. * The documentation for attributes and `attributes<-` now gives x as name of the first and main argument which the implementation has been requiring, fixing PR#17434. For consistency, the first argument name is also changed from obj to x for `mostattributes<-`. * strwidth() now uses par("font") as default font face (PR#17352). * plot(<table>, log="x") no longer warns about log. * The print() method for "htest" objects now formats the test statistic and parameter directly and hence no longer rounds to units _before_ the decimal point. Consequently, printing of t.test() results with a small number of digits now shows non-large df's to the full precision (PR#17444). * kruskal.test() and fligner.test() no longer erroneously insist on numeric g group arguments (PR#16719). * Printing a news db via the browser now does a much better job (PR#17433). * print.aov() missed column names in the multivariate case due to misspelling (reported by Chris Andrews). * axis() now creates valid at locations also for small subnormal number ranges in log scale plots. * format.POSIXlt() now also recycles the zone and gmtoff list components to full length when needed, and its internal C code detects have_zone in more cases. In some cases, this changes its output to become compatible with format.POSIXct(). * On Windows, detectCores() in package parallel now detects processors in all processor groups, not just the group R is running in (impacts particularly systems with more than 64 logical processors). Reported by Arunkumar Srinivasan. * On Windows, socketSelect() would hang with more than 64 sockets, and hence parallel::clusterApplyLB() would hang with more than 64 workers. Reported by Arunkumar Srinivasan. * as(1L, "double") now does coerce (PR#17457). * lm.influence(), influence.measures(), rstudent() etc now work (more) correctly for multivariate models ("mlm"), thanks to (anonymous) stackoverflow remarks. * sample.int(2.9, *, replace=TRUE) again behaves as documented and as in R < 3.0.0, namely identically to sample.int(2, ..). * Fixes to convertColor() for chromatic adaptation; thanks to Brodie Gaslam PR#17473. * Using \Sexpr[stage=install]{..} to create an Rd section no longer gives a warning in R CMD check; problem originally posted by G'abor Cs'ardi, then reported as PR#17479 with a partial patch by Duncan Murdoch. * Parse data now include a special node for equal assignment. * split.default() no longer relies on [[<-(), so it behaves as expected when splitting an object by a factor with the empty string as one of its levels. Thanks to Brad Friedman for the report. * Line numbers in messages about .Rd files are now more reliable, thanks to a patch from Duncan Murdoch. * In the numeric method for all.equal(), a numeric scale argument is now checked to be positive and allowed to be of length > 1. (The latter worked originally and with a warning in recent years). * Deferred string conversions now record the OutDec option setting when not equal to the default. Reported by Michael Sannella. * When y is numeric and f a factor, plot(y ~ f) nicely uses "y" and "f" as y- and x-labels. The more direct boxplot(y ~ f) now does too. The new argument ann = FALSE may be used to suppress these. * Subassignment to no/empty rows of a data frame is more consistent and typically a no-op in all cases instead of sometimes an error; part of Emil Bode's PR#17483. * Calls like formatC(*, zero.print = "< 0.001") no longer give an error and are further improved via new optional argument replace.zero. Reported by David Hugh-Jones. * methods::formalArgs("<fn>") now finds the same function as formals("<fn>"), fixing Emil Bode's PR#17499. * The methods package better handles duplicated class names across packages. * The default method of seq() now avoids integer overflow, thanks to the report and "cumsum" patch of Suharto Anggono's PR#17497. * sub() no longer loses encodings for non-ASCII replacements (PR#17509). * Fix for rotated raster image on X11 device. (Partial fix for PR#17148; thanks to Mikko Korpela). * formula(model.frame(frml, ..)) now returns frml in all cases, thanks to Bill Dunlap. The previous behavior is available as DF2formula(<model.frame>). * ar.ols() also returns scalar var.pred in univariate case (PR#17517). * normalizePath() now treats NA path as non-existent and normalizes it to NA. file.access() treats NA file name as non-existent. file.edit() and connection functions such as file() now treat NA file names as errors. * The internal regularize.values() auxiliary of approx(), splinefun() etc now warns again when there are ties and the caller did not specify ties. Further, it no longer duplicates x and y unnecessarily when x is already sorted (PR#17515). * strtoi("", base) now gives NA on all platforms, following its documentation. Reported by Michael Chirico. * In the definition of an S4 class, prototype elements are checked against the slots of the class, with giving a prototype for an undefined slot now being an error. (Reported by Bill Dunlap.) * From setClassUnion(), if environment variable _R_METHODS_SHOW_CHECKSUBCLASSES is set to true, the internal .checkSubclasses() utility prints debugging info to see where it is used. * max.col(m) with an m of zero columns now returns integer NA (instead of 1). * axTicks() no longer returns small "almost zero" numbers (in exponential format) instead of zero, fixing Ilario Gelmetti's PR#17534. * isSymmetric(matrix(0, dimnames=list("A","b"))) is FALSE again, as always documented. * The cairo_pdf graphics device (and other Cairo-based devices) now clip correctly to the right and bottom border. There was an off-by-one-pixel bug, reported by Lee Kelvin. * as.roman(3) <= 2:4 and all other comparisons now work, as do group "Summary" function calls such as max(as.roman(sample(20))) and as.roman(NA). (Partly reported by Bill Dunlap in PR#17542.) * reformulate("x", response = "sin(y)") no longer produces extra back quotes, PR#17359, and gains new optional argument env. * When reading console input from stdin with re-encoding (R --encoding=enc < input) the code on a Unix-alike now ensures that each converted input line is terminated with a newline even if re-encoding fails. * as.matrix.data.frame() now produces better strings from logicals, thanks to PR#17548 from Gabe Becker. * The S4 generic signature of rowSums(), rowMeans(), colSums() and colMeans() is restricted to "x". * match(x, tab) now works for long _character_ vectors x, thanks to PR#17552 by Andreas Kersting. * Class unions are unloaded when their namespace is unloaded (PR#17531, adapted from a patch by Brodie Gaslam). * selectMethod() is robust to ANY-truncation of method signatures (thanks to Herve Pages for the report).
2019-06-09 15:39:12 +02:00
SHA1 (patch-configure.ac) = 2732e3e0a39ee64ae4cba5c476f4754ecbd14942
SHA1 (patch-m4_R.m4) = 704d5514e10adf0b5217bb71b06f44a612eca6e0
Update to 3.3.1 Upstream changes: CHANGES IN R 3.3.1: BUG FIXES: * R CMD INSTALL and hence install.packages() gave an internal error installing a package called description from a tarball on a case-insensitive file system. * match(x, t) (and hence x %in% t) failed when x was of length one, and either character and x and t only differed in their Encoding or when x and t where complex with NAs or NaNs. (PR#16885.) * unloadNamespace(ns) also works again when ns is a 'namespace', as from getNamespace(). * rgamma(1,Inf) or rgamma(1, 0,0) no longer give NaN but the correct limit. * length(baseenv()) is correct now. * pretty(d, ..) for date-time d rarely failed when "halfmonth" time steps were tried (PR#16923) and on 'inaccurate' platforms such as 32-bit windows or a configuration with --disable-long-double; see comment #15 of PR#16761. * In text.default(x, y, labels), the rarely(?) used default for labels is now correct also for the case of a 2-column matrix x and missing y. * as.factor(c(a = 1L)) preserves names() again as in R < 3.1.0. * strtrim(""[0], 0[0]) now works. * Use of Ctrl-C to terminate a reverse incremental search started by Ctrl-R in the readline-based Unix terminal interface is now supported for readline >= 6.3 (Ctrl-G always worked). (PR#16603) * diff(<difftime>) now keeps the "units" attribute, as subtraction already did, PR#16940. CHANGES IN R 3.3.0: SIGNIFICANT USER-VISIBLE CHANGES: * nchar(x, *)'s argument keepNA governing how the result for NAs in x is determined, gets a new default keepNA = NA which returns NA where x is NA, except for type = "width" which still returns 2, the formatting / printing width of NA. * All builds have support for https: URLs in the default methods for download.file(), url() and code making use of them. Unfortunately that cannot guarantee that any particular https: URL can be accessed. For example, server and client have to successfully negotiate a cryptographic protocol (TLS/SSL, ...) and the server's identity has to be verifiable _via_ the available certificates. Different access methods may allow different protocols or use private certificate bundles: we encountered a https: CRAN mirror which could be accessed by one browser but not by another nor by download.file() on the same Linux machine. NEW FEATURES: * The print method for methods() gains a byclass argument. * New functions validEnc() and validUTF8() to give access to the validity checks for inputs used by grep() and friends. * Experimental new functionality for S3 method checking, notably isS3method(). Also, the names of the R 'language elements' are exported as character vector tools::langElts. * str(x) now displays "Time-Series" also for matrix (multivariate) time-series, i.e. when is.ts(x) is true. * (Windows only) The GUI menu item to install local packages now accepts *.tar.gz files as well as *.zip files (but defaults to the latter). * New programmeR's utility function chkDots(). * D() now signals an error when given invalid input, rather than silently returning NA. (Request of John Nash.) * formula objects are slightly more "first class": e.g., formula() or new("formula", y ~ x) are now valid. Similarly, for "table", "ordered" and "summary.table". Packages defining S4 classes with the above S3/S4 classes as slots should be reinstalled. * New function strrep() for repeating the elements of a character vector. * rapply() preserves attributes on the list when how = "replace". * New S3 generic function sigma() with methods for extracting the estimated standard deviation aka "residual standard deviation" from a fitted model. * news() now displays R and package news files within the HTML help system if it is available. If no news file is found, a visible NULL is returned to the console. * as.raster(x) now also accepts raw arrays x assuming values in 0:255. * Subscripting of matrix/array objects of type "expression" is now supported. * type.convert("i") now returns a factor instead of a complex value with zero real part and missing imaginary part. * Graphics devices cairo_pdf() and cairo_ps() now allow non-default values of the cairographics 'fallback resolution' to be set. This now defaults to 300 on all platforms: that is the default documented by cairographics, but apparently was not used by all system installations. * file() gains an explicit method argument rather than implicitly using getOption("url.method", "default"). * Thanks to a patch from Tomas Kalibera, x[x != 0] is now typically faster than x[which(x != 0)] (in the case where x has no NAs, the two are equivalent). * read.table() now always uses the names for a named colClasses argument (previously names were only used when colClasses was too short). (In part, wish of PR#16478.) * (Windows only) download.file() with default method = "auto" and a ftps:// URL chooses "libcurl" if that is available. * The out-of-the box Bioconductor mirror has been changed to one using https://: use chooseBioCmirror() to choose a http:// mirror if required. * The data frame and formula methods for aggregate() gain a drop argument. * available.packages() gains a repos argument. * The undocumented switching of methods for url() on https: and ftps: URLs is confined to method = "default" (and documented). * smoothScatter() gains a ret.selection argument. * qr() no longer has a ... argument to pass additional arguments to methods. * [ has a method for class "table". * It is now possible (again) to replayPlot() a display list snapshot that was created by recordPlot() in a different R session. It is still not a good idea to use snapshots as a persistent storage format for R plots, but it is now not completely silly to use a snapshot as a format for transferring an R plot between two R sessions. The underlying changes mean that packages providing graphics devices (e.g., Cairo, RSvgDevice, cairoDevice, tikzDevice) will need to be reinstalled. Code for restoring snapshots was contributed by Jeroen Ooms and JJ Allaire. Some testing code is available at <URL: https://github.com/pmur002/R-display-list>. * tools::undoc(dir = D) and codoc(dir = D) now also work when D is a directory whose normalizePath()ed version does not end in the package name, e.g. from a symlink. * abbreviate() has more support for multi-byte character sets - it no longer removes bytes within characters and knows about Latin vowels with accents. It is still only really suitable for (most) European languages, and still warns on non-ASCII input. abbreviate(use.classes = FALSE) is now implemented, and that is more suitable for non-European languages. * match(x, table) is faster (sometimes by an order of magnitude) when x is of length one and incomparables is unchanged, thanks to Peter Haverty (PR#16491). * More consistent, partly not back-compatible behavior of NA and NaN coercion to complex numbers, operations less often resulting in complex NA (NA_complex_). * lengths() considers methods for length and [[ on x, so it should work automatically on any objects for which appropriate methods on those generics are defined. * The logic for selecting the default screen device on OS X has been simplified: it is now quartz() if that is available even if environment variable DISPLAY has been set by the user. The choice can easily be overridden _via_ environment variable R_INTERACTIVE_DEVICE. * On Unix-like platforms which support the getline C library function, system(*,intern = TRUE) no longer truncates (output) lines longer than 8192 characters, thanks to Karl Millar. (PR#16544) * rank() gains a ties.method = "last" option, for convenience (and symmetry). * regmatches(invert = NA) can now be used to extract both non-matched and matched substrings. * data.frame() gains argument fix.empty.names; as.data.frame.list() gets new cut.names, col.names and fix.empty.names. * plot(x ~ x, *) now warns that it is the same as plot(x ~ 1, *). * recordPlot() has new arguments load and attach to allow package names to be stored as part of a recorded plot. replayPlot() has new argument reloadPkgs to load/attach any package names that were stored as part of a recorded plot. * S4 dispatch works within calls to .Internal(). This means explicit S4 generics are no longer needed for unlist() and as.vector(). * Only font family names starting with "Hershey" (and not "Her" as before) are given special treatment by the graphics engine. * S4 values are automatically coerced to vector (via as.vector) when subassigned into atomic vectors. * findInterval() gets a left.open option. * The version of LAPACK included in the sources has been updated to 3.6.0, including those 'deprecated' routines which were previously included. _Ca_ 40 double-complex routines have been added at the request of a package maintainer. As before, the details of what is included are in src/modules/lapack/README and this now gives information on earlier additions. * tapply() has been made considerably more efficient without changing functionality, thanks to proposals from Peter Haverty and Suharto Anggono. (PR#16640) * match.arg(arg) (the one-argument case) is faster; so is sort.int(). (PR#16640) * The format method for object_size objects now also accepts "binary" units such as "KiB" and e.g., "Tb". (Partly from PR#16649.) * Profiling now records calls of the form foo::bar and some similar cases directly rather than as calls to <Anonymous>. Contributed by Winston Chang. * New string utilities startsWith(x, prefix) and endsWith(x, suffix). Also provide speedups for some grepl("^...",*) uses (related to proposals in PR#16490). * Reference class finalizers run at exit, as well as on garbage collection. * Avoid parallel dependency on stats for port choice and random number seeds. (PR#16668) * The radix sort algorithm and implementation from data.table (forder) replaces the previous radix (counting) sort and adds a new method for order(). Contributed by Matt Dowle and Arun Srinivasan, the new algorithm supports logical, integer (even with large values), real, and character vectors. It outperforms all other methods, but there are some caveats (see ?sort). * The order() function gains a method argument for choosing between "shell" and "radix". * New function grouping() returns a permutation that stably rearranges data so that identical values are adjacent. The return value includes extra partitioning information on the groups. The implementation came included with the new radix sort. * rhyper(nn, m, n, k) no longer returns NA when one of the three parameters exceeds the maximal integer. * switch() now warns when no alternatives are provided. * parallel::detectCores() now has default logical = TRUE on all platforms - as this was the default on Windows, this change only affects Sparc Solaris. Option logical = FALSE is now supported on Linux and recent versions of OS X (for the latter, thanks to a suggestion of Kyaw Sint). * hist() for "Date" or "POSIXt" objects would sometimes give misleading labels on the breaks, as they were set to the day before the start of the period being displayed. The display format has been changed, and the shift of the start day has been made conditional on right = TRUE (the default). (PR#16679) * R now uses a new version of the logo (donated to the R Foundation by RStudio). It is defined in .svg format, so will resize without unnecessary degradation when displayed on HTML pages-there is also a vector PDF version. Thanks to Dirk Eddelbuettel for producing the corresponding X11 icon. * New function .traceback() returns the stack trace which traceback() prints. * lengths() dispatches internally. * dotchart() gains a pt.cex argument to control the size of points separately from the size of plot labels. Thanks to Michael Friendly and Milan Bouchet-Valat for ideas and patches. * as.roman(ch) now correctly deals with more diverse character vectors ch; also arithmetic with the resulting roman numbers works in more cases. (PR#16779) * prcomp() gains a new option rank. allowing to directly aim for less than min(n,p) PC's. The summary() and its print() method have been amended, notably for this case. * gzcon() gains a new option text, which marks the connection as text-oriented (so e.g. pushBack() works). It is still always opened in binary mode. * The import() namespace directive now accepts an argument except which names symbols to exclude from the imports. The except expression should evaluate to a character vector (after substituting symbols for strings). See Writing R Extensions. * New convenience function Rcmd() in package tools for invoking R CMD tools from within R. * New functions makevars_user() and makevars_site() in package tools to determine the location of the user and site specific Makevars files for customizing package compilation. UTILITIES: * R CMD check has a new option --ignore-vignettes for use with non-Sweave vignettes whose VignetteBuilder package is not available. * R CMD check now by default checks code usage (_via_ codetools) with only the base package attached. Functions from default packages other than base which are used in the package code but not imported are reported as undefined globals, with a suggested addition to the NAMESPACE file. * R CMD check --as-cran now also checks DOIs in package CITATION and Rd files. * R CMD Rdconv and R CMD Rd2pdf each have a new option --RdMacros=pkglist which allows Rd macros to be specified before processing. DEPRECATED AND DEFUNCT: * The previously included versions of zlib, bzip2, xz and PCRE have been removed, so suitable external (usually system) versions are required (see the 'R Installation and Administration' manual). * The unexported and undocumented Windows-only devices cairo_bmp(), cairo_png() and cairo_tiff() have been removed. (These devices should be used as e.g. bmp(type = "cairo").) * (Windows only) Function setInternet2() has no effect and will be removed in due course. The choice between methods "internal" and "wininet" is now made by the method arguments of url() and download.file() and their defaults can be set _via_ options. The out-of-the-box default remains "wininet" (as it has been since R 3.2.2). * [<- with an S4 value into a list currently embeds the S4 object into its own list such that the end result is roughly equivalent to using [[<-. That behavior is deprecated. In the future, the S4 value will be coerced to a list with as.list(). * Package tools' functions package.dependencies(), pkgDepends(), etc are deprecated now, mostly in favor of package_dependencies() which is both more flexible and efficient. INSTALLATION and INCLUDED SOFTWARE: * Support for very old versions of valgrind (e.g., 3.3.0) has been removed. * The included libtool script (generated by configure) has been updated to version 2.4.6 (from 2.2.6a). * libcurl version 7.28.0 or later with support for the https protocol is required for installation (except on Windows). * BSD networking is now required (except on Windows) and so capabilities("http/ftp") is always true. * configure uses pkg-config for PNG, TIFF and JPEG where this is available. This should work better with multiple installs and with those using static libraries. * The minimum supported version of OS X is 10.6 ('Snow Leopard'): even that has been unsupported by Apple since 2012. * The configure default on OS X is --disable-R-framework: enable this if you intend to install under /Library/Frameworks and use with R.app. * The minimum preferred version of PCRE has since R 3.0.0 been 8.32 (released in Nov 2012). Versions 8.10 to 8.31 are now deprecated (with warnings from configure), but will still be accepted until R 3.4.0. * configure looks for C functions __cospi, __sinpi and __tanpi and uses these if cospi _etc_ are not found. (OS X is the main instance.) * (Windows) R is now built using gcc 4.9.3. This build will require recompilation of at least those packages that include C++ code, and possibly others. A build of R-devel using the older toolchain will be temporarily available for comparison purposes. During the transition, the environment variable R_COMPILED_BY has been defined to indicate which toolchain was used to compile R (and hence, which should be used to compile code in packages). The COMPILED_BY variable described below will be a permanent replacement for this. * (Windows) A make and R CMD config variable named COMPILED_BY has been added. This indicates which toolchain was used to compile R (and hence, which should be used to compile code in packages). PACKAGE INSTALLATION: * The make macro AWK which used to be made available to files such as src/Makefile is no longer set. C-LEVEL FACILITIES: * The API call logspace_sum introduced in R 3.2.0 is now remapped as an entry point to Rf_logspace_sum, and its first argument has gained a const qualifier. (PR#16470) Code using it will need to be reinstalled. Similarly, entry point log1pexp also defined in Rmath.h is remapped there to Rf_log1pexp * R_GE_version has been increased to 11. * New API call R_orderVector1, a faster one-argument version of R_orderVector. * When R headers such as R.h and Rmath.h are called from C++ code in packages they include the C++ versions of system headers such as <cmath> rather than the legacy headers such as <math.h>. (Headers Rinternals.h and Rinterface.h already did, and inclusion of system headers can still be circumvented by defining NO_C_HEADERS, including as from this version for those two headers.) The manual has long said that R headers should *not* be included within an extern "C" block, and almost all the packages affected by this change were doing so. * Including header S.h from C++ code would fail on some platforms, and so gives a compilation error on all. * The deprecated header Rdefines.h is now compatible with defining R_NO_REMAP. * The connections API now includes a function R_GetConnection() which allows packages implementing connections to convert R connection objects to Rconnection handles used in the API. Code which previously used the low-level R-internal getConnection() entry point should switch to the official API. BUG FIXES: * C-level asChar(x) is fixed for when x is not a vector, and it returns "TRUE"/"FALSE" instead of "T"/"F" for logical vectors. * The first arguments of .colSums() etc (with an initial dot) are now named x rather than X (matching colSums()): thus error messages are corrected. * A coef() method for class "maov" has been added to allow vcov() to work with multivariate results. (PR#16380) * method = "libcurl" connections signal errors rather than retrieving HTTP error pages (where the ISP reports the error). * xpdrows.data.frame() was not checking for unique row names; in particular, this affected assignment to non-existing rows via numerical indexing. (PR#16570) * tail.matrix() did not work for zero rows matrices, and could produce row "labels" such as "[1e+05,]". * Data frames with a column named "stringsAsFactors" now format and print correctly. (PR#16580) * cor() is now guaranteed to return a value with absolute value less than or equal to 1. (PR#16638) * Array subsetting now keeps names(dim(.)). * Blocking socket connection selection recovers more gracefully on signal interrupts. * The data.frame method of rbind() construction row.names works better in borderline integer cases, but may change the names assigned. (PR#16666) * (X11 only) getGraphicsEvent() miscoded buttons and missed mouse motion events. (PR#16700) * methods(round) now also lists round.POSIXt. * tar() now works with the default files = NULL. (PR#16716) * Jumps to outer contexts, for example in error recovery, now make intermediate jumps to contexts where on.exit() actions are established instead of trying to run all on.exit() actions before jumping to the final target. This unwinds the stack gradually, releases resources held on the stack, and significantly reduces the chance of a segfault when running out of C stack space. Error handlers established using withCallingHandlers() and options("error") specifications are ignored when handling a C stack overflow error as attempting one of these would trigger a cascade of C stack overflow errors. (These changes resolve PR#16753.) * The spacing could be wrong when printing a complex array. (Report and patch by Lukas Stadler.) * pretty(d, n, min.n, *) for date-time objects d works again in border cases with large min.n, returns a labels attribute also for small-range dates and in such cases its returned length is closer to the desired n. (PR#16761) Additionally, it finally does cover the range of d, as it always claimed. * tsp(x) <- NULL did not handle correctly objects inheriting from both "ts" and "mts". (PR#16769) * install.packages() could give false errors when options("pkgType") was "binary". (Reported by Jose Claudio Faria.) * A bug fix in R 3.0.2 fixed problems with locator() in X11, but introduced problems in Windows. Now both should be fixed. (PR#15700) * download.file() with method = "wininet" incorrectly warned of download file length difference when reported length was unknown. (PR#16805) * diag(NULL, 1) crashed because of missed type checking. (PR#16853)
2016-07-26 06:53:33 +02:00
SHA1 (patch-src_library_stats_src_Makefile.in) = 4eb93292858392792c37a706399e2cef91821bbe
Update to 4.1.0 Upstream changes: CHANGES IN R 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: * 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 read.table() (related to stringsAsFactor) in R 4.0.0. * When printing list arrays, classed objects are now shown _via_ their format() value if this is a short enough character string, or by giving the first elements of their class vector and their length. * capabilities() gets new entry "Rprof" which is TRUE when R has been configured with the equivalent of --enable-R-profiling (as it is by default). (Related to Michael Orlitzky's report PR#17836.) * str(xS4) now also shows extraneous attributes of an S4 object xS4. * Rudimentary support for vi-style tags in rtags() and R CMD rtags has been added. (Based on a patch from Neal Fultz in PR#17214.) * checkRdContents() is now exported from tools; it and also checkDocFiles() have a new option chkInternal allowing to check Rd files marked with keyword "internal" as well. The latter can be activated for R CMD check via environment variable _R_CHECK_RD_INTERNAL_TOO_. * New functions numToBits() and numToInts() extend the raw conversion utilities to (double precision) numeric. * Functions URLencode() and URLdecode() in package utils now work on vectors of URIs. (Based on patch from Bob Rudis submitted with PR#17873.) * path.expand() can expand ~user on most Unix-alikes even when readline is not in use. It tries harder to expand ~, for example should environment variable HOME be unset. * For HTML help (both dynamic and static), Rd file links to help pages in external packages are now treated as references to topics rather than file names, and fall back to a file link only if the topic is not found in the target package. The earlier rule which prioritized file names over topics can be restored by setting the environment variable _R_HELP_LINKS_TO_TOPICS_ to a false value. * c() now removes NULL arguments before dispatching to methods, thus simplifying the implementation of c() methods, _but_ for back compatibility keeps NULL when it is the first argument. (From a report and patch proposal by Lionel Henry in PR#17900.) * Vectorize()'s result function's environment no longer keeps unneeded objects. * Function ...elt() now propagates visibility consistently with ..n. (Thanks to Lionel Henry's PR#17905.) * capture.output() no longer uses non-standard evaluation to evaluate its arguments. This makes evaluation of functions like parent.frame() more consistent. (Thanks to Lionel Henry's PR#17907.) * packBits(bits, type="double") now works as inverse of numToBits(). (Thanks to Bill Dunlap's proposal in PR#17914.) * curlGetHeaders() has two new arguments, timeout to specify the timeout for that call (overriding getOption("timeout")) and TLS to specify the minimum TLS protocol version to be used for https:// URIs (_inter alia_ providing a means to check for sites using deprecated TLS versions 1.0 and 1.1). * For nls(), an optional constant scaleOffset may be added to the denominator of the relative offset convergence test for cases where the fit of a model is expected to be exact, thanks to a proposal by John Nash. nls(*, trace=TRUE) now also shows the convergence criterion. * Numeric differentiation _via_ numericDeriv() gets new optional arguments eps and central, the latter for taking central divided differences. The latter can be activated for nls() via nls.control(nDcentral = TRUE). * nls() now passes the trace and control arguments to getInitial(), notably for all self-starting models, so these can also be fit in zero-noise situations via a scaleOffset. For this reason, the initial function of a selfStart model must now have ... in its argument list. * bquote(splice = TRUE) can now splice expression vectors with attributes: this makes it possible to splice the result of parse(keep.source = TRUE). (Report and patch provided by Lionel Henry in PR#17869.) * textConnection() gets an optional name argument. * get(), exists(), and get0() now signal an error if the first argument has length greater than 1. Previously additional elements were silently ignored. (Suggested by Antoine Fabri on R-devel.) * R now provides a shorthand notation for creating functions, e.g. \(x) x + 1 is parsed as function(x) x + 1. * 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. * all.equal(f, g) for functions now by default also compares their environment(.)s, notably via new all.equal method for class function. Comparison of nls() fits, e.g., may now need all.equal(m1, m2, check.environment = FALSE). * .libPaths() gets a new option include.site, allowing to _not_ include the site library. (Thanks to Dario Strbenac's suggestion and Gabe Becker's PR#18016.) * Lithuanian translations are now available. (Thanks to Rimantas Zakauskas.) * names() now works for DOTSXP objects. On the other hand, in R-lang, the R language manual, we now warn against relying on the structure or even existence of such dot-dot-dot objects. * all.equal() no longer gives an error on DOTSXP objects. * capabilities("cairo") now applies only to the file-based devices as it is now possible (if very unusual) to build R with Cairo support for those but not for X11(). * There is optional support for tracing the progress of loadNamespace() - see its help. * (Not Windows.) l10n_info() reports an additional element, the name of the encoding as reported by the OS (which may differ from the encoding part (if any) of the result from Sys.getlocale("LC_CTYPE"). * New function gregexec() which generalizes regexec() to find _all_ disjoint matches and well as all substrings corresponding to parenthesized subexpressions of the given regular expression. (Contributed by Brodie Gaslam.) * New function charClass() in package utils to query the wide-character classification functions in use (such as iswprint). * The names of quantile()'s result no longer depend on the global getOption("digits"), but quantile() gets a new optional argument digits = 7 instead. * grep(), sub(), regexp and variants work considerably faster for long factors with few levels. (Thanks to Michael Chirico's PR#18063.) * Provide grouping of x11() graphics windows within a window manager such as Gnome or Unity; thanks to a patch by Ivan Krylov posted to R-devel. * The split() method for class data.frame now allows the f argument to be specified as a formula. * sprintf now warns on arguments unused by the format string. * New palettes "Rocket" and "Mako" for hcl.colors() (approximating palettes of the same name from the 'viridisLite' package). Contributed by Achim Zeileis. * The base environment and its namespace are now locked (so one can no longer add bindings to these or remove from these). * Rterm handling of multi-byte characters has been improved, allowing use of such characters when supported by the current locale. * Rterm now accepts ALT+ +xxxxxxxx sequences to enter Unicode characters as hex digits. * Environment variable LC_ALL on Windows now takes precedence over LC_CTYPE and variables for other supported categories, matching the POSIX behaviour. * duplicated() and anyDuplicated() are now optimized for integer and real vectors that are known to be sorted via the ALTREP framework. Contributed by Gabriel Becker via PR#17993. GRAPHICS: * The graphics engine version, R_GE_version, has been bumped to 14 and so packages that provide graphics devices should be reinstalled. * Graphics devices should now specify deviceVersion to indicate what version of the graphics engine they support. * Graphics devices can now specify deviceClip. If TRUE, the graphics engine will never perform any clipping of output itself. The clipping that the graphics engine does perform (for both canClip = TRUE and canClip = FALSE) has been improved to avoid producing unnecessary artifacts in clipped output. * The grid package now allows gpar(fill) to be a linearGradient(), a radialGradient(), or a pattern(). The viewport(clip) can now also be a grob, which defines a clipping path, and there is a new viewport(mask) that can also be a grob, which defines a mask. These new features are only supported so far on the Cairo-based graphics devices and on the pdf() device. * (Not Windows.) A warning is given when a Cairo-based type is specified for a png(), jpeg(), tiff() or bmp() device but Cairo is unsupported (so type = "Xlib" is tried instead). * grSoftVersion() now reports the versions of FreeType and FontConfig if they are used directly (not _via_ Pango), as is most commonly done on macOS. C-LEVEL FACILITIES: * The _standalone_ libRmath math library and R's C API now provide log1pexp() again as documented, and gain log1mexp(). INSTALLATION on a UNIX-ALIKE: * configure checks for a program pkgconf if program pkg-config is not found. These are now only looked for on the path (like almost all other programs) so if needed specify a full path to the command in PKG_CONFIG, for example in file config.site. * C99 function iswblank is required - it was last seen missing ca 2003 so the workaround has been removed. * There are new configure options --with-internal-iswxxxxx, --with-internal-towlower and --with-internal-wcwidth which allows the system functions for wide-character classification, case-switching and width (wcwidth and wcswidth) to be replaced by internal ones. The first has long been used on macOS, AIX (and Windows) but this enables it to be unselected there and selected for other platforms (it is the new default on Solaris). The second is new in this version of R and is selected by default on macOS and Solaris. The third has long been the default and remains so as it contains customizations for East Asian languages. System versions of these functions are often minimally implemented (sometimes only for ASCII characters) and may not cover the full range of Unicode points: for example Solaris (and Windows) only cover the Basic Multilingual Plane. * Cairo installations without X11 are more likely to be detected by configure, when the file-based Cairo graphics devices will be available but not X11(type = "cairo"). * There is a new configure option --with-static-cairo which is the default on macOS. This should be used when only static cairo (and where relevant, Pango) libraries are available. * Cairo-based graphics devices on platforms without Pango but with FreeType/FontConfig will make use of the latter for font selection. LINK-TIME OPTIMIZATION on a UNIX-ALIKE: * Configuring with flag --enable-lto=R now also uses LTO when installing the recommended packages. * R CMD INSTALL and R CMD SHLIB have a new flag --use-LTO to use LTO when compiling code, for use with R configured with --enable-lto=R. For R configured with --enable-lto, they have the new flag --no-use-LTO. Packages can opt in or out of LTO compilation _via_ a UseLTO field in the DESCRIPTION file. (As usual this can be overridden by the command-line flags.) BUILDING R on Windows: * for GCC >= 8, FC_LEN_T is defined in config.h and hence character lengths are passed from C to Fortran in _inter alia_ BLAS and LAPACK calls. * There is a new text file src/gnuwin32/README.compilation, which outlines how C/Fortran code compilation is organized and documents new features: * R can be built with Link-Time Optimization with a suitable compiler - doing so with GCC 9.2 showed several inconsistencies which have been corrected. * There is support for cross-compiling the C and Fortran code in R and standard packages on suitable (Linux) platforms. This is mainly intended to allow developers to test later versions of compilers - for example using GCC 9.2 or 10.x has detected issues that GCC 8.3 in Rtools40 does not. * There is experimental support for cross-building R packages with C, C++ and/or Fortran code. * The R installer can now be optionally built to support a single architecture (only 64-bit or only 32-bit). PACKAGE INSTALLATION: * The default C++ standard has been changed to C++14 where available (which it is on all currently checked platforms): if not (as before) C++11 is used if available otherwise C++ is not supported. Packages which specify C++11 will still be installed using C++11. C++14 compilers may give deprecation warnings, most often for std::random_shuffle (deprecated in C++14 and removed in C++17). Either specify C++11 (see 'Writing R Extensions') or modernize the code and if needed specify C++14. The latter has been supported since R 3.4.0 so the package's DESCRIPTION would need to include something like Depends: R (>= 3.4) PACKAGE INSTALLATION on Windows: * R CMD INSTALL and R CMD SHLIB make use of their flag --use-LTO when the LTO_OPT make macro is set in file etc/${R_ARCH}/Makeconf or in a personal/site Makevars file. (For details see 'Writing R Extensions' SS4.5.) This provides a valuable check on code consistency. It does work with GCC 8.3 as in Rtools40, but that does not detect everything the CRAN checks with current GCC do. PACKAGE INSTALLATION on macOS: * The default personal library directory on builds with --enable-aqua (including CRAN builds) now differs by CPU type, one of ~/Library/R/x86_64/x.y/library ~/Library/R/arm64/x.y/library This uses the CPU type R (and hence the packages) were built for, so when a x86_64 build of R is run under Rosetta emulation on an arm64 Mac, the first is used. UTILITIES: * R CMD check can now scan package functions for bogus return statements, which were possibly intended as return() calls (wish of PR#17180, patch by Sebastian Meyer). This check can be activated via the new environment variable _R_CHECK_BOGUS_RETURN_, true for --as-cran. * R CMD build omits tarballs and binaries of previous builds from the top-level package directory. (PR#17828, patch by Sebastian Meyer.) * R CMD check now runs sanity checks on the use of LazyData, for example that a data directory is present and that LazyDataCompression is not specified without LazyData and has a documented value. For packages with large LazyData databases without specifying LazyDataCompression, there is a reference to the code given in 'Writing R Extensions' SS1.1.6 to test the choice of compression (as in all the CRAN packages tested a non-default method was preferred). * R CMD build removes LazyData and LazyDataCompression fields from the DESCRIPTION file of packages without a data directory. ENCODING-RELATED CHANGES: * The parser now treats \Unnnnnnnn escapes larger than the upper limit for Unicode points (\U10FFFF) as an error as they cannot be represented by valid UTF-8. Where such escapes are used for outputting non-printable (including unassigned) characters, 6 hex digits are used (rather than 8 with leading zeros). For clarity, braces are used, for example \U{0effff}. * The parser now looks for non-ASCII spaces on Solaris (as previously on most other OSes). * There are warnings (including from the parser) on the use of unpaired surrogate Unicode points such as \uD834. (These cannot be converted to valid UTF-8.) * Functions nchar(), tolower(), toupper() and chartr() and those using regular expressions have more support for inputs with a marked Latin-1 encoding. * The character-classification functions used (by default) to replace the system iswxxxxx functions on Windows, macOS and AIX have been updated to Unicode 13.0.0. The character-width tables have been updated to include new assignments in Unicode 13.0.0. * The code for evaluating default (extended) regular expressions now uses the same character-classification functions as the rest of R (previously they differed on Windows, macOS and AIX). * There is a build-time option to replace the system's wide-character wctrans C function by tables shipped with R: use configure option --with-internal-towlower or (on Windows) -DUSE_RI18N_CASE in CFLAGS when building R. This may be needed to allow tolower() and toupper() to work with Unicode characters beyond the Basic Multilingual Plane where not supported by system functions (e.g. on Solaris where it is the new default). * R is more careful when truncating UTF-8 and other multi-byte strings that are too long to be printed, passed to the system or libraries or placed into an internal buffer. Truncation will no longer produce incomplete multibyte characters. DEPRECATED AND DEFUNCT: * Function plclust() from the package stats and package.dependencies(), pkgDepends(), getDepList(), installFoundDepends(), and vignetteDepends() from package tools are defunct. * Defunct functions checkNEWS() and readNEWS() from package tools and CRAN.packages() from utils have been removed. * R CMD config CXXCPP is defunct (it was deprecated in R 3.6.2). * parallel::detectCores() drops support for Irix (retired in 2013). * The LINPACK argument to chol.default(), chol2inv(), solve.default() and svd() has been defunct since R 3.1.0. It was silently ignored up to R 4.0.3 but now gives an error. * Subsetting/indexing, such as ddd[*] or ddd$x on a DOTSXP (dot-dot-dot) object ddd has been disabled; it worked by accident only and was undocumented. BUG FIXES: * Many more C-level allocations (mainly by malloc and strdup) are checked for success with suitable alternative actions. * Bug fix for replayPlot(); this was turning off graphics engine display list recording if a recorded plot was replayed in the same session. The impact of the bug became visible if resize the device after replay OR if attempted another savePlot() after replay (empty display list means empty screen on resize or empty saved plot). * R CMD check etc now warn when a package exports non-existing S4 classes or methods, also in case of no "methods" presence. (Reported by Alex Bertram; reproducible example and patch by Sebastian Meyer in PR#16662.) * boxplot() now also accepts calls for labels such as ylab, the same as plot(). (Reported by Marius Hofert.) * The help page for xtabs() now correctly states that addNA is setting na.action = na.pass among others. (Reported as PR#17770 by Thomas Soeiro.) * The R CMD check <pkg> gives a longer and more comprehensible message when DESCRIPTION misses dependencies, e.g., in Imports:. (Thanks to the contributors of PR#17179.) * update.default() now calls the generic update() on the formula to work correctly for models with extended formulas. (As reported and suggested by Neal Fultz in PR#17865.) * The horizontal position of leaves in a dendrogram is now correct also with center = FALSE. (PR#14938, patch from Sebastian Meyer.) * all.equal.POSIXt() no longer warns about and subsequently ignores inconsistent "tzone" attributes, but describes the difference in its return value (PR#17277). This check can be disabled _via_ the new argument check.tzone = FALSE as suggested by Sebastian Meyer. * as.POSIXct() now populates the "tzone" attribute from its tz argument when x is a logical vector consisting entirely of NA values. * x[[2^31]] <- v now works. (Thanks to the report and patch by Suharto Anggono in PR#17330.) * In log-scale graphics, axis() ticks and label positions are now computed more carefully and symmetrically in their range, typically providing _more_ ticks, fulfilling wishes in PR#17936. The change really corresponds to an improved axisTicks() (package grDevices), potentially influencing grid and lattice, for example. * qnorm(<very large negative>, log.p=TRUE) is now correct to at least five digits where it was catastrophically wrong, previously. * sum(df) and similar "Summary"- and "Math"-group member functions now work for data frames df with logical columns, notably also of zero rows. (Reported to R-devel by Martin "b706".) * unsplit() had trouble with tibbles due to unsound use of rep(NA, len)-indexing, which should use NA_integer_ (Reported to R-devel by Mario Annau.) * pnorm(x, log.p = TRUE) underflows to -Inf slightly later. * show(<hidden S4 generic>) prints better and without quotes for non-hidden S4 generics. * read.table() and relatives treated an "NA" column name as missing when check.names = FALSE PR#18007. * Parsing strings containing UTF-16 surrogate pairs such as "\uD834\uDD1E" works better on some (uncommon) platforms. sprintf("%X", utf8ToInt("\uD834\uDD1E")) should now give "1D11E" on all platforms. * identical(x,y) is no longer true for differing DOTSXP objects, fixing PR#18032. * str() now works correctly for DOTSXP and related exotics, even when these are doomed. Additionally, it no longer fails for lists with a class and "irregular" method definitions such that e.g. lapply(*) will necessarily fail, as currently for different igraph objects. * Too long lines in environment files (e.g. Renviron) no longer crash R. This limit has been increased to 100,000 bytes. (PR#18001.) * There is a further workaround for FreeType giving incorrect italic font faces with cairo-based graphics devices on macOS. * add_datalist(*, force = TRUE) (from package tools) now actually updates an existing data/datalist file for new content. (Thanks to a report and patch by Sebastian Meyer in PR#18048.) * cut.Date() and cut.POSIXt() could produce an empty last interval for breaks = "months" or breaks = "years". (Reported as PR#18053 by Christopher Carbone.) * Detection of the encoding of 'regular' macOS locales such as en_US (which is UTF-8) had been broken by a macOS change: fortunately these are now rarely used with en_US.UTF-8 being preferred. * sub() and gsub(pattern, repl, x, *) now keep attributes of x such as names() also when pattern is NA (PR#18079). * Time differences ("difftime" objects) get a replacement and a rep() method to keep "units" consistent. (Thanks to a report and patch by Nicolas Bennett in PR#18066.) * The \RdOpts macro, setting defaults for \Sexpr options in an Rd file, had been ineffective since R 2.12.0: it now works again. (Thanks to a report and patch by Sebastian Meyer in PR#18073.) * mclapply and pvec no longer accidentally terminate parallel processes started before by mcparallel or related calls in package parallel (PR#18078). * grep and other functions for evaluating (extended) regular expressions handle in Unicode also strings not explicitly flagged UTF-8, but flagged native when running in UTF-8 locale. * Fixed a crash in fifo implementation on Windows (PR#18031). * Binary mode in fifo on Windows is now properly detected from argument open (PR#15600, PR#18031).
2021-06-13 15:10:46 +02:00
SHA1 (patch-src_main_character.c) = 842ae5d291f36f2beead4d32c1d41b18cbff878d
SHA1 (patch-src_main_printutils.c) = ce8bafa2525a91eca3adc3d9a60724d145116ce1