CHANGES IN R 3.4.3

INSTALLATION on a UNIX-ALIKE

  • A workaround has been added for the changes in location of time-zone files in macOS 10.13 ‘High Sierra’ and again in 10.13.1, so the default time zone is deduced correctly from the system setting when R is configured with –with-internal-tzcode (the default on macOS).

  • R CMD javareconf has been updated to recognize the use of a Java 9 SDK on macOS.

BUG FIXES

  • raw(0) & raw(0) and raw(0) | raw(0) again return raw(0) (rather than logical(0)).

  • intToUtf8() converts integers corresponding to surrogate code points to NA rather than invalid UTF-8, as well as values larger than the current Unicode maximum of 0x10FFFF. (This aligns with the current RFC3629.)

  • Fix calling of methods on S4 generics that dispatch on ... when the call contains ....

  • Following Unicode ‘Corrigendum 9’, the UTF-8 representations of U+FFFE and U+FFFF are now regarded as valid by utf8ToInt().

  • range(c(TRUE, NA), finite = TRUE) and similar no longer return NA. (Reported by Lukas Stadler.)

  • The self starting function attr(SSlogis, "initial") now also works when the y values have exact minimum zero and is slightly changed in general, behaving symmetrically in the y range.

  • The printing of named raw vectors is now formatted nicely as for other such atomic vectors, thanks to Lukas Stadler.

CHANGES IN R 3.4.2

NEW FEATURES

  • Setting the LC_ALL category in Sys.setlocale() invalidates any cached locale-specific day/month names and the AM/PM indicator for strptime() (as setting LC_TIME has since R 3.1.0).

  • The version of LAPACK included in the sources has been updated to 3.7.1, a bug-fix release.

  • The default for tools::write_PACKAGES(rds_compress=) has been changed to "xz" to match the compression used by CRAN.

  • c() and unlist() are now more efficient in constructing the names(.) of their return value, thanks to a proposal by Suharto Anggono. (PR#17284)

UTILITIES

  • R CMD check checks for and R CMD build corrects CRLF line endings in shell scripts configure and cleanup (even on Windows).

INSTALLATION on a UNIX-ALIKE

  • The order of selection of OpenMP flags has been changed: Oracle Developer Studio 12.5 accepts -fopenmp and -xopenmp but only the latter enables OpenMP so it is now tried first.

BUG FIXES

  • within(List, rm(x1, x2)) works correctly again, including when List[["x2"]] is NULL.

  • regexec(pattern, text, *) now applies as.character(.) to its first two arguments, as documented.

  • write.table() and related functions, writeLines(), and perhaps other functions writing text to connections did not signal errors when the writes failed, e.g. due to a disk being full. Errors will now be signalled if detected during the write, warnings if detected when the connection is closed. (PR#17243)

  • rt() assumed the ncp parameter was a scalar. (PR#17306)

  • menu(choices) with more than 10 choices which easily fit into one getOption("width")-line no longer erroneously repeats choices. (PR#17312)

  • length()<- on a pairlist succeeds. (https://stat.ethz.ch/pipermail/r-devel/2017-July/074680.html)

  • Language objects such as quote(("\\n")) or R functions are correctly printed again, where R 3.4.1 accidentally duplicated the backslashes.

  • Construction of names() for very large objects in c() and unlist() now works, thanks to Suharto Anggono’s patch proposals in PR#17292.

  • Resource leaks (and similar) reported by Steve Grubb fixed. (PR#17314, PR#17316, PR#17317, PR#17318, PR#17319, PR#17320)

  • model.matrix(~1, mf) now gets the row names from mf also when they differ from 1:nrow(mf), fixing PR#14992 thanks to the suggestion by Sebastian Meyer.

  • sigma(fm) now takes the correct denominator degrees of freedom for a fitted model with NA coefficients. (PR#17313)

  • hist(x, "FD") no longer “dies” with a somewhat cryptic error message when x has extreme outliers or IQR() zero: nclass.FD(x) tries harder to find a robust bin width \(h\) in the latter case, and hist.default(*, breaks) now checks and corrects a too large breaks number. (PR#17274)

  • callNextMethod() works for ... methods.

  • qr.coef(qd, y) now has correct names also when qd is a complex QR or stems from qr(*, LAPACK=TRUE).

  • Setting options(device = *) to an invalid function no longer segfaults when plotting is initiated. (PR#15883)

  • encodeString(<very large string>) no longer segfaults. (PR#15885)

  • It is again possible to use configure –enable-maintainer-mode without having installed notangle (it was required in R 3.4.\[01\]).

  • S4 method dispatch on ... calls the method by name instead of .Method (for consistency with default dispatch), and only attempts to pass non-missing arguments from the generic.

  • readRDS(textConnection(.)) works again. (PR#17325)

  • (1:n)[-n] no longer segfaults for n <- 2.2e9 (on a platform with enough RAM).

  • x <- 1:2; tapply(x, list(x, x), function(x) "")[1,2] now correctly returns NA. (PR#17333)

  • Running of finalizers after explicit GC request moved from the R interface do_gc to the C interface R_gc. This helps with reclaiming inaccessible connections.

  • help.search(topic) and ??topic matching topics in vignettes with multiple file name extensions (e.g., *.md.rsp but not *.Rmd) failed with an error when using options(help_type = "html").

  • The X11 device no longer uses the Xlib backing store (PR#16497).

  • array(character(), 1) now gives (a 1D array with) NA as has been documented for a long time as in the other cases of zero-length array initialization and also compatibly with matrix(character(), *). As mentioned there, this also fixes PR#17333.

  • splineDesign(.., derivs = 4) no longer segfaults.

  • fisher.test(*, hybrid=TRUE) now (again) will use the hybrid method when Cochran’s conditions are met, fixing PR#16654.