This blog is updated daily.
A general description is here.
bzip2 has been updated to 1.0.5 (security fix).
source(echo=TRUE) would skip lines consisting entirely of the letter t. (PR#10923)
summary.mlm() incorrectly used accessor functions to fake an "lm" object. (PR#9191)
prettyNum() was not preserving attributes, despite being explicitly documented to. (PR#8695)
It was previously undocumented what happened if a graphical parameter was passed in both '...' and 'pars' to boxplot() and bxp(), and they behaved differently. Now those passed in '...' have precedence in both cases.
Only genuinely empty statements act as 'return' in the browser, not say those starting with a comment char. (PR#9063)
o summary.mlm() incorrectly used accessor functions to fake an "lm" object. (PR#9191)
o prettyNum() was not preserving attributes, despite being explicitly documented to. (PR#8695)
o It was previously undocumented what happened if a graphical parameter was passed in both '...' and 'pars' to boxplot() and bxp(), and they behaved differently. Now those passed in '...' have precedence in both cases.
There is support for MBCS charsets in the pictex() graphics device, and rotated (by 90 degrees) text may work better.
The \u (and \U except on Windows) notation for characters which is supported by the parser in all MBCS charsets is now always interpreted as a Unicode point, even on platforms which do not encode wchar_t in Unicode. These are now a syntax error in single-byte locales.
Wide-character width functions wc[s]width are provided that overcome problems found with OS-supplied ones (and those previously used by R on Windows). This means that double-width CJK characters are now supported on all platforms. It seems that the width of some characters (and not just CJK characters) depends on which CJK locale's fonts are in use and also on the OS.
Revised wide-character classification functions are provided for use on Windows, AIX and MacOS X to replace deficient OS-supplied ones.
o There is support for MBCS charsets in the pictex() graphics device, and rotated (by 90 degrees) text may work better.
o The \u (and \U except on Windows) notation for characters which is supported by the parser in all MBCS charsets is now always interpreted as a Unicode point, even on platforms which do not encode wchar_t in Unicode. These are now a syntax error in single-byte locales.
The 'multilib' changes on Linux broke the use of sub-architectures without a main architecture.
help(topic, offline=TRUE) misbehaved when there were multiple matches to 'topic'. (PR#10859)
kappa(m, exact=TRUE) no longer wrongly uses 'exact=FALSE' when m is an 'lm' or 'qr' object because the kappa.tri(x, exact=TRUE) now works correctly.
Checking examples which used grid (e.g. via lattice) without attaching grid no longer give errors from grid_plot_hook().
libtool has been updated to version 1.5.26, which avoids many spurious configure warnings on Darwin/Mac OS X.
l10n_info() now recognizes how Darwin/Mac OS X reports Latin-1 locales (as charset ISO8859-1 rather than ISO-8859-1).
Creating a new page on an X11() device (by plot.new() or grid.newpage()) did not flush out the XClearWindow call, so the X11 window might not be refreshed immediately.
Using the X11 data editor (e.g. via edit(), fix() or View()) could crash if the 'End' key was used and all the columns would have fitted into the window.
unlink(..., recursive=TRUE) no longer crashes on some platforms if a directory cannot be opened.
Loading in 2.6.2 a saved workspace could give an unimportant warning in a non-UTF-8 multibyte locale (in particular a CJK locale on Windows) which is now suppressed.
print() methods are more consistent in returning the original argument invisibly.
src/extra/pcre has been updated to PCRE 7.6 (bugfix release).
unlink(..., recursive=TRUE) no longer crashes if a directory cannot be opened.
Anonymous fifos were broken (again).
print.htest() lost output when used within sink(file, split=TRUE).
Setting par(col.main=) also set par("col") to the same colour.
strptime() crashed under certain locales on Mac OS X.
gregexpr() no longer segfaults when "" is given as the search pattern. Thanks to Hervé Pagès for the bug report.
as.complex(), as.double(), as.integer(), as.logical() and as.raw() are now primitive and internally generic for efficiency. They no longer dispatch on S3 methods for as.vector() (which was never documented). as.real() and as.numeric() remain as alternative names for as.double().
expm1(), log(), log1p(), log2(), log10(), gamma(), lgamma(), digamma() and trigamma() are now primitive. (Note that logb() is not.)
The Math2 and Summary groups (round, signif, all, any, max, min, summ, prod, range) are now primitive.
See under METHODS PACKAGE below for some consequences for S4 methods.
matplot(x, *) with default 'pch' did not plot columns from column number 37 on (because the default pch was NA for those). (PR#10676)
gregexpr no longer segfaults when "" is given as the search pattern. Thanks to Hervé Pagès for the bug report.
strptime crashed under certain locales on Mac OS X.
hist.POSIXt(*, xaxt = "n") no longer suppresses the y-axis.
split(x, g) always returns a list as documented. (It used to return NULL for a zero-length 'x'.)
tapply(x, g, ...) misbehaved if the args were of zero length. (PR#10644)
isoreg(x, y) no longer segfaults when y has NAs.
isoreg(x,y) no longer segfaults when y has NAs.
On Linux, parallel 32/64-bit installations are supported using multilib.
Memory allocations used in format() and in an internal utility function could be off by one byte. (PR#10635)
colnames(DF) is now also fast for large dataframes DF with
automatic row.names. Note that the correct usage is
names(DF). (PR#10470)
tools::texi2dvi() works around the failure of 'texi2dvi --quiet'
to be quiet in texinfo 4.11.
A compilation problem on one system where glob was not found
has been corrected. (PR#10468)
The "profile.nls" method of plot() was losing the x axis labels.
array() computed the total number of entries in the array before
coercing the dimensions to integer. (Reported by Allen McIntosh.)
persp() misreported errors in the y parameter. (Reported by Allen
McIntosh.)
source("clipboard", echo=TRUE) and file("clipboard", open="rt")
gave spurious errors. (Reported by Fernando Saldanha.)
attributes<-() stripped any existing attributes before checking
that all elements of the right-hand side had names.
rbinom(n, size, *) gave NaN when 'size > .Machine$integer.max'.
print.summary.lm() is now consistent in the capitalization of
"R-squared".
confint() misreported on some rank-deficient lm() models.
(PR#10496) This could also occur in the default method.
\code{\var{<name>}} was not rendered correctly to latex in Rd
files for non-alphabetic arguments <name>.
In 2.6.1, curve(*, add=TRUE) used a wrong default 'xlim' when x
coordinates were logged.
The Java-based search in help.start() now only requires a
JVM >= 1.4 (2.6.1 accidentally required >= 1.5).
The default method for range() was omitting 'na.rm' for
non-numeric objects such as those of class "Date". (PR#10508)
cut(x, breaks=<n>) misbehaved on a constant vector of negative
values.
bxp(), the plotting engine of boxplot(), no longer plots staple
ticks multiple times. (PR#10499)
The automatic detection of the domain for message translation
was not working correctly for messages in message(), warning()
and stop() in packages other than 'base'.
The profile.nls() function misbehaved when encountering
non-convergence of the "port" algorithm.
Under certain rare circumstances in R 2.6.x, log(), round()
and trunc() could alter their arguments in the caller. This
involved passing of empty '...' arguments, and was spotted
when using apply(x, 2, log).
par() no longer warns unnecessarily when asked to set new=FALSE
on an unused graphics device.
plot.formula() was not passing on '...' when used with a
one-sided formula.
plot.formula() was not accepting expressions for annotations passed to title(). (PR#10525)
pchisq(x, df=0, ncp=L) now returns the correct limit exp(-L/2) for
x=0 and is no longer returning NaN for x > 0, L < 80. (PR#10551)
Non-ASCII characters were only working correctly in Hershey
fonts if these were specified by the 'vfont' argument to
text() and not if specified as a font family.
There were several errors in Hershey$allowed, but the help
page listed the allowed combinations correctly.
text() no longer attempts to use 'vfont' with an expression
for 'labels' (it was documented not to work).
fisher.test(simulate.p.value = TRUE) gave incorrect answers
in some extremely degenerate problems. (PR#10558)
src/extra/pcre has been updated to PCRE 7.5 (bugfix release).
capture.output() completes an incomplete final line of
output when file = NULL. (PR#10534)
capture.output() now returns invisibly if output is written to
a file/connection.
format.AsIs() did not remove the "AsIs" class and so could go
into an infinite loop.
summary.mlm() lost the names of the coefficients when there
was only one.
Rdconv was not marking examples files with an encoding if
this was known from the package's DESCRIPTION file.
readChar() from a raw vector was reading a number of bytes,
not characters.
slotNames() was erroneously treating classes that extend
"character" as strings.
R no longer ignores SIGPIPE signals even in processes launched
by system(). Instead PR#1959 is handled by a simple error
handler which will give an error message in circumstances
where none was given before.
The AIC() S4 generic in package stats4 no longer disables
dispatch of S3 methods for AIC().
The conflicts check in library() excluded all S4 generics, even
where they were unrelated to the function masked. It is now
more selective (although still too generous to S4 generics).
proc.time() was missing a protect and could misbehave if
provoked by gctorture(). (PR#10600)
colnames(DF) is now also fast for large dataframes DF with automatic row.names. Note that the correct usage is names(DF). (PR#10470)
tools::texi2dvi() works around the failure of 'texi2dvi --quiet' to be quiet in texinfo 4.11.
A compilation problem on one system where glob was not found has been corrected. (PR#10468)
The "profile.nls" method of plot() was losing the x axis labels.
array() computed the total number of entries in the array before coercing the dimensions to integer. (Reported by Allen McIntosh.)
persp() misreported errors in the y parameter. (Reported by Allen McIntosh.)
source("clipboard", echo=TRUE) and file("clipboard", open="rt") gave spurious errors. (Reported by Fernando Saldanha.)
attributes<-() stripped any existing attributes before checking that all elements of the right-hand side had names.
rbinom(n, size, *) gave NaN when 'size > .Machine$integer.max'.
print.summary.lm() is now consistent in the capitalization of "R-squared".
confint() misreported on some rank-deficient lm() models. (PR#10496) This could also occur in the default method.
\code{\var{<name>}} was not rendered correctly to latex in Rd files for non-alphabetic arguments <name>.
In 2.6.1, curve(*, add=TRUE) used a wrong default 'xlim' when x coordinates were logged.
The Java-based search in help.start() now only requires a JVM >= 1.4 (2.6.1 accidentally required >= 1.5).
The default method for range() was omitting 'na.rm' for non-numeric objects such as those of class "Date". (PR#10508)
cut(x, breaks=<n>) misbehaved on a constant vector of negative values.
bxp(), the plotting engine of boxplot(), no longer plots staple ticks multiple times. (PR#10499)
The automatic detection of the domain for message translation was not working correctly for messages in message(), warning() and stop() in packages other than 'base'.
The profile.nls() function misbehaved when encountering non-convergence of the "port" algorithm.
Under certain rare circumstances in R 2.6.x, log(), round() and trunc() could alter their arguments in the caller. This involved passing of empty '...' arguments, and was spotted when using apply(x, 2, log).
par() no longer warns unnecessarily when asked to set new=FALSE on an unused graphics device.
plot.formula() was not passing on '...' when used with a one-sided formula.
plot.formula() was not accepting expressions for annotations passed to title(). (PR#10525)
pchisq(x, df=0, ncp=L) now returns the correct limit exp(-L/2) for x=0 and is no longer returning NaN for x > 0, L < 80. (PR#10551)
Non-ASCII characters were only working correctly in Hershey fonts if these were specified by the 'vfont' argument to text() and not if specified as a font family.
There were several errors in Hershey$allowed, but the help page listed the allowed combinations correctly.
text() no longer attempts to use 'vfont' with an expression for 'labels' (it was documented not to work).
fisher.test(simulate.p.value = TRUE) gave incorrect answers in some extremely degenerate problems. (PR#10558)
src/extra/pcre has been updated to PCRE 7.5 (bugfix release).
capture.output() completes an incomplete final line of output when file = NULL. (PR#10534)
capture.output() now returns invisibly if output is written to a file/connection.
format.AsIs() did not remove the "AsIs" class and so could go into an infinite loop.
summary.mlm() lost the names of the coefficients when there was only one.
Rdconv was not marking examples files with an encoding if this was known from the package's DESCRIPTION file.
readChar() from a raw vector was reading a number of bytes, not characters.
slotNames() was erroneously treating classes that extend "character" as strings.
R no longer ignores SIGPIPE signals even in processes launched by system(). Instead PR#1959 is handled by a simple error handler which will give an error message in circumstances where none was given before.
The AIC() S4 generic in package stats4 no longer disables dispatch of S3 methods for AIC().
The conflicts check in library() excluded all S4 generics, even where they were unrelated to the function masked. It is now more selective (although still too generous to S4 generics).
proc.time() was missing a protect and could misbehave if provoked by gctorture(). (PR#10600)
The cut() and hist() methods for dates and datetimes are now more accurate for intervals of "months" and "years", thanks to Marc Schwarz.
url()/download.file() could segfault if the HTTP interaction involved a redirect to an address starting with '/' on the same server.
proc.time() was missing a protect and could misbehave if provoked by gctorture(). (PR#10600)
capture.output() completes an incomplete final line of output when file = NULL. (PR#10534)
capture.output() now returns invisibly if output is written to a file/connection.
format.AsIs() did not remove the "AsIs" class and so could go into an infinite loop.
summary.mlm() lost the names of the coefficients when there was only one.
Rdconv was not marking examples files with an encoding if this was known from the package's DESCRIPTION file.
readChar() from a raw vector was reading a number of bytes, not characters.
slotNames() was erroneously treating classes that extend "character" as strings.
R no longer ignores SIGPIPE signals even in processes launched by system(). Instead PR#1959 is handled by a simple error handler which will give an error message in circumstances where none was given before.
The AIC() S4 generic in package stats4 no longer disables dispatch of S3 methods for AIC().
The conflicts check in library() excluded all S4 generics, even where they were unrelated to the function masked. It is now more selective (although still too generous to S4 generics).
\code{\var{<name>}} was not rendered correctly to latex in Rd files for non-alphabetic arguments <name>.
The default method for range() was omitting 'na.rm' for non-numeric objects such as those of class "Date". (PR#10508)
The automatic detection of the domain for message translation was not working correctly for messages in message(), warning() and stop() in packages others than 'base'.
plot.formula() was not passing on '...' on when used with a one-sided formula.
plot.formula() was not accepting expressions for annotations passed to title(). (PR#10525)
tools::texi2dvi() works around the failure of 'texi2dvi --quiet' to be quiet in texinfo 4.11.
src/extra/pcre has been updated to PCRE 7.5 (bugfix release).
As Mac OS X 10.5.0x comes with incompatible /bin/sh shell, we force SHELL=/bin/bash (which is ok) in that case. [Only for 2.6.x: another solution is used in 2.7.0.]
Keyboard events in getGraphicsEvent() could cause stack imbalance errors. (PR#10453)
fisher.test(simulate.p.value = TRUE) gave incorrect answers in some extremely degenerate problems. (PR#10558)
Non-ASCII characters were only working correctly in Hershey fonts if these were specified by the 'vfont' argument to text() and not if specified as a font family.
There were several errors in Hershey$allowed, but the help page listed the allowed combinations correctly.
text() no longer attempts to use 'vfont' with an expression for 'labels' (it was documented not to work).
pchisq(x, df=0, ncp=L) now returns the correct limit exp(-L/2) for x=0 and is no longer returning NaN for x > 0, L < 80. (PR#10551)
par() no longer warns unnecessarily when asked to set new=FALSE on an unused graphics device.
plot.formula() was not passing '...' on when used with a one-sided formula.
plot.formula() was not accepting expressions for annotations passed to title(). (PR#10525)
Under certain rare circumstances in R 2.6.x, log(), round() and trunc() could alter their arguments in the caller. This involved passing of empty '...' arguments, and was spotted when using apply(x, 2, log).
The profile.nls() function misbehaved when encountering non-convergence of the "port" algorithm.
o Under certain rare circumstances in R 2.6.x, log(), round() and trunc() could alter their arguments in the caller. This involved passing of empty '...' arguments, and was spotted when using apply(x, 2, log).
bxp() {, the plotting engine of boxplot()}, no longer plots staple ticks multiple times. (PR#10499)
The profile.nls() function misbehaved when encountering non-convergence of the "port" algorithm.
o Under certain rare circumstances in R 2.6.x, log(), round() and trunc() could alter their arguments in the caller. This involved passing of empty '...' arguments, and was spotted when using apply(x, 2, log).
by() fails for 1-column matrices and dataframes. (PR#10505)
The profile.nls function misbehaved when encountering non-convergence of the "port" algorithm.
The automatic detection of the domain for message translation was not working correctly for messages in message(), warning() and stop() in packages others than 'base'.
bxp() {the plotting engine of boxplot()} no longer plots staple ticks multiple times. (PR#10499)
In 2.6.1, curve(*, add=TRUE) used a wrong default 'xlim' when x coordinates where logged in 2.6.1.
cut(x, breaks=<n>) misbehaved on a constant vector of negative values.
The Java-based search in help.start() now only requires a JVM >= 1.4 (2.6.1 accidentally required >= 1.5).
by() fails for 1-column matrices and dataframes. (PR#10505)
The default method for range() was omitting na.rm for non-numeric objects such as those of class "Date". (PR#10508)
curve(*, add=TRUE) used a wrong default 'xlim' when x coordinates where logged in 2.6.1.
\code{\var{<name>}} was not rendered correctly to latex in Rd files for non-alphabetic arguments <name>.
colnames(DF) is now also fast for large dataframes DF with automatic row.names. Note that the correct usage is names(DF). (PR#10470)
colnames(df) is now also fast for dataframes with long automatic
rownames. (PR#10470)
attributes<-() stripped old attributes before checking that
all elements of the right-hand side had names.
attributes<-() stripped any existing attributes before checking that all elements of the right-hand side had names.
plot.The "profile.nls" method of plot() was losing the x axis labels.
print.summary.lm() is now consistent in spellingthe capitalization of "R-squared".
confint() misreported on some rank-deficient lm() models. (PR#10496) CThis could also occur in the default method.
print.summary.lm() is now consistent in spelling of "R-squared".
confint() misreported on some rank-deficient lm() models. (PR#10496) Could also occur in the default method.
rbinom(n, size, *) gave NaN when 'size > .Machine$integer.max'.
source("clipboard", echo=TRUE) and file("clipboard", open="rt") gave spurious errors. (Reported by Fernando Saldanha.)
attributes<-() stripped old attributes before checking that all elements of the right-hand side had names.
array() computed the total number of entries in the array before coercing the dimensions to integer. (Reported by Allen McIntosh.)
persp() misreported errors in the y parameter. (Reported by Allen McIntosh.)
colnames(df) is now also fast for dataframes with long automatic rownames. (PR#10470)
plot.profile.nls() was losing the x axis labels
A compilation problem on one system where glob was not found has been corrected. (PR#10468)
Keyboard events in getGraphicsEvent() could cause stack imbalance errors (PR#10453)
plot.ts(x,y) could use wrong default labels; fixed thanks to Antonio, Fabio di Narzo.
reshape() got column names out of sync with contents in some cases; found by Antonio, Fabio Di Narzo.
ar(x) for short 'x' (i.e. length <= 10) could fail because the default 'order.max' was >= length(x) which is non-sensical.
choose(n, k) gave incorrect values for negative n and small k.
The "data.frame" and "factor" methods for [[ now support
the 'exact' argument introduced in 2.6.0.
plot.lm() gains a new argument 'cex.caption' to allow the
size of the captions to be controlled.
A series of changes make the CHARSXP cache introduced in 2.6.0
faster (and in some cases many times faster) in sessions with
a large number (e.g. a million) of unique character strings,
and also if there are many empty strings.
embedFonts(), bitmap() and dev2bitmap() explicitly turn off
auto-rotation in Ghostscript when generating PDF.
The canonical architecture is no longer checked when loading
packages using a non-empty sub-architecture, since it is
possible to (e.g.) build packages for i386-pc-linux-gnu on both
that architecture and on x86_64-unknown-linux-gnu.
Deparsing will (if option warnIncomplete is set) warn on
strings longer than the parser limit (8192 bytes).
url() now uses the UserAgent header in http transactions in
the same way as download.file() (making use of option
"HTTPUserAgent").
iconv() is again able to translate character strings with
embedded nuls (such as those in UCS-2).
new.packages() and update.packages() failed when called on an
empty library, since old.packages() threw an error.
old.packages() now returns NULL (as documented) in that case.
Builds on Mac OS X 10.4 or higher now allocate enough space
in the binary headers to relocate dependent libraries into the
framework.
R CMD build now computes the exclusion list on the copy it
makes: this avoids problems if the original sources contain
symbolic links (which are resolved in the copy). Thanks to
Michael Lawrence for diagnosis and patch.
object.size() had slightly too low a size for objects of type "S4".
symbol() in plotmath expressions was only accepting valid
character strings, which made it impossible to specify symbols
such as aleph (obtained by symbol("\300")) in a UTF-8 locale.
An event handling issue caused autorepeat functions to
misbehave with tcltk (notably scrollbars).
plot(sin, -5, 5) gives ylab 'sin(x)' again, where it resulted
in 'x(x)' in 2.6.0. Further, plot(sin) again plots from
[0,1] also in cases where a previously used coordinate system
differs.
curve() with unspecified 'from', 'to' and 'xlim' now reuses the
previous x limits, and not slightly larger ones.
It was intended that R code filenames in packages should start
with an ASCII letter or digits (and R CMD INSTALL uses that),
but the test used in R CMD build ([A-Za-z0-9]) was
locale-specific (and excluded t to y in Estonian, for
example). (PR#10351)
'R CMD build' could misbehave when faced with files with CRLF
line endings *and* no line ending on the final line of the
file, removing the last byte of the file.
DF[i, j] failed in 2.6.0 if j was a logical vector selecting a
single column.
Unix x11() would fail if a valid 'display' was specified but
DISPLAY was unset. (PR#10379)
postscript() was not always ignoring .Postscript.Options in
the workspace (where it should not have occurred).
help.search() would give an error if it found a badly
installed package, even if 'package' was not specified.
tclServiceMode() (package tcltk) now works under Unix-alikes.
(Although documented, it used only to work under Windows.)
As Mac OS X 10.5.0 comes with incompatible /bin/sh shell, we
force SHELL=/bin/bash (which is ok) in that case. [Only for
2.6.x: another solution is used in 2.7.0.]
Deliberately using malformed source attributes no longer
causes deparsing/printing of functions to crash R. (PR#10437)
R CMD check and R CMD INSTALL now work with (some) directory
names containing spaces.
The "data.frame" and "factor" methods for [[ now support the 'exact' argument introduced in 2.6.0.
plot.lm() gains a new argument 'cex.caption' to allow the size of the captions to be controlled.
A series of changes make the CHARSXP cache introduced in 2.6.0 faster (and in some cases many times faster) in sessions with a large number (e.g. a million) of unique character strings, and also if there are many empty strings.
embedFonts(), bitmap() and dev2bitmap() explicitly turn off auto-rotation in Ghostscript when generating PDF.
The canonical architecture is no longer checked when loading packages using a non-empty sub-architecture, since it is possible to (e.g.) build packages for i386-pc-linux-gnu on both that architecture and on x86_64-unknown-linux-gnu.
Deparsing will (if option warnIncomplete is set) warn on strings longer than the parser limit (8192 bytes).
url() now uses the UserAgent header in http transactions in the same way as download.file() (making use of option "HTTPUserAgent").
iconv() is again able to translate character strings with embedded nuls (such as those in UCS-2).
new.packages() and update.packages() failed when called on an empty library, since old.packages() threw an error. old.packages() now returns NULL (as documented) in that case.
Builds on Mac OS X 10.4 or higher now allocate enough space in the binary headers to relocate dependent libraries into the framework.
R CMD build now computes the exclusion list on the copy it makes: this avoids problems if the original sources contain symbolic links (which are resolved in the copy). Thanks to Michael Lawrence for diagnosis and patch.
object.size() had slightly too low a size for objects of type "S4".
symbol() in plotmath expressions was only accepting valid character strings, which made it impossible to specify symbols such as aleph (obtained by symbol("\300")) in a UTF-8 locale.
An event handling issue caused autorepeat functions to misbehave with tcltk (notably scrollbars).
plot(sin, -5, 5) gives ylab 'sin(x)' again, where it resulted in 'x(x)' in 2.6.0. Further, plot(sin) again plots from [0,1] also in cases where a previously used coordinate system differs.
curve() with unspecified 'from', 'to' and 'xlim' now reuses the previous x limits, and not slightly larger ones.
It was intended that R code filenames in packages should start with an ASCII letter or digits (and R CMD INSTALL uses that), but the test used in R CMD build ([A-Za-z0-9]) was locale-specific (and excluded t to y in Estonian, for example). (PR#10351)
'R CMD build' could misbehave when faced with files with CRLF line endings *and* no line ending on the final line of the file, removing the last byte of the file.
DF[i, j] failed in 2.6.0 if j was a logical vector selecting a single column.
Unix x11() would fail if a valid 'display' was specified but DISPLAY was unset. (PR#10379)
postscript() was not always ignoring .Postscript.Options in the workspace (where it should not have occurred).
help.search() would give an error if it found a badly installed package, even if 'package' was not specified.
tclServiceMode() (package tcltk) now works under Unix-alikes. (Although documented, it used only to work under Windows.)
As Mac OS X 10.5.0 comes with incompatible /bin/sh shell, we force SHELL=/bin/bash (which is ok) in that case. [Only for 2.6.x: another solution is used in 2.7.0.]
Deliberately using malformed source attributes no longer causes deparsing/printing of functions to crash R. (PR#10437)
R CMD check and R CMD INSTALL now work with (some) directory names containing spaces.
Deliberately using malformed source attributes no longer causes deparsing/printing of functions to crash R. (PR#10437)
R CMD check and R CMD INSTALL now work with (some) directory names containing spaces.
As Mac OS X 10.5.0 comes with incompatible /bin/sh shell, we force SHELL=/bin/bash (which is ok) in that case. [Only for 2.6.x: another solution is used in 2.7.0.]
Mac OS X 10.5.0 comes with incompatible /bin/sh shell, we force SHELL=/bin/bash (which is ok) in that case.
url() now uses the UserAgent header in http transactions in the same way as download.file() (making use of option "HTTPUserAgent").
tclServiceMode() (package tcltk) now works under Unix-alikes. (Although documented, it used only to work under Windows.)
help.search() would give an error if it found a badly installed package, even if 'package' was not specified.
Deparsing will (if option warnIncomplete is set) warn on strings longer than the parser limit (8192 bytes).
postscript() was not always ignoring .Postscript.Options in the workspace (where it should not have occurred).
The canonical architecture is no longer checked when loading packages using a non-empty sub-architecture, since it is possible to (e.g.) build packages for i386-pc-linux-gnu on both that architecture and on x86_64-unknown-linux-gnu.
DF[i, j] failed in 2.6.0 if j was a logical vector selecting a single column.
Unix x11() would fail if a valid 'display' was specified but DISPLAY was unset. (PR#10379)
'R CMD build' could misbehave when faced with files with CRLF line endings *and* no line ending on the final line of the file, removing the last byte of the file.
The "data.frame" and "factor" methods for [[ now support the 'exact' argument introduced in 2.6.0.
plot.lm() gains a new argument 'cex.caption' to allow the size of the captions to be controlled.
A series of changes make the CHARSXP cache introduced in 2.6.0 faster (and in some cases many times faster) in sessions with a large number (e.g. a million) of unique character strings, and also if there are many empty strings.
embedFonts(), bitmap() and dev2bitmap() explicitly turn off auto-rotation in Ghostscript when generating PDF.
The "data.frame" and "factor" methods for [[ now support
the 'exact' argument introduced in 2.6.0.
plot.lm() gains a new argument 'cex.caption' to allow the
size of the captions to be controlled.
A series of changes make the CHARSXP cache introduced in 2.6.0
faster (and in some cases many times faster) in sessions with
a large number (e.g. a million) of unique character strings,
and also if there are many empty strings.
embedFonts(), bitmap() and dev2bitmap() explicitly turn off
auto-rotation in Ghostscript when generating PDF.
It was intended that R code filenames in packages should start with an ASCII letter or digits (and R CMD INSTALL uses that), but the test used in R CMD build ([A-Za-z0-9]) was locale-specific (and excluded t to y in Estonian, for example). (PR#10351)
It was intended that R code filenames in packages should start with an ASCII letter or digits (and R CMD INSTALL uses that), but the test used in R CMD build ([A-Za-z0-9]) was locale-specific (and excluded t to y in Estonian, for example).
An event handling issue caused autorepeat functions to misbehave with tcltk (notably scrollbars). This was due to a change intended to allow checking for user interrupts inside tight loops. The change has been backed out.
plot(sin, -5, 5) gives ylab 'sin(x)' again, where it resulted in 'x(x)' in 2.6.0. Further, plot(sin) again plots from [0,1] also in cases where a previously used coordinate system differs.
curve() with unspecified 'from', 'to' and 'xlim' now reuses the previous x limits, and not slightly larger ones.
An event handling issue caused autorepeat functions to misbehave with tcltk (notably scrollbars). This was due to a change intended to allow checking for user interrupts inside tight loops. The change has been backed out.
A series of changes make the CHARSXP cache introduced in 2.6.0 faster (and in some cases many times faster) in sessions with a large number (e.g. a million) of unique character strings, and also if there are many empty strings.
symbol() in plotmath expressions was only accepting valid character strings, which made it impossible to specify symbols such as aleph (obtained by symbol("\300")) in a UTF-8 locale.
showMethods() has a "smart" default for 'inherited' such that
showMethods(<genfun>, incl = TRUE) becomes a useful short cut.
The internal equivalents of as.complex, as.double, as.integer and as.logical used to handle length-=1 arguments now accept character strings (rather than report that this is 'unimplemented').
showMethods() has a "smart" default for 'inherited' such that showMethods(<genfun>, incl = TRUE) becomes a useful short cut.
New R_GE_str2col() exported via R_ext/GraphicsEngine.h for
external device developers.
New entry point R_GE_str2col listed in R_ext/GraphicsEngine.h for external graphics device developers.
object.size() had slightly too low a size for objects of type "S4".
embedFonts(), bitmap() and dev2bitmap() explicitly turn off auto-rotation in Ghostscript when generating PDF.
R CMD build now computes the exclusion list on the copy it makes: this avoids problems if the original sources contain symbolic links (which are resolved in the copy). Thanks to Michael Lawrence for diagnosis and patch.
new.packages() and update.packages() failed when called on an empty library, since old.packages() threw an error. old.packages() now returns NULL (as documented) in that case.
Builds on Mac OS X 10.4 or higher now allocate enough space in the binary headers to relocate dependent libraries into the framework.
The "data.frame" and "factor" methods for [[ now support the 'exact' argument introduced in 2.6.0.
iconv() is again able to translate character strings with embedded nuls (such as those in UCS-2).
plot.lm() gains a new argument 'cex.caption' to allow the size of the captions to be controlled.
A series of changes make the CHARSXP cache introduced in 2.6.0 faster (and in some cases many times faster) in sessions with a large number (e.g. a million) of unique character strings.
The [[ subsetting operator now has an argument 'exact' that allows programmers to disable partial matching (which will in due course become the default). The default value is exact=NA which causes a warning to be issued when partial matching occurs. When exact = TRUE, no partial matching will be performed. When exact = FALSE, partial matching can occur and no warning will be issued. This patch was written by Seth Falcon.
It is planned that [[exact=TRUE]] will become the default in R 2.7.0.
Ranges in chartr() now work better in CJK locales, thanks to Ei-ji Nakama.
seemsS4Object (methods package) is deprecated in favour of isS4().
help(<a character vector>) now uses the name and not the value of the vector unless it has length exactly one, so e.g. help(letters) now gives help on 'letters'. (Related to PR#9927)
getS3method() could fail if the method name contained a special regexp metacharacter such as "+".
getS3method() could fail if the method name contained a special character such as "+".
dQuote() and sQuote() are more flexible, with rendering controlled by the new option 'useFancyQuotes'. This includes the ability to have TeX-style rendering and directional quotes (the so-called 'smart quotes') on Windows. The default is to use directional quotes in UTF-8 locales (as before) and in the Rgui console on Windows (new).
.find.packages(), packageDescription() and sessionInfo() assumed that attached environments named "package:foo" were package environments, although misguided users could use such a name in attach().
spline() and splinefun() with method = "periodic" could return incorrect results when length(x) was 2 or 3.
Trailing spaces are now consistently stripped from \alias{} entries in .Rd files, and this is now documented. (PR#9915)
Trailing spaces are now conistently stripped from \alias{} entries in .Rd files, and this is now documented. (PR#9915)
Dataset HairEyeColor has been corrected to agree with Friendly (2000): the change involves the breakdown of Brown/Brownthe Brown hair / Brown eye cell by Sex, and only totals over Sex are given in the original source.
The way old.packages() and hence update.packages() handle packages with different versions in multiple package repositories has been changed. The first package encountered was selected, now the one with highest version number.
old.packages, and hence update.packages, incorrectly handled
duplicate packages when multiple package repositories are
specified. The first package encountered was selected, not
the one with highest version number. This has been fixed.
Dataset HairEyeColor has been corrected to agree with Friendly (2000): the change involves the breakdown of Brown/Brown by Sex, and only totals over Sex are given in the original source.
str() is no longer slow for large POSIXct objects. Its output is also slightly more compact for such objects; implementation via new optional argument 'give.head'.
julian() was documented to work with POSIXt origins, but did not work with POSIXlt ones. (PR#9908)
de.restore() gave a spurious warning for matrices (Ben Bolker)
plot(fn, xlim=c(a,b)) would not set "from" and "to" properly when plotting a function. The argument lists to curve() and plot.function() have been modified slightly as part of the fix.
strsplit(*, fixed=TRUE), potentially iconv() and internal string formatting is now faster for large strings, thanks to report PR#9902 by John Brzustowski.
plot(fn, xlim=c(a,b)) would not set "from" and "to" properly when plotting a function.
old.packages, and hence update.packages, incorrectly handled duplicate packages when multiple package repositories are specified. The first package encountered was selected, not the one with highest version number. This has been fixed.
New function within(), which is like with(), except that it tries to store modifications back to the original in thereturns modified versions back of list s and data frame cases.
de.restore() gave spurious warning for matrices (Ben Bolker)
R CMD check no longer issues a warning about no data sets being present if a lazyload db is found (as determined by the presence of Rdata.rdb, Rdata.rds, and Rdata.rdx in the 'data' subdirectory.
abbreviate() gains a 'method' argument with a new option "both.sides" which can make shorter abbreviations.
A standard for specifying package license information in the DESCRIPTION License field was introduced, see 'Writing R Extensions'. In addition, files LICENSE or LICENCE in a package top-level source directory are now installed (so putting copies into the 'inst' subdirectory is no longer necessary).
str() is no longer slow for large POSIXct objects. Its output is also slightly more compact for such; implementation via new optional argument 'give.head'.