[R] R-1.8.0 is released

Peter Dalgaard BSA
Wed, 08 Oct 2003 12:28:31 -0000

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

_______________________________________________
R-announce at stat.math.ethz.ch mailing list