R 2.15.2 is released
pd.mes at cbs.dk
Fri Oct 26 13:57:07 CEST 2012
The build system has rolled up R-2.15.2.tar.gz (codename "Trick or Treat") at 9:00 this morning. This is a maintenance release; see the list below for details.
You can get it from
or wait for it to be mirrored at a CRAN site nearer to you.
Binaries for various platforms will appear in due course.
For the R Core Team
These are the md5sums for the freshly created files, in case you wish
to check that they are uncorrupted:
MD5 (AUTHORS) = cbf6da8f886ccd8d0dda0cc7ffd1b8ec
MD5 (COPYING) = eb723b61539feef013de476e68b5c50a
MD5 (COPYING.LIB) = a6f89e2100d9b6cdffcea4f398e37343
MD5 (FAQ) = 358176af07d3200c9cd70b5c313d1779
MD5 (INSTALL) = 37adac6d0fbadf25b5a40e3f7535415e
MD5 (NEWS) = 2fa905e20f935ca03369d1738e41d079
MD5 (NEWS.html) = 5f9f281cb579b51a6dbfc31831ac6c99
MD5 (ONEWS) = 0c3e10eef74439786e5fceddd06dac71
MD5 (OONEWS) = b0d650eba25fc5664980528c147a20db
MD5 (R-latest.tar.gz) = 346d16bab26fcae15e53755be8a69b00
MD5 (README) = 296871fcf14f49787910c57b92655c76
MD5 (RESOURCES) = c7cb32499ebbf85deb064aab282f93a4
MD5 (THANKS) = 7a87321ccf0ecd2bece697e39dce5e67
MD5 (R-2/R-2.15.2.tar.gz) = 346d16bab26fcae15e53755be8a69b00
This is the relevant part of the NEWS file:
CHANGES IN R VERSION 2.15.2:
o The X11() window gains an icon: the latter may be especially
useful on Ubuntu's 'Unity' interface.
The WM_CLASS should be set in circumstances where the Window
Manager failed to make use of X11 resource settings.
(Contributed by Philip Johnson.)
o The "Date" and "POSIXt" methods for cut() will accept an unsorted
breaks argument (as the default method does, although this was
undocumented). (Wish of PR#14961.)
o Reference class methods (in the methods package) that use other
methods in an indirect way (e.g., by sapply()) must tell the code
analysis to include that method. They can now do so by invoking
o More Polish translations are available: for the RGui menus and
for several recommended packages.
o Multistratum MANOVA works. In fact, it seems to have done so for
years in spite of the help page claiming it did not.
o qqline() has new optional arguments distribution, probs and
qtype, following the example of lattice's panel.qqmathline().
o The handling of single quotes in the en at quot pseudo-language has
been slightly improved. Double quotes are no longer converted.
o New functions checkPoFiles() and checkPoFile() have been added to
the tools package to check for consistency of format strings in
o model.matrix(~1, ...) now also contains the same rownames that
less trivial formulae produce. (Wish of PR#14992, changes the
output of several packages.)
o Misuse of rep() on undocumented types of objects (e.g. calls) is
now reported as an error.
o The included LAPACK has been updated to 3.4.1, with some patches
from the current SVN sources. (_Inter alia_, this resolves
o file.copy(recursive = TRUE) has some additional checks on user
error leading to attempted infinite recursion (and on some
platforms to crashing R).
o PCRE has been updated to version 8.31, a bug-fix release.
o The included version of liblzma has been updated to version
5.0.4, a minor bug-fix release.
o New function .bincode(), a 'bare-bones' version of
cut.default(labels = FALSE) for use in packages with image()
o The HTML manuals now use directional single quotes.
o maintainer() now converts embedded new lines to spaces. It no
longer gives a non-obvious error for non-installed packages.
o The X11() device has some protection against being used with
forked processes _via_ package parallel.
o Setting the environment variable R_OSX_VALGRIND (to any value)
allows R to be run under valgrind on Mac OS 10.6 and 10.7
(valgrind currently has very limited support for 10.8), provided
system() is not used (directly or indirectly). This should not
be needed for valgrind >= 3.8.1.
o The model.frame() method for "lm" uses xlevels: this is safer if
data was supplied or model = FALSE was used and the levels of
factors used in the fit had been re-ordered since fitting.
Similarly, model.frame(fm, data=<data>) copies across the
variables used for safe prediction from the fit.
o Functions such as parLapply() in package parallel can make use of
a default cluster if one is set. (Reported by Martin Morgan.)
o chol(pivot = TRUE, LINPACK = FALSE) is now available using LAPACK
3.2 subroutine DPSTRF.
o The functions .C(), .Call(), .External() and .Fortran() now check
that they are called with an unnamed first argument: the formal
arguments were changed from name= to .NAME= in R 2.13.0, but some
packages were still using the old name. This is currently a
warning, but will be an error in future.
o step() no longer tries to improve a model with AIC of -Inf (a
o spline() and splinefun() gain a new method "hyman", an
implementation of Hyman's method of constructing monotonic
interpolation splines. (Based on contributions of Simon Wood and
o On Windows, the C stack size has been increased to 64MB (it has
been 10MB since the days of 32MB RAM systems).
o array() is now implemented in C code (for speed) when data is
atomic or an unclassed list (so it is known that as.vector(data)
will have no class to be used by rep()).
o rep() is faster and uses less memory, substantially so in some
common cases (e.g. if times is of length one or length.out is
given, and each = 1).
o findInterval(), tabulate(), cut(), hist() and image.default() all
use .Call() and are more efficient.
o duplicated(), unique() and similar now support vectors of lengths
above 2^29 on 64-bit platforms.
o Omitting PACKAGE in .C() etc calls was supposed to make use of
the DLL from the namespace within which the enclosing function
was defined. It was less successful in doing so than it might
be, and gave no indication it had failed.
A new search strategy is very successful and gives a warning when
it fails. In most cases this is because the entry point is not
actually provided by that package (and so PACKAGE should be used
to indicate which package is intended) but in some the namespace
does not have a DLL specified by a useDynLib() directive so
PACKAGE is required.
o R CMD check now checks if a package can be loaded by
library(pkgname, lib.loc = "somewhere") without being on the
library search path (unless it is already installed in .Library,
when it always will be).
o R CMD check --as-cran notes 'hidden' files and directories (with
names starting with a dot) that are not needed for the operation
of R CMD INSTALL or R CMD build: such files should be excluded
from the published tarball.
o R CMD check (if checking subdirectories) checks that the R code
in any demos is ASCII and can be parsed, and warns if not.
o When R CMD Rd2pdf is used with inputenx.sty, it allows further
characters (mainly for Eastern European languages) by including
ix-utf8enc.dfu (if available). (Wish of PR#14989.)
o R CMD build now omits several types of hidden files/directories,
including inst/doc/.Rinstignore, vignettes/.Rinstignore,
(.Rinstignore should be at top level), .deps under src,
.Renviron, .Rprofile, .Rproj.user, .backups, .cvsignore,
.cproject, .directory, .dropbox, .exrc, .gdb.history,
.gitattributes, .gitignore, .gitmodules, .hgignore, .hgtags,
.htaccess, .latex2html-init, .project, .seed, .settings,
.tm_properties and various leftovers.
o R CMD check now checks for .C(), .Call(), .External() and
.Fortran() calls in other packages, and gives a warning on those
found from R itself (which are not part of the API and change
without notice: many will changed for R 2.16.0).
o The limit for R_alloc on 64-bit platforms has been raised to just
under 32GB (from just under 16GB).
o The misuse of .C("name", ..., PACKAGE = foo) where foo is an
arbitrary R object is now an error.
The misuse .C("name",..., PACKAGE = "") is now warned about in R
CMD check, and will be an error in future.
DEPRECATED AND DEFUNCT:
o Use of array() with a 0-length dim argument is deprecated with a
warning (and was contrary to the documentation).
o Use of tapply() with a 0-length INDEX list is deprecated with a
o Translation packages are deprecated.
o Calling rep() or rep.int() on a pairlist is deprecated and will
give a warning. In any case, rep() converted a pairlist to a
list so you may as well do that explicitly.
o Entry point rcont2 is no longer part of the API, and will move to
package stats in R 2.16.0.
o The 'internal' graphics device invoked by
.Call("R_GD_nullDevice", package = "grDevices") is about to be
removed: use pdf(file = NULL) instead.
o eigen(EISPACK = TRUE), chol(pivot = FALSE, LINPACK = TRUE),
chol2inv(LINPACK = TRUE), solve(LINPACK = TRUE) and svd(LINPACK =
TRUE) are deprecated and give a warning.
They were provided for compatibility with R 1.7.0 (Mar 2003)!
o The 'internal function' kappa.tri() has been renamed to
.kappa_tri() so it is not inadvertently called as a method for
o Functions sessionData() and browseAll() in package methods are on
a help page describing them as 'deprecated' and are now formally
o For a Windows or Mac OS X binary package install,
install.packages() will check if a source package is available on
the same repositories, and report if it is a later version or
there is a source package but no binary package available.
This check can be suppressed: see the help page.
o install.packages(type = "both") has been enhanced. In
interactive use it will ask whether to choose the source version
of a package if the binary version is older and contains compiled
code, and also asks if source packages with no binary version
should be installed).
o There is a new configure option --with-libtiff (mainly in case
the system installation needs to be avoided).
o LAPACK 3.4.1 does use some Fortran 90 features, so g77 no longer
o If an external LAPACK is used, it must be version 3.2 or later.
o On Windows, starting Rterm via R.exe caused Ctrl-C to misbehave.
o The tools::latexToUtf8() function missed conversions that were
contained within braces.
o Long timezone specifications (such as a file name preceded by :)
could crash as.POSIXlt. (PR#14945)
o R CMD build --resave-data could fail if there was no data
directory but there was an R/sysdata.rda file. (PR#14947)
o is.na() misbehaved on a 0-column data frame. (PR#14959)
o anova.lmlist() failed if test was supplied. (PR#14960)
It was unable to compute Cp tests for object of class "lm" (it
assumed class "glm").
o The formula method for sunflowerplot() now allows xlab and ylab
to be set. (Reported by Gerrit Eichner.)
o The "POSIXt" and "Date" methods for hist() could fail on Windows
where adjustments to the right-hand boundary crossed a DST
o On Windows, the code in as.POSIXct() to handle incorrectly
specified isdst fields might have resulted in NA being returned.
o aov() and manova() gave spurious warning about singular error
model in the multiresponse case.
o In ns() and bs(), specifying knots = NULL is now equivalent to
omitting it, also when df is specified. (PR#14970)
o sprintf() did not accept numbered arguments ending in zero.
o rWishart() could overflow the C stack and maybe crash the R
process for dimensions of several hundreds or more. (Reported by
Michael Braun on R-sig-mac.)
o Base package vignettes (e.g. vignette("Sweave")) were not fully
installed in builds of R from the tarball.
o lchoose() and choose() could overflow the C stack and crash R.
o When given a 0-byte file and asked to keep source references,
parse() read input from stdin() instead.
o pdf(compress = TRUE) did not delete temporary files it created
until the end of the R session. (PR#14991)
o logLik() did not detect the error of applying it to a
multiple-response linear model. (PR#15000)
o file.copy(recursive = TRUE) did not always report FALSE for a
failure two or more directories deep.
o qgeom() could return -1 for extremely small q. (PR#14967.)
o smooth.spline() used DUP = FALSE which allowed its compiled C
code to change the function: this was masked by the default
o In Windows, the GUI preferences for foreground color were not
always respected. (Reported by Benjamin Wells.)
o On OS X, the Quartz versions of the bitmap devices did not
respect antialias = "none". (PR#15006.)
o unique() and similar would infinite-loop if called on a vector of
length > 2^29 (but reported that the vector was too long for 2^30
o parallel::stopCluster() now works with MPI clusters without snow
being on the search path.
o terms.formula() could exhaust the stack, and the stack check did
not always catch this before the segfault. (PR#15013)
o sort.list(method = "radix") could give incorrect results on
certain compilers (seen with clang on Mac OS 10.7 and Xcode
o backsolve(T, b) gave incorrect results when nrows(b) > ncols(T)
and b had more than one column.
It could segfault or give nonsense if k was specified as more
o smooth.spline() did not check that a specified numeric spar was
of length 1, and gave corrupt results if it was of length 0.
o Protection added to do_system. (PR#15025)
o Printing of vectors with names > 1000 characters now works
correctly rather than truncating. (PR#15028)
o qr() for a complex matrix did not pivot the column names.
o --with-blas='-framework vecLib' now also works on OS X 10.8.
o R CMD check no longer fails with an error if a DESCRIPTION file
incorrectly contains a blank line. (Reported by Bill Dunlap.)
o install.packages(type = "both") could call chooseCRANmirror()
o lm.wfit() could segfault in R 2.15.1 if all the weights were
o A malformed package name could cause R CMD INSTALL to write
outside the target library.
o Some of the quality control functions (e.g. tools::checkFF())
were wrongly identifying the source of S4 methods in a package
and so not checking them.
o The default type of display by browseEnv() when using R.app on
Mac OS X has been incorrect for a long time.
o The implementation of importMethodsFrom in a NAMESPACE file could
be confused and fail to find generics when importing from
multiple packages (reported and fixed by Michael Lawrence).
o The detection of the C stack direction is better protected
against compiler optimization. (PR#15011.)
o Long custom line types would sometimes segfault on the
cairographics-based devices. (PR#15055.)
o tools::checkPoFile() unprotected too early in its C code and so
segfaulted from time to time.
o The Fortran code underlying nlminb() could infinite-loop if any
of the input functions returned NA or NaN. This is now an error
for the gradient or Hessian, and a warning for the function (with
the value replaced by Inf). (In part, PR#15052.)
o The code for creating coerce() methods could generate false notes
about ambiguous selection; the notes have been suppressed for
o arima.sim() could give too long an output in some corner cases
(in part, PR#15068).
o anova.glm() with test = "Rao" didn't work when models included an
offset. (Reported by Soren Feodor Nielsen.)
o as.data.frame.matrix() could return invalid data frame with no
row.names attribute for 0-row matrix. (Reported by Herv'e Pag`es.)
o Compilation with the vecLib or Accelerate frameworks on OS X
without using that also for LAPACK is more likely to be
Peter Dalgaard, Professor
Center for Statistics, Copenhagen Business School
Solbjerg Plads 3, 2000 Frederiksberg, Denmark
Email: pd.mes at cbs.dk Priv: PDalgd at gmail.com
More information about the R-announce