R 3.0.3 is released

Peter Dalgaard pd.mes at cbs.dk
Thu Mar 6 09:35:38 CET 2014

The build system rolled up R-3.0.3.tar.gz (codename "Warm Puppy") this morning.

The list below details the changes in this release.

You can get the source code 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) = cbf6da8f886ccd8d0dda0cc7ffd1b8ec
MD5 (COPYING) = eb723b61539feef013de476e68b5c50a
MD5 (COPYING.LIB) = a6f89e2100d9b6cdffcea4f398e37343
MD5 (FAQ) = 84f8d8f310c4b6d7bd49c76c222ee0af
MD5 (INSTALL) = 3964b9119adeaab9ceb633773fc94aac
MD5 (NEWS) = 47fb73654407b2ccd61168105bb0eb9c
MD5 (NEWS.0) = bfcd7c147251b5474d96848c6f57e5a8
MD5 (NEWS.1) = eb78c4d053ec9c32b815cf0c2ebea801
MD5 (NEWS.2) = e840d32b7ef7a7603455d30d6d54fda7
MD5 (NEWS.html) = 4b349b74bbc762df22a32a707f1fc29c
MD5 (R-latest.tar.gz) = f9025976863847f2d0502254d0f0dbf2
MD5 (README) = e259ae5dd943b8547f0b7719664e815b
MD5 (RESOURCES) = c7cb32499ebbf85deb064aab282f93a4
MD5 (THANKS) = d4b45e302b7cad0fc4bb50d2cfe69649
MD5 (R-3/R-3.0.3.tar.gz) = f9025976863847f2d0502254d0f0dbf2

