# R 2.11.0 is released

Peter Dalgaard pd.mes at cbs.dk
Thu Apr 22 11:01:10 CEST 2010

I've rolled up R-2.11.0.tar.gz a short while ago. This is a development
release which contains a number of new features.

Also, a number of mostly minor bugs have been fixed. See the full list
of changes below.

NOTE: The build platform has been changed for this release. Please watch out extra carefully for anomalies.

You can get it from

http://cran.r-project.org/src/base/R-2/R-2.11.0.tar.gz

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

Peter Dalgaard

These are the md5sums for the freshly created files, in case you wish
to check that they are uncorrupted:

MD5 (AUTHORS) = ac9746b4845ae866661f51cfc99262f5
MD5 (COPYING) = eb723b61539feef013de476e68b5c50a
MD5 (COPYING.LIB) = a6f89e2100d9b6cdffcea4f398e37343
MD5 (FAQ) = 5b653442bedab476a4eff7468192fb5f
MD5 (INSTALL) = 70447ae7f2c35233d3065b004aa4f331
MD5 (NEWS) = 59017734fb8474f98f994c7a5a27f9fb
MD5 (OONEWS) = 4f004de59e24a52d0f500063b4603bcb
MD5 (R-latest.tar.gz) = c6c1e866299f533617750889c729bfb3
MD5 (RESOURCES) = 020479f381d5f9038dcb18708997f5da
MD5 (THANKS) = f2ccf22f3e20ebaa86f8ee5cc6b0f655
MD5 (R-2/R-2.11.0.tar.gz) = c6c1e866299f533617750889c729bfb3

This is the relevant part of the NEWS file:

CHANGES IN R VERSION 2.11.0

SIGNIFICANT USER-VISIBLE CHANGES

o   Packages must have been installed under R >= 2.10.0, as the
current help system is the only one now supported.

o   A port to 64-bit Windows is now available as well as binary
package repositiories: see the 'R Administration and
Installation Manual'.

o   Argument matching for primitive functions is now done in the
same way as for interpreted functions except for the deliberate
exceptions

call switch .C .Fortran .Call .External

all of which use positional matching for their first argument,
and also some internal-use-only primitives.

o   The default device for command-line R at the console on Mac OS X
is now quartz() and not X11().

NEW FEATURES

o   The 'open' modes for connections are now interpreted more
consistently.  open = "r" is now equivalent to open = "rt" for
all connections.  The default open = "" now means "rt" for all
connections except the compressed file connections gzfile(),
bzfile() and xzfile() for which it means "rb".

o   R CMD INSTALL now uses the internal untar() in package utils:
this ensures that all platforms can install bzip2- and
xz-compressed tarballs.  In case this causes problems (as it
has on some Windows file systems when run from Cygwin tools)
it can be overridden by the environment variable
R_INSTALL_TAR: setting this to a modern external tar program
will speed up unpacking of large (tens of Mb or more)
tarballs.

o   help(try.all.packages = TRUE) is much faster (although the
time taken by the OS to find all the packages the first time
it is used can dominate the time).

o   R CMD check has a new option '--timings' to record
per-example timings in file <pkg>.Rcheck/<pkg>-Ex.timings.

o   The TRE library has been updated to version 0.8.0 (minor bugfixes).

o   grep[l], [g]sub and [g]regexpr now work in bytes in an 8-bit
locales if there is no marked UTF-8 input string: this will be
somewhat faster, and for [g]sub() give the result in the
native encoding rather than in UTF-8 (which returns to the
behaviour prior to R 2.10.0).

o   A new argument 'skipCalls' has been added to browser() so that
it can report the original context when called by other
debugging functions.

o   More validity checking of UTF-8 and MBCS strings is done by
agrep() and the regular-expression matching functions.

o   The undocumented restriction on gregexpr() to length(text) > 0
has been removed.

o   Package tcltk now sends strings to Tcl in UTF-8: this means
that strings with a marked UTF-8 encoding are supported in
non-UTF-8 locales.

o   The graphics engine now supports rendering of raster (bitmap)
images, though not all graphics devices can provide (full)
support.  Packages providing graphics devices (e.g., Cairo,
RSvgDevice, cairoDevice) will need to be reinstalled.

