This blog is updated daily.
A general description is here.
This is formal notice that the non-API EISPACK entry points in R will be removed shortly.
The ‘tcltk’ namespace can now be re-loaded after unloading.
The Tcl/Tk event loop is inhibited in a forked child from package ‘parallel’ (as in e.g. ‘mclapply()’).
On unix ‘Rscript’ will pass the ‘r_arch’ setting it was compiled with on to the R process so that the architecture of ‘Rscript’ and that of R will match unless overridden.
‘lgamma(x)’ for very small ‘x’ (in the denormalized range) is no longer
‘Inf’ with a warning.
‘image()’ now sorts an unsorted ‘breaks’ vector, with a warning.
The internal methods for ‘tar()’ and ‘untar()’ do a slightly more
general job for ‘ustar’-style handling of paths of more than 100 bytes.
Packages ‘compiler’ and ‘parallel’ have been added to the reference
index (‘refman.pdf’).
‘untar(tar = "internal")’ has some support for ‘pax’ headers as
produced by e.g. ‘gnutar --posix’ (which seems prevalent on OpenSUSE
12.2) or ‘bsdtar --format pax’, including long path and link names.
‘sQuote()’ and ‘dQuote()’ now handle 0-length inputs. (Suggestion of
Ben Bolker.)
‘summaryRprof()’ returns zero-row data frames rather than throw an
error if no events are recorded, for consistency.
The included version of PCRE has been updated to 8.32.
The ‘tcltk’ namespace can now be re-loaded after unloading.
The Tcl/Tk event loop is inhibited in a forked child (as in e.g. ‘mclapply()’.
The default for ‘TAR’ on Windows for ‘R CMD build’ has been changed to
be ‘internal’ if no ‘tar’ command is on the path.
This enables most packages to be built ‘out of the box’ without ‘Rtools’: the main exceptions are those which need to be installed to re-build vignettes and need ‘Rtools’ for installation (usually because they contain compiled code).
On a 64-bit Windows platform with enough RAM, ‘R_alloc’ can now
allocate up to just under 32GB like other 64-bit platforms.
Use of ‘col2rgb(0)’ is deprecated (see the help page for its
limitations).
The deprecated ‘intensities’ component returned by ‘hist()’ is no
longer recognized by the ‘plot()’ method and will be removed in R
3.0.0.
‘real()’, ‘as.real()’ and ‘is.real()’ are now formally deprecated and
give a warning.
The ‘configure’ tests for Objective C and Objective C++ now work on Mac
OS 10.8 with Xcode 4.5.2 (PR#15107).
The cairo-based versions of ‘X11()’ now work with current versions of
cairographics (e.g. 1.12.10). (PR#15168)
A workaround for earlier versions of R is to use ‘X11.options(type = "nbcairo")’.
Configuration and ‘R CMD javareconf’ now come up with a smaller set of
library paths for Java on Oracle-format JDK (including OpenJDK). This
helps avoid conflicts between libraries (such as ‘libjpeg’) supplied in
the JDK and system libraries. This can always be overridden if needed:
see the ‘R Installation and Administration’ manual.
‘beta(a, b)’ could overflow to infinity in its calculations when one of
‘a’ and ‘b’ was less than one. (PR#15075)
‘lbeta(a, b)’ no longer gives ‘NaN’ if ‘a’ or ‘b’ is very small (in the
denormalized range).
‘bquote()’ is now able to substitute default arguments in
single-argument functions. (PR#15077)
‘browseEnv(html = FALSE)’ would segfault if called from R (not ‘R.app’)
on a CRAN-style Mac OS X build of R.
‘[[<-’ for lists (generic vectors) needed to increment ‘NAMED’ count
when RHS is used more than once. (PR#15098)
On Windows, warnings about opening a file or pipe with a non-ASCII
description were sometimes output in UTF-8 rather than in the current
locale's character set.
The ‘call()’ function did not duplicate its arguments. (PR#15115)
‘TukeyHSD()’ could give ‘NA’ results with some ‘na.action’ methods such
as ‘na.exclude()’. (Hinted at on R-help by John Fox.)
The deprecated ‘svd(X, LINPACK = TRUE)’ could alter ‘X’ in R 2.15.[12].
(Reported by Bill Dunlap.)
Under Windows, ‘file.link()’ and ‘file.symlink()’ used the link name
twice, so would always fail. (Reported by Rui Barradas/Oliver Soong).
‘summaryRprof(memory = "both")’ mixed up the units of Vcells and
Ncells: it now works in bytes. (PR#15138)
‘tools::Rd2HTML()’ would sometimes delete text. (PR#15134)
‘plot()’ failed for ‘"table"’ objects containing just one entry.
(PR#15118)
‘embedFonts()’ needed to quote some filepaths. (PR#15149)
‘parallel::mccollect()’ handled ‘NULL’ returns incorrectly (removing
the element rather than setting it to ‘NULL’).
The full reference index (‘fullrefman.pdf’) was missing packages
‘compiler’ and ‘parallel’.
The report for ‘optim(method = "L-BFGS-B", control = list(trace = 1))’
reported the last completed and not the current iteration, unlike other
methods and trace levels. (PR#15103)
‘qt(1e-12, 1.2)’ no longer gives ‘NaN’.
‘dt(1e160, 1.2, log=TRUE)’ no longer gives ‘-Inf’.
On Windows the ‘untar()’ function now quotes the directory name when
using an external ‘tar’ utility, so ‘R CMD check’ will handle pathnames
containing spaces.
The version for Windows 8 and Windows Server 2012 is now displayed by
‘win.version()’. (Reported by Gabor Grothendieck.)
The custom Windows installer target ‘myR’ in the installer ‘Makefile’
did not work in 2.15.2. (Reported by Erich Neuwirth.)
‘aperm(matrix(1:6, 2, dimnames=list(A={}, B={})), "A")’ no longer
segfaults.
Expressions involving user defined operators were not always deparsed
faithfully. (PR#15179)
The ‘enc2utf8()’ function converted ‘NA_character_’ to ‘"NA"’ in
non-UTF-8 locales. (PR#15201)
The ‘exclude’ argument to ‘xtabs()’ was ignored for ‘"factor"’
arguments.
On Windows, work around an event-timing problem when the RGui console
was closed from the ‘X’ control and the closure cancelled. (This would
on some 64-bit systems crash R, typically those with a slow GPU
relative to the CPU.)
‘lgamma(x)’ for very small ‘x’ (in the denormalized range) is no longer ‘Inf’ with a warning.
‘image()’ now sorts an unsorted ‘breaks’ vector, with a warning.
The internal methods for ‘tar()’ and ‘untar()’ do a slightly more general job for ‘ustar’-style handling of paths of more than 100 bytes.
Packages ‘compiler’ and ‘parallel’ have been added to the reference index (‘refman.pdf’).
‘untar(tar = "internal")’ has some support for ‘pax’ headers as produced by e.g. ‘gnutar --posix’ (which seems prevalent on OpenSUSE 12.2) or ‘bsdtar --format pax’, including long path and link names.
‘sQuote()’ and ‘dQuote()’ now handle 0-length inputs. (Suggestion of Ben Bolker.)
‘summaryRprof()’ returns zero-row data frames rather than throw an error if no events are recorded, for consistency.
The included version of PCRE has been updated to 8.32.
The ‘tcltk’ namespace can now be re-loaded after unloading.
The Tcl/Tk event loop is inhibited in a forked child from package ‘parallle’ (as in e.g. ‘mclapply()’.
‘parallel::makeCluster()’ recognizes the value ‘random’ for the environment variable ‘R_PARALLEL_PORT’: this chooses a random value for the port and reduces the chance of conflicts when multiple users start a cluster at the same time.
The default for ‘TAR’ on Windows for ‘R CMD build’ has been changed to be ‘internal’ if no ‘tar’ command is on the path.
This enables most packages to be built ‘out of the box’ without ‘Rtools’: the main exceptions are those which need to be installed to re-build vignettes and need ‘Rtools’ for installation (usually because they contain compiled code).
On a 64-bit Windows platform with enough RAM, ‘R_alloc’ can now allocate up to just under 32GB like other 64-bit platforms.
Use of ‘col2rgb(0)’ is deprecated (see the help page for its limitations).
The deprecated ‘intensities’ component returned by ‘hist()’ is no longer recognized by the ‘plot()’ method and will be removed in R 3.0.0.
‘real()’, ‘as.real()’ and ‘is.real()’ are now formally deprecated and give a warning.
The ‘configure’ tests for Objective C and Objective C++ now work on Mac OS 10.8 with Xcode 4.5.2 (PR#15107).
The cairo-based versions of ‘X11()’ now work with current versions of cairographics (e.g. 1.12.10). (PR#15168)
A workaround for earlier versions of R is to use ‘X11.options(type = "nbcairo")’.
Configuration and ‘R CMD javareconf’ now come up with a smaller set of library paths for Java on Oracle-format JDK (including OpenJDK). This helps avoid conflicts between libraries (such as ‘libjpeg’) supplied in the JDK and system libraries. This can always be overridden if needed: see the ‘R Installation and Administration’ manual.
‘beta(a, b)’ could overflow to infinity in its calculations when one of ‘a’ and ‘b’ was less than one. (PR#15075)
‘lbeta(a, b)’ no longer gives ‘NaN’ if ‘a’ or ‘b’ is very small (in the denormalized range).
‘bquote()’ is now able to substitute default arguments in single-argument functions. (PR#15077)
‘browseEnv(html = FALSE)’ would segfault if called from R (not ‘R.app’) on a CRAN-style Mac OS X build of R.
‘[[<-’ for lists (generic vectors) needed to increment ‘NAMED’ count when RHS is used more than once. (PR#15098)
On Windows, warnings about opening a file or pipe with a non-ASCII description were sometimes output in UTF-8 rather than in the current locale's character set.
The ‘call()’ function did not duplicate its arguments. (PR#15115)
‘TukeyHSD()’ could give ‘NA’ results with some ‘na.action’ methods such as ‘na.exclude()’. (Hinted at on R-help by John Fox.)
The deprecated ‘svd(X, LINPACK = TRUE)’ could alter ‘X’ in R 2.15.[12]. (Reported by Bill Dunlap.)
Under Windows, ‘file.link()’ and ‘file.symlink()’ used the link name twice, so would always fail. (Reported by Rui Barradas/Oliver Soong).
‘summaryRprof(memory = "both")’ mixed up the units of Vcells and Ncells: it now works in bytes. (PR#15138)
‘tools::Rd2HTML()’ would sometimes delete text. (PR#15134)
‘plot()’ failed for ‘"table"’ objects containing just one entry. (PR#15118)
‘embedFonts()’ needed to quote some filepaths. (PR#15149)
‘parallel::mccollect()’ handled ‘NULL’ returns incorrectly (removing the element rather than setting it to ‘NULL’).
The full reference index (‘fullrefman.pdf’) was missing packages ‘compiler’ and ‘parallel’.
The report for ‘optim(method = "L-BFGS-B", control = list(trace = 1))’ reported the last completed and not the current iteration, unlike other methods and trace levels. (PR#15103)
‘qt(1e-12, 1.2)’ no longer gives ‘NaN’.
‘dt(1e160, 1.2, log=TRUE)’ no longer gives ‘-Inf’.
On Windows the ‘untar()’ function now quotes the directory name when using an external ‘tar’ utility, so ‘R CMD check’ will handle pathnames containing spaces.
The version for Windows 8 and Windows Server 2012 is now displayed by ‘win.version()’. (Reported by Gabor Grothendieck.)
The custom Windows installer target ‘myR’ in the installer ‘Makefile’ did not work in 2.15.2. (Reported by Erich Neuwirth.)
‘aperm(matrix(1:6, 2, dimnames=list(A={}, B={})), "A")’ no longer segfaults.
Expressions involving user defined operators were not always deparsed faithfully. (PR#15179)
The ‘enc2utf8()’ function converted ‘NA_character_’ to ‘"NA"’ in non-UTF-8 locales. (PR#15201)
The ‘exclude’ argument to ‘xtabs()’ was ignored for ‘"factor"’ arguments.
On Windows, work around an event-timing problem when the RGui console was closed from the ‘X’ control and the closure cancelled. (This would on some 64-bit systems crash R, typically those with a slow GPU relative to the CPU.)
Expressions involving user defined operators were not always deparsed
faithfully (PR#15179), nor were those involving calls to anonymous
functions (the latter reported by Hadley Wickham).
Expressions involving user defined operators were not always deparsed faithfully. (PR#15179)
Expressions involving user defined operators were not always deparsed faithfully (PR#15179), nor were those involving calls to anonymous functions (the latter reported by Hadley Wickham).
On Windows, work around an event-timing problem when the RGui console was closed from the ‘X’ control and the closure cancelled. (This would on some 64-bit systems crash R, typically those with a slow GPU relative to the CPU.)
Configuration and ‘R CMD javareconf’ now come up with a smaller set of library paths for Java on Oracle-format JDK (including OpenJDK). This helps avoid conflicts between libraries (such as ‘libjpeg’) supplied in the JDK and system libraries. This can always be overridden if needed: see the ‘R Installation and Administration’ manual.
‘qgeom()’ could return ‘-1’ for extremely small ‘q’. (PR#14967)
‘smooth.spline()’ used ‘DUP = FALSE’ which allowed its compiled C code to change the function: this was masked by the default byte-compilation. (PR#14965)
On OS X, the Quartz versions of the bitmap devices did not respect ‘antialias = "none"’. (PR#15006)
The detection of the C stack direction is better protected against compiler optimization. (PR#15011)
Long custom line types would sometimes segfault on the cairographics-based devices. (PR#15055)
Closed the ‘<li>’ tag in pages generated by ‘ Rd2HTML()’. (PR#14841)
Axis tick marks could go out of range when a log scale was used. (PR#14833)
The ‘exclude’ argument to ‘xtabs()’ was ignored for ‘"factor"’ arguments.
The ‘enc2utf8()’ function converted ‘NA_character_’ to ‘"NA"’ in non-UTF-8 locales. (PR#15201)
The ‘tcltk’ namespace can now be re-loaded after unloading.
The Tcl/Tk event loop is inhibited in a forked child (as in e.g. ‘mclapply()’.
The ‘tcltk’ namespace can now be re-loaded after unloading on Unix-alike.
The Tcl/Tk event loop is inhibited in a forked child (as in e.g. ‘mclapply()’.
The included version of PCRE has been updated to 8.32.
Expressions involving user defined operators were not always deparsed faithfully. (PR#15179)
The cairo-based versions of ‘X11()’ now work with current versions of cairographics (e.g. 1.12.10). (PR#15168)
A workaround for earlier versions of R is to use ‘X11.options(type = "nbcairo")’.
The ‘configure’ tests for Objective C and Objective C++ now work on Mac OS 10.8 with Xcode 4.5.2 (PR#15107).
‘aperm(matrix(1:6, 2, dimnames=list(A={}, B={})), "A")’ no longer segfaults.
The version for Windows 8 and Windows Server 2012 is now displayed by ‘win.version()’. (Reported by Gabor Grothendieck.)
The custom Windows installer target ‘myR’ in the installer ‘Makefile’ did not work in 2.15.2. (Reported by Erich Neuwirth.)
‘summaryRprof()’ returns zero-row data frames rather than throw an error if no events are recorded, for consistency.
‘real()’, ‘as.real()’ and ‘is.real()’ are now formally deprecated and give a warning.
‘summaryRprof()’ returns zero-row data frames rather than tnrow an error if no events are recorded, for consistency.
The default for ‘TAR’ on Windows for ‘R CMD build’ has been changed to be ‘internal’ if no ‘tar’ command is on the path.
This enables most packages to be built ‘out of the box’ without ‘Rtools’: the main exceptions are those which need to be installed to re-build vignettes and need ‘Rtools’ for installation (usually because they contain compiled code).
The deprecated ‘intensities’ component returned by ‘hist()’ is no longer recognized by the ‘plot()’ method and will be removed in R 3.0.0.
‘sQuote()’ and ‘dQuote()’ now handle 0-length inputs. (Suggestion of Ben Bolker.)
‘untar(tar = "internal")’ has some support for ‘pax’ headers as produced by e.g. ‘gnutar --posix’ (which seems prevalent on OpenSUSE 12.2) or ‘bsdtar --format pax’, including long path and link names.
‘dt(1e160, 1.2, log=TRUE)’ no longer gives ‘-Inf’.
‘qt(1e-12, 1.2)’ no longer gives ‘NaN’.
On Windows the ‘untar()’ function now quotes the directory name when using an external ‘tar’ utility, so ‘R CMD check’ will handle pathnames containing spaces.
The ‘configure’ tests for Objective C and Objective C++ should now work on Mac OS 10.8 with Xcode 4.5.2 (PR#15107).
The report for ‘optim(method = "L-BFGS-B", control = list(trace = 1))’ reported the last completed and not the current iteration, unlike other methods and trace levels. (PR#15103)
Packages ‘compiler’ and ‘parallel’ have been added to the reference index (‘refman.pdf’).
The full reference index (‘fullrefman.pdf’) was missing packages ‘compiler’ and ‘parallel’.
‘R CMD check’ now checks for ‘.C()’, ‘.Call()’, ‘.External()’ and ‘.Fortran()’ calls in other packages, and gives a warning on those found from R itself (which are not part of the API and change without notice: many will be changed for R 3.0.0).
Package ‘parallel’ has been added to the reference index (‘refman.pdf’.
The full reference index (‘fullrefman.pdf’) was missing packages ‘compiler’, ‘parallel’ and ‘splines’.
The internal methods for ‘tar()’ and ‘untar()’ do a slightly more general job for ‘ustar’-style handling of paths of more than 100 bytes.
‘plot()’ failed for ‘"table"’ objects containing just one entry. (PR#15118)
‘embedFonts()’ needed to quote some filepaths. (PR#15149)
‘parallel::mccollect()’ handled ‘NULL’ returns incorrectly (removing the element rather than setting it to ‘NULL’).
Under Windows, ‘file.link()’ and ‘file.symlink()’ used the link name twice, so would always fail. (Reported by Rui Barradas/Oliver Soong).
‘tools::Rd2HTML()’ would sometimes delete text. (PR#15134)
‘R_SVN_REVISION’ in ‘Rversion.h’ is now an integer and hence usable as
e.g. ‘#if R_SVN_REVISION < 70000’.
‘summaryRprof(memory = "both")’ mixed up the units of Vcells and Ncells: it now works in bytes. (PR#15138)
On a 64-bit Windows platform with enough RAM, ‘R_alloc’ can now allocate up to just under 32GB like other 64-bit platforms.
Use of ‘col2rgb(0)’ is deprecated (see the help page for its limitations).
‘R CMD check’ now checks for ‘.C()’, ‘.Call()’, ‘.External()’ and ‘.Fortran()’ calls in other packages, and gives a warning on those found from R itself (which are not part of the API and change without notice: many will changed for R 3.0.0).
Entry point ‘rcont2’ is no longer part of the API, and will move to package ‘stats’ in R 3.0.0.
In Windows, ‘file.link()’ and ‘file.symlink()’ used the link name twice, so would always fail. (Reported by Rui Barradas/Oliver Soong).
The deprecated ‘svd(X, LINPACK = TRUE)’ could alter ‘X’ in R 2.15.[12]. (Reported by Bill Dunlap.)
The default for ‘TAR’ on Windows for ‘R CMD build’ has been changed to be ‘internal’ if no ‘tar’ command is on the path.
This enables most packages to be built ‘out of the box’ without ‘Rtools’: the main exceptions are those which need to be installed to re-build vignettes and need ‘Rtools’ for installation.
‘TukeyHSD()’ could give ‘NA’ results with some ‘na.action’ methods such as ‘na.exclude()’. (Hinted at on R-help by John Fox.)
‘[[<-’ for generic vectors needed to increment ‘NAMED’ count when RHS
is used more than once. (PR#15098.)
‘[[<-’ for lists (generic vectors) needed to increment ‘NAMED’ count when RHS is used more than once. (PR#15098)
On Windows, warnings about opening a file or pipe with a non-ASCII description were sometimes output in UTF-8 rather than in the current locale's character set.
The ‘call()’ function did not duplicate its arguments. (PR#15115)
‘[[<-’ for generic vectors needed to increment ‘NAMED’ count when RHS is used more than once. (PR#15098.)
‘R_SVN_REVISION’ in ‘Rversion.h’ is now an integer and hence usable as e.g. ‘#if R_SVN_REVISION < 70000’.
‘browseEnv(html = FALSE)’ would segfault if called from R (not ‘R.app’) on a CRAN-style Mac OS X build of R.
‘lgamma(x)’ for very small ‘x’ (in the denormalized range) is no longer ‘Inf’ with a warning.
‘image()’ now sorts an unsorted ‘breaks’ vector, with a warning.
‘beta(a, b)’ could overflow to infinity in its calculations when one of ‘a’ and ‘b’ was less than one. (PR#15075)
‘lbeta(a, b)’ no longer gives ‘NaN’ if ‘a’ or ‘b’ is very small (in the denormalized range).
‘bquote()’ is now able to substitute default arguments in single-argument functions. (PR#15077)
‘R_SVN_REVISION’ in ‘Rversion.h’ is now an integer and hence usable as e.g. ‘#if R_SVN_REVSION < 70000’.
The ‘X11()’ window gains an icon: the latter may be especially useful
on Ubuntu's ‘Unity’ interface.
The ‘WM_CLASS’ should be set in circumstances where the Window Manager failed to make use of X11 resource settings.
(Contributed by Philip Johnson.)
The ‘"Date"’ and ‘"POSIXt"’ methods for ‘cut()’ will accept an unsorted
‘breaks’ argument (as the default method does, although this was
undocumented). (Wish of PR#14961.)
Reference class methods (in the ‘methods’ package) that use other
methods in an indirect way (e.g., by ‘sapply()’) must tell the code
analysis to include that method. They can now do so by invoking
‘$usingMethods()’.
More Polish translations are available: for the ‘RGui’ menus and for
several recommended packages.
Multistratum MANOVA works. In fact, it seems to have done so for years
in spite of the help page claiming it did not.
‘qqline()’ has new optional arguments ‘distribution’, ‘probs’ and
‘qtype’, following the example of ‘lattice’'s ‘panel.qqmathline()’.
The handling of single quotes in the ‘en@quot’ pseudo-language has been
slightly improved. Double quotes are no longer converted.
New functions ‘checkPoFiles()’ and ‘checkPoFile()’ have been added to
the ‘tools’ package to check for consistency of format strings in
translation files.
‘model.matrix(~1, ...)’ now also contains the same rownames that less
trivial formulae produce. (Wish of PR#14992, changes the output of
several packages.)
Misuse of ‘rep()’ on undocumented types of objects (e.g. calls) is now
reported as an error.
The included LAPACK has been updated to 3.4.1, with some patches from
the current SVN sources. (_Inter alia_, this resolves PR#14692.)
‘file.copy(recursive = TRUE)’ has some additional checks on user error
leading to attempted infinite recursion (and on some platforms to
crashing R).
PCRE has been updated to version 8.31, a bug-fix release.
The included version of ‘liblzma’ has been updated to version 5.0.4, a
minor bug-fix release.
New function ‘.bincode()’, a ‘bare-bones’ version of
‘cut.default(labels = FALSE)’ for use in packages with ‘image()’
methods.
The HTML manuals now use directional single quotes.
‘maintainer()’ now converts embedded new lines to spaces. It no longer
gives a non-obvious error for non-installed packages.
The ‘X11()’ device has some protection against being used with forked
processes _via_ package ‘parallel’.
Setting the environment variable ‘R_OSX_VALGRIND’ (to any value) allows
R to be run under ‘valgrind’ on Mac OS 10.6 and 10.7 (‘valgrind’
currently has very limited support for 10.8), provided ‘system()’ is
not used (directly or indirectly). This should not be needed for
‘valgrind’ >= 3.8.1.
The ‘model.frame()’ method for ‘"lm"’ uses ‘xlevels’: this is safer if
‘data’ was supplied or ‘model = FALSE’ was used and the levels of
factors used in the fit had been re-ordered since fitting.
Similarly, ‘model.frame(fm, data=<data>)’ copies across the variables used for safe prediction from the fit.
Functions such as ‘parLapply()’ in package ‘parallel’ can make use of a
default cluster if one is set. (Reported by Martin Morgan.)
‘chol(pivot = TRUE, LINPACK = FALSE)’ is now available using LAPACK 3.2
subroutine ‘DPSTRF’.
The functions ‘.C()’, ‘.Call()’, ‘.External()’ and ‘.Fortran()’ now
check that they are called with an unnamed first argument: the formal
arguments were changed from ‘name=’ to ‘.NAME=’ in R 2.13.0, but some
packages were still using the old name. This is currently a warning,
but will be an error in future.
‘step()’ no longer tries to improve a model with AIC of ‘-Inf’ (a
perfect fit).
‘spline()’ and ‘splinefun()’ gain a new method ‘"hyman"’, an
implementation of Hyman's method of constructing monotonic
interpolation splines. (Based on contributions of Simon Wood and Rob
Hyndman.)
On Windows, the C stack size has been increased to 64MB (it has been
10MB since the days of 32MB RAM systems).
‘array()’ is now implemented in C code (for speed) when ‘data’ is
atomic or an unclassed list (so it is known that ‘as.vector(data)’ will
have no class to be used by ‘rep()’).
‘rep()’ is faster and uses less memory, substantially so in some common
cases (e.g. if ‘times’ is of length one or ‘length.out’ is given, and
‘each = 1’).
‘findInterval()’, ‘tabulate()’, ‘cut()’, ‘hist()’ and ‘image.default()’
all use ‘.Call()’ and are more efficient.
‘duplicated()’, ‘unique()’ and similar now support vectors of lengths
above 2^29 on 64-bit platforms.
Omitting ‘PACKAGE’ in ‘.C()’ etc calls was supposed to make use of the
DLL from the namespace within which the enclosing function was defined.
It was less successful in doing so than it might be, and gave no
indication it had failed.
A new search strategy is very successful and gives a warning when it fails. In most cases this is because the entry point is not actually provided by that package (and so ‘PACKAGE’ should be used to indicate which package is intended) but in some the namespace does not have a DLL specified by a ‘useDynLib()’ directive so ‘PACKAGE’ is required.
‘R CMD check’ now checks if a package can be loaded by
‘library(pkgname, lib.loc = "somewhere")’ without being on the library
search path (unless it is already installed in ‘.Library’, when it
always will be).
‘R CMD check --as-cran’ notes ‘hidden’ files and directories (with
names starting with a dot) that are not needed for the operation of ‘R
CMD INSTALL’ or ‘R CMD build’: such files should be excluded from the
published tarball.
‘R CMD check’ (if checking subdirectories) checks that the R code in
any demos is ASCII and can be parsed, and warns if not.
When ‘R CMD Rd2pdf’ is used with ‘inputenx.sty’, it allows further
characters (mainly for Eastern European languages) by including
‘ix-utf8enc.dfu’ (if available). (Wish of PR#14989.)
‘R CMD build’ now omits several types of hidden files/directories,
including ‘inst/doc/.Rinstignore’, ‘vignettes/.Rinstignore’,
(‘.Rinstignore’ should be at top level), ‘.deps’ under ‘src’,
‘.Renviron’, ‘.Rprofile’, ‘.Rproj.user’, ‘.backups’, ‘.cvsignore’,
‘.cproject’, ‘.directory’, ‘.dropbox’, ‘.exrc’, ‘.gdb.history’,
‘.gitattributes’, ‘.gitignore’, ‘.gitmodules’, ‘.hgignore’, ‘.hgtags’,
‘.htaccess’, ‘.latex2html-init’, ‘.project’, ‘.seed’, ‘.settings’,
‘.tm_properties’ and various leftovers.
‘R CMD check’ now checks for ‘.C()’, ‘.Call()’, ‘.External()’ and
‘.Fortran()’ calls in other packages, and gives a warning on those
found from R itself (which are not part of the API and change without
notice: many will changed for R 2.16.0).
The limit for ‘R_alloc’ on 64-bit platforms has been raised to just
under 32GB (from just under 16GB).
The misuse of ‘.C("name", ..., PACKAGE = foo)’ where ‘foo’ is an
arbitrary R object is now an error.
The misuse ‘.C("name",..., PACKAGE = "")’ is now warned about in ‘R CMD check’, and will be an error in future.
Use of ‘array()’ with a 0-length ‘dim’ argument is deprecated with a
warning (and was contrary to the documentation).
Use of ‘tapply()’ with a 0-length ‘INDEX’ list is deprecated with a
warning.
‘Translation’ packages are deprecated.
Calling ‘rep()’ or ‘rep.int()’ on a pairlist is deprecated and will
give a warning. In any case, ‘rep()’ converted a pairlist to a list so
you may as well do that explicitly.
Entry point ‘rcont2’ is no longer part of the API, and will move to
package ‘stats’ in R 2.16.0.
The ‘internal’ graphics device invoked by ‘.Call("R_GD_nullDevice",
package = "grDevices")’ is about to be removed: use ‘pdf(file = NULL)’
instead.
‘eigen(EISPACK = TRUE)’, ‘chol(pivot = FALSE, LINPACK = TRUE)’,
‘chol2inv(LINPACK = TRUE)’, ‘solve(LINPACK = TRUE)’ and ‘svd(LINPACK =
TRUE)’ are deprecated and give a warning.
They were provided for compatibility with R 1.7.0 (Mar 2003)!
The ‘internal function’ ‘kappa.tri()’ has been renamed to
‘.kappa_tri()’ so it is not inadvertently called as a method for class
‘"tri"’.
Functions ‘sessionData()’ and ‘browseAll()’ in package ‘methods’ are on
a help page describing them as ‘deprecated’ and are now formally
deprecated.
For a Windows or Mac OS X binary package install, ‘install.packages()’
will check if a source package is available on the same repositories,
and report if it is a later version or there is a source package but no
binary package available.
This check can be suppressed: see the help page.
‘install.packages(type = "both")’ has been enhanced. In interactive
use it will ask whether to choose the source version of a package if
the binary version is older and contains compiled code, and also asks
if source packages with no binary version should be installed).
There is a new ‘configure’ option ‘--with-libtiff’ (mainly in case the
system installation needs to be avoided).
LAPACK 3.4.1 does use some Fortran 90 features, so ‘g77’ no longer
suffices.
If an external LAPACK is used, it must be version 3.2 or later.
On Windows, starting ‘Rterm’ via ‘R.exe’ caused Ctrl-C to misbehave.
(PR#14948)
The ‘tools::latexToUtf8()’ function missed conversions that were
contained within braces.
Long timezone specifications (such as a file name preceded by ‘:’)
could crash ‘as.POSIXlt’. (PR#14945)
‘R CMD build --resave-data’ could fail if there was no ‘data’ directory
but there was an ‘R/sysdata.rda’ file. (PR#14947)
‘is.na()’ misbehaved on a 0-column data frame. (PR#14959)
‘anova.lmlist()’ failed if ‘test’ was supplied. (PR#14960)
It was unable to compute Cp tests for object of class ‘"lm"’ (it assumed class ‘"glm"’).
The ‘formula’ method for ‘sunflowerplot()’ now allows ‘xlab’ and ‘ylab’
to be set. (Reported by Gerrit Eichner.)
The ‘"POSIXt"’ and ‘"Date"’ methods for ‘hist()’ could fail on Windows
where adjustments to the right-hand boundary crossed a DST transition
time.
On Windows, the code in ‘as.POSIXct()’ to handle incorrectly specified
‘isdst’ fields might have resulted in ‘NA’ being returned.
‘aov()’ and ‘manova()’ gave spurious warning about singular error model
in the multiresponse case.
In ‘ns()’ and ‘bs()’, specifying ‘knots = NULL’ is now equivalent to
omitting it, also when ‘df’ is specified. (PR#14970)
‘sprintf()’ did not accept numbered arguments ending in zero.
(PR#14975)
‘rWishart()’ could overflow the C stack and maybe crash the R process
for dimensions of several hundreds or more. (Reported by Michael Braun
on R-sig-mac.)
Base package vignettes (e.g. ‘vignette("Sweave")’) were not fully
installed in builds of R from the tarball.
‘lchoose()’ and ‘choose()’ could overflow the C stack and crash R.
When given a 0-byte file and asked to keep source references, ‘parse()’
read input from ‘stdin()’ instead.
‘pdf(compress = TRUE)’ did not delete temporary files it created until
the end of the R session. (PR#14991)
‘logLik()’ did not detect the error of applying it to a
multiple-response linear model. (PR#15000)
‘file.copy(recursive = TRUE)’ did not always report ‘FALSE’ for a
failure two or more directories deep.
‘qgeom()’ could return ‘-1’ for extremely small ‘q’. (PR#14967.)
‘smooth.spline()’ used ‘DUP = FALSE’ which allowed its compiled C code
to change the function: this was masked by the default
byte-compilation. (PR#14965.)
In Windows, the GUI preferences for foreground color were not always
respected. (Reported by Benjamin Wells.)
On OS X, the Quartz versions of the bitmap devices did not respect
‘antialias = "none"’. (PR#15006.)
‘unique()’ and similar would infinite-loop if called on a vector of
length > 2^29 (but reported that the vector was too long for 2^30 or
more).
‘parallel::stopCluster()’ now works with MPI clusters without ‘snow’
being on the search path.
‘terms.formula()’ could exhaust the stack, and the stack check did not
always catch this before the segfault. (PR#15013)
‘sort.list(method = "radix")’ could give incorrect results on certain
compilers (seen with ‘clang’ on Mac OS 10.7 and ‘Xcode 4.4.1’).
‘backsolve(T, b)’ gave incorrect results when ‘nrows(b) > ncols(T)’ and
‘b’ had more than one column.
It could segfault or give nonsense if ‘k’ was specified as more than ‘ncols(T)’.
‘smooth.spline()’ did not check that a specified numeric ‘spar’ was of
length 1, and gave corrupt results if it was of length 0.
Protection added to ‘do_system’. (PR#15025)
Printing of vectors with names > 1000 characters now works correctly
rather than truncating. (PR#15028)
‘qr()’ for a complex matrix did not pivot the column names.
‘--with-blas='-framework vecLib'’ now also works on OS X 10.8.
‘R CMD check’ no longer fails with an error if a ‘DESCRIPTION’ file
incorrectly contains a blank line. (Reported by Bill Dunlap.)
‘install.packages(type = "both")’ could call ‘chooseCRANmirror()’
twice.
‘lm.wfit()’ could segfault in R 2.15.1 if all the weights were zero.
(PR#15044)
A malformed package name could cause ‘R CMD INSTALL’ to write outside
the target library.
Some of the quality control functions (e.g. ‘tools::checkFF()’) were
wrongly identifying the source of S4 methods in a package and so not
checking them.
The default type of display by ‘browseEnv()’ when using ‘R.app’ on Mac
OS X has been incorrect for a long time.
The implementation of ‘importMethodsFrom’ in a ‘NAMESPACE’ file could
be confused and fail to find generics when importing from multiple
packages (reported and fixed by Michael Lawrence).
The detection of the C stack direction is better protected against
compiler optimization. (PR#15011.)
Long custom line types would sometimes segfault on the
cairographics-based devices. (PR#15055.)
‘tools::checkPoFile()’ unprotected too early in its C code and so
segfaulted from time to time.
The Fortran code underlying ‘nlminb()’ could infinite-loop if any of
the input functions returned ‘NA’ or ‘NaN’. This is now an error for
the gradient or Hessian, and a warning for the function (with the value
replaced by ‘Inf’). (In part, PR#15052.)
The code for creating ‘coerce()’ methods could generate false notes
about ambiguous selection; the notes have been suppressed for this
function.
‘arima.sim()’ could give too long an output in some corner cases (in
part, PR#15068).
‘anova.glm()’ with ‘test = "Rao"’ didn't work when models included an
offset. (Reported by Søren Feodor Nielsen.)
‘as.data.frame.matrix()’ could return invalid data frame with no
‘row.names’ attribute for 0-row matrix. (Reported by Hervé Pagès.)
Compilation with the ‘vecLib’ or ‘Accelerate’ frameworks on OS X
without using that also for LAPACK is more likely to be successful.
The ‘X11()’ window gains an icon: the latter may be especially useful on Ubuntu's ‘Unity’ interface.
The ‘WM_CLASS’ should be set in circumstances where the Window Manager failed to make use of X11 resource settings.
(Contributed by Philip Johnson.)
The ‘"Date"’ and ‘"POSIXt"’ methods for ‘cut()’ will accept an unsorted ‘breaks’ argument (as the default method does, although this was undocumented). (Wish of PR#14961.)
Reference class methods (in the ‘methods’ package) that use other methods in an indirect way (e.g., by ‘sapply()’) must tell the code analysis to include that method. They can now do so by invoking ‘$usingMethods()’.
More Polish translations are available: for the ‘RGui’ menus and for several recommended packages.
Multistratum MANOVA works. In fact, it seems to have done so for years in spite of the help page claiming it did not.
‘qqline()’ has new optional arguments ‘distribution’, ‘probs’ and ‘qtype’, following the example of ‘lattice’'s ‘panel.qqmathline()’.
The handling of single quotes in the ‘en@quot’ pseudo-language has been slightly improved. Double quotes are no longer converted.
New functions ‘checkPoFiles()’ and ‘checkPoFile()’ have been added to the ‘tools’ package to check for consistency of format strings in translation files.
‘model.matrix(~1, ...)’ now also contains the same rownames that less trivial formulae produce. (Wish of PR#14992, changes the output of several packages.)
Misuse of ‘rep()’ on undocumented types of objects (e.g. calls) is now reported as an error.
The included LAPACK has been updated to 3.4.1, with some patches from the current SVN sources. (_Inter alia_, this resolves PR#14692.)
‘file.copy(recursive = TRUE)’ has some additional checks on user error leading to attempted infinite recursion (and on some platforms to crashing R).
PCRE has been updated to version 8.31, a bug-fix release.
The included version of ‘liblzma’ has been updated to version 5.0.4, a minor bug-fix release.
New function ‘.bincode()’, a ‘bare-bones’ version of ‘cut.default(labels = FALSE)’ for use in packages with ‘image()’ methods.
The HTML manuals now use directional single quotes.
‘maintainer()’ now converts embedded new lines to spaces. It no longer gives a non-obvious error for non-installed packages.
The ‘X11()’ device has some protection against being used with forked processes _via_ package ‘parallel’.
Setting the environment variable ‘R_OSX_VALGRIND’ (to any value) allows R to be run under ‘valgrind’ on Mac OS 10.6 and 10.7 (‘valgrind’ currently has very limited support for 10.8), provided ‘system()’ is not used (directly or indirectly). This should not be needed for ‘valgrind’ >= 3.8.1.
The ‘model.frame()’ method for ‘"lm"’ uses ‘xlevels’: this is safer if ‘data’ was supplied or ‘model = FALSE’ was used and the levels of factors used in the fit had been re-ordered since fitting.
Similarly, ‘model.frame(fm, data=<data>)’ copies across the variables used for safe prediction from the fit.
Functions such as ‘parLapply()’ in package ‘parallel’ can make use of a default cluster if one is set. (Reported by Martin Morgan.)
‘chol(pivot = TRUE, LINPACK = FALSE)’ is now available using LAPACK 3.2 subroutine ‘DPSTRF’.
The functions ‘.C()’, ‘.Call()’, ‘.External()’ and ‘.Fortran()’ now check that they are called with an unnamed first argument: the formal arguments were changed from ‘name=’ to ‘.NAME=’ in R 2.13.0, but some packages were still using the old name. This is currently a warning, but will be an error in future.
‘step()’ no longer tries to improve a model with AIC of ‘-Inf’ (a perfect fit).
‘spline()’ and ‘splinefun()’ gain a new method ‘"hyman"’, an implementation of Hyman's method of constructing monotonic interpolation splines. (Based on contributions of Simon Wood and Rob Hyndman.)
On Windows, the C stack size has been increased to 64MB (it has been 10MB since the days of 32MB RAM systems).
‘array()’ is now implemented in C code (for speed) when ‘data’ is atomic or an unclassed list (so it is known that ‘as.vector(data)’ will have no class to be used by ‘rep()’).
‘rep()’ is faster and uses less memory, substantially so in some common cases (e.g. if ‘times’ is of length one or ‘length.out’ is given, and ‘each = 1’).
‘findInterval()’, ‘tabulate()’, ‘cut()’, ‘hist()’ and ‘image.default()’ all use ‘.Call()’ and are more efficient.
‘duplicated()’, ‘unique()’ and similar now support vectors of lengths above 2^29 on 64-bit platforms.
Omitting ‘PACKAGE’ in ‘.C()’ etc calls was supposed to make use of the DLL from the namespace within which the enclosing function was defined. It was less successful in doing so than it might be, and gave no indication it had failed.
A new search strategy is very successful and gives a warning when it fails. In most cases this is because the entry point is not actually provided by that package (and so ‘PACKAGE’ should be used to indicate which package is intended) but in some the namespace does not have a DLL specified by a ‘useDynLib()’ directive so ‘PACKAGE’ is required.
‘R CMD check’ now checks if a package can be loaded by ‘library(pkgname, lib.loc = "somewhere")’ without being on the library search path (unless it is already installed in ‘.Library’, when it always will be).
‘R CMD check --as-cran’ notes ‘hidden’ files and directories (with names starting with a dot) that are not needed for the operation of ‘R CMD INSTALL’ or ‘R CMD build’: such files should be excluded from the published tarball.
‘R CMD check’ (if checking subdirectories) checks that the R code in any demos is ASCII and can be parsed, and warns if not.
When ‘R CMD Rd2pdf’ is used with ‘inputenx.sty’, it allows further characters (mainly for Eastern European languages) by including ‘ix-utf8enc.dfu’ (if available). (Wish of PR#14989.)
‘R CMD build’ now omits several types of hidden files/directories, including ‘inst/doc/.Rinstignore’, ‘vignettes/.Rinstignore’, (‘.Rinstignore’ should be at top level), ‘.deps’ under ‘src’, ‘.Renviron’, ‘.Rprofile’, ‘.Rproj.user’, ‘.backups’, ‘.cvsignore’, ‘.cproject’, ‘.directory’, ‘.dropbox’, ‘.exrc’, ‘.gdb.history’, ‘.gitattributes’, ‘.gitignore’, ‘.gitmodules’, ‘.hgignore’, ‘.hgtags’, ‘.htaccess’, ‘.latex2html-init’, ‘.project’, ‘.seed’, ‘.settings’, ‘.tm_properties’ and various leftovers.
‘R CMD check’ now checks for ‘.C()’, ‘.Call()’, ‘.External()’ and ‘.Fortran()’ calls in other packages, and gives a warning on those found from R itself (which are not part of the API and change without notice: many will changed for R 2.16.0).
The limit for ‘R_alloc’ on 64-bit platforms has been raised to just under 32GB (from just under 16GB).
The misuse of ‘.C("name", ..., PACKAGE = foo)’ where ‘foo’ is an arbitrary R object is now an error.
The misuse ‘.C("name",..., PACKAGE = "")’ is now warned about in ‘R CMD check’, and will be an error in future.
Use of ‘array()’ with a 0-length ‘dim’ argument is deprecated with a warning (and was contrary to the documentation).
Use of ‘tapply()’ with a 0-length ‘INDEX’ list is deprecated with a warning.
‘Translation’ packages are deprecated.
Calling ‘rep()’ or ‘rep.int()’ on a pairlist is deprecated and will give a warning. In any case, ‘rep()’ converted a pairlist to a list so you may as well do that explicitly.
Entry point ‘rcont2’ is no longer part of the API, and will move to package ‘stats’ in R 2.16.0.
The ‘internal’ graphics device invoked by ‘.Call("R_GD_nullDevice", package = "grDevices")’ is about to be removed: use ‘pdf(file = NULL)’ instead.
‘eigen(EISPACK = TRUE)’, ‘chol(pivot = FALSE, LINPACK = TRUE)’, ‘chol2inv(LINPACK = TRUE)’, ‘solve(LINPACK = TRUE)’ and ‘svd(LINPACK = TRUE)’ are deprecated and give a warning.
They were provided for compatibility with R 1.7.0 (Mar 2003)!
The ‘internal function’ ‘kappa.tri()’ has been renamed to ‘.kappa_tri()’ so it is not inadvertently called as a method for class ‘"tri"’.
Functions ‘sessionData()’ and ‘browseAll()’ in package ‘methods’ are on a help page describing them as ‘deprecated’ and are now formally deprecated.
For a Windows or Mac OS X binary package install, ‘install.packages()’ will check if a source package is available on the same repositories, and report if it is a later version or there is a source package but no binary package available.
This check can be suppressed: see the help page.
‘install.packages(type = "both")’ has been enhanced. In interactive use it will ask whether to choose the source version of a package if the binary version is older and contains compiled code, and also asks if source packages with no binary version should be installed).
There is a new ‘configure’ option ‘--with-libtiff’ (mainly in case the system installation needs to be avoided).
LAPACK 3.4.1 does use some Fortran 90 features, so ‘g77’ no longer suffices.
If an external LAPACK is used, it must be version 3.2 or later.
On Windows, starting ‘Rterm’ via ‘R.exe’ caused Ctrl-C to misbehave. (PR#14948)
The ‘tools::latexToUtf8()’ function missed conversions that were contained within braces.
Long timezone specifications (such as a file name preceded by ‘:’) could crash ‘as.POSIXlt’. (PR#14945)
‘R CMD build --resave-data’ could fail if there was no ‘data’ directory but there was an ‘R/sysdata.rda’ file. (PR#14947)
‘is.na()’ misbehaved on a 0-column data frame. (PR#14959)
‘anova.lmlist()’ failed if ‘test’ was supplied. (PR#14960)
It was unable to compute Cp tests for object of class ‘"lm"’ (it assumed class ‘"glm"’).
The ‘formula’ method for ‘sunflowerplot()’ now allows ‘xlab’ and ‘ylab’ to be set. (Reported by Gerrit Eichner.)
The ‘"POSIXt"’ and ‘"Date"’ methods for ‘hist()’ could fail on Windows where adjustments to the right-hand boundary crossed a DST transition time.
On Windows, the code in ‘as.POSIXct()’ to handle incorrectly specified ‘isdst’ fields might have resulted in ‘NA’ being returned.
‘aov()’ and ‘manova()’ gave spurious warning about singular error model in the multiresponse case.
In ‘ns()’ and ‘bs()’, specifying ‘knots = NULL’ is now equivalent to omitting it, also when ‘df’ is specified. (PR#14970)
‘sprintf()’ did not accept numbered arguments ending in zero. (PR#14975)
‘rWishart()’ could overflow the C stack and maybe crash the R process for dimensions of several hundreds or more. (Reported by Michael Braun on R-sig-mac.)
Base package vignettes (e.g. ‘vignette("Sweave")’) were not fully installed in builds of R from the tarball.
‘lchoose()’ and ‘choose()’ could overflow the C stack and crash R.
When given a 0-byte file and asked to keep source references, ‘parse()’ read input from ‘stdin()’ instead.
‘pdf(compress = TRUE)’ did not delete temporary files it created until the end of the R session. (PR#14991)
‘logLik()’ did not detect the error of applying it to a multiple-response linear model. (PR#15000)
‘file.copy(recursive = TRUE)’ did not always report ‘FALSE’ for a failure two or more directories deep.
‘qgeom()’ could return ‘-1’ for extremely small ‘q’. (PR#14967.)
‘smooth.spline()’ used ‘DUP = FALSE’ which allowed its compiled C code to change the function: this was masked by the default byte-compilation. (PR#14965.)
In Windows, the GUI preferences for foreground color were not always respected. (Reported by Benjamin Wells.)
On OS X, the Quartz versions of the bitmap devices did not respect ‘antialias = "none"’. (PR#15006.)
‘unique()’ and similar would infinite-loop if called on a vector of length > 2^29 (but reported that the vector was too long for 2^30 or more).
‘parallel::stopCluster()’ now works with MPI clusters without ‘snow’ being on the search path.
‘terms.formula()’ could exhaust the stack, and the stack check did not always catch this before the segfault. (PR#15013)
‘sort.list(method = "radix")’ could give incorrect results on certain compilers (seen with ‘clang’ on Mac OS 10.7 and ‘Xcode 4.4.1’).
‘backsolve(T, b)’ gave incorrect results when ‘nrows(b) > ncols(T)’ and ‘b’ had more than one column.
It could segfault or give nonsense if ‘k’ was specified as more than ‘ncols(T)’.
‘smooth.spline()’ did not check that a specified numeric ‘spar’ was of length 1, and gave corrupt results if it was of length 0.
Protection added to ‘do_system’. (PR#15025)
Printing of vectors with names > 1000 characters now works correctly rather than truncating. (PR#15028)
‘qr()’ for a complex matrix did not pivot the column names.
‘--with-blas='-framework vecLib'’ now also works on OS X 10.8.
‘R CMD check’ no longer fails with an error if a ‘DESCRIPTION’ file incorrectly contains a blank line. (Reported by Bill Dunlap.)
‘install.packages(type = "both")’ could call ‘chooseCRANmirror()’ twice.
‘lm.wfit()’ could segfault in R 2.15.1 if all the weights were zero. (PR#15044)
A malformed package name could cause ‘R CMD INSTALL’ to write outside the target library.
Some of the quality control functions (e.g. ‘tools::checkFF()’) were wrongly identifying the source of S4 methods in a package and so not checking them.
The default type of display by ‘browseEnv()’ when using ‘R.app’ on Mac OS X has been incorrect for a long time.
The implementation of ‘importMethodsFrom’ in a ‘NAMESPACE’ file could be confused and fail to find generics when importing from multiple packages (reported and fixed by Michael Lawrence).
The detection of the C stack direction is better protected against compiler optimization. (PR#15011.)
Long custom line types would sometimes segfault on the cairographics-based devices. (PR#15055.)
‘tools::checkPoFile()’ unprotected too early in its C code and so segfaulted from time to time.
The Fortran code underlying ‘nlminb()’ could infinite-loop if any of the input functions returned ‘NA’ or ‘NaN’. This is now an error for the gradient or Hessian, and a warning for the function (with the value replaced by ‘Inf’). (In part, PR#15052.)
The code for creating ‘coerce()’ methods could generate false notes about ambiguous selection; the notes have been suppressed for this function.
‘arima.sim()’ could give too long an output in some corner cases (in part, PR#15068).
‘anova.glm()’ with ‘test = "Rao"’ didn't work when models included an offset. (Reported by Søren Feodor Nielsen.)
‘as.data.frame.matrix()’ could return invalid data frame with no ‘row.names’ attribute for 0-row matrix. (Reported by Hervé Pagès.)
Compilation with the ‘vecLib’ or ‘Accelerate’ frameworks on OS X without using that also for LAPACK is more likely to be successful.
On Windows, the C stack size has been increased to 64MB (it has been 10MB since the days of 32MB RAM systems).
‘as.data.frame.matrix()’ could return invalid data frame with no ‘row.names’ attribute for 0-row matrix. (Reported by Hervé Pagès.)
Compilation with the ‘vecLib’ or ‘Accelerate’ frameworks on OS X without using that also for LAPACK is more likely to be successful.
‘anova.glm()’ with ‘test = "Rao"’ didn't work when models included an offset. (Reported by Søren Feodor Nielsen.)
‘anova.glm’ with ‘test="Rao"’ didn't work when models included an offset. (Reported by Søren Feodor Nielsen.)
‘spline()’ and ‘splinefun()’ gain a new method ‘"hyman"’, an implementation of Hyman's method of constructing monotonic interpolation splines. (Based on contributions of Simon Wood and Rob Hyndman.)
The functions ‘.C()’, ‘.Call()’, ‘.External()’ and ‘.Fortran()’ now check that they are called with an unnamed first argument: the formal arguments were changed from ‘name=’ to ‘.NAME=’ in R 2.13.0, but some packages were still using the old name. This is currently a warning, but will be an error in future.
‘spline()’ and ‘splinefun()’ gain a new method ‘"hyman"’, an implementation of Hyman's method of constructing monotonic interpolation splines. (Contributed by Simon Wood and Rob Hyndman.)
‘maintainer()’ now converts embedded new lines to spaces. It no longer gives a non-obvious error for non-installed packages.
‘arima.sim()’ could give too long an output in some corner cases (in part, PR#15068).
Long custom line types would sometimes segfault on the cairographics-based devices. (PR#15055.)
The misuse of ‘.C("name", ..., PACKAGE = foo)’ where ‘foo’ is an arbitrary R object is now an error.
The misuse ‘.C("name",..., PACKAGE = "")’ is now warned about in ‘R CMD check’, and will be an error in future.
‘step()’ no longer tries to improve a model with AIC of ‘-Inf’ (a perfect fit).
‘R CMD check’ now checks for ‘.C()’, ‘.Call()’, ‘.External()’ and ‘.Fortran()’ calls in other packages, and gives a warning on those found from R itself (which are not part of the API and change without notice: many will changed for R 2.16.0).
The misuse of ‘.C("name", ..., PACKAGE = foo)’ where ‘foo’ is an arbitrary R object is now an error. (Seen in package ‘coxphf’ and elsewhere.)
The misuse ‘.C"name",(..., PACKAGE = "")’ (see in package ‘RProtoBuf’ is now warned about in ‘R CMD check’, and will be an error in future.
The misuse of ‘.C("name", ..., PACKAGE = foo)’ where ‘foo’ is an
arbitrary R object is now an error. (Seen in package ‘coxphf’ and
elsewhere.)
The code for creating ‘coerce()’ methods could generate false notes about ambiguous selection; the notes have been suppressed for this function.
Functions ‘sessionData()’ and ‘browseAll()’ in package ‘methods’ are on a help page describing them as ‘deprecated’ and are now formally deprecated.
The Fortran code underlying ‘nlminb()’ could infinite-loop if any of the input functions returned ‘NA’ or ‘NaN’. This is now an error for the gradient or Hessian, and a warning for the function (with the value replaced by ‘Inf’). (In part, PR#15052.)
‘tools::checkPoFile()’ unprotected too early in its C code and so segfaulted from time to time.
‘tool::checkPoFile()’ unprotected too early in its C code and so segfaulted from time to time.
Long custom line types would sometimes segfault on the cairographics-based devices. (PR15055.)
The detection of the C stack direction is better protected against compiler optimization. (PR#15011.)
The implementation of ‘importMethodsFrom’ in a ‘NAMESPACE’ file could be confused and fail to find generics when importing from multiple packages (reported and fixed by Michael Lawrence).
The ‘importMethodsFrom’ implementation could be confused and fail to find generics when importing from multiple packages (reported and fixed by Michael Lawrence).
The ‘X11()’ device has some protection against being used with forked processes _via_ package ‘parallel’.
Some of the quality control functions (e.g. ‘tools::checkFF()’) were wrongly identifying the source of S4 methods in a package and so not checking them.
The default type of display by ‘browseEnv()’ when using ‘R.app’ on Mac OS X has been incorrect for a long time.
The first formal argument of ‘.C()’, ‘.Fortran()’, ‘.Call()’ and ‘.External()’ is now referred to a ‘.NAME’ rather than ‘name’: however actual calls should have an unnamed first argument.
The ‘internal function’ ‘kappa.tri()’ has been renamed to ‘.kappa_tri()’ so it is not inadvertently called as a method for class ‘"tri"’.
Some of the quality control functions (e.g. ‘tools::checkFF()’ were wrongly identifying the source of S4 methods in a package and so not checking them.
‘--with-blas='-framework vecLib'’ now also works on OS X 10.8.
A malformed package name could cause ‘R CMD INSTALL’ to write outside the target library.
‘lm.wfit()’ could segfault in R 2.15.1 if all the weights were zero. (PR#15044)
‘chol(pivot = TRUE, LINPACK = FALSE)’ is now available using LAPACK 3.2 subroutine ‘DPSTRF’.
If an external LAPACK is used, it must be version 3.2 or later.
‘eigen(EISPACK = TRUE)’, ‘chol(pivot = FALSE, LINPACK = TRUE)’, ‘chol2inv(LINPACK = TRUE)’, ‘solve(LINPACK = TRUE)’ and ‘svd(LINPACK = TRUE)’ are deprecated and give a warning.
They were provided for compatibility with R 1.7.0 (Mar 2003)!
‘R CMD check’ no longer fails with an error if a ‘DESCRIPTION’ file incorrectly contains a blank line. (Reported by Bill Dunlap.)
‘install.packages(type = "both")’ could call ‘chooseCRANmirror()’ twice.
Omitting ‘PACKAGE’ in ‘.C()’ etc calls was supposed to make use of the DLL from the namespace within which the enclosing function was defined. It was less successful in doing so than it might be, and gave no indication it had failed.
A new search strategy is very successful and gives a warning when it fails. In most cases this is because the entry point is not actually provided by that package (and so ‘PACKAGE’ should be used to indicate which package is intended) but in some the namespace does not have a DLL specified by a ‘useDynLib()’ directive so ‘PACKAGE’ is required.
‘qr()’ for a complex matrix did not pivot the column names.
‘--with='-framework vecLib'’ now also works on OS X 10.8.
Printing of vectors with names > 1000 characters now works correctly rather than truncating. (PR#15028)
Functions such as ‘parLapply()’ in package ‘parallel’ can make use of a default cluster if one is set. (Reported by Martin Morgan.)
‘R CMD build’ now omits several types of hidden files/directories, including ‘inst/doc/.Rinstignore’, ‘vignettes/.Rinstignore’, (‘.Rinstignore’ should be at top level), ‘.deps’ under ‘src’, ‘.Renviron’, ‘.Rprofile’, ‘.Rproj.user’, ‘.backups’, ‘.cvsignore’, ‘.cproject’, ‘.directory’, ‘.dropbox’, ‘.exrc’, ‘.gdb.history’, ‘.gitattributes’, ‘.gitignore’, ‘.gitmodules’, ‘.hgignore’, ‘.hgtags’, ‘.htaccess’, ‘.latex2html-init’, ‘.project’, ‘.seed’, ‘.settings’, ‘.tm_properties’ and various leftovers.
Printing of vectors with names > 1000 characters now works correctly. (PR#15028)
Protection added to ‘do_system’. (PR#15025)
The ‘internal’ graphics device invoked by ‘.Call("R_GD_nullDevice", package = "grDevices")’ is about to be removed: use ‘pdf(file = NULL)’ instead.
Setting the environment variable ‘R_OSX_VALGRIND’ (to any value) allows R to be run under ‘valgrind’ on Mac OS 10.6 and 10.7 (‘valgrind’ currently has very limited support for 10.8), provided ‘system()’ is not used (directly or indirectly). This should not be needed for ‘valgrind’ >= 3.8.1.
Omitting ‘PACKAGE’ in ‘.C()’ etc calls was supposed to make use of the DLL from the namespace within which the enclosing function was defined. It was less successful in doing so than it might be, and gave no indication it had failed.
A new search strategy is much more successful and gives a warning when it fails. In most cases this is because the entry point is not actually provided by that package (and so ‘PACKAGE’ should be used to indicate which package is intended) but in a few the warning indicates that an explicit ‘PACKAGE’ argument is needed.
The misuse of ‘.C("name", ..., PACKAGE = foo)’ where ‘foo’ is an arbitrary R object is now an error. (Seen in package ‘coxphf’ and elsewhere.)
Protection added to ‘do_system’ (PR#15025)
‘backsolve(T, b)’ gave incorrect results when ‘nrows(b) > ncols(T)’ and ‘b’ had more than one column.
It could segfault or give nonsense if ‘k’ was specified as more than ‘ncols(T)’.
‘smooth.spline()’ did not check that a specified numeric ‘spar’ was of length 1, and gave corrupt results if it was of length 0.
The ‘model.frame()’ method for ‘"lm"’ uses ‘xlevels’: this is safer if ‘data’ was supplied or ‘model = FALSE’ was used and the levels of factors used in the fit had been re-ordered since fitting.
Similarly, ‘model.frame(fm, data=<data>)’ copies across the variables used for safe prediction from the fit.
Reference class methods (in the ‘methods’ package) that use other methods in an indirect way (e.g., by ‘sapply()’) must tell the code analysis to include that method. They can now do so by invoking ‘$usingMethods()’.
In ‘ns()’ and ‘bs()’, specifying ‘knots = NULL’ is now equivalent to omitting it, also when ‘df’ is specified. (PR#14970)
‘sort.list(method = "radix")’ could give incorrect results on certain compilers (seen with ‘clang’ on Mac OS 10.7 and ‘Xcode 4.4.1’).
Setting the environment variable ‘R_OSX_VALGRIND’ (to any value) allows R to be run under ‘valgrind’ on Mac OS 10.6 and 10.7 (‘valgrind’ currently has very limited support for 10.8), provided ‘system()’ is not used (directly or indirectly).
‘terms.formula()’ could exhaust the stack, and the stack check did not always catch this before the segfault. (PR#15013)
The ‘X11()’ device has some more protection against being used with forked processes _via_ package ‘parallel’.
‘duplicated()’, ‘unique()’ and similar now support vectors of lengths above 2^29 on 64-bit platforms.
‘parallel::stopCluster()’ now works with MPI clusters without ‘snow’ being on the search path.
The limit for ‘R_alloc’ on 64-bit platforms has been raised to just under 32GB (from just under 16GB).
‘maintainer()’ now converts embedded new lines to spaces.
‘duplicated()’, ‘unique()’ and similar are now no longer limits to vectors of lengths from 2^29 on 64-bit platforms.
‘unique()’ and similar would infinite-loop if called on a vector of length > 2^29 (but reported that the vector was too long for 2^30 or more).
There is a new ‘configure’ option ‘--with-libtiff’ (mainly in case the system installation needs to be avoided).
The HTML manuals now use directional single quotes.
New function ‘.bincode()’, a ‘bare-bones’ version of ‘cut.default(labels = FALSE)’ for use in packages with ‘image()’ methods.
The handling of single quotes in the ‘en@quot’ pseudo-language has been slightly improved. Double quotes are no longer converted.
Entry point ‘rcont2’ is no longer part of the API, and will move to package ‘stats’ in R 2.16.0.
On OS X, the Quartz versions of the bitmap devices did not respect ‘antialias = "none"’. (PR#15006.)
New function ‘.bincode()’, a ‘bare-bones’ version of ‘cut.default(labels = FALSE)’.
‘findInterval()’, ‘tabulate()’, ‘cut()’, ‘hist()’ and ‘image.default()’ all use ‘.Call()’ and are more efficient.
New function ‘.bincode()’, a ‘bare-bones’ versions of ‘cut.default(labels = FALSE)’.
In Windows, the GUI preferences for foreground color were not always respected. (Reported by Benjamin Wells.)
LAPACK 3.4.1 does use some Fortran 90 features, so ‘g77’ no longer suffices.
PCRE has been updated to version 8.31, a bug-fix release.
The included version of ‘liblzma’ has been updated to version 5.0.4, a minor bug-fix release.
‘qgeom()’ could return ‘-1’ for extremely small ‘q’. (PR#14967.)
‘smooth.spline()’ used ‘DUP = FALSE’ which allowed its compiled C code to change the function: this was masked by the default byte-compilation. (PR#14965.)
‘file.copy(recursive = TRUE)’ has some additional checks on user error leading to attempted infinite recursion (and on some platforms to crashing R).
‘install.packages(type = "both")’ has been enhanced. In interactive use it will ask whether to choose the source version of a package if the binary version is older and contains compiled code, and also asks if source packages with no binary version should be installed).
‘logLik()’ did not detect the error of applying it to a multiple-response linear model. (PR#15000)
‘file.copy(recursive = TRUE)’ did not always report ‘FALSE’ for a failure two or more directories deep.
For a Windows or Mac OS X binary package install, ‘install.packages()’ will check if a source package is available on the same repositories, and report if it is a later version or there is a source package but no binary package available.
This check can be suppressed: see the help page.
The included LAPACK has been updated to 3.4.1, with some patches from the current SVN sources. (_Inter alia_, this resolves PR#14692.)
‘rep()’ is faster and uses less memory, substantially so in some common cases (e.g. if ‘times’ is of length one or ‘length.out’ is given, and ‘each = 1’).
‘model.matrix(~1, ...)’ now also contains the same rownames that less trivial formulae produce. (Wish of PR#14992, changes the output of several packages.)
‘R CMD check’ (if checking subdirectories) checks that the R code in any demos is ASCII and can be parsed, and warns if not.
‘model.matrix(~1, ...)’ now also contains the same rownames that less trivial formulae produce. (Wist of PR#14992, changes the output of several packages.)
Misuse of ‘rep()’ on undocumented types of objects (e.g. calls) is now reported as an error.
Calling ‘rep()’ or ‘rep.int()’ on a pairlist is deprecated and will give a warning. In any case, ‘rep()’ converted a pairlist to a list so you may as well do that explicitly.
‘model.matrix( ~1, .)’ now also contains the same rownames that less
trivial formulae produce. (PR#14992)
‘pdf(compress = TRUE)’ did not delete temporary files it created until the end of the R session. (PR#14991)
‘model.matrix( ~1, .)’ now also contains the same rownames that less trivial formulae produce. (PR#14992)
When given a 0-byte file and asked to keep source references, ‘parse()’ read input from ‘stdin()’ instead.
The ‘pdf()’ device did not delete temporary files when closed. (PR#14991)
Calling ‘rep()’ or ‘rep.int()’ on a pairlist is deprecated and will give a warning.
‘Translation’ packages are deprecated.
‘lchoose()’ and ‘choose()’ could overflow the C stack and crash R.
‘Translation’ packages are defunct.
New functions ‘checkPoFiles()’ and ‘checkPoFile()’ have been added to the ‘tools’ package to check for consistency of format strings in translation files.
‘R CMD check --as-cran’ notes ‘hidden’ files and directories (with names starting with a dot) that are not needed for the operation of ‘R CMD INSTALL’ or ‘R CMD build’: such files should be excluded from the published tarball.
‘Sys.glob()’ caused a segfault if the first element of ‘path’ was ‘NA_character’. (PR#14990)
The handling of single quotes in the ‘en@quot’ pseudo-language has been slightly improved.
The handling of single quotes in the ‘en@quot’ has been slightly improved.
When ‘R CMD Rd2pdf’ is used with ‘inputenx.sty’, it allows further characters (mainly for Eastern European languages) by including ‘ix-utf8enc.dfu’ (if available). (Wish of PR#14989.)
Base package vignettes (e.g. ‘vignette("Sweave")’) were not fully installed in builds of R from the tarball.
‘qqline()’ has new optional arguments ‘distribution’, ‘probs’ and ‘qtype’, following the example of ‘lattice’'s ‘panel.qqmathline()’.
‘qqline()’ has new optional arguments ‘distribution’, ‘probs’ and
‘qtype’, following the example of ‘lattice’'s ‘panel.qqmathline()’.
‘rWishart()’ could overflow the C stack and maybe crash the R process for dimensions of several hundreds or more. (Reported by Michael Braun on R-sig-mac.)
Multistratum MANOVA works. In fact, it seems to have done so for years in spite of the help page claiming it did not.
‘aov()’ and ‘manova()’ gave spurious warning about singular error model in the multiresponse case.
In ‘ns()’ and ‘bs()’, specifying ‘knots=NULL’ is now equivalent to omitting it, also when ‘df’ is specified. (PR#14970)
‘sprintf()’ did not accept numbered arguments ending in zero. (PR#14975)
Long timezone specifications (such as a file name preceded by ‘:’) could crash ‘as.POSIXlt’. (PR#14945)
‘R CMD build --resave-data’ could fail if there was no ‘data’ directory but there was an ‘R/sysdata.rda’ file. (PR#14947)
‘is.na()’ misbehaved on a 0-column data frame. (PR#14959)
‘anova.lmlist()’ failed if ‘test’ was supplied. (PR#14960)
It was unable to compute Cp tests for object of class ‘"lm"’ (it assumed class ‘"glm"’).