This is the relevant part of the NEWS file



    * On Windows there is support for making .texi manuals using
      texinfo 5.0 or later: the setting is in file

      A packaging of the Perl script and modules for texinfo 5.2 has
      been made available at <URL:

    * write.table() now handles matrices of 2^31 or more elements, for
      those with large amounts of patience and disc space.

    * There is a new function, La_version(), to report the version of
      LAPACK in use.

    * The HTML version of 'An Introduction to R' now has links to PNG
      versions of the figures.

    * There is some support to produce manuals in ebook formats. (See
      doc/manual/Makefile.  Suggested by Mauro Cavalcanti.)

    * On a Unix-alike Sys.timezone() returns NA if the environment
      variable TZ is unset, to distinguish it from an empty string
      which on some OSes means the UTC time zone.

    * The backtick may now be escaped in strings, to allow names
      containing them to be constructed, e.g. `\``.  (PR#15621)

    * read.table(), readLines() and scan() now warn when an embedded
      nul is found in the input.  (Related to PR#15625 which was
      puzzled by the behaviour in this unsupported case.)

    * (Windows only.)  file.symlink() works around the undocumented
      restriction of the Windows system call to backslashes.  (Wish of

    * KalmanForecast(fast = FALSE) is now the default, and the help
      contains an example of how fast = TRUE can be used in this
      version.  (The usage will change in 3.1.0.)

    * strptime() now checks the locale only when locale-specific
      formats are used and caches the locale in use: this can halve the
      time taken on OSes with slow system functions (e.g. OS X).

    * strptime() and the format() methods for classes "POSIXct",
      "POSIXlt" and "Date" recognize strings with marked encodings:
      this allows, for example, UTF-8 French month names to be read on
      (French) Windows.

    * iconv(to = "utf8") is now accepted on all platforms (some
      implementations did already, but GNU libiconv did not: however
      converted strings were not marked as being in UTF-8).  The
      official name, "UTF-8" is still preferred.

    * available.packages() is better protected against corrupt metadata
      files.  (A recurring problem with Debian package shogun-r:

    * Finalizers are marked to be run at garbage collection, but run
      only at a somewhat safer later time (when interrupts are
      checked).  This circumvents some problems with finalizers running
      arbitrary code during garbage collection (the known instances
      being running options() and (C-level) path.expand()


    * The included version of PCRE has been updated to 8.34.  This
      fixes bugs and makes the behaviour closer to Perl 5.18.  In
      particular, the concept of 'space' includes VT and hence agrees
      with POSIX's.


    * The new field SysDataCompression in the DESCRIPTION file allows
      user control over the compression used for sysdata.rda objects in
      the lazy-load database.

    * install.packages(dependencies = value) for value = NA (the
      default) or value = TRUE omits packages only in LinkingTo for
      binary package installs.


    * The long undocumented remapping of rround() to Rf_fround() in
      header Rmath.h is now formally deprecated: use fround() directly.

    * Remapping of prec() and trunc() in the Rmath.h header has been
      disabled in C++ code (it has caused breakage with libc++


    * getParseData() truncated the imaginary part of complex number
      constants.  (Reported by Yihui Xie.)

    * dbeta(x, a, b) with a or b within a factor of 2 of the largest
      representable number could infinite-loop.  (Reported by Ioannis

    * provideDimnames() failed for arrays with a 0 dimension.

    * rbind() and cbind() did not handle list objects correctly.

    * replayPlot() now checks if it is replaying a plot from the same

    * rasterImage() and grid.raster() now give error on an empty
      (zero-length) raster.  (Reported by Ben North.)

    * plot.lm() would sometimes scramble the labels in plot type 5.
      (PR#15458 and PR#14837)

    * min() did not handle NA_character_ values properly.  (Reported by
      Magnus Thor Torfason.)

    * (Windows only.)  readRegistry() would duplicate default values
      for keys.  (PR#15455)

    * str(..., strict.width = "cut") did not handle it properly when
      more than one line needed to be cut.  (Reported by Gerrit

    * Removing subclass back-references when S4 classes were removed or
      their namespace unloaded had several bugs (e.g., PR#15481).

    * aggregate() could fail when there were too many levels present in
      the by argument.  (PR#15004)

    * namespaceImportFrom() needed to detect primitive functions when
      checking for duplicated imports (reported by Karl Forner).

    * getGraphicsEvent() did not exit when a user closed the graphics
      window.  (PR#15208)

    * Errors in vignettes were not always captured and displayed
      properly.  (PR#15495)

    * contour() could fail when dealing with extremely small z values.

    * Several functions did not handle zero-length vectors properly,
      including browseEnv(), format(), gl(), relist() and
      summary.data.frame().  (E.g., PR#15499)

    * Sweave() did not restore the R output to the console if it was
      interrupted by a user in the middle of evaluating a code chunk.
      (Reported by Michael Sumner.)

    * Fake installs of packages with vignettes work again.

    * Illegal characters in the input caused parse() (and thus
      source()) to segfault.  (PR#15518)

    * The nonsensical use of nmax = 1 in duplicated() or unique() is
      now silently ignored.

    * qcauchy(p, *) is now fully accurate even when p is very close to
      1. (PR#15521)

    * The validmu() and valideta() functions in the standard glm()
      families now also report non-finite values, rather than failing.

    * Saved vignette results (in a .Rout.save file) were not being
      compared to the new ones during R CMD check.

    * Double-clicking outside of the list box (e.g. on the scrollbar)
      of a Tk listbox widget generated by tk_select.list() no longer
      causes the window to close. (PR#15407)

    * Improved handling of edge cases in parallel::splitindices().

    * HTML display of results from help.search() and ?? sometimes
      contained badly constructed links.

    * c() and related functions such as unlist() converted raw vectors
      to invalid logical vectors. (PR#15535)

    * (Windows only) When a call to system2() specified one of stdin,
      stdout or stderr to be a file, but the command was not found
      (e.g. it contained its arguments, or the program was not on the
      PATH), it left the file open and unusable until R terminated.
      (Reported by Mathew McLean.)

    * The bmp() device was not recording res = NA correctly: it is now
      recorded as 72 ppi.

    * Several potential problems with compiler-specific behaviour have
      been identified using the 'Undefined Behaviour Sanitizer' in
      conjunction with the clang compiler.

    * hcl() now honours NA inputs (previously they were mapped to

    * Some translations in base packages were being looked up in the
      main catalog rather than that for the package.

    * As a result of the 3.0.2 change about 'the last second before the
      epoch', most conversions which should have given NA returned that
      time.  (The platforms affected include Linux and OS X, but not
      Windows nor Solaris.)

    * rowsum() has more support for matrices and dataframes with 2^31
      or more elements. (PR#15587)

    * predict(<lm object>, interval = "confidence", scale =
      <something>) now works.  (PR#15564)

    * The bug fix in 3.0.2 for PR#15411 was too aggressive, and
      sometimes removed spaces that should not have been removed.

    * Running R code in a tcltk callback failed to set the busy flag,
      which will be needed to tell OS X not to 'App Nap'.

    * The code for date-times before 1902 assumed that the offset from
      GMT in 1902 was a whole number of minutes: that was not true of
      Paris (as recorded on some platforms).

    * Using Sys.setlocale to set LC_NUMERIC to "C" (to restore the sane
      behavior) no longer gives a warning.

    * deparse() now deparses complex vectors in a way that re-parses to
      the original values.  (PR#15534, patch based on code submitted by
      Alex Bertram.)

    * In some extreme cases (more than 10^15) integer inputs to
      dpqrxxx() functions might have been rounded up by one (with a
      warning about being non-integer).  (PR#15624)

    * Plotting symbol pch = 14 had the triangle upside down on some
      devices (typically screen devices). The triangle is supposed to
      be point up.  (Reported by Bill Venables.)

    * getSrcref() did not work on method definitions if
      rematchDefinition() had been used.

    * KalmanForecast(fast = FALSE) reported a (harmless) stack

    * The count of observations used by KalmanRun() did not take
      missing values into account.

    * In locales where the abbreviated name of one month is a partial
      match for the full name of a later one, the %B format in
      strptime() could fail.  An example was French on OS X, where juin
      is abbreviated to jui and partially matches juillet.  Similarly
      for weekday names.

    * pbeta(x, a, b, log.p = TRUE) sometimes underflowed to zero for
      very small and very differently sized a, b.  (PR#15641)

    * approx() and approxfun() now handle infinite values with the
      "constant" method. (PR#15655)

    * stripchart() again respects reversed limits in xlim and ylim.

Peter Dalgaard, Professor
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