R-1.8.0 is released
Peter Dalgaard BSA
p.dalgaard at biostat.ku.dk
Wed Oct 8 14:06:39 CEST 2003
I've rolled up R-1.8.0.tgz a short while ago. This is a new version
with major changes (see below). Notably, the Macintosh version for OS
X has been substantially improved; the old Carbon interface is no
longer being supported.
Also notice that the underscore will no longer work as an assignment
operator.
There is also a bunch of new functions and an assortment of bugs have
been fixed.
You can get it from
http://cran.us.r-project.org/src/base/R-1.8.0.tgz
or wait for it to be mirrored at a CRAN site nearer to you. Binaries
for various platforms will appear in due course.
There is also a version split for floppies.
These are the md5sums for the freshly created files, in case you wish
to check that they are uncorrupted:
bb019d7e12e38ac8a8bc247f06cc6b42 R-1.8.0.tgz
80fd20fdd2b995ab69cfd8cde80267cf R-1.8.0.tgz-split.aa
074140872c9c015089543c9497a3be87 R-1.8.0.tgz-split.ab
f0e6005491839dd27636020f6475f4e2 R-1.8.0.tgz-split.ac
e7e817911d57e3c88959d6b86c061dd5 R-1.8.0.tgz-split.ad
52e9aff83357b65926f422abececba92 R-1.8.0.tgz-split.ae
6c6965e7f97b627280326ec6c436ab48 R-1.8.0.tgz-split.af
00ce1b1384f403ba76d8de302e92da1d R-1.8.0.tgz-split.ag
On behalf of the R Core Team,
Peter Dalgaard
Here's the relevant part of the NEWS file
CHANGES IN R VERSION 1.8.0
MACOS CHANGES
o As from this release there is only one R port for the
Macintosh, which runs only on MacOS X. (The `Carbon' port has
been discontinued, and the `Darwin' port is part of the new
version.) The current version can be run either as a
command-line application or as an `Aqua' console. There is a
`Quartz' device quartz(), and the download and installation of
both source and binary packages is supported from the Aqua
console. Those CRAN and BioC packages which build under MacOS
X have binary versions updated daily.
USER-VISIBLE CHANGES
o The defaults for glm.control(epsilon=1e-8, maxit=25) have been
tightened: this will produce more accurate results, slightly
slower.
o sub, gsub, grep, regexpr, chartr, tolower, toupper, substr,
substring, abbreviate and strsplit now handle missing values
differently from "NA".
o Saving data containing name space references no longer warns
about name spaces possibly being unavailable on load.
o On Unix-like systems interrupt signals now set a flag that is
checked periodically rather than calling longjmp from the
signal handler. This is analogous to the behavior on Windows.
This reduces responsiveness to interrupts but prevents bugs
caused by interrupting computations in a way that leaves the
system in an inconsistent state. It also reduces the number
of system calls, which can speed up computations on some
platforms and make R more usable with systems like Mosix.
CHANGES TO THE LANGUAGE
o Error and warning handling has been modified to incorporate a
flexible condition handling mechanism. See the online
documentation of 'tryCatch' and 'signalCondition'. Code that
does not use these new facilities should remain unaffected.
o A triple colon operator can be used to access values of internal
variables in a name space (i.e. a:::b is the value of the internal
variable b in name space a).
o Non-syntactic variable names can now be specified by inclusion
between backticks `Like This`. The deparse() code has been
changed to output non-syntactical names with this convention,
when they occur as operands in expressions. This is controlled
by a `backtick' argument, which is by default TRUE for
composite expressions and FALSE for single symbols. This
should give minimal interference with existing code.
o Variables in formulae can be quoted by backticks, and such
formulae can be used in the common model-fitting functions.
terms.formula() will quote (by backticks) non-syntactic names
in its "term.labels" attribute. [Note that other code using
terms objects may expect syntactic names and/or not accept
quoted names: such code will still work if the new feature is
not used.]
NEW FEATURES
o New function bquote() does partial substitution like LISP backquote.
o capture.output() takes arbitrary connections for `file' argument.
o contr.poly() has a new `scores' argument to use as the base set
for the polynomials.
o cor() has a new argument `method = c("pearson","spearman","kendall")'
as cor.test() did forever. The two rank based measures do work with
all three missing value strategies.
o New utility function cov2cor() {Cov -> Corr matrix}.
o cut.POSIXt() now allows `breaks' to be more general intervals
as allowed for the `by' argument to seq.POSIXt().
o data() now has an 'envir' argument.
o det() uses an LU decomposition and LAPACK. The `method'
argument to det() no longer has any effect.
o dev.control() now accepts "enable" as well as "inhibit".
(Wishlist PR#3424)
o *, - and / work more generally on "difftime" objects, which now
have a diff() method.
o dt(*, ncp = V) is now implemented, thanks to Claus Ekstroem.
o dump() only quotes object names in the file where necessary.
o eval() of a promise forces the promise
o file.path() now returns an empty character vector if given at
least one zero-length argument.
o format() and hence print() make an effort to handle corrupt
data frames, with a warning.
o format.info() now also works with `nsmall' in analogy with
format.default().
o gamma(n) is very slightly more precise for integer n in 11:50.
o ? and help() will accept more un-quoted arguments, e.g. NULL.
o The "?" operator has new forms for querying documentation on
S4 methods. See the online documentation.
o New argument frame.plot = axes (== TRUE) for filled.contour().
o New argument fixed = TRUE for grep() and regexpr() to avoid the
need to escape strings to match.
o grep(x, ..., value = TRUE) preserves names of x.
o hist.POSIXt() can now pass arguments to hist.default()
o legend() and symbols() now make use of xy.coords() and accept
a wider range of coordinate specifications.
o Added function library.dynam.unload() to call dyn.unload() on
a loaded DLL and tidy up. This is called for all the standard
packages in namespaces with DLLs if their namespaces are unloaded.
o lm(singular.ok = FALSE) is now implemented.
o Empty lm() and glm() fits are now handled by the normal
code: there are no methods for classes "lm.null" and
"glm.null". Zero-rank fits are handled consistently.
o make.names() has improvements, and there is a new auxiliary
function make.unique(). (Based on code contributed by Tom
Minka, since converted to a .Internal function.) In
particular make.names() now recognises that names beginning
with a dot are valid and that reserved words are not.
o methods() has a print method which asterisks functions which
are not user-visible. methods(class = "foo") now lists
non-visible functions, and checks that there is a matching generic.
o model.matrix() now warns when it removes the response from the
rhs of the formula: that this happens is now documented on its
help page.
o New option `locatorBell' to control the confirmation beep
during the use of locator() and identify().
o New option("scipen") provides some user control over the
printing of numbers in fixed-point or exponential notation.
(Contributed by David Brahm.)
o plot.formula() now accepts horizontal=TRUE and works correctly
when boxplots are produced. (Wishlist PR#1207) The code has
been much simplified and corrected.
o polygon() and rect() now interpret density < 0 or NA to mean
filling (by colour) is desired: this allows filling and
shading to be mixed in one call, e.g. from legend().
o The predict() methods for classes lm, glm, mlm and lqs take a
`na.action' argument that controls how missing values in
`newdata' are handled (and defaults to predicting NA).
[Previously the value of getOption("na.action") was used and
this by default omitted cases with missing values, even if set
to `na.exclude'.]
o print.summary.glm() now reports omitted coefficients in the
same way as print.summary.lm(), and both show them as NAs in
the table of coefficients.
o print.table() has a new argument `zero.print' and is now
documented.
o rank(x, na.last = "keep") now preserves NAs in `x', and the
argument `ties.method' allows to use non-averaging ranks in the
presence of ties.
o read.table()'s 'as.is' argument can be character, naming columns
not to be converted.
o rep() is now a generic function, with default, POSIXct and
POSIXlt methods. For efficiency, the base code uses rep.int()
rather than rep() where possible.
o New function replicate() for repeated evaluation of expression
and collection of results, wrapping a common use of sapply()
for simulation purposes.
o rev() is now a generic function, with default and dendrogram
methods.
o serialize() and unserialize() functions are available for
low-level serialization to connections.
o socketSelect() allows waiting on multiple sockets.
o sort(method = "quick", decreasing = TRUE) is now implemented.
o sort.list() has methods "quick" (a wrapper for sort(method =
"quick", index.return = TRUE) and "radix" (a very fast method
for small integers). The default "shell" method works faster
on long vectors with many ties.
o stripchart() now has `log', `add' and `at' arguments.
o strsplit(x, *) now preserves names() but won't work for
non-character `x' anymore {formerly used as.character(x),
destroying names(x)}.
o textConnection() now has a local argument for use with output
connections. local = TRUE means the variable containing the
output is assigned in the frame of the caller.
o Using UseMethod() with more than two arguments now gives a
warning (as R-lang.texi has long claimed it did).
o New function vignette() for viewing or listing vignettes.
o which.min(x) and which.max(x) now preserve names.
o xy.coords() coerces "POSIXt" objects to "POSIXct", allowing
lines etc to added to plot.POSIXlt() plots.
o .Machine has a new entry, sizeof.pointer.
o .Random.seed is only looked for and stored in the user's
workspace. Previously the first place a variable of that name
was found on the search path was used.
o Subscripting for data.frames has been rationalized:
- Using a single argument now ignores any `drop' argument
(with a warning). Previously using `drop' inhibited list-like
subscripting.
- adf$name <- value now checks for the correct length of
`value', replicating a whole number of times if needed.
- adf[j] <- value and adf[[j]] <- value did not convert
character vectors to factors, but adf[,j] <- value did.
Now none do. Nor is a list `value' coerced to a data frame
(thereby coercing character elements to factors).
- Where replicating the replacement value a whole number of
times will produce the right number of values, this is
always done (rather than some times but not others).
- Replacement list values can include NULL elements.
- Subsetting a data frame can no longer produce duplicate
column names.
- Subsetting with drop=TRUE no longer sometimes drops
dimensions on matrix or data frame columns of the data frame.
- Attributes are no longer stripped when replacing part of a column.
- Columns added in replacement operations will always be
named, using the names of a list value if appropriate.
- as.data.frame.list() did not cope with list names such as
`check.rows', and formatting/printing data frames with such
column names now works.
- Row names in extraction are still made unique, but without
forcing them to be syntactic names.
- adf[x] <- list() failed if x was of length zero.
o Setting dimnames to a factor now coerces to character, as S
does. (Earlier versions of R used the internal codes.)
o When coercion of a list fails, a meaningful error message is given.
o Adding to NULL with [[ ]] generates a list if more than one
element is added (as S does).
o There is a new command-line flag --args that causes the rest of
the command line to be skipped (but recorded in commandArgs()
for further processing).
o S4 generic functions and method dispatch have been modified to
make the generic functions more self-contained (e.g., usable
in apply-type operations) and potentially to speed dispatch.
o The data editor is no longer limited to 65535 rows, and will
be substantially faster for large numbers of columns.
o Standalone Rmath now has a get_seed function as requested (PR#3160).
o GC timing is not enabled until the first call to gc.time(); it
can be disabled by calling gc.time(FALSE). This can speed up
the garbage collector and reduce system calls on some
platforms.
o textConnection() now has a local argument for use with output
connections. local = TRUE means the variable containing the output
is assigned in the frame of the caller.
STANDARD PACKAGES
o New package 'mle'. This is a simple package to find maximum
likelihood estimates, and perform likelihood profiling and
approximate confidence limits based upon it. A well-behaved
likelihood function is assumed, and it is the responsibility
of the user to gauge the applicability of the asymptotic
theory. This package is based on S4 methods and classes.
o Changes in package 'mva':
- factanal() now returns the test statistic and P-value formerly
computed in the print method.
- heatmap() has many more arguments, partly thanks to Wolfgang
Huber and Andy Liaw.
- Arguments `unit' and `hmin' of plclust() are now implemented.
- prcomp() now accepts complex matrices, and there is biplot()
method for its output (in the real case).
- dendrograms are slightly better documented, methods working with
"label", not "text" attribute. New rev() method for dendrograms.
- plot.dendrogram() has an explicit `frame.plot' argument
defaulting to FALSE (instead of an implicit one defaulting to TRUE).
o Changes in package 'tcltk':
- The package is now in a namespace. To remove it you will
now need to use unloadNamespace("tcltk").
- The interface to Tcl has been made much more efficient by
evaluating Tcl commands via a vector of Tcl objects rather
than by constructing the string representation.
- An interface to Tcl arrays has been introduced.
- as.tclObj() has gained a `drop' argument to resolve an
ambiguity for vectors of length one.
o Changes in package 'tools':
- Utilities for testing and listing files, manipulating file
paths, and delimited pattern matching are now exported.
- Functions checkAssignFuns(), checkDocArgs() and checkMethods()
have been renamed to checkReplaceFuns(), checkDocFiles(), and
checkS3methods, to given better descriptions of what they do.
- R itself is now used for analyzing the markup in the \usage
sections. Hence in particular, replacement functions or S3
replacement methods are no longer ignored.
- checkDocFiles() now also determines 'over-documented' arguments
which are given in the \arguments section but not in \usage.
- checkDocStyle() and checkS3Methods() now know about internal S3
generics and S3 group generics.
- S4 classes and methods are included in the QC tests.
Warnings will be issued from undoc() for classes and
methods defined but not documented. Default methods
automatically generated from nongeneric functions do not
need to be documented.
- New (experimental) functions codocClasses() and codocData()
for code/documentation consistency checking for S4 classes and
data sets.
o Changes in package 'ts':
- arima.sim() now checks for inconsistent order specification
(as requested in PR#3495: it was previously documented not to).
- decompose() has a new argument `filter'.
- HoltWinters() has new arguments `optim.start' and
`optim.control', and returns more components in the fitted
values. The plot method allows `ylim' to be set.
- plot.ts() has a new argument `nc' controlling the number of
columns (with default the old behaviour for plot.mts).
- StructTS() now allows the first value of the series to be
missing (although it is better to omit leading NAs). (PR#3990)
USING PACKAGES
o library() has a pos argument, controlling where the package is
attached (defaulting to pos=2 as before).
o require() now maintains a list of required packages in the
toplevel environment (typically, .GlobalEnv). Two features
use this: detach() now warns if a package is detached that is
required by an attached package, and packages that install
with saved images no longer need to use require() in the
.First as well as in the main source.
o Packages with name spaces can now be installed using --save.
o Packages that use S4 classes and methods should now work with
or without saved images (saved images are still recommended
for efficiency), writing setMethod(), etc. calls with the
default for argument `where'. The topenv() function and
sys.source() have been changed correspondingly. See the
online help.
o Users can specify in the DESCRIPTION file the collation order
for files in the R source directory of a package.
DOCUMENTATION CHANGES
o Changes in R documentation format:
- New logical markup commands for emphasizing (\strong) and
quoting (\sQuote and \dQuote) text, for indicating the usage
of an S4 method (\S4method), and for indicating specific kinds
of text (\acronym, \cite, \command, \dfn, \env, \kbd, \option,
\pkg, \samp, \var).
- New markup \preformatted for pre-formatted blocks of text
(like \example but within another section). (Based on a
contribution by Greg Warnes.)
- New markup \concept for concept index entries for use by
help.search().
o Rdconv now produces more informative output from the special
\method{GENERIC}{CLASS} markup for indicating the usage of S3
methods, providing the CLASS info in a comment.
o \dontrun sections are now marked within comments in the
user-readable versions of the converted help pages.
o \dontshow is now the preferred name for \testonly.
INSTALLATION CHANGES
o The zlib code in the sources is used unless the external
version found is at least version 1.1.4 (up from 1.1.3).
o The regression checks now have to be passed exactly, except
those depending on recommended packages (which cannot be
assumed to be present).
o The target make check-all now runs R CMD check on all the
recommended packages (and not just runs their examples).
o There are new macros DYLIB_* for building dynamic libraries,
and these are used for the dynamic Rmath library (which was
previously built as a shared object).
o If a system function log1p is found, it is tested for accuracy
and if inadequate the substitute function in src/nmath is
used, with name remapped to Rlog1p. (Apparently needed on
OpenBSD/NetBSD.)
C-LEVEL FACILITIES
o There is a new installed header file R_ext/Parse.h which
allows R_ParseVector to be called by those writing extensions.
(Note that the interface is changed from that used in the
unexported header Parse.h in earlier versions, and is not
guaranteed to remain unchanged.)
o The header R_ext/Mathlib.h has been removed. It was replaced by
Rmath.h in R 1.2.0.
o PREXPR has been replaced by two macros, PREXPR for obtaining the
expression and PRCODE for obtaining the code for use in eval.
The macro BODY_EXPR has been added for use with closures.
For a closure with a byte compiled body, the macro BODY_EXPR
returns the expression that was compiled; if the body is not
compiled then the body is returned. This is to support byte
compilation.
o Internal support for executing byte compiled code has been added.
A compiler for producing byte compiled code will be made available
separately and should become part of a future R release.
o On Unix-like systems calls to the popen() and system() C library
functions now go through R_popen and R_system. On Mac OS X these
suspend SIGALRM interrupts around the library call. (Related to
PR#1140.)
UTILITIES
o R CMD check accepts "ORPHANED" as package maintainer. Package
maintainers can now officially orphan a package, i.e., resign
from maintaining a package.
o R CMD INSTALL (Unix only) is now 'safe': if the attempt to
install a package fails, leftovers are removed. If the package
was already installed, the old version is restored.
o R CMD build excludes possible (obsolete) data and vignette
indices in DCF format (and hence also no longer rebuilds them).
o R CMD check now tests whether file names are valid across file
systems and supported operating system platforms. There is some
support for code/documentation consistency checking for data
sets and S4 classes. Replacement functions and S3 methods in
\usage sections are no longer ignored.
o R CMD Rdindex has been removed.
DEPRECATED & DEFUNCT
o The assignment operator `_' has been removed.
o printNoClass() is defunct.
o The classic MacOS port is no longer supported, and its files
have been removed from the sources.
o The deprecated argument 'white' of parse() has been removed.
o Methods pacf/plot.mts() have been removed and their functionality
incorporated into pacf.default/plot.ts().
o print.coefmat() is deprecated in favour of printCoefmat()
(which is identical apart from the default for na.print which
is changed from "" to "NA", and better handling of the 0-rank
case where all coefficients are missing).
o codes() and codes<-() are deprecated, as almost all uses
misunderstood what they actually do.
o The use of multi-argument return() calls is deprecated: use a
(named) list instead.
o anovalist.lm (replaced in 1.2.0) is now deprecated.
o - and Ops methods for POSIX[cl]t objects are removed: the
POSIXt methods have been used since 1.3.0.
o glm.fit.null(), lm.fit.null() and lm.wfit.null() are deprecated.
o Classes "lm.null" and "glm.null" are deprecated and all of their
methods have been removed.
o Method weights.lm(), a copy of weights.default(), has been removed.
o print.atomic() is now deprecated.
o The back-compatibility entry point Rf_log1p in standalone
Rmath has been removed.
BUG FIXES
o ARMAacf() sometimes gave too many results or failed if `lag.max'
was used.
o Functions anova.glm(), contrasts(), getS3method(), glm() and
make.tables() were applying get() without asking for a
function and/or not starting the search in the environment of
the caller.
o as.data.frame.matrix() ignored the `row.names' argument.
o as.data.frame.list(optional = TRUE) was converting names, and
hence data.frame(list(...), check.names = FALSE) was. (PR#3280)
o as.dist(m) {mva} now obeys `diag=TRUE' or `upper=TRUE' in all cases.
o as.double(list()) etc was regarded as an error, because of a
bug in isVectorizable.
o On some platforms the wday component of the result of
as.POSIXlt() was corrupted when trying to guess the DST offset
at dates the OS was unable to handle.
o ave(x, g) didn't work when `g' had unused levels.
o biplot.default() allows xlim and ylim to be set. (PR#3168)
o bgroup with a null (.) delimiter was setting font to Greek. (PR#3099)
o body() and formals() were looking for named functions in
different places: they now both look starting at the
environment in which they are called. Several documentation
errors for these functions have been corrected.
o boxplot() was ignoring cex.axis. (PR#2628)
o cut.POSIXt() now passes on ... to cut.default(), as documented.
o crossprod() now works for 1d arrays with unnamed dimnames (PR#4092).
o data() sometimes failed with multiple files, as the paths
variable got corrupted.
o data.frame() failed with a nonsensical error message if it
grabbed row names from an argument that was subsequently
recycled. Now they are discarded, with a warning.
o data.matrix() was documented to replace factors by their
codes, but in fact re-coded into the alphabetical ordering of
the levels.
o decompose() with even frequency used an asymmetric moving
average window.
o demo() was using `topic' as a regexp rather than an exact match.
o dotchart() now does recycle the `color' argument and better
documents the `bg' one (PR#4343).
o getAnywhere() didn't not correctly check for S3 methods, when
the generic or the class name contains a "." (PR#4275).
o file.copy() ignored the overwrite argument. (PR#3529)
o filter(method="recursive") was unnecessarily requiring the
time series to be longer than the filter.
o format(*, nsmall = m) with m > 0 now returns exponential format
less often.
o get() and exists() were ignoring the `mode' argument for
variables in base. The error message for get() now mentions
the mode requested if not "any". A bug in setting the NAMED
field in do_get was fixed.
o getS3method(f, cl, optional=TRUE) now returns NULL if `f' does
not exist.
o HoltWinters() would segfault if only gamma was optimized, and
not converge if gamma=0 and seasonal="mult".
o hyperref.cfg now contains definitions for colors it uses.
o identify.default() detects zero-length arguments. (PR#4057)
o legend() allows shading without filling again.
o legend(x, y, leg) doesn't triple `leg' anymore when it is a call.
o Corrected many problems with 0-rank (but not necessarily empty
model) lm() and glm() fits.
o lm.influence() now handles 0-rank models, and names its output
appropriately. It also ensures that hat values are not greater
than one, and rounds values within rounding error of one.
o The `method' argument to loess() did not work. (PR#3332)
o lsfit() was returning incorrect residuals for 0-rank fits.
o methods("$") and methods("$<-") were failing to find methods.
o methods() and getS3method() find methods if the generic
dispatches on a name other than its own. (The cases of
coefficients() and fitted.values() were fixed in 1.7.1.)
o model.matrix.default() was throwing an error on 0-term models,
but now handles them correctly.
o Printing `nls' objects misbehaved when `data' was a composite
expression.
o .NotYetImplemented() gave "Error in .NotYet...(): .."
o numericDeriv() was failing if the first argument was a name
rather than a call. (PR#3746)
o pacf() was failing if called on a one-column matrix.
o paste() applied to 0-length vectors gave "" not a 0-length vector.
o The length of a string specification of par(lty=) is now checked: it
should be 2, 4, 6 or 8.
o Using lty=as.integer(NA) and as.double(NA) were being accepted
but giving nonsensical results. Those are not documented
valid values for lty. (PR#3217)
o Erroneously calling par(new=TRUE) with no plot was not caught
and so could result in invalid graphics files. (PR#4037)
o par(tck=) was being interpreted incorrectly. It is now
documented in the same way as S, and now behaves as
documented. (PR#3504)
o plclust() [and hence plot.hclust()] sometimes now uses correct `ylim's
also in unusual cases. (PR#4197)
o plot.POSIX[cl]t no longer passes col, lty, lwd to axis.POSIXt.
o The png(), jpeg(), png() and win.metafile() devices now
enforce the length limit on the filename. (PR#3466)
o pnorm(x, 1, 0) does not give NaN anymore;
also, pnorm(x, m, s=Inf) == lim{s -> Inf} pnorm(x,m,s).
Similar changes for dnorm(), cf PR#1218.
o On some machines the internal rounding used in postscript() was
imperfect, causing unnecessarily verbose output (-0.00 instead of
0) and problems with make check.
o qqnorm()'s result now keeps NAs from its input. (PR#3750)
o rank() sometimes preserved and sometimes dropped names.
o readBin(what = "foo") didn't convert `what' to its type. (PR#4043)
o reorder.dendrogram() now properly resets the "midpoint" attributes
such that reorder()ed dendrograms now plot properly.
o rmultinom(1,100, c(3, 4, 2, 0,0))[3] was NA. (PR#4431)
o sapply() for matrix result does not return list(NULL,NULL) dimnames
anymore.
o scan() now interprets quoting in fields to be skipped. (PR#4128)
o seq.POSIXt(from, to, by="DSTday") was failing or calculating
the length incorrectly.
o sort() and unique.default() were failing on 0-level factors.
o step() adds a fuzz for reduction in AIC for 0-df terms. (PR#3491)
o str(x) gives better output when x is of mode "(". Its "dendrogram"
method obeys the `give.attr' argument which now defaults to FALSE.
o strwidth(f) and strheight(f) could seg.fault when `f' was a
function. The fix [to C-level coerceVector()] now gives an error
instead of passing through. This may catch other potential
problems.
o Sweave() reports the chunk number rather than the driver call when
a try error gets caught.
o trunc.POSIXt(x) for 0-length x does not return invalid structures
anymore. (PR#3763).
o warnings() now returns NULL instead of an error when no warnings
have occured yet. (PR#4389)
o Using write.table() setting the `dec' argument and with no
numeric columns failed. (PR#3532)
o $<- did not duplicate when it needed to.
o Recursive indexing of lists had too little error-checking.
(related to PR#3324)
o Removed warning about names in persistent strings when a
namespace is saved.
o Fixed some malformed error messages in the methods package.
o pipes were not opening properly when profiling on a Mac. (PR#1140)
o Lapack error messages (PR#3494) and call to DGEQP3 (PR#2867) are
corrected.
o Rd conversion was limiting a file to 1000 pairs of braces,
without any warning. Now the limit is 10000, with a warning.
(PR#3400)
o In the tcltk package, the tkimage.*() commands were defined
nonsensically as widget commands. They have been redefined to be
more useful now.
o Registered group generics were not being used. (PR#3536)
o Subsetting data frames did not always correctly detect that
non-existent columns were specified.
o There are many more checks for over-running internal buffers,
almost always reporting errors.
o Added some buffer overflow checking in gram.y.
o Internals for complex assignment did not check that function name
was a symbol, which could cause a segfault.
o Fixed bug in S4 methods dispatch that made local variables in the
generic visible when executing the body of a method, thus violating
lexical scope.
--
O__ ---- Peter Dalgaard Blegdamsvej 3
c/ /'_ --- Dept. of Biostatistics 2200 Cph. N
(*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907
More information about the R-announce
mailing list