R 2.14.0 is released
pd.mes at cbs.dk
Mon Oct 31 10:56:33 CET 2011
The byte pixies have rolled up R-2.14.0.tar.gz (codename "Great Pumpkin") at 9:00 this morning. This is a development release with several new features; 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) = 7d14b4be550f30d8a73a830ab272e4f4
MD5 (INSTALL) = 70447ae7f2c35233d3065b004aa4f331
MD5 (NEWS) = 98ef8b3497d12fd43b56d3732c34f9cc
MD5 (NEWS.html) = 3ec485820148d22864b9b7990347bf2c
MD5 (ONEWS) = 0c3e10eef74439786e5fceddd06dac71
MD5 (OONEWS) = b0d650eba25fc5664980528c147a20db
MD5 (R-latest.tar.gz) = 98cf8fe74e512e1061caf1ee0c2043a8
MD5 (README) = 296871fcf14f49787910c57b92655c76
MD5 (RESOURCES) = 020479f381d5f9038dcb18708997f5da
MD5 (THANKS) = 159efc7bd4ae7b23dda07c1d431657bc
MD5 (R-2/R-2.14.0.tar.gz) = 98cf8fe74e512e1061caf1ee0c2043a8
This is the relevant part of the NEWS file:
CHANGES IN R VERSION 2.14.0:
SIGNIFICANT USER-VISIBLE CHANGES:
o All packages must have a namespace, and one is created on
installation if not supplied in the sources. This means that any
package without a namespace must be re-installed under this
version of R (but previously-installed data-only packages without
R code can still be used).
o The yLineBias of the X11() and windows() families of devices has
been changed from 0.1 to 0.2: this changes slightly the vertical
positioning of text in the margins (including axis annotations).
This is mainly for consistency with other devices such as
quartz() and pdf(). (Wish of PR#14538.)
There is a new graphics parameter "ylbias" which allows the
y-line bias of the graphics device to be tweaked, including to
reproduce output from earlier versions of R.
o Labeling of the p-values in various anova tables has been
rationalized to be either "Pr(>F)" or "Pr(>Chi)" (i.e. the
"Pr(F)", "Pr(Chi)" and "P(>|Chi|)" variants have been
eliminated). Code which extracts the p value _via_ indexing by
name may need adjustment.
o :: can now be used for datasets made available for lazy-loading
in packages with namespaces (which makes it consistent with its
use for data-only packages without namespaces in earlier versions
o 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).
o Building PDF manuals (for R itself or packages, e.g. _via_ R CMD
check) by default requires the LaTeX package inconsolata: see the
section on 'Making the manuals' in the 'R Installation and
o axTicks(*, log=TRUE) has changed in some cases to satisfy the
documented behavior and be consistent.
o txtProgressBar() can write to an open connection instead of the
o Non-portable package names ending in . are no longer allowed.
Nor are single-character package names (R was already
o regexpr() and gregexpr() with perl = TRUE allows Python-style
named captures. (Wish and contribution of PR#14518.)
o The placement of 'plotmath' text in the margins of plots done by
base graphics now makes the same vertical adjustment as ordinary
text, so using ordinary and plotmath text on the same margin line
will seem better aligned (but not exactly aligned, since ordinary
text has descenders below the baseline and plotmath places them
on the baseline). (Related to PR#14537.)
o sunflowerplot() now has a formula interface. (Wish of PR#14541.)
o iconv() has a new argument toRaw to handle encodings such as
UTF-16 with embedded nuls (as was possible before the CHARSXP
cache was introduced).
It will also accept as input the type of list generated with
toRaw = TRUE.
o Garbage-collecting an unused input text connection no longer
gives a warning (since it 'connects' to nothing outside R).
o read.table() and scan() have gained a text argument, to allow
reading data from a (possibly literal) character string.
o optim(*, method = .) now allows method = "Brent" as an interface
to optimize(), for use in cases such as mle() where optim() is
o mosaicplot() gains a border argument. (Wish of PR#14550.)
o smooth.spline() gains a tol argument which controls how different
x values need to be to be treated as distinct. The default has
been changed to be more reliable for inputs whose range is small
compared to their maximum absolute value. (Wish of PR#14452.)
o gl() runs faster by avoiding calling factor().
o The print() method for object.size() accepts B as well as b as an
abbreviation for 'bytes'.
o unlink() gains a force argument to work like rm -f and if
possible override restrictive permissions.
o pbirthday() and qbirthday() now use exact calculations for
coincident = 2.
o unzip() and unz() connections have been updated with support for
more recent Zip64 features (including large file sizes and bzip2
compression, but not UTF-8 file names).
unzip() has a new option to restore file times from those
recorded (in an unknown timezone) in the zip file.
o update.packages() now accepts a character vector of package names
for the oldPkgs argument. (Suggestion of Tal Galili.)
o The special reference class fields .self and .refClassDef are now
read-only to prevent corrupting the object.
o decompose() now returns the original series as part of its value,
so it can be used (rather than reconstructed) when plotting.
(Suggestion of Rob Hyndman.)
o Rao's efficient score test has been implemented for glm objects.
Specifically, the add1, drop1, and anova methods now allow test =
o If a saved workspace (e.g. .RData) contains objects that cannot
be loaded, R will now start with an warning message and an empty
workspace, rather than failing to start.
o strptime() now accepts times such as 24:00 for midnight at the
end of the day, for although these are disallowed by POSIX
1003.1-2008, ISO 8601:2004 allows them.
o Assignment of names() to S4 objects now checks for a
corresponding "names" slot, and generates a warning or an error
if that slot is not defined. See the section on slots in
o The default methods for is.finite(), is.infinite() and is.nan()
now signal an error if their argument is not an atomic vector.
o The formula method for plot() no longer places package stats on
the search path (it loads the namespace instead).
o There now is a genuine "function" method for plot() rather than
the generic dispatching internally to graphics::plot.function().
It is now exported, so can be called directly as plot.function().
o The one-sided ks.test() allows exact = TRUE to be specified in
the presence of ties (but the approximate calculation remains the
default: the 'exact' computation makes assumptions known to be
invalid in the presence of ties).
o The behaviour of curve(add = FALSE) has changed: it now no longer
takes the default x limits from the previous plot (if any):
rather they default to c(0, 1) just as the "function" method for
plot(). To get the previous behaviour use curve(add = NA), which
also takes the default for log-scaling of the x-axis from the
o Both curve() and the plot() method for functions have a new
argument xname to facilitate plots such as sin(t) _vs_ t.
o The local argument to source() can specify an environment as well
as TRUE (parent.env()) and FALSE (.GlobalEnv). It gives better
error messages for other values, such as NA.
o vcov() gains methods for classes "summary.lm" and "summary.glm".
o The plot() method for class "profile.nls" gains ylab and lty
arguments, and passes ... on to plot.default.
o Character-string arguments such as the mode argument of vector(),
as.vector() and is.vector() and the description argument of
file() are required to be of length exactly one, rather than any
further elements being silently discarded. This helps catch
incorrect usage in programming.
o The length argument of vector() and its wrappers such as
numeric() is required to be of length exactly one (other values
are now an error rather than giving a warning as previously).
o vector(len) and length(x) <- len no longer acccept TRUE/FALSE for
len (not that they were ever documented to, but there was
special-casing in the C code).
o There is a new function Sys.setFileTime() to set the time of a
file (including a directory). See its help for exactly which
times it sets on various OSes.
o The file times reported by file.info() are reported to sub-second
resolution on systems which support it. (Currently the POSIX
2008 and FreeBSD/Darwin/NetBSD methods are detected.)
o New function getCall(m) as an abstraction for m$call, enabling
update()'s default method to apply more universally. (NB: this
can be masked by existing functions in packages.)
o Sys.info() gains a euser component to report the 'effective' user
on OSes which have that concept.
o The result returned by try() now contains the original error
condition object as the "condition" attribute.
o All packages with R code are lazy-loaded irrespective of the
LazyLoad field in the DESCRIPTION file. A warning is given if
the LazyLoad field is overridden.
o Rd markup has a new \figure tag so that figures can be included
in help pages when converted to HTML or LaTeX. There are
examples on the help pages for par() and points().
o The built-in httpd server now allows access to files in the
session temporary directory tempdir(), addressed as the /session
directory on the httpd server.
o Development versions of R are no longer referred to by the number
under which they might be released, e.g. in the startup banner, R
--version and sessionUtils(). The correct way to refer to a
development version of R is 'R-devel', preferably with the date
and SVN version number.
E.g. R-devel (2011-07-04 r56266)
o There is a new function texi2pdf() in package tools, currently a
convenience wrapper for texi2dvi(pdf = TRUE).
o 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
o Automatic printing for reference classes is now done by the
$show() method. A method is defined for class envRefClass and
may be overriden for user classes (see the ?ReferenceClasses
example). S4 show() methods should no longer be needed for
o tools::Rdiff (by default) and R CMD Rdiff now ignore differences
in pointer values when comparing printed environments, compiled
byte code, etc.
o 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.
o New items User Manuals and Technical Papers have been added to
the HTML help main page. These link to vignettes in the base and
recommended packages and to a collection of papers about R
o Documentation and messages have been standardized to use
"namespace" rather than "name space".
o setGeneric() now looks in the default packages for a non-generic
version of a function if called from a package with a namespace.
(It always did for packages without a namespace.)
o Setting the environment variable _R_WARN_ON_LOCKED_BINDINGS_ will
give a warning if an attempt is made to change a locked binding.
o \SweaveInput is now supported when generating concordances in
o findLineNum() and setBreakpoint() now allow the environment to be
specified indirectly; the latter gains a clear argument to allow
it to call untrace().
o The body of a closure can be one of further types of R objects,
including enviroments and external pointers.
o The Rd2HTML() function in package tools now has a stylesheet
argument, allowing pages to be displayed in alternate formats.
o New function requireNamespace() analogous to require(), returning
a logical value after attempting to load a namespace.
o There is a new type of RNG, "L'Ecuyer-CMRG", implementing
L'Ecuyer (1999)'s 'combined multiple-recursive generator'
MRG32k3a. See the comments on ?RNG.
o help.search() and ?? can now display vignettes and demos as well
as help pages. The new option "help.search.types" controls the
types of documentation and the order of their display.
This also applies to HTML searches, which now give results in all
of help pages, vignettes and demos.
o socketConnection() now has a timeout argument. It is now
documented that large values (package snow used a year) do not
work on some OSes.
o The initialization of the random-number generator now uses the
process ID as well as the current time, just in case two R
processes are launched very rapidly on a machine with
low-resolution wall clock (some have a resolution of a second;
modern systems have microsecond-level resolution).
o New function pskill() in the tools package to send a terminate
signal to one or more processes, plus constants such as SIGTERM
to provide a portable way to refer to signals (since the numeric
values are OS-dependent).
o New function psnice() in the tools package to return or change
the 'niceness' of a process. (Refers to the 'priority class' on
o list.dirs() gains a recursive argument.
o An Authors at R field in a package DESCRIPTION file can now be used
to generate Author and Maintainer fields if needed, and to
auto-generate package citations.
o New utility getElement() for accessing either a list component or
a slot in an S4 object.
o stars() gains a col.lines argument, thanks to Dustin Sallings.
(Wish of PR#14657.)
o New function regmatches() for extracting or replacing matched or
non-matched substrings from match data obtained by regexpr(),
gregexpr() and regexec().
o help(package = "pkg_name", help_type = "HTML") now gives HTML
help on the package rather than text help. (This gives direct
access to the HTML version of the package manual shown _via_
help.start()'s 'Packages' menu.)
o agrep() gains a fixed argument to optionally allow approximate
regular expression matching, and a costs argument to specify
possibly different integer match costs for insertions, deletions
o read.dcf() and write.dcf() gain a keep.white argument to indicate
fields where whitespace should be kept as is.
o available.packages() now works around servers that fail to return
an error code when PACKAGES.gz does not exist. (Patch submitted
by Seth Schommer.)
o readBin() can now read more than 2^31 - 1 bytes in a single call
(the previously documented limitation).
o New function regexec() for finding the positions of matches as
well as all substrings corresponding to parenthesized
subexpressions of the given regular expression.
o New function adist() in package utils for computing 'edit'
(generalized Levenshtein) distances between strings.
o Class "raster" gains an is.na method to avoid confusion from the
misuse of the matrix method (such as PR#14618).
o The identical() function gains an ignore.bytecode argument to
control comparison of compiled functions.
o pmin and pmax now warn if an argument is partially recycled (wish
o The default for image(useRaster=) is now taken from option
"preferRaster": for the small print see ?image.
o str() now displays reference class objects and their fields,
rather than treating them as classical S4 classes.
o New function aregexec() in package utils for finding the
positions of approximate string matches as well as all substrings
corresponding to parenthesized subexpressions of the given
o download.file() has an extra argument to pass additional
command-line options to the non-default methods using
cacheOK = FALSE is now supported for method = "curl".
o interaction.plot(*, type = .) now also allows type "o" or "c".
o axTicks(*, log=TRUE) did sometimes give more values than the
ticks in the corresponding graphics::axis(). By default, it now
makes use of the new (graphics-package independent) axisTicks()
which can make use of a new utility .axisPars(). Further, it now
returns a decreasing sequence (as for log=FALSE) when usr is
o Using fix() or edit() on a R object (except perhaps a matrix or
data frame) writes its temporary file with extension .R so
editors which select their mode based on the extension will
select a suitable mode.
o The pdf() device makes use of Flate compression: this is
controlled by the new logical argument compress, and is enabled
o Devices svg(), cairo_pdf() and cairo_ps() gain a family argument.
On a Unix-alike X11() gains a family argument. This is one of
the x11.options() and so can be passed as an argument to the
bmp(), jpeg(), png() and tiff() devices.
Analogous changes have been made on Windows, so all built-in R
graphics devices now have a family argument except pictex()
(which has no means to change fonts).
o The bmp(), jpeg(), png() and tiff() devices now make use of the
antialias argument for type = "quartz".
o There are several new built-in font mappings for X11(type =
"Xlib"): see the help on X11Fonts().
o There is a new type X11(type = "dbcairo") which updates the
screeen less frequently: see its help page.
o The X11() device now makes use of cursors to distinguish its
states. The normal cursor is an arrow (rather than a crosshair);
the crosshair is used when the locator is in use, and a watch
cursor is shown when plotting computations are being done.
(These are the standard names for X11 cursors: how they are
actually displayed depends on the window manager.)
o New functions dev.hold() and dev.flush() for use with graphics
devices with buffering. These are used for most of the
high-level graphics functions such as boxplot(), so that the plot
is only displayed when the page is complete.
Currently implemented for windows(buffered = TRUE), quartz() and
the cairographics-based X11() types with buffering (which are the
default on-screen devices).
o New function dev.capture() for capture of bitmap snapshots of
image-based devices (a superset of the functionality provided by
grid.cap() in grid).
o The default colormodel for pdf() and postscript() is now called
"srgb" to more accurately describe it. (Instead of "rgb", and in
the case of postscript() it no longer switches to and from the
gray colorspace, by default.)
The colormodel for postscript() which does use both gray and sRGB
colorspaces is now called "srgb+gray".
Plots which are known to use only black/white/transparent can
advantageously use colormodel = "gray" (just as before, but there
is now slightly more advantage in doing so).
o postscript() with values colormodel = "rgb" and colormodel =
"rgb-nogray" give the behaviour prior to R 2.13.0 of uncalibrated
RGB, which under some circumstances can be rendered much faster
by a viewer.
pdf(colormodel = "rgb") gives the behaviour prior to R 2.13.0 of
uncalibrated RGB, which under some circumstances can be rendered
faster by a viewer, and the files will be smaller (by about 9KB
if compression is not used).
o The postscript() device only includes the definition of the sRGB
colorspace in the output file for the colormodels which use it.
o The postscript() and pdf() devices now output greyscale raster
images (and not RGB) when colormodel = "gray".
o postscript(colormodel = "gray") now accepts non-grey colours and
uses their luminance (as pdf() long has).
o colormodel = "grey" is allowed as an alternative name for
postscript() and pdf().
o pdf() in the default sRGB colorspace outputs many fewer changes
of colorspace, which may speed up rendering in some viewing
o There is a new function dev.capabilities() to query the
capabilities of the current device. The initial set of
capabilities are support for semi-transparent colours, rendering
and capturing raster images, the locator and for interactive
o For pdf(), maxRasters is increased as needed so the argument is
no longer used.
SWEAVE & VIGNETTES:
o Options keep.source = TRUE, figs.only = FALSE are now the
o The way the type of user-defined options is determined has
changed. Previously they were all regarded as logical: now the
type is determined by the value given at first use.
o The allowed values of logical options are now precisely those
allowed for character inputs to as.logical(): this means that t
and f are no longer allowed (although T and F still are).
o The preferred location for vignette sources is now the directory
vignettes and not inst/doc: R CMD build will now re-build
vignettes in directory vignettes and copy the .Rnw (etc) files
and the corresponding PDFs to inst/doc. Further files to be
copied to inst/doc can be specified _via_ the file
o R CMD Sweave now supports a --driver option to select the Sweave
driver: the default is equivalent to --driver=RweaveLatex.
o R CMD Sweave and R CMD Stangle support options --encoding and
o The Rtangle() driver allows output = "stdout" or output =
"stderr" to select the output or message connection. This is
convenient for scripting using something like
R CMD Stangle --options='output="stdout"' foo.Rnw > foo2.R
o There is a new option pdf.compress controlling whether PDF
figures are generated using Flate compression (they are by
o R CMD Sweave now has a --pdf option to produce a PDF version of
the processed Sweave document.
o It is no longer allowed to have two vignettes with the same
vignette basename (e.g. vig.Rnw and vig.Snw). (Previously one
vignette hid the other in the vignette() function.)
o Function R_tmpnam2 has been added to the API to allow a temporary
filename to include a specified extension.
o Package DESCRIPTION file field KeepSource forces the package to
be installed with keep.source = TRUE (or FALSE). (Suggestion of
Greg Snow. Note that as all packages are lazy-loaded, this is
now only relevant at installation.)
There are corresponding options --with-keep.source and
--without-keep.source for R CMD INSTALL.
o R CMD INSTALL has a new option --byte-compile to byte-compile the
packages during installation (since all packages are now
lazy-loaded). This can be controlled on a per-package basis by
the optional field ByteCompile in the DESCRIPTION file.
o A package R code but without a NAMESPACE file will have a default
one created at R CMD build or R CMD INSTALL time, so all packages
will be installed with namespaces. A consequence of this is that
.First.lib() functions need to be copied to .onLoad() (usually)
or .onAttach(). For the time being, if there is an
auto-generated NAMESPACE file and no .onLoad() nor .onAttach()
function is found but .First.lib() is, it will be run as the
attach hook (unless the package is one of a list of known
exceptions, when it will be run as the load hook).
o A warning is given if test-loading a package changes a locked
binding in a package other than itself. It is likely that this
will be disallowed in future releases. (There are _pro tem_ some
exceptions to the warning.)
o 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 beteen
R-patched and R-devel versions with the same SVN revision.
o installed.packages() now hashes the names of its cache files to
avoid very rare problems with excessively long path names.
o A top-level COPYING file in a package is no longer installed
(file names LICENSE or LICENCE having long been preferred).
o R CMD check now gives an error if the R code in a vignette fails
to run, unless this is caused by a missing package.
o R CMD check now unpacks tarballs in the same way as R CMD
INSTALL, including making use of the environment variable
R_INSTALL_TAR to override the default behaviour.
o R CMD check performs additional code analysis of package startup
functions, and notifies about incorrect argument lists and
(incorrect) calls to functions which modify the search path or
inappropriately generate messages.
o R CMD check now also checks compiled code for symbols
corresponding to functions which might terminate R or write to
stdout/stderr instead of the console.
o R CMD check now uses a pdf() device when checking examples
(rather than postscript()).
o R CMD check now checks line-endings of makefiles and
C/C++/Fortran sources in subdirectories of src as well as in src
o R CMD check now reports as a NOTE what look like methods
documented with their full names even if there is a namespace and
they are exported. In almost all cases they are intended to be
used only as methods and should use the \method markup. In the
other rare cases the recommended form is to use a function such
as coefHclust which would not get confused with a method,
document that and register it in the NAMESPACE file by
s3method(coef, hclust, coefHclust).
o The default for the environment variable _R_CHECK_COMPACT_DATA2_
is now true: thus if using the newer forms of compression
introduced in R 2.10.0 would be beneficial is now checked (by
o Reference output for a vignette can be supplied when checking a
package by R CMD check: see 'Writing R Extensions'.
o R CMD Rd2dvi allows the use of LaTeX package inputenx rather than
inputenc: the value of the environment variable RD2DVI_INPUTENC
is used. (LaTeX package inputenx is an optional install which
provides greater coverage of the UTF-8 encoding.)
o Rscript on a Unix-alike now accepts file names containing spaces
(provided these are escaped or quoted in the shell).
o R CMD build on a Unix-alike (only) now tries to preserve dates on
files it copies from its input directory. (This was the
undocumented behaviour prior to R 2.13.0.)
DEPRECATED AND DEFUNCT:
o require() no longer has a save argument.
o The gamma argument to hsv(), rainbow(), and rgb2hsv() has been
o The --no-docs option for R CMD build --binary is defunct: use
o The option --unsafe to R CMD INSTALL is defunct: use the
identical option --no-lock instead.
o The entry point pythag formerly in Rmath.h is defunct: use
instead the C99 function hypot.
o R CMD build --binary is formally defunct: R CMD INSTALL --build
has long been the preferred alternative.
o zip.file.extract() is now defunct: use unzip() or unz() instead.
o R CMD Rd2dvi without the --pdf option is now deprecated: only PDF
output will be supported in future releases (since this allows
the use of fonts only supported for PDF), and only R CMD Rd2pdf
will be available.
o Options such as --max-nsize and the function mem.limits() are now
deprecated: these limits are nowadays almost never used, and are
reported by gc() when they are in use.
o Forms like binomial(link = "link") for GLM families deprecated
since R 2.4.0 are now defunct.
o The declarativeOnly argument to loadNamespace() (not relevant
since R 2.13.0) has been removed.
o Use of library.dynam() without specifying all the first three
arguments is deprecated. (It is often called from a namespace,
and the defaults are only appropriate to a package.)
Use of chname in library.dynam() with the extension .so or .dll
(which is clearly not allowed according to the help page) is
deprecated. This also applies to library.dynam.unload() and
useDynLib directives in NAMESPACE files.
o 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).
o The keep.source argument to library() and require() is
deprecated: it was only used for packages installed without
lazy-loading, and now all packages are lazy-loaded.
o Using a false value for the DESCRIPTION field LazyLoad is
o The base and recommended packages are now byte-compiled
(equivalent to make bytecode in R 2.13.x).
o Configure option --with-system-zlib now only makes use of the
basic interface of zlib and not the C function gzseek which has
shown erroneous behaviour in zlib 1.2.4 and 1.2.5.
o The zlib in the R sources is now version 1.2.5. (This is safe
even on 32-bit Linux systems because only the basic interface is
o The .afm files in package grDevices are now installed as
compressed files (as long done on Windows), saving ca 2MB on the
o The non-screen cairo-based devices are no longer in the X11
module and so can be installed without X11. (We have never seen
a Unix-alike system with cairographics installed but not X11, but
a user might select --without-x.)
o Configure will try to use -fobjc-exceptions for the Objective-C
compiler (if present) to ensure that even compilers that do not
enable exceptions by default (such as vanilla gcc) can be used.
(Objective-C is currently only used on Mac OS X.)
o The system call times is required.
o The C99 functions acosh, asinh, atanh, snprintf and vsnprintf are
o There is no longer support for making DVI manuals _via_ make dvi,
make install-dvi and similar. Only PDF manuals are supported (to
allow the use of fonts which are only available for PDF.)
o The configure arguments used during configuration of R are
included as a comment in Makeconf for informative purposes on
Unix-alikes in a form suitable for shell execution. Note that
those are merely command-line arguments, they do not include
environment variables (one more reason to use configure variables
instead) or site configuration settings.
o Framework installation now supports DESTDIR (Mac OS X only).
o Java detection (R CMD javareconf) works around bogus
java.library.path property in recent Oracle Java binaries.
o The locale category LC_MONETARY was only being set on startup on
Windows: that is now done on Unix-alikes where supported.
o Reference class utilities will detect an attempt to modify
methods or fields in a locked class definition (e.g., in a
namespace) and generate an error.
o The formula methods for lines(), points() and text() now work
even if package stats is not on the search path.
o In principle, S4 classes from different packages could have the
same name. This has not previously worked. Changes have now
been installed that should allow such classes and permit methods
to use them. New functions className() and multipleClasses() are
related tools for programming.
o Work around an issue in Linux (a system select call resetting tv)
which prevented internet operations from timing out properly.
o Several stack trampling and overflow issues have been fixed in
TRE, triggered by agrep and friends with long patterns.
o ("design infelicity") Field assignments in reference classes are
now consistent with slots in S4 classes: the assigned value must
come from the declared class (if any) for the field or from a
o The methods objects constructed for "coerce" and "coerce<-" were
lacking some essential information in the generic, defined and
target slots; as() did not handle duplicate class definitions
o The parser no longer accepts the digit 8 in an octal character
code in a string, nor does it accept unterminated strings in a
file. (Reported by Bill Dunlap.)
o The print() method for class "summary.aov" did not pass on
argument digits when summary() was called on a single object, and
hence used more digits than documented.
o The X11() device's cairo back-end produced incorrect capture
snapshot images on big-endian machines.
o loglin() gave a spurious error when argument margin consisted of
a single element of length one. (PR#14690)
o loess() is better protected against misuse, e.g. zero-length
o HoltWinters() checks that the optimization succeeded. (PR#14694)
o The (undocumented) inclusion of superclass objects in default
initializing of reference classes overwrote explicit field
arguments. The bug is fixed, the feature documented and a test
o round(x, -Inf) now does something sensible (return zero rather
o signif(x, -Inf) now behaves as documented (signif(x, 1)) rather
than giving zero.
o The "table" method for Axis() hardcoded side = 1, hence calls to
plot(<vector>, <table>) labelled the wrong axis. (PR#14699)
o Creating a connection might fail under gctorture(TRUE).
o stack() and unstack() converted character columns to factors.
unstack() sometimes produced incorrect results (a list or a
vector) if the factor on which to un-split had only one level.
o On some systems help(".C", help_type = "pdf") and similar
generated file names that TeX was unable to handle.
o Non-blocking listening socket connections continued to report
isIncomplete() as true even when the peer had closed down and all
available input had been read.
o The revised HTML search system now generates better hyperlinks to
help topics found: previously it gave problems with help pages
with names containing e.g. spaces and slashes.
o A late change in R 2.13.2 broke \Sexpr expressions in Rd files.
o The creation of ticks on log axes (including axTicks() sometimes
incorrectly omitted a tick at one end
o The creation of ticks on log axes (including by axTicks())
sometimes incorrectly omitted a tick at one end of the range by
rounding error in a platform-dependent way. This could be seen
in the examples for axTicks(), where with axis limits c(0.2, 88)
the tick for 0.2 was sometimes omitted.
o qgamma() for small shape underflows to 0 rather than sometimes
giving NaN. (PR#8528, PR#14710)
o mapply() now gives an explicit error message (rather than an
obscure one) is inputs of zero and positive length are mixed.
o Setting a Hershey font family followed by string height query
would crash R.
o 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.
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