pkgsrc-WIP-changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
(math/R) add COMMIT_MSG
Module Name: pkgsrc-wip
Committed By: Makoto Fujiwara <makoto%ki.nu@localhost>
Pushed By: mef
Date: Fri Jan 5 12:45:32 2024 +0900
Changeset: fe37f927a528ae870cbb4b6c0a47e66d69d891e0
Added Files:
R/COMMIT_MSG
Log Message:
(math/R) add COMMIT_MSG
To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=fe37f927a528ae870cbb4b6c0a47e66d69d891e0
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
diffstat:
R/COMMIT_MSG | 982 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 982 insertions(+)
diffs:
diff --git a/R/COMMIT_MSG b/R/COMMIT_MSG
new file mode 100644
index 0000000000..ab95380faa
--- /dev/null
+++ b/R/COMMIT_MSG
@@ -0,0 +1,982 @@
+(math/R) Updated 4.2.l to 4.3.2
+
+CHANGES IN R 4.3.2:
+
+ NEW FEATURES:
+
+ * The default initialization of the '"repos"' option from the
+ 'repositories' file at startup can be skipped by setting
+ environment variable 'R_REPOSITORIES' to 'NULL' such that
+ 'getOption("repos")' is empty if not set elsewhere.
+
+ * 'qr.X()' is now an implicit S4 generic in 'methods'.
+
+ * 'iconv(to = "ASCII//TRANSLIT")' is emulated using
+ substitution on platforms which do not support it (notably
+ Alpine Linux). This should give a human-readable conversion
+ in ASCII on all platforms (rather than 'NA_character_').
+
+ * 'trans3d()' gains options 'continuous' and 'verbose'
+ addressing the problem of possible "wrap around" when
+ projecting too long curves, as reported by Achim Zeileis in
+ PR#18537.
+
+ * 'tools::showNonASCII()' has been rewritten to work better on
+ macOS 14 (which has a changed implementation of 'iconv()').
+
+ * 'tiff(type = "quartz")' (the default on macOS) now warns if
+ 'compression' is specified: it continues to be ignored.
+
+ INSTALLATION on a UNIX-ALIKE:
+
+ * There is some support for building with Intel's LLVM-based
+ compilers on 'x86_64' Linux, such as (C) 'icx', (C++) 'ipcx'
+ and (Fortran) 'ifx' from oneAPI 2023.x.y.
+
+ * There is support for using LLVM's 'flang-new' as the Fortran
+ compiler from LLVM 16.0.x (preferably 17.0.0 or later).
+
+ UTILITIES:
+
+ * 'R CMD check' reports the use of the Fortran 90 random
+ number generator 'RANDOM_NUMBER()' and the subroutines to
+ initialize it.
+
+ 'Writing R Extensions' has example code to use R's RNGs from
+ Fortran.
+
+ BUG FIXES:
+
+ * 'substr(x, n, L) <- cc' now works (more) correctly for
+ multibyte UTF-8 strings 'x' when 'L > nchar(x)', thanks to a
+ report and patch by 'Architect 95'.
+
+ * 'contrib.url(character())' now returns 0-length
+ 'character()' as documented, which also avoids spurious
+ warnings from 'available.packages()' et al. in the edge case
+ of an empty vector of repository URLs.
+
+ * 'readChar(., 4e8)' no longer fails, thanks to Kodi Arfer's
+ report (PR#18557).
+
+ * 'lapply(<list>, as.data.frame)' no longer warns falsely for
+ some base vector components.
+
+ * Communication between parent and child processes in the
+ 'multicore' part of 'parallel' could fail on platforms that
+ do not support an arbitrarily large payload in system
+ functions 'read()'/'write()' on pipes (seen on macOS where a
+ restriction to 'INT_MAX' bytes is documented, without doing
+ a partial read unlike Linux). The payload is now split into
+ 1Gb chunks to avoid that problem. (PR#18571)
+
+ * 'qqplot(x,y, conf.level=.)' gives better confidence bounds
+ when 'length(x) != length(y)', thanks to Alexander Ploner's
+ report and patch proposal (PR#18557).
+
+ * 'norm(<0-length>, "2")' now gives zero instead of an error,
+ as all the other norm types, thanks to Mikael Jagan's
+ PR#18542.
+
+ * Build-stage Rd macros \packageAuthor and \packageMaintainer
+ now process 'Authors@R', fixing 'NA' results when the
+ package 'DESCRIPTION' omits 'Author' and 'Maintainer'
+ fields.
+
+ * Formatting and printing complex numbers could give things
+ like '0.1683-0i' because of rounding error: '-0i' is now
+ replaced by '+0i'.
+
+ * 'postscript()' refused to accept a 'title' comment
+ containing the letter "W" (PR#18599).
+
+ * 'isoreg(c(1,Inf))' signals an error instead of segfaulting,
+ fixing PR#18603.
+
+ * 'tiff(type = "Xlib")' was only outputting the last page of
+ multi-page plots.
+
+ * 'tools::latexToUtf8()' again knows about '\~{n}' and other
+ letters with tilde, fixing a regression in R 4.3.0, and
+ about '\^{i}' as an alternative to '\^{\i}' (similarly with
+ other accents). Furthermore, LaTeX codes for accented I
+ letters are now correctly converted, also fixing related
+ mistakes in 'tools::encoded_text_to_latex()'.
+
+ * 'tar(*, tar = "internal")' no longer creates out-of-spec tar
+ files in the very rare case of user or group names longer
+ than 32 bytes, fixing PR#17871 with thanks to Ivan Krylov.
+
+ * When using the "internal" timezone datetime code, adding a
+ fraction of a second no longer adds one second, fixing
+ PR#16856 from a patch by Ivan Krylov.
+
+ * 'tools::checkRd()' no longer produces spurious notes about
+ "unnecessary braces" from multi-line Rd results of \Sexpr
+ macros.
+
+CHANGES IN R 4.3.1:
+
+ C-LEVEL FACILITIES:
+
+ * The C-level API version of R's 'integrate()', 'Rdqags()' in
+ 'Applic.h', now returns the correct number of integrand
+ evaluations 'neval', fixing PR#18515 reported and diagnosed
+ by Stephen Wade.
+
+ * The C prototypes for LAPACK calls 'dspgv' and 'dtptrs' in
+ 'R_exts/Lapack.h' had one too many and one too few character
+ length arguments - but this has not caused any known issues.
+ To get the corrected prototypes, include
+
+ #include <Rconfig.h> // for PR18534fixed
+ #ifdef PR18534fixed
+ # define usePR18534fix 1
+ #endif
+ #include <R_exts/Lapack.h>
+
+ in your C/C++ code (PR#18534).
+
+ INSTALLATION:
+
+ * Many of the checks of esoteric Internet operations and those
+ using unreliable external sites have been moved to a new
+ target that is not run by default and primarily intended for
+ the core developers. To run them use
+
+ cd tests; make test-Internet-dev
+
+ BUG FIXES:
+
+ * '.S3methods()', typically called from 'methods()', again
+ marks methods from package 'base' as 'visible'.
+
+ Also, the visibility of non-'base' methods is again
+ determined by the method's presence in 'search()'.
+
+ * 'tools::Rdiff()' is now more robust against invalid strings,
+ fixing installation tests on Windows without Rtools
+ installed (PR#18530).
+
+ * Fix (new) bug in 'hcl.colors(2, *)', by Achim Zeileis
+ (PR#18523).
+
+ * 'head(., <illegal>)' and 'tail(..)' now produce more useful
+ '"Error in ...."' error messages, fixing PR#18362.
+
+ * Package code syntax on Windows is checked in UTF-8 when
+ UTF-8 is the native encoding.
+
+ * 'na.contiguous(x)' now also returns the first run, when it
+ is at the beginning and there is a later one of the same
+ length; reported to R-devel, including a fix, by Georgi
+ Boshnakov. Further, by default, it modifies only an
+ existing 'attr(*,"tsp")' but otherwise no longer sets one.
+
+ * 'chol(<not pos.def>, pivot = <T|F>)' now gives a correct
+ error or warning message (depending on 'pivot'), thanks to
+ Mikael Jagan's (PR#18541).
+
+CHANGES IN R 4.3.0:
+
+ SIGNIFICANT USER-VISIBLE CHANGES:
+
+ * Calling '&&' or '||' with LHS or (if evaluated) RHS of
+ length greater than one is now always an error, with a
+ report of the form
+
+ 'length = 4' in coercion to 'logical(1)'
+
+ Environment variable '_R_CHECK_LENGTH_1_LOGIC2_' no longer
+ has any effect.
+
+ NEW FEATURES:
+
+ * The included BLAS sources have been updated to those shipped
+ with LAPACK version 3.10.1. (This caused some
+ platform-dependent changes to package check output.) And
+ then to the sources from LAPACK version 3.11.0 (with changes
+ only to double complex subroutines).
+
+ * The included LAPACK sources have been updated to include the
+ four Fortran 90 routines rather than their Fortran 77
+ predecessors. This may give some different signs in SVDs or
+ eigendecompositions.. (This completes the transition to
+ LAPACK 3.10.x begun in R 4.2.0.)
+
+ * The LAPACK sources have been updated to version 3.11.0. (No
+ new subroutines have been added, so this almost entirely bug
+ fixes: Those fixes do affect some computations with 'NaN's,
+ including R's 'NA'.)
+
+ * The parser now signals _classederrors, notably in case of
+ the pipe operator '|>'. The error object and message now
+ give line and column numbers, mostly as proposed and
+ provided by Duncan Murdoch in PR#18328.
+
+ * 'toeplitz()' is now generalized for asymmetric cases, with a
+ 'toeplitz2()' variant.
+
+ * 'xy.coords()' and 'xyz.coords()' and consequently, e.g.,
+ 'plot(x,y, log = "y")' now signal a _classedwarning about
+ negative values of y (where 'log(.)' is 'NA'). Such a
+ warning can be specifically suppressed or caught otherwise.
+
+ * Regular expression functions now check more thoroughly
+ whether their inputs are valid strings (in their encoding,
+ e.g. in UTF-8).
+
+ * The performance of 'grep()', 'sub()', 'gsub()' and
+ 'strsplit()' has been improved, particularly with 'perl =
+ TRUE' and 'fixed = TRUE'. Use of 'useBytes = TRUE' for
+ performance reasons should no longer be needed and is
+ discouraged: it may lead to incorrect results.
+
+ * 'apropos()' gains an argument 'dot_internals' which is used
+ by the completion ('help(rcompgen)') engine to also see
+ 'base' internals such as '.POSIXct()'.
+
+ * Support in 'tools::Rdiff()' for comparing uncompressed PDF
+ files is further reduced - see its help page.
+
+ * 'qqplot(x, y, ...)' gains 'conf.level' and 'conf.args'
+ arguments for computing and plotting a confidence band for
+ the treatment function transforming the distribution of 'x'
+ into the distribution of 'y ' (Switzer, 1976, _Biometrika_).
+ Contributed by Torsten Hothorn.
+
+ * Performance of 'package_dependencies()' has been improved
+ for cases when the number of dependencies is large.
+
+ * Strings newly created by 'gsub()', 'sub()' and 'strsplit()',
+ when any of the inputs is marked as '"bytes"', are also
+ marked as '"bytes"'. This reduces the risk of creating
+ invalid strings and accidental substitution of bytes deemed
+ invalid.
+
+ * Support for 'readLines(encoding = "bytes")' has been added
+ to allow processing special text files byte-by-byte, without
+ creating invalid strings.
+
+ * 'iconv(from = "")' now takes into account any declared
+ encoding of the input elements and uses it in preference to
+ the native encoding. This reduces the risk of accidental
+ creation of invalid strings, particularly when different
+ elements of the input have different encoding (including
+ '"bytes"').
+
+ * Package repositories in 'getOption("repos")' are now
+ initialized from the 'repositories' file when 'utils' is
+ loaded (if not already set, e.g., in '.Rprofile'). (From a
+ report and patch proposal by Gabriel Becker in PR#18405.)
+
+ * 'compactPDF()' gets a 'verbose' option.
+
+ * 'type.convert()' and hence 'read.table()' get new option
+ 'tryLogical = TRUE' with back compatible default. When set
+ to false, converts '"F"' or '"T"' columns to character.
+
+ * Added new unit prefixes '"R"' and '"Q"' for abbreviating
+ (unrealistically large) sizes beyond 10^{27} in 'standard =
+ "SI"', thanks to Henrik Bengtsson's PR#18435.
+
+ * 'as.data.frame()''s default method now also works fine with
+ atomic objects inheriting from classes such as '"roman"',
+ '"octmode"' and '"hexmode"', such fulfilling the wish of
+ PR#18421, by Benjamin Feakins.
+
+ * The 'as.data.frame.vector()' utility now errors for
+ wrong-length 'row.names'. It warned for almost six years,
+ with "Will be an error!".
+
+ * 'sessionInfo()' now also contains 'La_version()' and reports
+ codepage and timezone when relevant, in both 'print()' and
+ 'toLatex()' methods which also get new option 'tzone' for
+ displaying timezone information when 'locale = FALSE'.
+
+ * New function 'R_compiled_by()' reports the C and Fortran
+ compilers used to build R, if known.
+
+ * 'predict(<lm>, newdata = *)' no longer unnecessarily creates
+ an 'offset' of all '0's.
+
+ * 'solve()' for complex inputs now uses argument 'tol' and by
+ default checks for 'computational singularity' (as it long
+ has done for numeric inputs).
+
+ * 'predict(<rank-deficient lm>, newdata=*)' now obeys a new
+ argument 'rankdeficient', with new default '"warnif"',
+ warning only if there are non-estimable cases in 'newdata'.
+ Other options include 'rankdeficient = "NA"', predicting
+ 'NA' for non-estimable 'newdata' cases. This addresses
+ PR#15072 by Russ Lenth and is based on his original proposal
+ and discussions in PR#16158 also by David Firth and Elin
+ Waring. Still somewhat experimental.
+
+ * 'Rgui' console implementation now works better with the
+ 'NVDA' screen reader when the full blinking cursor is
+ selected. The underlying improvements in cursor handling
+ may help also other screen readers on Windows.
+
+ * The drop-field control in GraphApp can now be left with the
+ TAB key and all controls can be navigated in the reverse
+ order using the Shift+TAB key, improving accessibility of
+ the 'Rgui' configuration editor.
+
+ * 'qnorm(<very large negative>, log.p=TRUE)' is now fully
+ accurate (instead of to "only" minimally five digits).
+
+ * 'demo(error.catching)' now also shows off 'withWarnings()'
+ and 'tryCatchWEMs()'.
+
+ * As an experimental feature the placeholder '_' can now also
+ be used in the 'rhs' of a forward pipe '|>' expression as
+ the first argument in an extraction call, such as '_$coef'.
+ More generally, it can be used as the head of a chain of
+ extractions, such as '_$coef[[2]]'.
+
+ * Spaces in the environment variable used to choose the R
+ session's temporary directory ('TMPDIR', 'TMP' and 'TEMP'
+ are tried in turn) are now fatal. (On Windows the 'short
+ path' version of the path is tried and used if that does not
+ contain a space.)
+
+ * 'all.equal.numeric()' gets a new optional switch 'giveErr'
+ to return the numeric error as attribute. Relatedly,
+ 'stopifnot(all.equal<some>(a, b, ..))' is as "smart" now, as
+ 'stopifnot(all.equal(....))' has been already, thus allowing
+ customized 'all.equal<Some>()' wrappers.
+
+ * R on Windows is now able to work with path names longer than
+ 260 characters when these are enabled in the system
+ (requires at least Windows 10 version 1607). Packages
+ should be updated to work with long paths as well, instead
+ of assuming 'PATH_MAX' to be the maximum length. Custom
+ front-ends and applications embedding R need to update their
+ manifests if they wish to allow this feature. See
+ <https://blog.r-project.org/2023/03/07/path-length-limit-on-windows>
+ for more information.
+
+ * 'Object not found' and 'Missing argument' errors now give a
+ more accurate error context. Patch provided by Lionel Henry
+ in PR#18241.
+
+ * The '@' operator is now an S3 generic. Based on
+ contributions by Tomasz Kalinowski in PR#18482.
+
+ * New generic 'chooseOpsMethod()' provides a mechanism for
+ objects to resolve cases where two suitable methods are
+ found for an Ops Group Generic. This supports experimenting
+ with alternative object systems. Based on contributions by
+ Tomasz Kalinowski in PR#18484.
+
+ * 'inherits(x, what)' now accepts values other than a simple
+ character vector for argument 'what'. A new generic,
+ 'nameOfClass()', is called to resolve the class name from
+ 'what'. This supports experimenting with alternative object
+ systems. Based on contributions by Tomasz Kalinowski in
+ PR#18485.
+
+ * Detection of BLAS/LAPACK in use ('sessionInfo()') with
+ FlexiBLAS now reports the current backend.
+
+ * The '"data.frame"' method for 'subset()' now warns about
+ extraneous arguments, typically catching the use of '='
+ instead of '==' in the 'subset' expression.
+
+ * Calling 'a:b' when numeric 'a' or 'b' is longer than one may
+ now be made into an error by setting environment variable
+ '_R_CHECK_LENGTH_COLON_' to a true value, along the proposal
+ in PR#18419 by Henrik Bengtsson.
+
+ * 'density(x, weights = *)' now warns if automatic bandwidth
+ selection happens without using 'weights'; new optional
+ 'warnWbw' may suppress the warning. Prompted by Christoph
+ Dalitz' PR#18490 and its discussants.
+
+ * 'rm(list = *)' is faster and more readable thanks to Kevin
+ Ushey's PR#18492.
+
+ * The 'plot.lm()' function no longer produces a normal Q-Q
+ plot for GLMs. Instead it plots a half-normal Q-Q plot of
+ the absolute value of the standardized deviance residuals.
+
+ * The 'print()' method for class '"summary.glm"' no longer
+ shows summary statistics for the deviance residuals by
+ default. Its optional argument 'show.residuals' can be used
+ to show them if required.
+
+ * The 'tapply()' function now accepts a data frame as its 'X'
+ argument, and allows 'INDEX' to be a formula in that case.
+ 'by.data.frame()' similarly allows 'INDICES' to be a
+ formula.
+
+ * The performance of 'df[j] <- value' (including for missing
+ 'j') and 'write.table(df)' has been improved for data frames
+ 'df' with a large number of columns. (Thanks to Gabriel
+ Becker's PR#18500, PR#18503 and discussants, prompted by a
+ report from Toby Dylan Hocking on the R-devel mailing list.)
+
+ * The matrix multiply operator '%*%' is now an S3 generic,
+ belonging to new group generic 'matrixOps'. From Tomasz
+ Kalinowski's contribution in PR#18483.
+
+ * New function 'array2DF()' to convert arrays to data frames,
+ particularly useful for the list arrays created by
+ 'tapply()'.
+
+ DATES and TIMES:
+
+ * On platforms where (non-UTC) datetimes before 1902 (or
+ before 1900 as with system functions on recent macOS) are
+ guessed by extrapolating time zones from 1902-2037, there is
+ a warning at the first use of extrapolation in a session.
+ (As all time zones post 2037 are extrapolation, we do not
+ warn on those.)
+
+ * (Platforms using '--with-internal-tzone', including Windows
+ and by default macOS). How years are printed in dates or
+ date-times can be controlled by environment variable
+ 'R_PAD_YEARS_BY_ZERO'. The default remains to pad to 4
+ digits by zeroes, but setting value 'no' gives no padding
+ (as used by default by 'glibc').
+
+ * 'strftime()' tries harder to determine the offset for the
+ '"%z"' format, and succeeds on the mainstream R platforms.
+
+ * 'strftime()' has a limit of 2048 bytes on the string
+ produced - attempting to exceed this is an error.
+ (Previously it silently truncated at 255 bytes.)
+
+ * 'sessionInfo()' records (and by default prints) the system
+ time zone as part of the locale information. Also, the
+ source (system/internal) of the date-time conversion and
+ printing functions.
+
+ * Objects of class '"POSIXlt"' created in this version of R
+ always have 11 components: component 'zone' is always set,
+ and component 'gmtoff' is set for times in UTC and usually
+ set on the (almost all) platforms which have C-level
+ support, otherwise is 'NA'.
+
+ * There are comprehensive validity checks on the structure of
+ objects of class '"POSIXlt"' when converting (including
+ formatting and printing). (This avoids mis-conversions of
+ hand-crafted objects.)
+
+ * There is some support for using the native date-time
+ routines on macOS: this is only viable on recent versions
+ (e.g. 12.6 and 13) and does get wrong some historical
+ changes (before 1900, during WWII). Use of
+ '--with-internal-tzone' remains the default.
+
+ * 'as.POSIXct(<numeric>)' and 'as.POSIXlt(.)' (without
+ specifying 'origin') now work. So does
+ 'as.Date(<numeric>)'.
+
+ * 'as.Date.POSIXct(., tz)' now treats several 'tz' values,
+ notably '"GMT"' as equivalent to '"UTC"', proposed and
+ improved by Michael Chirico and Joshua Ulrich in PR#17674.
+
+ * Experimental 'balancePOSIXlt()' utility allows using
+ "ragged" and or out-of-range '"POSIXlt"' objects more
+ correctly, e.g., in subsetting and subassignments. Such
+ objects are now documented.
+
+ More experimentally, a '"POSIXlt"' object may have an
+ attribute '"balanced"' indicating if it is known to be
+ filled or fully balanced.
+
+ * Functions 'axis.Date()' and 'axis.POSIXct()' are rewritten
+ to gain better default tick locations and better default
+ formats by using 'prettyDate()'. Thanks to Swetlana
+ Herbrandt.
+
+ * The mapping of Windows' names for time zones to IANA's
+ 'Olson' names has been updated. When ICU is available (it
+ is by default), it is used to get a mapping for the current
+ region set in Windows. This can be overridden by setting
+ environment variable 'TZ' to the desired Olson name - see
+ 'OlsonNames()' for those currently available.
+
+ GRAPHICS:
+
+ * The graphics engine version, 'R_GE_version', has been bumped
+ to '16' and so packages that provide graphics devices should
+ be reinstalled.
+
+ * The 'grDevices' and 'grid' packages have new functions for
+ rendering typeset glyphs, primarily:
+ 'grDevices::glyphInfo()' and 'grid::grid.glyph()'.
+
+ Rendering of typeset glyphs is only supported so far on the
+ Cairo-based graphics devices and on the 'pdf()' and
+ 'quartz()' devices.
+
+ * The defined behaviour for '"clear"' and '"source"'
+ compositing operators (via 'grid::grid.group()') has been
+ changed (to align better with simple interpretation of
+ original Porter-Duff definitions).
+
+ * Support for gradients, patterns, clipping paths, masks,
+ groups, compositing operators, and affine transformations
+ has been added to the 'quartz()' device.
+
+ INSTALLATION on a UNIX-ALIKE:
+
+ * A system installation of generic LAPACK 3.10.0 or later will
+ be preferred to the version in the R sources.
+
+ 'configure' option '--with-lapack=no' (equivalently
+ '--without-lapack') forces compilation of the internal
+ LAPACK sources.
+
+ If '--with-lapack' is not specified, a system 'liblapack' is
+ looked for and used if it reports version 3.10.0 or later
+ and does not contain BLAS routines.
+
+ Packages using LAPACK will need to be reinstalled if this
+ changes to using an external library.
+
+ * On 'aarch64' Linux platforms using GCC, 'configure' now
+ defaults to '-fPIC' (instead of '-fpic'), as desired in
+ PR#18326.
+
+ * 'configure' now checks conversion of datetimes between
+ 'POSIXlt' and 'POSIXct' around year 2020. Failure (which
+ has been seen on platforms missing 'tzdata') is fatal.
+
+ * If 'configure' option '--with-valgrind-instrumentation' is
+ given value '1' or '2', option
+ '--with-system-valgrind-headers' is now the default and
+ ignored (with a warning). It is highly recommended that the
+ system headers are installed alongside 'valgrind': they are
+ part of its packaging on some Linux distributions and
+ packaged separately (e.g. in the 'valgrind-devel' RPM) on
+ others. 'configure' will give a warning if they are not
+ found.
+
+ The system headers will be required in a future release of R
+ to build with 'valgrind' instrumentation.
+
+ * 'libcurl' 8.x is now accepted by 'configure': despite a
+ change in major version number it changes neither API nor
+ ABI.
+
+ INSTALLATION on WINDOWS:
+
+ * The makefiles and installer scripts for Windows have been
+ tailored to 'Rtools43', an update of the 'Rtools42'
+ toolchain. It is based on 'gcc' 12 and newer versions of
+ MinGW-W64, binutils and libraries. At this time R-devel can
+ still be built using Rtools42 without changes, but when
+ R-devel is installed via the installer, it will by default
+ look for Rtools43.
+
+ * Old make targets 'rsync-extsoft' and 32-bit ones that are no
+ longer needed have been removed.
+
+ * Default builds (including for packages) no longer select
+ C99. Thus the C standard used is the default for the
+ compiler, which for the toolchain in 'Rtools43' is C17.
+ (This is consistent with Unix builds.)
+
+ PACKAGE INSTALLATION:
+
+ * The default C++ standard has been changed to C++17 where
+ available (which it is on all currently checked platforms):
+ if not C++14 or C++11 is used if available otherwise C++ is
+ not supported.
+
+ * 'USE_FC_LEN_T' is the default: this uses the correct
+ (compiler-dependent) prototypes for Fortran BLAS/LAPACK
+ routines called from C/C++, and requires adjustment of many
+ such calls - see 'Writing R Extensions' <c2><a7>6.6.1.
+
+ * There is initial support for C++23 as several compilers are
+ now supporting '-std=c++23' or '-std=c++2b' or similar. As
+ for C++20, there no additional 'configure' checks for C++23
+ features beyond a check that the compiler reports a
+ '__cplusplus' value greater than that in the C++20 standard.
+ C++ feature tests should be used.
+
+ * There is support for a package to indicate the version of
+ the C standard which should be used to compile it, and for
+ the installing user to specify this. In most cases R
+ defaults to the C compiler's default standard which is C17
+ (a `bug-fix' of C11) - earlier versions of R or compilers
+ may have defaulted to C99.
+
+ Current options are:
+
+ USE_C17 Use a standard that is at most C17. The intention
+ is to allow legacy packages to still be installed when
+ later C standards become the default, including packages
+ using new keywords as identifiers or with K&R-style
+ function declarations. This will use C17 if available,
+ falling back to C11.
+
+ USE_C90 Use the C90 (aka C89) standard. (As that standard
+ did not require compilers to identify that version, all
+ we can verify is that the compiler does not claim to be
+ using a later standard. It may accept C99 features -
+ for example 'clang' accepts // to make comments.)
+
+ USE_C99 Use the C99 standard. This should be rarely needed -
+ it avoids the few new features of C11/C17 which can be
+ useful if a package assumes them if C17 is specified and
+ they are not implemented.
+
+ USE_C23 Use C23 (or in future, later). Compiler/library
+ support for C23 is still being implemented, but LLVM
+ clang from 15.0.0 and the upcoming GCC 13 have quite
+ extensive support.
+
+ These can be specified as part of the 'SystemRequirements'
+ field in the package's 'DESCRIPTION' file or _viaoptions
+ '--use-C17' and so on of 'R CMD INSTALL' and 'R CMD SHLIB'.
+
+ For further details see "Writing R Extensions" <c2><a7>1.2.5.
+
+ * (Windows) A 'src/Makefile.ucrt' or 'src/Makefile.win' file
+ is now included after 'R_HOME/etcR_ARCH/Makeconf' and so no
+ longer needs to include that file itself. Installation of a
+ package with such a file now uses a site 'Makevars' file in
+ the same way as a package with a 'src/Makevars.win' file
+ would.
+
+ * 'configure' is now passed crucial variables such as 'CC' and
+ 'CFLAGS' in its environment, as many packages were not
+ setting them (as documented in 'Writing R Extensions' <c2><a7>1.2).
+
+ This has most effect where 'configure' is used to compile
+ parts of the package - most often by 'cmake' or 'libtool'
+ which obfuscate the actual compile commands used.
+
+ Also used for 'configure.win' and 'configure.ucrt' on
+ Windows.
+
+ FORTRAN FLAGS:
+
+ * The flag '-fno-optimize-sibling-calls' is no longer forced
+ for 'gfortran' 7 and later. It should no longer be needed
+ now using 'hidden' character-length arguments when calling
+ BLAS/LAPACK routines from C/C++ is the default even for
+ packages. (Unless perhaps packages call Fortran code from
+ C/C++ without using R's headers and without allowing for
+ these arguments.)
+
+ C-LEVEL FACILITIES:
+
+ * The deprecated S-compatibility macros 'DOUBLE_*' in
+ 'R_ext/Constants.h' (included by 'R.h') have been removed.
+
+ * The deprecated legacy typedefs of 'Sint' and 'Sfloat' in
+ header 'R.h' are no longer defined, and that header no
+ longer includes header 'limits.h' from C nor 'climits' from
+ C++.
+
+ * New macro 'CAD5R()' is provided in 'Rinternals.h' and used
+ in a few places in the R sources.
+
+ * ALTREP now supports 'VECSXP' vectors. Contributed by Gabor
+ Csardi in PR#17620.
+
+ * The 'Rcomplex' definition (in header 'R_ext/Complex.h') has
+ been extended to prevent possible mis-compilation when
+ interfacing with Fortran (PR#18430). The new definition
+ causes compiler warnings with static initializers such as
+ '{1, 2}', which can be changed to '{.r=1, .i=2}'.
+
+ Using the new definition from C++ depends on compiler
+ extensions supporting C features that have not been
+ incorporated into the C++ standards but are available in
+ 'g++' and 'clang++': this may result in C++ compiler
+ warnings but these have been worked around for recent
+ versions of common compilers (GCC, Apple/LLVM clang, Intel).
+
+ It is intended to change the inclusion of header
+ 'R_ext/Complex.h' by other R headers, so C/C++ code files
+ which make use of 'Rcomplex' should include that header
+ explicitly.
+
+ UTILITIES:
+
+ * 'R CMD check' does more checking of package '.Rd' files,
+ warning about invalid email addresses and (some) invalid
+ URIs and noting empty '\item' labels in description lists.
+
+ * 'R CMD check' now also reports problems when reading package
+ news in md (file 'NEWS.md') and (optionally) plain text
+ (file 'NEWS') formats.
+
+ * '_R_CHECK_TIMINGS_' defaults to a value from the environment
+ even for 'R CMD check --as-cran'; this allows for
+ exceptionally fast or slow platforms.
+
+ It now applies to checking PDF and HTML versions of the
+ manuals, and 'checking CRAN incoming feasibility'.
+
+ * 'R CMD check' can optionally (but included in '--as-cran')
+ check whether HTML math rendering _viaKaTeX works for the
+ package '.Rd' files.
+
+ * Non-interactive debugger invocations can be trapped by
+ setting the environment variable
+ '_R_CHECK_BROWSER_NONINTERACTIVE_' to a true value. This is
+ enabled by 'R CMD check --as-cran' to detect the use of
+ leftover 'browser()' statements in the package.
+
+ * The use of 'sprintf' and 'vsprintf' from C/C++ has been
+ deprecated in macOS 13 and is a known security risk. 'R CMD
+ check' now reports (on all platforms) if their use is found
+ in compiled code: replace by 'snprintf' or 'vsnprintf'
+ respectively. [*NB:* whether such calls get compiled into
+ the package is platform-dependent.]
+
+ * Where recorded at installation, 'R CMD check' reports the C
+ and Fortran compilers used to build R.
+
+ It reports the OS in use (if known, as given by 'osVersion')
+ as well as that R was built for.
+
+ It notes if a C++ standard was specified which is older than
+ the current default: many packages have used C++11 to mean
+ 'not C++98' - as C++11 is the minimum supported since R
+ 4.0.0, that specification can probably be removed.
+
+ * 'R CMD INSTALL' reports the compilers (and on macOS, the
+ SDK) used, and this is copied to the output of 'R CMD
+ check'.
+
+ Where a C++ standard is specified, it is reported.
+
+ * 'R CMD check''s 'checking compilation flags in Makevars' has
+ been relaxed to accept the use of flags such as '-std=f2008'
+ in 'PKG_FFLAGS'.
+
+ * 'tools::buildVignettes()' has a new argument 'skip', which
+ is used by 'R CMD check' to skip (and note) vignettes with
+ unavailable '\VignetteDepends' (PR#18318).
+
+ * New generic '.AtNames()' added to enable class-specific
+ completions after '@'. The formerly internal function
+ 'findMatches()' is now exported, mainly for use in methods
+ for '.DollarNames()' and '.AtNames()'.
+
+ DEPRECATED AND DEFUNCT:
+
+ * 'default.stringsAsFactors()' is defunct.
+
+ * Calling 'as.data.frame.<class>()' directly (for 12 atomic
+ classes) is going to be formally deprecated, currently
+ activated by setting the environment variable
+ '_R_CHECK_AS_DATA_FRAME_EXPLICIT_METHOD_' to non-empty,
+ which also happens in 'R CMD check --as-cran'.
+
+ BUG FIXES:
+
+ * Hashed 'environment's with sizes less than 5 can now grow.
+ (Reported to R-devel by Duncan Garmonsway.)
+
+ * 'as.character(<Rd>, deparse = TRUE)' failed to re-escape
+ curly braces in LaTeX-like text. (Reported by Hadley
+ Wickham in PR#18324.)
+
+ * 'library()' now passes its 'lib.loc' argument when requiring
+ 'Depends' packages; reported (with fix) in PR#18331 by
+ Mikael Jagan.
+
+ * 'R CMD Stangle': improved message about 'Output' files.
+
+ * 'head(x, n)' and 'tail(x, n)' now signal an error if 'n' is
+ not numeric, instead of incidentally "working" sometimes
+ returning all of 'x'. Reported and discussed by Colin Fay,
+ in PR#18357.
+
+ * The '"lm"' method for 'summary()' now gives the correct
+ F-statistic when the model contains an offset. Reported in
+ PR#18008.
+
+ * 'C()' and '`contrasts<-`()' now preserve factor level names
+ when given a function object (as opposed a function name
+ which did preserve names). Reported in PR#17616.
+
+ * 'c(a = 1, 2)[[]]' no longer matches '2' but rather signals a
+ _classederror. Reported and analysed by Davis Vaughan in
+ PR#18367, a duplicate of PR#18004, by Jan Meis et al. For
+ consistency, 'NULL[[]]' is also erroneous now. 'x[[]] <- v'
+ gives an error of the same class '"MissingSubscriptError"'.
+
+ * The 'relist()' function of 'utils' now supports 'NULL'
+ elements in the skeleton (PR#15854).
+
+ * 'ordered(levels = *)' (missing 'x') now works analogously to
+ 'factor(, ordered=TRUE)'; reported (with fix) by Achim
+ Zeileis in PR#18389.
+
+ * User-defined Rd macro definitions can now span multiple
+ lines, thanks to a patch from Duncan Murdoch. Previously,
+ the Rd parser silently ignored everything after the first
+ line.
+
+ * Plain-text help ('tools::Rd2txt()') now preserves an initial
+ blank line for text following description list items.
+
+ * 'tools::Rd2HTML()' and 'tools::Rd2latex()' no longer split
+ \arguments and \value lists at Rd comments.
+
+ * 'tools::Rd2latex()' now correctly handles optional text
+ outside \items of argument lists as well as bracketed text
+ at the beginning of sections, e.g., \value{[NULL]}.
+
+ * 'as.character(<POSIXt>)' now behaves more in line with the
+ methods for atomic vectors such as numbers, and is no longer
+ influenced by 'options()'. Ditto for
+ 'as.character(<Date>)'. The 'as.character()' method gets
+ arguments 'digits' and 'OutDec' with defaults _not_
+ depending on 'options()'. Use of 'as.character(*, format =
+ .)' now warns.
+
+ * Similarly, the 'as.character.hexmode()' and '*.octmode()'
+ methods also behave as 'good citizen' methods and back
+ compatibility option 'keepStr = TRUE'.
+
+ * The 'as.POSIXlt(<POSIXlt>)' and 'as.POSIXct(<POSIXct>)'
+ default methods now do obey their 'tz' argument, also in
+ this case.
+
+ * 'as.POSIXlt(<Date>)' now does apply a 'tz' (time zone)
+ argument, as does 'as.POSIXct()'; partly suggested by Roland
+ Fu<c3><9f> on the R-devel mailing list.
+
+ * 'as.Date.POSIXlt(x)' now also works when the list components
+ are of unequal length, aka "partially filled" or "ragged".
+
+ * 'expand.model.frame()' looked up variables in the wrong
+ environment when applied to models fitted without 'data'.
+ Reported in PR#18414.
+
+ * 'time()' now (also) uses the 'ts.eps = getOption("ts.eps")'
+ argument and thus by default rounds values very close to the
+ start (or end) of a year. Based on a proposal by Andre<c3><af> V.
+ Kostyrka on R-help.
+
+ * Printing of a 'factanal()' result with just one factor and
+ 'sort = TRUE' now works regularly, fixing PR#17863 by
+ Timothy Bates, thanks to the 'R Contributors' working group.
+
+ * Printing 0-length objects of class '"factor"', '"roman"',
+ '"hexmode"', '"octmode"', '"person"', '"bibentry"', or
+ '"citation"' now prints something better, one of which fixes
+ PR#18422, reported by Benjamin Feakins.
+
+ * 'Sys.timezone()' queries 'timedatectl' only if 'systemd' is
+ loaded; addressing a report by Jan Gorecki in PR#17421.
+
+ * The formula method of 'cor.test()' had scoping problems when
+ 'environment(formula)' was not the calling environment;
+ reported with a patch proposal by Mao Kobayashi in PR#18439.
+
+ * 'attach()' of an environment with active bindings now
+ preserves the active bindings. Reported by Kevin Ushey in
+ PR#18425.
+
+ * BLAS detection now works also with system-provided libraries
+ not available as regular files. This fixes detection of the
+ Accelerate framework on macOS since Big Sur. Reported by
+ David Novgorodsky.
+
+ * 'download.file()' gives a helpful error message in case of
+ an invalid 'download.file.method' option, thanks to Colin
+ Fay's report in PR#18455.
+
+ * Sporadic crashes of 'Rterm' when using completion have been
+ fixed.
+
+ * 'Rprof()' is now more reliable. A livelock in thread
+ initialization with too short sampling interval has been
+ fixed on macOS. A deadlock in using the C runtime has been
+ fixed on Windows. A potential deadlock has been prevented
+ on Unix.
+
+ * Cursor placement in 'Rgui' now works even after a
+ fixed-width font is selected.
+
+ * Mandatory options ('options()') are now set on startup so
+ that saving and restoring them always works (PR#18372).
+
+ * Package installation, 'R CMD INSTALL' or
+ 'install.packages(*)', now parses each of the '<pkg>/R/*.R'
+ files individually instead of first concatenating and then
+ 'parse()'ing the large resulting file. This allows parser
+ or syntax errors to be diagnosed with correct file names and
+ line numbers, thanks to Simon Dedman's report and Bill
+ Dunlap's patch in PR#17859.
+
+ This _doesrequire syntactically self contained R source
+ files now, fixing another inadvertent bug.
+
+ * 'predict.lm(<model with offset>)' now finds the offset in
+ the correct environment, thanks to Andr<c3><a9> Gillibert's report
+ and patch in PR#18456.
+
+ * 'getInitial(<formula>)' now finds the 'selfStart' model in
+ the correct environment. (Reported by Ivan Krylov in
+ PR#18368.)
+
+ * Fix for possible segfault when using recently-added graphics
+ features, such as gradients, clipping paths, masks, and
+ groups with 'pdf(file=NULL)'.
+
+ * 'class(m) <- class(m)' no longer changes a matrix 'm' by
+ adding a class _attribute_.
+
+ * 'packageDate(pkg)' now only warns once if there is no 'pkg'.
+
+ * When 'ts()' creates a multivariate time series, '"mts"', it
+ also inherits from '"array"' now, and 'is.mts()' is
+ documented _andstricter.
+
+ * 'Rd2txt()' now preserves line breaks of \verb Rd content and
+ from duplicated \cr. The former also fixes the rendering of
+ verbatim output from Rd \Sexpr in plain-text help.
+
+ * 'uniroot(f, interval)' should no longer wrongly converge
+ _outsidethe interval in some cases where 'abs(f(x)) ==
+ Inf' for an 'x' at the interval boundary, thanks to posts by
+ Ben Bolker and Serguei Sokol on R-devel.
+
+ * Vectorized alpha handling in palette functions such as in
+ 'gray()', 'rainbow()', or 'hcl.colors()' works correctly
+ now, thanks to Achim Zeileis' report and patch in PR#18476.
+
+ * Formatting and 'print()'ing of 'bibentry' objects has
+ dropped the deprecated 'citation.bibtex.max' argument, such
+ that the 'bibtex' argument's default for 'print.bibentry()'
+ depends directly on the 'citation.bibtex.max' option,
+ whereas in 'format.bibentry()' the option no longer applies.
+
+ * Attempting to use a character string naming a foreign
+ function entry point in a foreign function call in a package
+ will now signal an error if the packages has called
+ 'R_forceSymbols' to specify that symbols must be used.
+
+ * An error in 'table()' could permanently set
+ 'options(warn=2)' promoting all subsequent warnings to
+ errors.
+
+ * The 'sigma()' function gave misleading results for binary
+ GLMs. A new method for objects of class '"glm"' returns the
+ square root of the estimate of the dispersion parameter
+ using the same calculation as 'summary.glm()'.
+
+ * 'bs()' and 'ns()' in the (typical) case of automatic knot
+ construction, when some of the supposedly inner knots
+ coincide with boundary knots, now moves them inside (with a
+ warning), building on PR#18442 by Ben Bolker.
+
+ * 'R CMD' on Windows now skips the site profile with
+ '--no-site-file' and '--vanilla' even when 'R_PROFILE' is
+ set (PR#18512, from Kevin Ushey).
+
Home |
Main Index |
Thread Index |
Old Index