This blog is updated daily..
A general description is here.
The defaults for some of the options in ‘R CMD check’ (described in the ‘R Internals’ manual) have changed: the checks for unsafe and ‘.Internal()’ calls and for partial matching of arguments in R function calls are now done by default.
‘R CMD check’ now reports by default on licenses not according to the description in ‘Writing R Extensions’.
Printing of arrays did not have enough protection (C level), e.g., in the context of ‘capture.output()’. (Reported by Hervé Pagès and Martin Morgan.)
str(*, ....., strict.width="cut") now also obeys ‘list.len = n’. (Reported by Sören Vogel.)
‘NROW(x)’ and ‘NCOL(x)’ now work whenever ‘dim(x)’ looks appropriate, e.g., also for moregeneralized matrices.
The included version of zlib has been updated to 1.2.6.
str(*, ....., strict.width="cut") now also obeys ‘list.len = n’ (Reported by Sören Vogel.)
‘R CMD check’ now warns (rather than notes) on undeclared use of other packages in examples and tests: increasingly people are using the metadata in the ‘DESCRIPTION’ file to compute information about packages, for example reverse dependencies.
str(*, ....., strict.width="cut") now also obeys 'list.len = n' (Reported by Sören Vogel.)
The installer has many fewer options with more files always being installed, as file space is nowadays no longer an issue.
It is now possible to select ‘64-bit Files’ from the standard installer even on a 32-bit version of Windows.
‘R CMD check’ now warns (rather than notes) on undeclared use of other packages: increasingly people are using the metadata in the ‘DESCRIPTION’ file to compute information about packages, for example reverse dependencies.
For consistency, circles with zero radius are omitted by ‘points’ and ‘grid.circle()’. Previously this was device-dependent, but they were usually invisible.
‘makePSOCKCluster()’ has a new option ‘useXDR = FALSE’ which can be used to avoid byte-shuffling for serialization when all the nodes are known to little-endian (or all big-endian).
‘makeForkCluster()’ and the multicore-based functions all use native byte order for serialization.
The internal (un)serialization code is faster for long vectors, particularly with XDR on some platforms. (Based on a suggested patch by Michael Spiegel.)
PCRE has been upgraded to version 8.21: as well as bug fixes and greater Perl compatibility, this adds a JIT pattern compiler, about which PCRE's news says ‘large performance benefits can be had in many situations’. This is supported on most but not all R platforms.
Function ‘compactPDF()’ in package ‘tools’ now takes the default for argument ‘gs_quality’ from environment variable ‘GS_QUALITY’: there is a new value ‘"none"’, the ultimate default, which prevents GhostScript being used in preference to ‘qpdf’ just because environment variable ‘R_GSCMD’ is set. If ‘R_GSCMD’ is unset or set to ‘""’, the function will try to find a suitable GhostScript executable.
Function ‘compactPDF()’ in package ‘tools’ now takes the default for
argument ‘gs_quality’ from environment variable ‘GS_QUALITY’: there is
a new value ‘"none"’, the ultimate default, which prevents GhostScript
being used in preference to ‘qpdf’ just because environment variable
‘R_GSCMD’ is set.
Function ‘compactPDF()’ in package ‘tools’ now takes the default for argument ‘gs_quality’ from environment variable ‘GS_QUALITY’: there is a new value ‘"none"’, the ultimate default, which prevents GhostScript being used in preference to ‘qpdf’ just because environment variable ‘R_GSCMD’ is set.
Using a prompt of more than 80 characters in ‘readline()’ could cause a buffer overflow in Rterm. (Reported by Henrik Bengtsson.)
The supported toolchain has changed since the one used for R 2.12.0 to
2.14.x: see the‘R Installation and Administration manual’. Compiled
code (except DLLs) may be incompatible with previous toolchains (and
compiled C++ code almost certainly will be).
This is a ‘multilib’ toolchain: there is a single set of tools in the ‘bin’ directory and which sub-architecture is selected by a flag: in most cases ‘-m32’ _vs_ ‘-m64’.
There is a new macro (aka make variable) ‘SHLIB_PTHREAD_FLAGS’. This
is set to ‘-pthread’ on builds which support it, and should be included
in both ‘PKG_CPPFLAGS’ (or the Fortran or F9x equivalents) and
‘PKG_LIBS’.
As the current toolchain uses only 32-bit executables, it is possible to compile a package for both architectures on 32-bit Windows provided both architectures of R have been installed: use ‘R CMD INSTALL --compile-both’.
Using a prompt of more than 80 characters in ‘readline()’ could cause a
buffer overflow in Rterm. (Reported by Henrik Bengtsson.)
The preferred toolchain has changed since the one used for R 2.12.0 to 2.14.1: see the‘R Installation and Administration manual’. Compiled code (except DLLs) may be incompatible with previous toolchains (and compiled C++ code almost certainly will be: users of ‘Rcpp’ take care).
Ensure that the settings in ‘MkRules.local’ are appropriate to the toolchain you use.
There is a new macro (aka make variable) ‘SHLIB_PTHREAD_FLAGS’. This is set to ‘-pthread’ on builds using toolchains which support it, and should be included in both ‘PKG_CPPFLAGS’ (or the Fortran or F9x equivalents) and ‘PKG_LIBS’.
The sources (and packages) can now be compiled using the multilib toolchain developed for R 2.15.x: see the ‘MULTI’ macro in ‘MkRules.dist’. This toolchain is used for the CRAN binary distribution.
‘merge()’ is no longer allowed to create a data frame with duplicate column names (which confused PR#14786).
The internal ‘untar()’ (as used by default by ‘R CMD INSTALL’) now knows about some ‘pax’ headers which ‘bsdtar’ (e.g., the default ‘tar’ for Mac OS >= 10.6) can incorrectly include in ‘tar’ files, and will skip them with a warning.
PCRE has been upgraded to version 8.21: as well as bug fixes and greater Perl compatibility, this adds a JIT pattern compiler, about which PCRE's news says ‘large performance benefits can be had in many situations’.
PCRE has been upgraded to version 8.20 with bug fixes and greater Perl
compatibility. This adds a JIT pattern compiler, about which PCRE's
news says ‘large performance benefits can be had in many situations’.
(It is supported on most but not all platforms that run R.)
The internal ‘untar()’ (as used by default by ‘R CMD INSTALL’) now
knows about some ‘pax’ headers which ‘bsdtar’ (e.g., the default ‘tar’
for Mac OS >= 10.6) can incorrectly include in ‘tar’ files, and will
skip them with a warning.
‘serialize()’ has a new option ‘xdr = FALSE’ which will use the native byte-order for binary serializations. In scenarios where only little-endian machines are involved (these days, close to universal) and (un)serialization takes an appreciable amount of time this may speed up noticeably transferring data between systems.
The namespace import code was warning when identical S4 generic functions were imported more than once, but should not (reported by Brian Ripley, then Martin Morgan).
The internal ‘untar()’ (as used by default by ‘R CMD INSTALL’) now knows about some ‘pax’ headers which ‘bsdtar’ (e.g., the default ‘tar’ for Mac OS >= 10.6) can incorrectly include in ‘tar’ files, and will skip them with a warning.
PCRE has been upgraded to version 8.21: as well as bug fixes and greater Perl compatibility, this adds a JIT pattern compiler, about which PCRE's news says ‘large performance benefits can be had in many situations’.
It is now possible to select ‘Add 64-bit components’ from the standard installer (and to select the 64-bit components for a custom install) even on a 32-bit version of Windows.
The sources (and packages) can now be compiled using the multilib toolchain recommended for R 2.15.x: see the ‘MULTI’ macro in ‘MkRules.dist’.
For consistency with the ‘logLik()’ method, ‘nobs()’ for ‘"nls"’ files now excludes observations with zero weight. (Reported by Berwin Turlach.)
‘setGeneric()’ calls can be simplified when creating a new generic function by supplying the default method as the ‘def’ argument. See ‘?setGeneric’.
‘R CMD INSTALL’ will now no longer install certain file types from ‘inst/doc’: these are almost certainly mistakes and for some packages are wasting a lot of space. These are ‘Makefile’, files generated by running LaTeX, and unless the package uses a ‘vignettes’ directory, PostScript and image bitmap files.
Note that only PDF vignettes have ever been supported: some of these files come from DVI/PS output from the Sweave defaults prior to R 2.13.0.
‘R CMD check’ now gives a warning rather than a note if it finds inefficiently compressed datasets. With ‘bzip2’ and ‘xz’ compression having been available since R 2.10.0, it only exceptionally makes sense to not use them.
The environment variable ‘_R_CHECK_COMPACT_DATA2_’ is no longer consulted: the check is always done if ‘_R_CHECK_COMPACT_DATA_’ has a true value (its default).
‘R CMD build’ has more options for ‘--compact-vignettes’: see ‘R CMD build --help’.
The ‘exportMethods’ directive now exports S4 generics as necessary, as the extensions manual said it does. The manual has also been updated to be a little more informative on this point.
Forgetting the ‘#endif’ tag in an Rd file could cause the parser to go into a loop. (Reported by Hans-Jorg Bibiko.)
The fix for PR#14543 caused stack problems with outputting large R objects (e.g. data frames of 25,000 items). (PR#14698)
The internal ‘untar()’ (as used by default by ‘R CMD INSTALL’) now knows about some ‘pax’ headers which ‘bsdtar’ (e.g., the default ‘tar’ for Mac OS >= 10.6) can incorrectly include in ‘tar’ files, and will skip them with a warning.
The behaviour of ‘unlink(recursive = TRUE)’ for a symbolic link to a directory has changed: it now removes the link rather than the directory contents (as ‘rm -r’ does).
On Windows it no longer follows reparse points (including junctions and symbolic links).
‘R CMD check’ now gives a warning rather than a note if it finds inefficiently compressed datasets. With ‘bzip2’ and ‘xz’ compression having been available since R 2.10.0, it only exceptionally makes sense to not use them.
‘vector(len)’ and ‘length(x) <- len’ no longer accept ‘TRUE’/‘FALSE’ for ‘len’ (not that they were ever documented to, but there was special-casing in the C code).
There is a new type ‘X11(type = "dbcairo")’ which updates the screen less frequently: see its help page.
The internal (C) function ‘scientific()’, at the heart of R's ‘format.info(x)’, ‘format(x)’, ‘print(x)’, etc, for numeric ‘x’, has been re-written in order to provide slightly more correct results, fixing PR#14491, notably in border cases including when ‘digits >= 16’, thanks to substantial contributions (code and experiments) from Petr Savicky. This affects a noticeable amount of numeric output from R.
There is an additional marked encoding ‘"bytes"’ for character strings. This is intended to be used for non-ASCII strings which should be treated as a set of bytes, and never re-encoded as if they were in the encoding of the current locale: ‘useBytes = TRUE’ is automatically selected in functions such as ‘writeBin()’, ‘writeLines()’, ‘grep()’ and ‘strsplit()’.
Only a few character operations are supported (such as ‘substr()’).
Printing, ‘format()’ and ‘cat()’ will represent non-ASCII bytes in such strings by a ‘\xab’ escape.
Complex arithmetic (notably ‘z^n’ for complex ‘z’ and integer ‘n’) gave incorrect results since R 2.10.0 on platforms without C99 complex support. This and some lesser issues in trigonometric functions have been corrected.
Such platforms were rare (we know of Cygwin and FreeBSD). However, because of new compiler optimizations in the way complex arguments are handled, the same code was selected on x86_64 Linux with ‘gcc 4.5.x’ at the default ‘-O2’ optimization (but not at ‘-O’).
‘do.call()’ing ‘NextMethod’ in erroneous ways no longer segfaults. (PR#13487)
A port to 64-bit Windows is now available as well as binary package repositories: see the ‘R Administration and Installation Manual’.
Internal function ‘matchArgs()’ no longer modifies the general purpose bits of the ‘SEXP’s that make up the formals list of R functions. This fixes an invalid error message that would occur when a garbage collection triggered a second call to ‘matchArgs’ for the same function _via_ a finalizer.
‘qchisq(p, df, ncp, lower.tail = FALSE)’ with ‘ncp >= 80’ was inaccurate for small ‘p’ (as the help page said): it is now less inaccurate. (In part, PR#13999.)
For ‘ncp’ less than but close to 80, ‘pchisq()’ and ‘qchisq()’ are more accurate for probabilities very close to 1 (a series expansion was truncated slightly too early).
‘pchisq(x, df, ncp)’ can no longer return values just larger than one for large values of ‘ncp’.
Since the toolchain uses only 32-bit executables, it is possible to compile a package for both architectures on 32-bit Windows provided both architectures of R have been installed: use ‘R CMD INSTALL --compile-both’.
The text of a function body containing more than 4096 characters was not properly saved by the parser when entered at the console.
Negative values for ‘options("max.print")’ or the ‘max’ argument to ‘print.default()’ caused crashes. Now the former are ignored and the latter trigger an error. (PR#14779)
The text of function bodies containing more than 4096 characters were not properly saved by the parser when entered at the console.
The namespace import code was warning when identical generic functions were imported more than once, but should not (reported by Martin Morgan).
A couple of instances of lack of protection of ‘SEXP’s have been squashed. (PR#14772, PR#14773)
‘image(x, useRaster=TRUE)’ misbehaved on single-column ‘x’. (PR#14774)
Since the toolchain uses only 32-bit executables, it is possible to compile a package for both architectures on 32-bit Windows provide both architectures of R have been installed: use ‘R CMD INSTALL --compile-both’.
The ‘traceback()’ function can now be called with an integer argument, to display a current stack trace. (Wish of PR#14770.)
‘R CMD check’ could miss undocumented S4 objects in packages which used S4 classes but did not ‘Depends: methods’.
The HTML Help Search page had malformed links. (PR#14769)
There is a new function ‘Sys.junction()’ to create junction points on NTFS file systems.
The behaviour of ‘unlink()’ for reparse points (including junctions and symbolic links) has changed. It no longer follow links (deleting the contents of the link target rather than the link), and it is able to delete the link itself (given sufficient permissions).
The 32-bit and 64-bit builds are now treated equally, as it is anticipated that 64-bit R will soon be (if not already) the more commonly used. This entails:
The ‘Rterm’ or ‘Rgui’ title mentions 32-bit as well as 64-bit.
The desktop icons are labelled ‘R i386’ and ‘R x64’.
‘R CMD INSTALL’ for a package with compiled code will fail if compilation fails for any of the installed sub-architectures: use ‘--no-multiarch’ to override this.
‘file.symlink()’ is now implemented on NTFS file systems on Vista or later, for accounts which have suitable permissions (and most will not). It can link existing directories, and existing-or-not files.
Using a prompt of more than 80 characters in ‘readline()’ could cause a buffer overflow in Rterm. (Reported by Henrik Bengtsson.)
Function ‘compactPDF()’ in package ‘tools’ now takes the default for argument ‘gs_quality’ from environment variable ‘GS_QUALITY’: there is a new value ‘"none"’, the ultimate default, which prevents GhostScript being used in preference to ‘qpdf’ just because environment variable ‘R_GSCMD’ is set.
The internal ‘untar()’ (as used by default by ‘R CMD INSTALL’) now knows about some ‘pax’ headers which ‘bsdtar’ (e.g. the default ‘tar’ for Mac OS >= 10.6) can incorrectly include in ‘tar’ files, and will skip them with a warning.
The behaviour of ‘unlink(recursive = TRUE)’ for a symbolic link to a directory has changed: it now removes the link rather than the directory contents (as ‘rm -r’ does).
On Windows it no longer follows reparse points (includiing junctions and symbolic links).
The ‘exportMethods’ directive now exports generics as necessary, as the extensions manual said it does. The manual has also been updated to be a little more informative on this point.
Reference methods can not safely use non-exported entries in the namespace. We now do not do so, and warn in the documentation.
‘readLines()’ could overflow a buffer if the last line was not terminated. (PR#14766)
Several stack trampling and overflow issues have been fixed in TRE, triggered by ‘agrep’ and friends with long patterns. (PR#14627)
‘persp(box = TRUE)’ now warns if the surface extends outside the box (since occlusion for the box and axes is computed assuming the box is a bounding box). (PR#202)
The behaviour of ‘unlink(recursive = TRUE)’ for a symbolic link to a directory has changed: it now removes the link rather than the directory contents (as ‘rm -r’ does).
New simple ‘fitted()’ method for ‘"kmeans"’ objects.
new simple ‘fitted()’ method for ‘"kmeans"’ objects.
‘file.symlink()’ is now implemented on NTFS file systems on Vista or later, for accounts which have suitable permissions (and most will not).
There are new options for more rigorous testing by ‘R CMD check’ selected by environment variables - see the ‘Writing R Extensions’ manual.
‘R CMD check’ now gives a warning rather than a note if it finds inefficiently compressed datasets. With ‘bzip2’ and ‘xz’ compression having been available since R 2.10.0, it only expectionally makes sense to not use them.
Function ‘compactPDF()’ in package ‘tools’ now takes the default for argument ‘gs_quality’ from environment variable ‘GS_QUALITY’: there is a new value ‘"none"’, the ultimate default, which prevents GhostScript being used in preference to ‘qpdf’ even if environment variable ‘R_GSCMD’ is set.
Building with a positive value of ‘--with-valgrind-instrumentation’ now also instruments logical, complex and raw vectors.
‘tempfile()’ on a Unix-alike now takes the process ID into account. This is needed with ‘multicore’ (and as part of ‘parallel’) because the parent and all the children share a session temporary directory, and they can share the C random number stream used to produce the unique part. Further, two children can call ‘tempfile()’ simultaneously.
‘options(warn = 0)’ failed to end a (C-level) context with more than 50 accumulated warnings. (Spotted by Jeffrey Horner.)
Automatic printing for reference classes is now done by the ‘$show()’ method. A method is defined for class ‘envRefClass’ and may be overridden for user classes (see the ‘?ReferenceClasses’ example). S4 ‘show()’ methods should no longer be needed for reference classes.
The body of a closure can be one of further types of R objects, including environments and external pointers.
A dependency on SVN revision is allowed for ‘R’, e.g. ‘R (>= r56550)’. This should be used in conjunction with a version number, e.g. ‘R (>= 2.14.0), R (>= r56550)’ to distinguish between R-patched and R-devel versions with the same SVN revision.
‘pbirthday()’ and ‘qbirthday()’ did not implement the algorithm exactly as given in their reference and so were unnecessarily inaccurate.
‘pbirthday()’ now solves the approximate formula analytically rather than using ‘uniroot()’ on a discontinuous function.
The description of the problem was inaccurate: the probability is a tail probability (‘2 _or more_ people share a birthday’)
Rd conversion to latex mishandled multi-line titles (including cases where there was a blank line in the ‘\title’ section). (It seems this happened only in 2.13.0 patched.)
The 32-bit and 64-bit builds are now treated equally, as it is anticipated that 64-bit R will soon be (if not already) the more comonly used. This entails:
The ‘Rterm’ or ‘Rgui’ title mentions 32-bit as well as 64-bit.
The desktop icons are labelled ‘R i386’ and ‘R x64’.
‘R CMD INSTALL’ for a package with compiled code will fail if compilation fails for any of the installed sub-architectures: use ‘--no-multiarch’ to override this.
Optimization level ‘-O3’ is now used by default on 64-bit builds as
well as 32-bit ones.
‘parallel::detectCores()’ is now able to find the number of physical cores (rather than CPUs) on Sparc Solaris.
It can also do so on most versions of Windows; however the default remains ‘detectCores(logical = TRUE)’ on that platform.
Reference classes now keep a record of which fields are locked. ‘$lock()’ with no arguments returns the names of the locked fields.
‘HoltWinters()’ reports a warning rather than an error for some optimization failures (where the answer might be a reasonable one).
‘tools::dependsOnPkg()’ now accepts the shorthand ‘dependencies = "all"’.
‘parallel::clusterExport()’ now allows specification of an environment from which to export.
The ‘quartz()’ device now does tilde expansion on its ‘file’ argument.
‘tempfile()’ on a Unix-alike now takes the process ID into account. This is needed with ‘multicore’ (and as part of ‘parallel’) because the parent and all the children share a session temporary directory, and they can share the C random number stream used to produce the uniaue part. Further, two children can call ‘tempfile()’ simultaneously.
Option ‘print’ in Sweave's ‘RweaveLatex()’ driver now emulates auto-printing rather than printing (which can differ for an S4 object by calling ‘show()’ rather than ‘print()’).
‘filled.contour()’ now accepts infinite values: previously it might have generated invalid graphics files (e.g. containing NaN values).
On 64-bit Linux systems, ‘configure’ now only sets ‘LIBnn’ to ‘lib64’ if ‘/usr/lib64’ exists. This may obviate setting ‘LIBnn’ explicitly on Debian-derived systems.
It is still necessary to set ‘LIBnn = lib’ (or ‘lib32’) for 32-bit builds of R on a 64-bit OS on those Linux distributions capable for supporting that concept.
‘configure’ looks for ‘inconsolata.sty’, and if not found adjusts the default ‘R_RD4PDF’ to not use it (with a warning, since it is needed for high-quality rendering of manuals).
‘R CMD INSTALL’ will now do a test load for all sub-architectures for which code was compiled (rather than just the primary sub-architecture).
When checking examples under more than one sub-architecture, ‘R CMD check’ now uses a separate directory ‘examples_arch’ for each sub-architecture, and leaves the output in file ‘pkgname-Ex_arch.Rout’. Some packages expect their examples to be run in a clean directory ....
‘stack()’ now gives an error if no vector column is selected, rather than returning a 1-column data frame (contrary to its documentation).
‘summary.mlm()’ did not handle objects where the formula had been specified by an expression. (Reported by Helios de Rosario Martinez).
‘tools::deparseLatex(dropBraces=TRUE)’ could drop text as well as braces.
‘colormodel = "grey"’ (new in R 2.14.0)) did not always work in ‘postscript()’ and ‘pdf()’.
‘file.append()’ could return ‘TRUE’ for failures. (PR#14727)
‘gzcon()’ connections are no longer subject to garbage collection: it was possible for this to happen when unintended (e.g. when calling ‘load()’).
‘nobs()’ does not count zero-weight observations for ‘glm()’ fits, for consistency with ‘lm()’. This affects the ‘BIC()’ values reported for such ‘glm()’ fits. (Spotted by Bill Dunlap.)
‘options(warn = 0)’ failed to end a (C-level) context with more than 50 accumulated warnings. (Spotted by Jeffery Horner.)
The internal ‘plot.default()’ code did not do sanity checks on a ‘cex’ argument, so invalid input could cause problems. (Reported by Ben Bolker.)
‘anyDuplicated(<array>, MARGIN=0)’ no longer fails. (Reported by Hervé Pagès.)
‘read.dcf()’ removes trailing blanks: unfortunately on some platforms this included ‘\xa0’ (non-breaking space) which is the trailing byte of a UTF-8 character. It now only considers ASCII space and tab to be ‘blank’.
There was a sign error in part of the calculations for the variance returned by ‘KalmanSmooth()’. (PR#14738)
‘pbinom(10, 1e6, 0.01, log.p = TRUE)’ was ‘NaN’ thanks to the buggy fix to PR#14320 in R 2.11.0. (PR#14739)
‘RweaveLatex()’ now emulates auto-printing rather than printing, by calling ‘methods::show()’ when auto-printing would.
‘duplicated()’ ignored ‘fromLast’ for a one-column data frame. (PR#14742)
‘source()’ and related functions did not put the correct timestamp on the source references; ‘srcfilecopy()’ has gained a new argument ‘timestamp’ to support this fix. (PR#14750)
LaTeX conversion of Rd files did not correctly handle preformatted backslashes. (PR#14751)
HTML conversion of Rd files did not handle markup within tabular cells properly. (PR#14708)
‘source()’ on an empty file with ‘keep.source = TRUE’ tried to read from ‘stdin()’, in R 2.14.0 only. (PR#14753)
The code to check Rd files in packages would abort if duplicate description sections were present.
The ‘"dendrogram"’ method of ‘str()’ now takes its default for ‘last.str’ from option ‘str.dendrogram.last’.
R configured with ‘--disable-openmp’ would mistakenly set ‘HAVE_OPENMP’
(internal) and ‘SUPPORT_OPENMP’ (in ‘Rconfig.h’) even though no OpenMP
flags were populated.
R configured with ‘--disable-openmp’ would mistakenly set ‘HAVE_OPENMP’ (internal) and ‘SUPPORT_OPENMP’ (in ‘Rconfig.h’) even though no OpenMP flags were populated.
The ‘getS3method()’ implementation had a very old and incorrect computation to find an S4 default method.
The ‘Save as’ menu item on the script editor adds extension ‘.R’ to a file name without an extension.
In package ‘parallel’, ‘detectCores(logical = FALSE)’ makes an OS-dependent attempt to find the number of physical cores. It usually succeeds, even on XP.
The directory pointed to by ‘USER_LOCAL’ can now have architecture-specific sub-directories ‘lib/i386’ and ‘lib/x64’.
The fix for PR#14543 caused stack problems with outputing large R objects (e.g. data frames of 25,000 items). (PR#14698)
In a double-byte locale (Chinese, Japanese, Korean), ‘grep()’ and friends might have used byte-wise matching of strings in the native encoding. (PR#14622)
‘bitmap()’ and ‘dev2bitmap()’ look for ‘gswin64c.exe’ (as used by
64-bit GhostScript), in preference to ‘gswin32c.exe’.
‘bitmap()’ and ‘dev2bitmap()’ look for ‘gswin64c.exe’ (as used by 64-bit GhostScript), in preference to ‘gswin32c.exe’.
The internal ‘untar()’ (as used by default by ‘R CMD INSTALL’) now knows about some ‘pax’ headers which ‘bsdtar’ incorrectly includes in ‘tar’ files, and will skip them with a warning.
R configured with ‘--disable-openmp’ would mistakenly set ‘HAVE_OPENMP’ (internal) and ‘SUPPORT_OPENMP’ (in ‘Rconfig.h’) even though no OpenMP flags were populated.
There is a new macro (aka make variable) ‘SHLIB_PTHREAD_FLAGS’. This is set to ‘-pthread’ on builds which support it, and should be included in both ‘PKG_CPPFLAGS’ (or the Fortran or F9x equivalents) and ‘PKG_LIBS’.
Function ‘compactPDF()’ in package ‘tools’ now takes the default for argument ‘gs_quality’ from enironment variable ‘GS_QUALITY’: there is a new value ‘"none"’, the ultimate default, which prevents GhostScript being used in preference to ‘qpdf’ even if environment variable ‘R_GSCMD’ is set.
‘bxp()’, the work horse of ‘boxplot()’, now uses a more sensible default ‘xlim’ in the case where ‘at’ is specified differently from ‘1:n’, see the discussion on R-devel, <URL: https://stat.ethz.ch/pipermail/r-devel/2011-November/062586.html>.
Function ‘setClass()’ in package ‘methods’ now returns, invisibly, a generator function for the new class, slightly preferred to calling ‘new()’, as explained on the ‘setClass’ help page.
The supported toolchain has changed since the one used for R 2.12.0 to 2.14.x: see the‘R Installation and Administration manual’. Compiled code (except DLLs) may be incompatible with previous toolchains (and compiled C++ code almost certainly will be).
This is a ‘multilib’ toolchain: there is a single set of tools in the ‘bin’ directory and which sub-architecture is selected by a flag: in most cases ‘-m32’ _vs_ ‘-m64’.
Optimization level ‘-O3’ is now used by default on 64-bit builds as well as 32-bit ones.
The supported toolchain has changed since the one used for R 2.12.0 to 2.14.x: see the‘R Installation and Administration manual’. Compiled code (except DLLs) may be incompatible with previous toolchains (and compiled C++ code almost certainly will be).
The code to check Rd files in packages would abort if duplicate description sections were present.
‘bitmap()’ and ‘dev2bitmap()’ look for ‘gswin64c.exe’ (as used by 64-bit GhostScript), in preference to ‘gswin32c.exe’.
There is a new option ‘install.packages(type = "both")’ which tries source packages if binary packages are not available, on those platforms where the latter is the default.
The meaning of ‘install.packages(dependencies = TRUE)’ has changed: it now means to install the essential dependencies of the named packages plus the ‘Suggests’, but only the essential dependencies of dependencies. To get the previous behaviour, specify ‘dependencies’ as a character vector.
‘R CMD check’ can optionally report timings on various parts of the check: this is controlled by environment variable ‘_R_CHECK_TIMINGS_’ documented in ‘Writing R Extensions’. Timings (in the style of ‘R CMD BATCH’ are given at the foot of the output file from running each test and the R code in each vignette.
The convention for ‘x %/% 0L’ for integer-mode ‘x’ has been changed from ‘0L’ to ‘NA_integer_’. (PR#14754)
‘R CMD check’ can optionally report timings on various parts of the check: this is controlled by environment variables documented in ‘Writing R Extensions’.
‘source()’ on an empty file with ‘keep.source = TRUE’ tried to read from ‘stdin()’, in R 2.14.0 only. (PR#14753)
LaTeX conversion of Rd files did not correctly handle preformatted backslashes. (PR#14751)
HTML conversion of Rd files did not handle markup within tabular cells properly. (PR#14708)
Function ‘setClass()’ now returns, invisibly, a generator function for the new class, slightly preferred to calling ‘new()’, as explained in the ‘?setClass’ documentation.
‘source()’ and related functions did not put the correct timestamp on the source references; ‘srcfilecopy()’ has gained a new argument ‘timestamp’ to support this fix. (PR#14750)
There is experimental support for _link-time optimization_ with ‘gcc’ 4.5.0 or later on platforms which support it.
‘duplicated()’ ignored ‘fromLast’ for a one-column data frame. (PR#14742)
new function ‘paste0()’, an efficient version of ‘paste(*, sep="")’, to be used in many places for more concise (and slightly more efficient) code.
‘bxp()’, the work horse of ‘boxplot()’, now uses a more sensible default ‘xlim’ in the case where ‘at’ is specified differently from ‘1:n’, see the dialogue on R-devel, <URL: https://stat.ethz.ch/pipermail/r-devel/2011-November/062586.html>.
‘filled.contour()’ now accepts infinite values: previously it might have generated invalid graphics files (e.g. containing NaN values).
Option ‘print’ in Sweave's ‘RweaveLatex()’ driver now emulates auto-printing rather than printing (which can differ for an S4 object by calling ‘show()’ rather than ‘print()’).
‘RweaveLatex()’ now emulates auto-printing rather than printing, by calling ‘methods::show()’ when auto-printing would.
‘pbinom(10, 1e6, 0.01, log.p = TRUE)’ was ‘NaN’ thanks to the buggy fix to PR#14320 in R 2.11.0. (PR#14739)
There was a sign error in part of the calculations for the variance returned by ‘KalmanSmooth()’. (PR#14738)
The ‘"source"’ attribute on functions created with ‘keep.source=TRUE’ has been replaced with a ‘"srcref"’ attribute. The ‘"srcref"’ attribute references an in-memory copy of the source file using the ‘"srcfilecopy"’ class or the new ‘"srcfilealias"’ class.
*NB:* This means that functions sourced with ‘keep.source = TRUE’ and saved (e.g., by ‘save()’ or ‘readRDS()’) in earlier versions of R will no longer show the original sources (including comments).
‘tempfile()’ on a Unix-alike now takes the process ID into account. This is needed with ‘multicore’ (and as part of ‘parallel’) because the parent and all the children share a session temporary directory, and they can share the C random number stream used to produce the uniaue part. Further, two children can call ‘tempfile()’ simultaneously.
‘attach()’ allows the default name for an attached file to be overridden.
There was sign error in part of the calculations for the variance returned by ‘KalmanSmooth()’. (PR#14738)
PCRE has been upgraded to version 8.20 with bug fixes and greater Perl compatibility. This adds a JIT pattern compiler, about which PCRE's news says ‘large performance benefits can be had in many situations’. (It is supported on most but not all platforms that run R.)
‘summary()’ behaves slightly differently (or more precisely, its ‘print()’ method does). For numeric inputs, the number of NAs is printed as an integer and not a real. For dates and datetimes, the number of NAs is included in the printed output (the latter being the wish of PR#14720).
The ‘"data.frame"’ method is more consistent with the default method: in particular it now applies ‘zapsmall()’ to numeric/complex summaries.
Where multiple sub-architectures are to be tested, ‘R CMD check’ now runs the examples and tests for all the sub-architectures even if one fails.
Use of ‘library.dynam()’ without specifying all the first three arguments is now disallowed.
Use of an argument ‘chname’ in ‘library.dynam()’ including the extension ‘.so’ or ‘.dll’ (which was never allowed according to the help page) is defunct. This also applies to ‘library.dynam.unload()’ and to ‘useDynLib’ directives in ‘NAMESPACE’ files.
The internal functions (but still used by some packages) ‘.readRDS()’ and ‘.saveRDS()’ are now defunct.
The ‘quartz()’ device now does tilde expansion on its ‘file’ argument.
‘read.dcf()’ removes trailing blanks: unfortunately on some platforms this included ‘\xa0’ (non-breaking space) which is the trailing byte of a UTF-8 character. It now only considers ASCII space and tab to be ‘blank’.
‘tools::dependsOnPkg()’ now accepts the shorthand ‘dependencies =
"all"’.
The ‘clusterExport()’ function now allows the specification of an
environment from which to export.
Where multiple sub-architectures are to be tested, ‘R CMD check’ now runs the examples and tests for all the sub-architectures even if the first one fails.
‘tools::dependsOnPkg()’ now accepts the shorthand ‘dependencies = "all"’.
‘parallel::clusterExport()’ now allows specification of an environment from which to export.
‘read.dcf()’ removes trailing blanks: unfortunately this included on some platforms ‘\xa0’ (non-breaking space) which is the trailing byte of some UTF-8 characters. It now only considers ASCII space and tab to be ‘blank’.
The internal ‘plot.default()’ code did not do sanity checks on a ‘cex’ argument, so invalid input could cause problems. (Reported by Ben Bolker.)
The directory pointed to by ‘USER_LOCAL’ can now have
architecture-specific sub-directories ‘lib/i386’ and ‘lib/x64’.
The directory pointed to by ‘USER_LOCAL’ can now have architecture-specific sub-directories ‘lib/i386’ and ‘lib/x64’.
There is a new function ‘assignInMyNamespace()’ which uses the namespace of the function it is called from.
The ‘clusterExport()’ function now allows the specification of an environment from which to export.
When checking examples under more than one sub-architecture, ‘R CMD check’ now uses a separate directory ‘examples_arch’ for each sub-architecture, and leaves the output in file ‘pkgname-Ex_arch.Rout’. Some packages expect their examples to be run in a clean directory ....
The preferred toolchain has changed since the one used for R 2.12.0 to 2.14.x: see the‘R Installation and Administration manual’. Compiled code (except DLLs) may be incompatible with previous toolchains (and compiled C++ code almost certainly will be).
The number of items retained with ‘options(warn = 0)’ can be set by ‘options(nwarnings=)’.
The ‘clusterExport’ function now allows specification of an environment from which to export.
‘R CMD INSTALL’ will now do a test load for all sub-architectures for
which code was compiled (rather than just the primary
sub-architecture).
‘R CMD INSTALL’ will test loading under all installed sub-architectures even for packages without compiled code, unless the flag ‘--no-multiarch’ is used. (Pure R packages can do things which are architecture-dependent: in the case which prompted this, looking for an icon in a Windows R executable.)
‘R CMD INSTALL’ will now do a test load for all sub-architectures for which code was compiled (rather than just the primary sub-architecture).
The internal ‘plot.default()’ code did not do sanity checks on ‘cex’, so invalid input could cause problems. (Reported by Ben Bolker.)
‘anyDuplicated(<array>, MARGIN=0)’ no longer fails. (Reported by Hervé Pagès.)
‘options(warn = 0)’ failed to end a (C-level) context with more than 50 accumulated warnings. (Spotted by Jeffery Horner.)
The directory pointed to by ‘USER_LOCAL’ can now have architecture-specific sub-directories ‘lib/i386’ and ‘lib/x64’.
The ‘Save as’ menu item on the script editor adds extension ‘.R’ to a file name without an extension.
In package ‘parallel’, ‘detectCores(logical = FALSE)’ makes an OS-dependent attempt to find the number of physical cores. It usually succeeds, even on XP.
The fix for PR#14543 caused stack problems with outputing large R objects (e.g. data frames of 25,000 items). (PR#14698)
In a double-byte locale (Chinese, Japanese, Korean), ‘grep()’ and friends might have used byte-wise matching of strings in the native encoding. (PR#14622)
‘options(warn = 0)’ failed to end a (C-level) contest with more than 50 accumulated warnings. (Spotted by Jeffery Horner.)
‘nobs()’ does not count zero-weight observations for ‘glm()’ fits, for consistency with ‘lm()’. This affects the ‘BIC()’ values reported for such ‘glm()’ fits. (Spotted by Bill Dunlap.)
PCRE has been upgraded to version 8.20: as well as bug fixes and greater Perl compatibility. This adds a JIT pattern compiler, about which PCRE's news says ‘large performance benefits can be had in many situations’. (It is supported on most but not all platforms that run R.)
There are new load-balancing functions ‘parLapplyLB()’ and ‘parSapplyLB()’.
C/C++ code in packages is now compiled with ‘-NDEBUG’ to mitigate against the C/C++ function ‘assert’ being called in production use. Developers can turn this off during package development with ‘PKG_CPPFLAGS = -UNDEBUG’.
Some functions/objects which have been defunct for five or more years have been removed completely. These include ‘.Alias()’, ‘La.chol()’, ‘La.chol2inv()’, ‘La.eigen()’, ‘Machine()’, ‘Platform()’, ‘Version’, ‘codes()’, ‘delay()’, ‘format.char()’, ‘getenv()’, ‘httpclient()’, ‘loadURL()’, ‘machine()’, ‘parse.dcf()’, ‘printNoClass()’, ‘provide()’, ‘read.table.url()’, ‘restart()’, ‘scan.url()’, ‘symbol.C()’, ‘symbol.For()’ and ‘unix()’.
Building wih a positive value of ‘--with-valgrind-instrumentation’ now also instruments logical, complex and raw vectors.
‘parallel::detectCores()’ is now able to find the number of physical cores (rather than CPUs) on Sparc Solaris.
It can also do so on most versions of Windows; however the default remains ‘detectCores(logical = TRUE)’ on that platform.
Reference classes now keep a record of which fields are locked. ‘$lock()’ with no arguments returns the names of the locked fields.
‘mapply()’ now gives an explicit error message (rather than an obscure one) if inputs of zero and positive length are mixed.
‘summary()’ behaves slightly differently (or more precisely its ‘print()’ method does). For numeric inputs, the number of NAs is printed as an integer and not a real. For dates and datetimes, the number of NAs is included in the printed output (the latter being the wish of PR#14720).
The ‘"data.frame"’ method is more consistent with the default method: in particular it now applies ‘zapsmall()’ to numeric/complex summaries.
Building wih a positive value of ‘--with-valgrind-instrumentation’ now instruments logical, complex and raw vectors as well as the other atomic vector types.
On 64-bit Linux systems, ‘configure’ now only sets ‘LIBnn’ to ‘lib64’ if ‘/usr/lib64’ exists. This may obviate setting ‘LIBnn’ explicitly on Debian-derived systems.
It is still necessary to set ‘LIBnn = lib’ (or ‘lib32’) for 32-bit builds of R on a 64-bit OS on those Linux distributions capable for supporting that concept.
‘configure’ looks for ‘inconsolata.sty’, and if not found adjusts the default ‘R_RD4PDF’ to not use it (with a warning, since it is needed for high-quality rendering of manuals).
‘file.append()’ could return ‘TRUE’ for failures. (PR#14727)
‘gzcon()’ connections are no longer subject to garbage collection: it was possible for this to happen when unintended (e.g. when calling ‘load()’).
‘R CMD INSTALL’ has a new option ‘--dsym’ which on Mac OS X (Darwin) dumps the symbols alongside the ‘.so’ file: this is helpful when debugging with ‘valgrind’ (and especially when installing packages into ‘R.framework’). [This can also be enabled by setting the undocumented environment variable ‘PKG_NAKE_DSYM’, since R 2.12.0.]
‘tools::dependsOnPkg()’ now accepts the shorthand ‘dependencies = "all"’.
PCRE has been upgraded to version 8.20: as well as bug fixes and greater Perl compatibility, this adds a JIT pattern compiler, about which PCRE's news says ‘large performance benefits can be had in many situations’. (It is supported on most but not all CPUs that run R.)
‘legend()’ gains a ‘text.font’ argument. (Suggested by Tim Paine, PR#14719.)
‘nchar()’ and ‘nzchar()’ no longer accept factors (as integer vectors). (Wish of PR#6899.)
‘format()’ (and hence ‘print()’) on ‘"bibentry"’ objects now uses ‘options("width")’ to set the output width.
The creation of ticks on log axes (including ‘axTicks()’ sometimes
incorrectly omitted a tick at one end
‘format()’ (and hence ‘print()’) on ‘"bibentry"’ objects now uses ‘options("width")’ to set the output width.
‘tools::dependsOnPkg()’ now accepts the shorthand ‘dependencies = "all"’.
‘configure’ looks for ‘inconsolata.sty’, and if not found adjusts the default ‘R_RD4PDF’ to not use it (with a warning, since it is needed for high-quality manuals).
On 64-bit Linux systems, ‘configure’ now only sets ‘LIBnn’ to ‘lib64’ if ‘/usr/lib64’ exists. This may obviate setting ‘LIBnn’ explicitly on Debian-derived systems.
It is still necessary to set ‘LIBnn = lib’ (or ‘lib32’)for 32-bit builds of R on a 64-bit OS on those Linux distributions capable for supporting that concept.
‘colormodel = "grey"’ (new in R 2.14.0)) did not always work in ‘postscript()’ and ‘pdf()’.
‘HoltWinters()’ reports a warning rather than an error for some optimization failures (where the answer might be a reasonable one).
Reference classes now keep a record of which fields are locked. ‘\$lock()’ with no arguments returns the names of the locked fields.
‘format()’ (and hence ‘print()’) on ‘"bibentry"’ objects now uses ‘options("width")’ to set the output width.
‘tools::deparseLatex(dropBraces=TRUE)’ could drop text as well as braces.
The fix for PR#14543 caused stack problems with outputing large R objects (e.g. data frames of 25,000 items). (PR#14698)
In a double-byte locale (Chinese, Japanese, Korean), ‘grep()’ and friends might have used byte-wise matching of strings in the native encoding. (PR#14622)
In package ‘parallel’, ‘detectCores(logical = FALSE)’ makes an OS-dependent attempt to find the number of physical cores. It usually succeeds, even on XP.
Non-ASCII vignettes without a declared encoding are no longer accepted.
‘pdf()’ accepts forms like ‘file = "|lpr"’ in the same way as ‘postscript()’.
‘pdf()’ accepts ‘file = NULL’. This means that the device does NOT create a PDF file (but it can still be queried, e.g., for font metric info).
‘postscript(file = "|cmd")’ now works on Windows.
‘pdf()’ now has an ‘offline’ argument. If that is set to ‘TRUE’ then the device does NOT create a PDF file (but it can still be queried, e.g., for font metric info).
‘Sys.putenv()’, replaced and deprecated in R 2.5.0, is finally removed.
Some functions which have been defunct for five or more years have been removed completely. These include ‘.Alias()’, ‘La.chol()’, ‘La.chol2inv()’, ‘La.eigen()’, ‘Machine()’, ‘Platform()’, ‘Version’, ‘codes()’, ‘delay()’, ‘format.char()’, ‘getenv()’, ‘httpclient()’, ‘loadURL()’, ‘machine()’, ‘parse.dcf()’, ‘printNoClass()’, ‘provide()’, ‘read.table.url()’, ‘restart()’, ‘scan.url()’, ‘symbol.C()’, ‘symbol.For()’and ‘unix()’.
‘parallel::detectCores()’ is now able to find the number of physical cores (rather than CPUs) on Sparc Solaris.
It can also do so on recent versions of Windows; however the default remains ‘detectCores(logical = TRUE)’ on that platform.
In package ‘parallel’, ‘detectCores(logical = FALSE)’ makes an OS-dependent attempt to find the number of physical cores.
On 64-bit Linux systems, ‘configure’ now only sets ‘LIBnn’ to ‘lib64’
if ‘/usr/lib64’ exists. This may obviate setting ‘LIBnn’ explicitly on
Debian-derived systems.
It is still necessary to set ‘LIBnn = lib’ for 32-bit builds of R on 64-bit OS on those Linux distributions capable for supporting that concept.
There is a new function ‘mcmapply()’, a parallel version of ‘mapply()’, and a wrapper ‘mcMap()’, a parallel version of ‘Map()’.
A default cluster can be registered by the new function ‘setDefaultCluster()’: this will be used by default in functions such as ‘parLapply()’.
‘clusterMap()’ has a new argument ‘.scheduling’ to allow the use of load-balancing.
There are new load-balancing function ‘parLapplyLB()’ and ‘parSapplyLB()’.
Package ‘parallel’ now allows a default cluster to be registered by
‘setDefaultCluster()’: this will be used by default in functions such
as ‘parLapply()’.
It has a new function ‘mcmapply()’, a parallel version of ‘mapply()’, and a wrapper ‘mcMap()’, a parallel version of ‘Map()’.
‘clusterMap()’ has a new argument ‘.scheduling’ to allow the use of load-balancing.
There are new load-balancing versions ‘parLapplyLB’ and ‘parSapplyLB’.
‘Sys.putenv()’, deprecated in R 2.5.0, is finally removed.
Some functions which have been defunct for 5 or more years have been removed completely.
‘stack()’ now gives an error if no vector column is selected, rather
than returning a 1-column data frame (contrary to its documentation).
‘str(x, width)’ now obeys its ‘width’ argument also for function headers and other objects ‘x’ where ‘deparse()’ is applied.
‘parallel::detectCores()’ is now able to find the number of physical cores (rather than CPUs) on Sparc Solaris.
It can also do so on recent versions of Windows (but not Windows XP); however the default remains ‘detectCores(logical = TRUE)’ on that platform.
On 64-bit Linux systems, ‘configure’ now only sets ‘LIBnn’ to ‘lib64’ if ‘/usr/lib64’ exists. This may obviate setting ‘LIBnn’ explicitly on Debian-derived systems.
It is still necessary to set ‘LIBnn = lib’ for 32-bit builds of R on a 64-bit OS on those Linux distributions capable for supporting that concept.
‘stack()’ now gives an error if no vector column is selected, rather than returning a 1-column data frame (contrary to its documentation).
There are two new options for typesetting PDF manuals from Rd files. These are ‘beramono’ and ‘inconsolata’, and used the named font for monospaced output. They are intended to be used in combination with ‘times’, and ‘times,inconsolata,hyper’ is now the default for the reference manual and package manuals. If you do not have that font installed, you can set ‘R_RD4PF’ to one of the other options: see the ‘R Installation and Administration Manual’.
On 64-bit Linux systems, ‘configure’ now only sets ‘LIBnn’ to ‘lib64’ if ‘/usr/lib64’ exists. This may obviate setting ‘LIBnn’ explicitly on Debian-derived systems.
It is still necessary to set ‘LIBnn = lib’ for 32-bit builds of R on 64-bit OS on those Linux distributions capable for supporting that concept.
‘kronecker()’ now has an S4 generic in package ‘methods’ on which packages can set methods. It will be invoked by ‘X %x% Y’ if either ‘X’ or ‘Y’ is an S4 object.
The ‘Save as’ menu item on the script editor appends ‘.R’ to a file name without an extension.
The ‘Save as’ menu item on the script editor appends ‘.R’ to a file
name without an extension.
‘R CMD INSTALL’ for a package with compiled code will fail if compilation fails for any of the installed sub-architectures: use ‘--no-multiarch’ to override this.
‘summary.mlm()’ did not handle objects where the formula had been specified by an expression. (Reported by Helios de Rosario Martinez).
‘system()’ and ‘system2()’ when capturing output report a non-zero status in the new ‘"status"’ attribute.
‘assignInNamespace()’ has further restrictions on use apart from at top-level, as its help page has warned. Expect it to be disabled from programmatic use in the future.
‘R CMD INSTALL’ will now do a test load for all sub-architectures for which code was compiled (rather than just the primary sub-architecture).
‘R CMD check’ now gives a warning rather than a note if it finds inefficiently compressed datasets. With ‘bzip2’ and ‘xz’ compression having been available since R 2.10.0, there is no excuse for not using them.
‘summary.mlm()’ did not handle objects where the formula had been
specified by an expression. (Reported by Helios de Rosario Martinez).
‘R CMD check’ now checks line-endings of makefiles and C/C++/Fortran sources in subdirectories of ‘src’ as well as in ‘src’ itself.
It is deprecated to use ‘mean(x)’ and ‘sd(x)’ directly on data frames (or also matrices, for ‘sd’) ‘x’, instead of simply using ‘sapply’.
In the same spirit, ‘median(x)’ now gives an error for a data frame ‘x’ (it often gave nonsensical results).
The ‘Save as’ menu item on the script editor appends ‘.R’ to a file name without an extension.
‘assignInNamepspace()’ has further restrictions on use apart from at top-level, as its help page has warned. Expect it to be disabled from programmatic use in the future.
Package start-up code attempting to change locked bindings in standard
packages is now a error, not a warning.
‘R CMD check’ now gives a warning rather than a note if it finds inefficiently compressed datasets. With bzip2 and xz compression having been available since 2.10.0, there is no excuse for not using them.
It now checks line-endings of makefiles and C/C++/Fortran sources in subdirectories of ‘src’ as well as in ‘src’ itself.
‘stack()’ now gives an error if no vector column is selected, rather than returning a 1-column data frame (contrary to its documentation).
‘R CMD check’ now gives a warning rather than a note if it finds inefficiently compressed datasets. With bzip2 and xz compression having been available since 2.10.0, there is no excuse for not using them.
Package start-up code attempting to change locked bindings in standard packages is now a error, not a warning.
‘summary.mlm()’ did not handle objects where the formula had been specified by an expression. (Reported by Helios de Rosario Martinez).
Setting a Hershey font family followed by string height query would crash R.
‘R CMD javareconf -e’ would fail for some shells due to a shift error. Also the resulting paths will no longer contain ‘$(JAVA_HOME)’ as that can result in an unintended substitution based on ‘Makeconf’ instead of the shell setting.
Package ‘parallel’ now allows a default cluster to be registered by ‘setDefaultCluster()’: this will be used by default in functions such as ‘parLapply()’.
It has a new function ‘mcmapply()’, a parallel version of ‘mapply()’, and a wrapper ‘mcMap()’, a parallel version of ‘Map()’.
‘clusterMap()’ has a new argument ‘.scheduling’ to allow the use of load-balancing.
There are new load-balancing versions ‘parLapplyLB’ and ‘parSapplyLB’.
‘stack()’ now gives an error if no vector column is selected, rather than returning a 1-column data frame contrary to its documentation.
There is a new package ‘parallel’.
It incorporates (slightly revised) copies of packages ‘multicore’ and ‘snow’ (excluding MPI, PVM and NWS clusters). Code written to use the higher-level API functions in those packages should work unchanged (apart from changing any references to their namespaces to a reference to ‘parallel’, and links explicitly to ‘multicore’ or ‘snow’ on help pages).
It also contains support for multiple RNG streams following L'Ecuyer _et al_ (2002), with support for both ‘mclapply’ and ‘snow’ clusters. This replaces functions like ‘clusterSetupRNG()’ from ‘snow’ (which are not in ‘parallel’).
The version released for R 2.14.0 contains base functionality: higher-level convenience functions are planned (and some are already available in the ‘R-devel’ version of R).
Using a false value for the ‘DESCRIPTION’ field ‘LazyLoad’ is deprecated.
‘mapply()’ now gives an explicit error message (rather than an obscure one) is inputs of zero and positive length are mixed.
‘socketConnection()’ now has a ‘timeout’ argument. It is now documented that large values (package ‘snow’ used a year) do not work on some OSes.
‘qgamma()’ for small ‘shape’ underflows to ‘0’ rather than sometimes giving ‘NaN’. (PR#8528, PR#14710)
