R 2.14.0 is released

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

http://cran.r-project.org/src/base/R-2/R-2.14.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) = 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
      of R).

    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
      Administration Manual'.

    o axTicks(*, log=TRUE) has changed in some cases to satisfy the
      documented behavior and be consistent.

  NEW FEATURES:

    o txtProgressBar() can write to an open connection instead of the
      console.

    o Non-portable package names ending in . are no longer allowed.
      Nor are single-character package names (R was already
      disallowed).

    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
      used internally.

    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 =
      "Rao".

    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
      ?Classes.

    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
      previous plot.

    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
      Manual'.

    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
      reference classes.

    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
      issues, respectively.

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

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

    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
      and substitutions.

    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
      of PR#14638).

    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
      regular expression.

    o download.file() has an extra argument to pass additional
      command-line options to the non-default methods using
      command-line utilities.

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

    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.

  GRAPHICS DEVICES:

    o The pdf() device makes use of Flate compression: this is
      controlled by the new logical argument compress, and is enabled
      by default.

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

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

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

    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
      vignettes/.install_extras.

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

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

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

  C-LEVEL FACILITIES:

    o Function R_tmpnam2 has been added to the API to allow a temporary
      filename to include a specified extension.

  PACKAGE INSTALLATION:

    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.
      (PR#14669)

    o A top-level COPYING file in a package is no longer installed
      (file names LICENSE or LICENCE having long been preferred).

  UTILITIES:

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

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

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

    o The --no-docs option for R CMD build --binary is defunct: use
      --install-args instead.

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

  INSTALLATION:

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

    o The .afm files in package grDevices are now installed as
      compressed files (as long done on Windows), saving ca 2MB on the
      installed size.

    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
      now required.

    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.

  BUG FIXES:

    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.
      (PR#14627.)

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

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

    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
      span.  (PR#14691)

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

    o round(x, -Inf) now does something sensible (return zero rather
      than NA).

    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.



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