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


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 (ONEWS) = a8c985af5ad5e9c7e0a9f502d07baeb4
MD5 (OONEWS) = 4f004de59e24a52d0f500063b4603bcb
MD5 (R-latest.tar.gz) = c6c1e866299f533617750889c729bfb3
MD5 (README) = 433182754c05c2cf7a04ad0da474a1d0
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


    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

            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().


    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)

    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
        .onUnload() hook functions (unless --install=fake).

    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

    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

    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
        menu: use ask="graphics" for a graphical menu.

    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

    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.

    o   Informational messages about masked objects displayed when a
        package is attached are now more compact, using strwrap()
        instead of one object per line.

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

    o   download.file() gains a "curl" method, mainly for use on
        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

    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

    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.)

    o   maintainer() has been added, to give convenient access to the
        name of the maintainer of a package (contributed by David

    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

        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)).


    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.


    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.


    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.)


    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

    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

    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

    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).

    o   read.fwf() misread multi-line records when n was specified.

    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
        those adjusted by the numeric 'fuzz": in recent versions the
        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
        names and give a more informative error message.  (PR#13936)

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

More information about the R-announce mailing list