There is also support in the graphics engine for capturing
raster images from graphics devices (again not supported
on all graphics devices).

o   R CMD check now also checks if the package and namespace can
be unloaded: this provides a check of the .Last.lib() and

o   prop.table(x) now accepts a one-dimensional table for x.

o   A new function vapply() has been added, based on a suggestion
from Bill Dunlap.  It requires that a template for the
function value be specified, and uses it to determine the
output type and to check for consistency in the function
values.

o   The main HTML help page now links to a reformatted copy of
this NEWS file. (Suggested by Henrik Bengtsson.)  Package
index files link to the package DESCRIPTION and NEWS files and
a list of demos when using dynamic help.

o   The [ method for class "AsIs" allows the next method to change
the underlying class.  (Wish of Jens Oehlschlägel.)

o   write.csv[2] no longer allow 'append' to be changed: as ever,
direct calls to write.table() give more flexibility as well as
more room for error.

o   The index page for HTML help for a package now collapses
multiple signatures for S4 methods into a single entry.

o   The use of '.required' by require() and detach() has been
replaced by '.Depends' which is set from the 'Depends' field
of a package (even in packages with name spaces).  By default
detach() prevents such dependencies from being detached: this
can be overridden by the argument 'force'.

o   bquote() has been extended to work on function definitions
(wish of PR#14031).

o   detach() when applied to an object other than a package
returns the environment that has been detached, to parallel
attach().

o   readline() in non-interactive use returns "" and does not
attempt to read from the 'terminal'.

o   New function file_ext() in package 'tools'.

o   xtfrm() is now primitive and internally generic, as this allows
S4 methods to be set on it without name-space scoping issues.

There are now "AsIs" and "difftime" methods, and the default
method uses unclass(x) if is.numeric(x) is true (which will be
faster but relies on is.numeric() having been set correctly
for the class).

o   is.numeric(x) is now false for a "difftime" object
(multiplication and division make no sense for such objects).

o   The default method of weighted.mean(x, w) coerces 'w' to be
numeric (aka double); previously only integer weights were
coerced.  Zero weights are handled specially so an infinite
value with zero weight does not force an NaN result.

There is now a "difftime" method.

o   bug.report() now has 'package' and 'lib.loc' arguments to
generate bug reports about packages.  When this is used, it
looks for a BugReports field in the package DESCRIPTION file,
which will be assumed to be a URL at which to submit the
report, and otherwise generates an email to the package
maintainer.  (Suggested by Barry Rowlingson.)

o   quantile() now has a method for the date-time class "POSIXt",
and types 1 and 3 (which never interpolate) work for Dates and
ordered factors.

o   length(<POSIXlt>)  now returns the length of the corresponding
abstract timedate-vector rather than always 9 (the length of the
underlying list structure).  (Wish of PR#14073 and PR#10507.)

o   The readline completion backend no longer sorts possible
completions alphabetically (e.g., function argument names) if
R was built with readline >= 6.

o   select.list() gains a 'graphics' argument to allow Windows/Mac
users to choose the text interface.  This changes the
behaviour of new.packages(ask=TRUE) to be like
update.packages(ask=TRUE) on those platforms in using a text

o   New function chooseBioCmirror() to set the "BioC_mirror" option.

o   The R grammar prevents using the argument 'name' in signatures
of S4 methods for '$' and '$<-', since they will always be
called with a character string value for 'name'.  The implicit
S4 generic functions have been changed to reflect this:
packages which included 'name' in the signature of their
methods need to be updated and re-installed.

o   The handling of the 'method' argument of glm() has been
refined following suggestions by Ioannis Kosmidis and Heather
Turner.

o   str() gains a new argument 'list.len' with default 99, limiting the
number of list() items (per level), thanks to suggestions from
David Winsenius.

o   Having formal arguments of an S4 method in a different order
from the generic is now an error (the warning having been
ignored by some package maintainers for a long time).

o   New functions enc2native() and enc2utf8() convert character
vectors with possibly marked encodings to the current locale and
UTF-8 respectively.

o   Unrecognized escapes and embedded nuls in character strings are
now an error, not just a warning.  Thus option "warnEscapes"
is no longer needed.  rawToChar() now removes trailing nuls
silently, but other embedded nuls become errors.

package is attached are now more compact, using strwrap()
instead of one object per line.

o   print.rle() gains argument 'prefix'.

platforms which have 'curl' but not 'wget', but also for some
hard-to-access URLs.

o   In Rd, \eqn and \deqn will render in HTML (and convert to text)
upper- and lower-case Greek letters (entered as \alpha ...),
\ldots, \dots, \ge and \le.

o   utf8ToInt() and intToUtf8() now map NA inputs to NA outputs.

o   file() has a new argument 'raw' which may help if it is used
with something other than a regular file, e.g. a character device.

o   New function strtoi(), a wrapper for the C function strtol.

o   as.octmode() and as.hexmode() now allow inputs of length other
than one.

The format() and print() methods for "octmode" now preserve
names and dimensions (as those for "hexmode" did).

The format() methods for classes "octmode" and "hexmode" gain
a 'width' argument.

o   seq.int() returns an integer result in some further cases
where seq() does, e.g. seq.int(1L, 9L, by = 2L).

o   Added \subsection{}{} macro to Rd syntax, for subsections
within sections.

o   n-dimensional arrays with dimension names can now be indexed
by an n-column character matrix. The indices are matched
against the dimension names.  NA indices are propagated to the
result.  Unmatched values and "" are not allowed and result in
an error.

o   interaction(drop=TRUE) uses less memory (related to PR#14121).

o   summary() methods have been added to the "srcref" and
"srcfile" classes, and various encoding issues have been
cleaned up.

o   If option "checkPackageLicense" is set to TRUE (not currently
the default), users will be asked to agree to
non-known-to-be-FOSS package licences at first use.

o   Checking setAs(a,b) methods only gives a message instead of a
warning, when one of a or b is unknown.

o   New function norm() to compute a matrix norm.
norm() and also backsolve() and sample() have implicit S4 generics.

o   Renviron.site and Rprofile.site can have architecture-specific
versions on systems with sub-architectures.

o   R CMD check now (by default) also checks Rd files for
auto-generated content in need of editing, and missing argument
descriptions.

o   aggregate() gains a formula method thanks to a contribution by
Arni Magnusson.  The data frame method now allows summary
functions to return arbitrarily many values.

o   path.expand() now propagates NA values rather than converting them
to "NA".

o   file.show() now disallows NA values for file names, headers, and
pager.

o   The 'fuzz' used by seq() and seq.int() has been reduced from
1e-7 to 1e-10, which should be ample for the double-precision
calculations used in R.  It ensures that the fuzz never comes
into play with sequences of integers (wish of PR#14169).

o   The default value of RSiteSearch(restrict=) has been changed
to include vignettes but to exclude R-help.  The R-help
archives available have been split, with a new option of
"Rhelp10" for those from 2010.

o   New function rasterImage() in the 'graphics' package for drawing
raster images.

o   stats:::extractAIC.coxph() now omits aliased terms when computing
the degrees of freedom (suggestion of Terry Therneau).

o   cor() and cov() now test for misuse with non-numeric
arguments, such as the non-bug report PR#14207.

o   pchisq(ncp =, log.p = TRUE) is more accurate for probabilities
near one.  E.g. pchisq(80, 4, ncp=1, log.p=TRUE).  (Maybe what
was meant in PR#14126.)

name of the maintainer of a package (contributed by David
Scott).

o   sample() and sample.int() allow zero items to be sampled from
a zero-length input.  sample.int() gains a default value
'size=n' to be more similar to sample().

o   switch() returned NULL on error (not previously documented on
the help page): it now does so invisibly, analogously to
if-without-else.

It is now primitive: this means that EXPR is always matched to
the first argument and there is no danger of partial matching
to later named arguments.

o   Primitive functions UseMethod(), attr(), attr<-(), on.exit(),
retracemem() and substitute() now use standard argument
matching (rather than positional matching).  This means that
all multi-argument primitives which are not internal now use
standard argument matching except where positional matching is
desirable (as for switch(), call(), .C() ...).

o   All the one-argument primitives now check that any name
supplied for their first argument is a partial match to the
argument name as documented on the help page: this also
applies to replacement functions of two arguments.

o   base::which() uses a new .Internal function when arr.ind is
FALSE resulting in a 10x speedup.  Thanks to Patrick Aboyoun
for implementation suggestions.

o   Help conversion to text now uses the first part of \enc{}{}
markup if it is representable in the current output encoding.
On the other hand, conversion to LaTeX with the default
outputEncoding = "ASCII" uses the second part.

o   A new class "listOfMethods" has been introduced to represent
the methods in a methods table, to replace the deprecated
class "MethodsList".

o   any() and all() return early if possible.  This may speed up
operations on long vectors.

o   strptime() now accepts "%z" (for the offset from UTC in the
RFC822 format of +/-hhmm).

o   The PCRE library has been updated to version 8.02, a bug-fix
release which also updates tables to Unicode 5.02.

o   Functions which may use a graphical select.list() (including
menu() and install.packages()) now check on a Unix-alike that
Tk can be started (and not just
capabilities("tcltk") && capabilities("X11")).

o   The parser no longer marks strings containing octal or hex
escapes as being in UTF-8 when entered in a UTF-8 locale.

o   On platforms with cairo but not Pango (notably Mac OS X) the
initial default X11() type is set to "Xlib": this avoids
several problems with font selection when done by cairo rather
than Pango (at least on Mac OS X).

o   New arrayInd() such that which(x, arr.ind = TRUE) for an array
'x' is now equivalent to arrayInd(which(x), dim(x), dimnames(x)).

DEPRECATED & DEFUNCT

o   Bundles of packages are defunct.

o   stats::clearNames() is defunct: use unname().

o   Basic regular expressions are defunct, and strsplit(), grep(),
grepl(), sub(), gsub(), regexpr() and gregexpr() no longer
have an 'extended' argument.

o   methods::trySilent() is defunct.

o   index.search() (which was deprecated in 2.10.0) is no longer
exported and has a different argument list.

o   Use of multiple arguments to return() is now defunct.

o   The use of UseMethod() with more than two arguments is now defunct.

o   In the 'methods' package, the MethodsList metadata objects which
had been superseded by hash tables (environments) since R
2.8.0 are being phased out.  Objects of this class are no
longer assigned or used as metadata by the package.

getMethods() is now deprecated, with its internal use replaced
by findMethods() and other changes.  Creating objects from the
MethodsList class is also deprecated.

o   Parsing strings containing both octal/hex and Unicode escapes
now gives a warning and will become an error in R 2.12.0.

INSTALLATION

o   UTF-8 is now used for the reference manual and package
manuals.  This requires LaTeX '2005/12/01' or later.

o   configure looks for a POSIX compliant tr, Solaris's
/usr/ucb/tr having been found to cause Rdiff to malfunction.

o   configure is now generated with autoconf-2.65, which works
better on recent systems and on Mac OS X.

PACKAGE INSTALLATION

o   Characters in R source which are not translatable to the
current locale are now handled more tolerantly:  these will be
converted to hex codes with a warning.  Such characters are
only really portable if they appear in comments.

o   R CMD INSTALL now tests that the installed package can be loaded
(and backs out the installation if it cannot): this can be
suppressed by --no-test-load.  This avoids installing/updating
a package that cannot be used: common causes of failures to
load are missing/incompatible external software and
missing/broken dependent packages.

o   Package installation on Windows for a package with a src
directory now checks if a DLL is created unless there is a
src/Makefile.win file: this helps catch broken installations
where the toolchain has not reported problems in building the DLL.
(Note: this can be any DLL, not just one named <pkg-name>.dll.)

BUG FIXES

o   Using with(), eval() etc with a list with some unnamed
elements now works. (PR#14035)

o   The "quick" dispatch of S4 methods for primitive functions was
not happening, forcing a search each time.  (Dispatch for
closures was not affected.)  A side effect is that default
values for arguments in a method that do not have defaults in
the generic will now be ignored.

o   Trying to dispatch S4 methods for primitives during the search
for inherited methods slows that search down and potentially
could cause an infinite recursion.  An internal switch was
added to turn off all such methods from
findInheritedMethods().

o   R framework installation (on Mac OS X) would not work properly
if a rogue Resources directory was present at the top level.
Such a non-symlink will now be renamed to Resources.old (and
anything previously named Resources.old removed) as part of
the framework installation process.

o   The checks for conforming S4 method arguments could fail when
the signature of the generic function omitted some of the
formal arguments (in addition to ...).  Arguments omitted from
the method definition but conforming (per the documentation)
should now be ignored (treated as "ANY") in dispatching.

o   The computations for S4 method evaluation when '...' was in the
signature could fail, treating '...' as an ordinary symbol.
This has been fixed, for the known cases.

o   Various ar() fitting methods have more protection for singular
fits.

o   callNextMethod now works again with the drop= argument in [

o   parse() and parse_Rd() miscounted columns when multibyte UTF-8
characters were present.

o   Formatting of help pages has had minor improvements: extra
blank lines have been removed from the text format, and empty
package labels removed from HTML.

o   cor(A, B) where A has n x 1 and B a 1-dimensional array
segfaulted or gave an internal error.
(The case cor(B, A) was PR#7116.)

o   cut.POSIXt() applied to a start value after the DST transition
on a DST-change day could give the wrong time for 'breaks' in units
of days or longer.  (PR#14208)

o   do_par() UNPROTECTed too early (PR#14214)

o   subassignment x[[....]] <- y didn't check for a zero-length
right hand side, and inserted rubbish value. (PR#14217)

o   fisher.test() no longer gives a P-value *very* slightly > 1,
in some borderline cases.

o   Internal function matchArgs no longer modifies the general
purpose bits of the SEXPs 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.

o   gsub() in 2.10.x could fail from stack overflow for extremely
long strings due to temporary data being allocated on the
stack.  Also, gsub() with fixed=TRUE is in some circumstances
considerably faster.

o   Several primitives, including attributes(), attr<-()
interactive(), nargs() and proc.time(), did not check that
they were called with the correct number of arguments.

o   A potential race condition in list.files() when other processes
are operating on the directory has been fixed; the code now
dynamically allocates memory for file listings in a single
pass instead of making an initial count pass.

o   mean(x, trim=, na.rm = FALSE) failed to return NA if 'x'
contained missing values.  (Reported by Bill Dunlap.)

o   Extreme tail behavior of, pbeta() {and hence pf()}, e.g.,
pbeta(x, 3, 2200, lower.tail=FALSE, log.p=TRUE) now returns
finite values instead of jumping to -Inf too early (PR#14230).

o   parse(text=x) misbehaved for objects 'x' that were not coerced
internally to character, notably symbols.  (Reported to
R-devel by Bill Dunlap.)

o   The internal C function 'coerceSymbol' now handles coercion to
character, and warns if coercion fails (rather than silently
returning NULL).  This allows a name to be given where a
character vector is required in functions which coerce
internally.

o   The interpretation by strptime() of %c was non-standard (not
that it is ever advisable to use locale- and system-specific
input formats).

o   capabilities("X11") now works the same way on Mac OS X as on
other platforms (and as documented: it was always true for R
built with --with-aqua, as the CRAN builds are).

o   The X11() device with cairo but not Pango (notably Mac OS X)
now checks validity of text strings in UTF-8 locales (since
Pango does but cairo it seems does not).

(PR#14241)

o   all.equal(*, tolerance = e) passes the numeric tolerance also to
the comparison of the attributes.

o   pgamma(0,0), a boundary case, now returns 0, its limit from the
left, rather than the limit from the right.

o   Issuing POST requests to the internal web server could stall
the request under certain circumstances.

o   gzcon( <textConnection> ), an error, no longer damages the
connection (in a way to have it seg.fault). (PR#14237)

o   All the results from hist() now use the nominal 'breaks' not
nominal 'breaks' were reported but the 'density' referred to
the intervals used in the calculation -- which mattered very
slightly for one of the extreme bins.  (Based on a report by
Martin Becker.)

o   If xy[z].coords (used internally by many graphics functions) are
given a list as 'x', they now check that the list has suitable

--
Peter Dalgaard
Center for Statistics, Copenhagen Business School
Solbjerg Plads 3, 2000 Frederiksberg, Denmark
Phone: (+45)38153501
Email: pd.mes at cbs.dk  Priv: PDalgd at gmail.com